// Fixtura: CryptoKit (si swift-crypto, `import Crypto`, acelasi API). Formele sunt cele din documentatia Apple // (developer.apple.com/documentation/cryptokit: SHA256.hash(data:), Insecure.MD5, HMAC.authenticationCode(for:using:), // AES.GCM.seal(_:using:), ChaChaPoly.seal, Curve25519.KeyAgreement.PrivateKey(), P256.Signing.PrivateKey(), // HKDF.deriveKey(inputKeyMaterial:salt:info:outputByteCount:), SymmetricKey(size: .bits256)). Nu se compileaza; e text pentru scaner. import Foundation import CryptoKit func exemple(data: Data, key: SymmetricKey, peer: Curve25519.KeyAgreement.PublicKey) throws { let digest = SHA256.hash(data: data) // EXPECT: SHA-256 | quantum-safe let d384 = SHA384.hash(data: data) // EXPECT: SHA-384 | quantum-safe var hasher = SHA512() // EXPECT: SHA-512 | quantum-safe let md5 = Insecure.MD5.hash(data: data) // EXPECT: MD5 | weak-now let sha1 = Insecure.SHA1.hash(data: data) // EXPECT: SHA-1 | weak-now let tag = HMAC.authenticationCode(for: data, using: key) // EXPECT: HMAC-SHA-256 | quantum-safe let sealed = try AES.GCM.seal(data, using: SymmetricKey(size: .bits256)) // marimea cheii de pe acelasi rand; EXPECT: AES-256-GCM | quantum-safe let opened = try AES.GCM.open(sealed, using: key) // EXPECT: AES-GCM | quantum-safe let cc = try ChaChaPoly.seal(data, using: key) // EXPECT: ChaCha20-Poly1305 | quantum-safe let x = Curve25519.KeyAgreement.PrivateKey() // EXPECT: X25519 | quantum-vulnerable let shared = try x.sharedSecretFromKeyAgreement(with: peer) let ed = Curve25519.Signing.PrivateKey() // EXPECT: Ed25519 | quantum-vulnerable let p256 = P256.Signing.PrivateKey() // EXPECT: ECDSA-secp256r1 | quantum-vulnerable let p384 = P384.KeyAgreement.PrivateKey() // EXPECT: ECDH-secp384r1 | quantum-vulnerable let p521 = P521.Signing.PrivateKey() // EXPECT: ECDSA-secp521r1 | quantum-vulnerable let derived = HKDF.deriveKey(inputKeyMaterial: key, salt: data, info: data, outputByteCount: 32) // EXPECT: HKDF | quantum-safe let k = SymmetricKey(size: .bits128) // singura pe rand: algoritmul se alege unde e folosita; EXPECT: SymmetricKey (128-bit) | unknown hasher.update(data: data) _ = (digest, d384, md5, sha1, tag, opened, cc, shared, ed, p256, p384, p521, derived, k) }