A Swift implementation of SDM.
Based on: https://github.com/nfc-developer/sdm-backend
- 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
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"]
)import SDM
This project is licensed under the MIT License - see the LICENSE file for details.
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.