// Fixtura: Rust. Numele din scop vin din `use`, si acelasi nume inseamna alt algoritm dupa crate (SigningKey e Ed25519 in // ed25519-dalek, ML-DSA in ml-dsa, ECDSA in p256). Un import fara niciun apel recunoscut ramane dovada slaba (unknown). use sha2::{Digest, Sha256, Sha512}; use sha1::Sha1; use hmac::{Hmac, Mac}; use hkdf::Hkdf; use argon2::{Algorithm, Argon2, Params, Version}; use chacha20poly1305::{aead::KeyInit, XChaCha20Poly1305}; use aes_gcm::Aes256Gcm; use x25519_dalek::{PublicKey, StaticSecret}; use ed25519_dalek::SigningKey; use ml_dsa::{KeyGen, MlDsa65}; use slh_dsa::{Sha2_128s, SigningKey as SlhSigningKey}; use ml_kem::{KemCore, MlKem768}; use rsa::RsaPrivateKey; use p256::ecdsa::SigningKey as P256SigningKey; use libsignal_protocol::kem; use ring::aead; use jsonwebtoken::Algorithm as JwtAlg; use openssl::hash::MessageDigest; use rustls::crypto::ring as rustls_ring; use snow::Builder; use blake2::Blake2b512; // EXPECT: blake2 | unknown use zeroize::Zeroizing; type HmacSha256 = Hmac; // EXPECT: HMAC-SHA-256 | quantum-safe pub fn exemple(data: &[u8], key: &[u8; 32], rng: &mut impl rand_core::CryptoRngCore) { let h = Sha256::new(); // EXPECT: SHA-256 | quantum-safe let d = Sha1::digest(data); // EXPECT: SHA-1 | weak-now let m = Hmac::::new_from_slice(key).unwrap(); // EXPECT: HMAC-SHA-512 | quantum-safe let hk = Hkdf::::new(None, key); // EXPECT: HKDF | quantum-safe let argon = Argon2::new(Algorithm::Argon2id, Version::V0x13, Params::default()); // EXPECT: Argon2id | quantum-safe let aead1 = XChaCha20Poly1305::new_from_slice(key).unwrap(); // EXPECT: XChaCha20-Poly1305 | quantum-safe let aead2 = Aes256Gcm::new_from_slice(key).unwrap(); // EXPECT: AES-256-GCM | quantum-safe let bloc = ecb::Encryptor::::new(key[..16].into()); // EXPECT: AES-128-ECB | weak-now let secret = StaticSecret::random_from_rng(rng); // EXPECT: X25519 | quantum-vulnerable let pk = PublicKey::from(&secret); // EXPECT: X25519 | quantum-vulnerable let ed = SigningKey::generate(rng); // EXPECT: Ed25519 | quantum-vulnerable let kp = MlDsa65::key_gen(rng); // EXPECT: ML-DSA-65 | quantum-safe let slh = SlhSigningKey::::new(rng); // EXPECT: SLH-DSA-SHA2-128s | quantum-safe let (dk, ek) = MlKem768::generate(rng); // EXPECT: ML-KEM-768 | quantum-safe let r = RsaPrivateKey::new(rng, 2048).unwrap(); // EXPECT: RSA-2048 | quantum-vulnerable let p = P256SigningKey::random(rng); // EXPECT: ECDSA-secp256r1 | quantum-vulnerable let kt = kem::KeyType::Kyber1024; // EXPECT: Kyber-1024 | quantum-safe let sealing = aead::UnboundKey::new(&aead::AES_256_GCM, key).unwrap(); // EXPECT: AES-256-GCM | quantum-safe let alg = JwtAlg::RS256; // EXPECT: JWS RS256 | quantum-vulnerable let md = MessageDigest::md5(); // EXPECT: MD5 | weak-now let provider = rustls_ring::default_provider(); // EXPECT: X25519 | quantum-vulnerable let noise = Builder::new("Noise_XX_25519_ChaChaPoly_SHA256".parse().unwrap()); // EXPECT: X25519 | quantum-vulnerable ; ChaCha20-Poly1305 | quantum-safe ; SHA-256 | quantum-safe let _ = (h, d, m, hk, argon, aead1, aead2, bloc, pk, ed, kp, slh, dk, ek, r, p, kt, sealing, alg, md, provider, noise, Zeroizing::new(0u8)); let _t: Option = None; }