← ClaudeAtlas

cryptokitlisted

Use Apple CryptoKit for Swift cryptographic primitives. Use when hashing with SHA-2 or SHA-3, generating HMACs, encrypting with AES-GCM or ChaChaPoly, signing with P256/P384/P521/Curve25519 or ML-DSA keys, performing ECDH, HPKE, ML-KEM, or X-Wing key exchange, using Secure Enclave CryptoKit keys, or migrating CommonCrypto code to CryptoKit.
thiennc-tesoglobal/ios-skills · ★ 3 · AI & Automation · score 66
Install: claude install-skill thiennc-tesoglobal/ios-skills
# CryptoKit Apple CryptoKit provides a Swift-native API for cryptographic operations: hashing, message authentication, symmetric encryption, public-key signing, key agreement, HPKE, quantum-secure key encapsulation/signing, and Secure Enclave-backed keys. Most core primitives are available on iOS 13+; check availability for HPKE (iOS 17+) and SHA-3 / post-quantum APIs (iOS 26+). Prefer CryptoKit over CommonCrypto or raw Security framework APIs for new cryptographic primitive code targeting Swift 6.3+. ## Contents - [Hashing](#hashing) - [HMAC](#hmac) - [Symmetric Encryption](#symmetric-encryption) - [Public-Key Signing](#public-key-signing) - [Key Agreement](#key-agreement) - [HPKE](#hpke) - [Post-Quantum CryptoKit](#post-quantum-cryptokit) - [Secure Enclave](#secure-enclave) - [Common Mistakes](#common-mistakes) - [Review Checklist](#review-checklist) - [References](#references) ## Hashing Use SHA256/SHA384/SHA512 on iOS 13+; SHA3_256/SHA3_384/SHA3_512 require iOS 26+. All conform to `HashFunction`. ### One-shot hashing ```swift import CryptoKit let data = Data("Hello, world!".utf8) let digest = SHA256.hash(data: data) let hex = digest.compactMap { String(format: "%02x", $0) }.joined() ``` ### SHA-3 availability Use SHA-3 only behind an availability check unless the deployment target is iOS 26+: ```swift if #available(iOS 26.0, *) { let digest = SHA3_256.hash(data: data) } ``` ### Incremental hashing For large data or streaming input, hash incrementally: ``