6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/pq_crypto/algorithm_registry.rb', line 6
def entries
@entries ||= begin
{
ml_kem_512: {
family: :ml_kem,
legacy_oid: nil,
standard_oid: "2.16.840.1.101.3.4.4.1",
public_key_bytes: PQCrypto::ML_KEM_512_PUBLIC_KEY_BYTES,
secret_key_bytes: PQCrypto::ML_KEM_512_SECRET_KEY_BYTES,
ciphertext_bytes: PQCrypto::ML_KEM_512_CIPHERTEXT_BYTES,
shared_secret_bytes: PQCrypto::ML_KEM_512_SHARED_SECRET_BYTES,
signature_bytes: nil,
description: "Pure ML-KEM-512 primitive (FIPS 203).",
}.freeze,
ml_kem_768: {
family: :ml_kem,
legacy_oid: "2.25.186599352125448088867056807454444238446",
standard_oid: "2.16.840.1.101.3.4.4.2",
public_key_bytes: PQCrypto::ML_KEM_PUBLIC_KEY_BYTES,
secret_key_bytes: PQCrypto::ML_KEM_SECRET_KEY_BYTES,
ciphertext_bytes: PQCrypto::ML_KEM_CIPHERTEXT_BYTES,
shared_secret_bytes: PQCrypto::ML_KEM_SHARED_SECRET_BYTES,
signature_bytes: nil,
description: "Pure ML-KEM-768 primitive (FIPS 203).",
}.freeze,
ml_kem_1024: {
family: :ml_kem,
legacy_oid: nil,
standard_oid: "2.16.840.1.101.3.4.4.3",
public_key_bytes: PQCrypto::ML_KEM_1024_PUBLIC_KEY_BYTES,
secret_key_bytes: PQCrypto::ML_KEM_1024_SECRET_KEY_BYTES,
ciphertext_bytes: PQCrypto::ML_KEM_1024_CIPHERTEXT_BYTES,
shared_secret_bytes: PQCrypto::ML_KEM_1024_SHARED_SECRET_BYTES,
signature_bytes: nil,
description: "Pure ML-KEM-1024 primitive (FIPS 203).",
}.freeze,
ml_kem_768_x25519_xwing: {
family: :ml_kem_hybrid,
legacy_oid: "1.3.6.1.4.1.62253.25722",
standard_oid: nil,
public_key_bytes: PQCrypto::HYBRID_KEM_PUBLIC_KEY_BYTES,
secret_key_bytes: PQCrypto::HYBRID_KEM_SECRET_KEY_BYTES,
ciphertext_bytes: PQCrypto::HYBRID_KEM_CIPHERTEXT_BYTES,
shared_secret_bytes: PQCrypto::HYBRID_KEM_SHARED_SECRET_BYTES,
signature_bytes: nil,
description: "Hybrid KEM: ML-KEM-768 + X25519 combined via X-Wing SHA3-256 combiner (draft-connolly-cfrg-xwing-kem).",
}.freeze,
ml_dsa_44: {
family: :ml_dsa,
legacy_oid: nil,
standard_oid: "2.16.840.1.101.3.4.3.17",
public_key_bytes: PQCrypto::SIGN_44_PUBLIC_KEY_BYTES,
secret_key_bytes: PQCrypto::SIGN_44_SECRET_KEY_BYTES,
ciphertext_bytes: nil,
shared_secret_bytes: nil,
signature_bytes: PQCrypto::SIGN_44_BYTES,
description: "ML-DSA-44 signature primitive (FIPS 204).",
}.freeze,
ml_dsa_65: {
family: :ml_dsa,
legacy_oid: "2.25.305232938483772195555080795650659207792",
standard_oid: "2.16.840.1.101.3.4.3.18",
public_key_bytes: PQCrypto::SIGN_PUBLIC_KEY_BYTES,
secret_key_bytes: PQCrypto::SIGN_SECRET_KEY_BYTES,
ciphertext_bytes: nil,
shared_secret_bytes: nil,
signature_bytes: PQCrypto::SIGN_BYTES,
description: "ML-DSA-65 signature primitive (FIPS 204).",
}.freeze,
ml_dsa_87: {
family: :ml_dsa,
legacy_oid: nil,
standard_oid: "2.16.840.1.101.3.4.3.19",
public_key_bytes: PQCrypto::SIGN_87_PUBLIC_KEY_BYTES,
secret_key_bytes: PQCrypto::SIGN_87_SECRET_KEY_BYTES,
ciphertext_bytes: nil,
shared_secret_bytes: nil,
signature_bytes: PQCrypto::SIGN_87_BYTES,
description: "ML-DSA-87 signature primitive (FIPS 204).",
}.freeze,
}.freeze
end
end
|