aere-quantum/crypto-inventory/test/fixturi/python/crypto_py.py

33 lines
1.9 KiB
Python

"""Fixtura: criptografie in Python. Fisierul nu se executa; e doar text pentru scaner."""
import hashlib
import hmac
import ssl
from cryptography.hazmat.primitives.asymmetric import rsa, ec, ed25519, padding
from cryptography.hazmat.primitives import hashes
from Crypto.Cipher import AES, DES3
from ecdsa import SigningKey, SECP256k1
import jwt
import oqs
DIGEST = "sha256"
def exemple(data, key, alg_din_parametru):
k1 = rsa.generate_private_key(public_exponent=65537, key_size=1024) # EXPECT: RSA-1024 | weak-now
k2 = ec.generate_private_key(ec.SECP384R1()) # EXPECT: EC-secp384r1 | quantum-vulnerable
k3 = ed25519.Ed25519PrivateKey.generate() # EXPECT: Ed25519 | quantum-vulnerable
sig = k2.sign(data, ec.ECDSA(hashes.SHA256())) # EXPECT: ECDSA | quantum-vulnerable ; SHA-256 | quantum-safe
ct = k1.public_key().encrypt(data, padding.OAEP(mgf=padding.MGF1(hashes.SHA256()), algorithm=hashes.SHA256(), label=None)) # EXPECT: RSA | quantum-vulnerable ; SHA-256 | quantum-safe
h1 = hashlib.md5(data).hexdigest() # EXPECT: MD5 | weak-now
h2 = hashlib.new(DIGEST) # EXPECT: SHA-256 | quantum-safe
h3 = hashlib.new(alg_din_parametru) # EXPECT: hashlib.new | unknown
mac = hmac.new(key, data, digestmod="sha1") # EXPECT: HMAC-SHA-1 | weak-now
c1 = AES.new(key, AES.MODE_ECB) # EXPECT: AES-ECB | weak-now
c2 = DES3.new(key, DES3.MODE_CBC) # EXPECT: 3DES-CBC | weak-now
sk = SigningKey.generate(curve=SECP256k1) # EXPECT: ECDSA-secp256k1 | quantum-vulnerable
tok = jwt.encode({"a": 1}, key, algorithm="ES256K") # EXPECT: JWS ES256K | quantum-vulnerable
kem = oqs.KeyEncapsulation("ML-KEM-768") # EXPECT: ML-KEM-768 | quantum-safe
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) # EXPECT: TLS (negotiated) | unknown
ctx.minimum_version = ssl.TLSVersion.TLSv1_2 # EXPECT: TLSv1.2 | quantum-vulnerable
return [k3, sig, ct, h1, h2, h3, mac, c1, c2, sk, tok, kem]