33 lines
1.9 KiB
Python
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]
|