@@ -105,7 +105,7 @@ def generic_keygen_kat(self, ML_KEM, index):
105
105
self .assertEqual (ek , ek_kat )
106
106
self .assertEqual (dk , dk_kat )
107
107
108
- def generic_encap_decap_kat (self , ML_KEM , index ):
108
+ def generic_encap_kat (self , ML_KEM , index ):
109
109
with open (
110
110
"assets/ML-KEM-encapDecap-FIPS203/internalProjection.json"
111
111
) as f :
@@ -126,6 +126,24 @@ def generic_encap_decap_kat(self, ML_KEM, index):
126
126
K_prime = ML_KEM .decaps (dk_kat , c_kat )
127
127
self .assertEqual (K_prime , k_kat )
128
128
129
+ def generic_decap_kat (self , ML_KEM , index ):
130
+ with open (
131
+ "assets/ML-KEM-encapDecap-FIPS203/internalProjection.json"
132
+ ) as f :
133
+ data = json .load (f )
134
+ kat_data = data ["testGroups" ][3 + index ]["tests" ]
135
+
136
+ # Parse out the decaps key
137
+ dk_hex = data ["testGroups" ][3 + index ]["dk" ]
138
+ dk_kat = bytes .fromhex (dk_hex )
139
+
140
+ # Ensure that decaps works
141
+ for test in kat_data :
142
+ c_kat = bytes .fromhex (test ["c" ])
143
+ k_kat = bytes .fromhex (test ["k" ])
144
+ K = ML_KEM .decaps (dk_kat , c_kat )
145
+ self .assertEqual (K , k_kat )
146
+
129
147
def test_ML_KEM_512_keygen (self ):
130
148
self .generic_keygen_kat (ML_KEM_512 , 0 )
131
149
@@ -135,11 +153,20 @@ def test_ML_KEM_768_keygen(self):
135
153
def test_ML_KEM_1024_keygen (self ):
136
154
self .generic_keygen_kat (ML_KEM_1024 , 2 )
137
155
138
- def test_ML_KEM_512_encap_decap (self ):
139
- self .generic_encap_decap_kat (ML_KEM_512 , 0 )
156
+ def test_ML_KEM_512_encap (self ):
157
+ self .generic_encap_kat (ML_KEM_512 , 0 )
158
+
159
+ def test_ML_KEM_768_encap (self ):
160
+ self .generic_encap_kat (ML_KEM_768 , 1 )
161
+
162
+ def test_ML_KEM_1024_encap (self ):
163
+ self .generic_encap_kat (ML_KEM_1024 , 2 )
164
+
165
+ def test_ML_KEM_512_decap (self ):
166
+ self .generic_decap_kat (ML_KEM_512 , 0 )
140
167
141
- def test_ML_KEM_768_encap_decap (self ):
142
- self .generic_encap_decap_kat (ML_KEM_768 , 1 )
168
+ def test_ML_KEM_768_decap (self ):
169
+ self .generic_decap_kat (ML_KEM_768 , 1 )
143
170
144
- def test_ML_KEM_1024_encap_decap (self ):
145
- self .generic_encap_decap_kat (ML_KEM_1024 , 2 )
171
+ def test_ML_KEM_1024_decap (self ):
172
+ self .generic_decap_kat (ML_KEM_1024 , 2 )
0 commit comments