Contents

yannisdc/sdm

A Swift implementation of SDM.

Features

  • AES-128 encryption/decryption support
  • LRP (Leakage Resilient Primitive) encryption support
  • NXP NTAG 424 DNA SUN (Secure Unique NFC) implementation
  • Key diversification with UID-based and undiversified modes
  • CMAC (Cipher-based Message Authentication Code) calculation and verification
  • SDM (Secure Dynamic Message) URL parsing and processing
  • Comprehensive test suite with NXP AN12196 test vectors
  • Support for both PICC data and file data decryption
  • HMAC-SHA256 key derivation
  • Complete workflow for NFC tag authentication and data extraction

Installation

Add the following to your Package.swift dependencies:

.package(url: "https://github.com/YannisDC/SDM.git", from: "0.0.1")

Then add SDM as a dependency for your target:

.target(
    name: "YourApp",
    dependencies: ["SDM"]
)

Usage

import SDM

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Note: NTAG — is a trademark of NXP B.V.

Note: This GitHub project is not affiliated with NXP B.V. in any way. Product names are mentioned here in order to inform about compatibility.

Package Metadata

Repository: yannisdc/sdm

Default branch: main

README: README.md