MCPcopy
hub / github.com/pyca/cryptography / test_roundtrip_no_info

Method test_roundtrip_no_info

tests/hazmat/primitives/test_hpke.py:186–248  ·  view source on GitHub ↗
(self, backend, kem, kdf, aead)

Source from the content-addressed store, hash-verified

184
185 @pytest.mark.parametrize("kem,kdf,aead", SUPPORTED_SUITES)
186 def test_roundtrip_no_info(self, backend, kem, kdf, aead):
187 if kdf == KDF.SHAKE128 and not backend.hash_supported(
188 hashes.SHAKE128(digest_size=32)
189 ):
190 pytest.skip("SHAKE128 not supported")
191 if kdf == KDF.SHAKE256 and not backend.hash_supported(
192 hashes.SHAKE256(digest_size=64)
193 ):
194 pytest.skip("SHAKE256 not supported")
195 if (
196 kem
197 in [
198 KEM.MLKEM768,
199 KEM.MLKEM1024,
200 KEM.MLKEM768_X25519,
201 KEM.MLKEM1024_P384,
202 ]
203 and not backend.mlkem_supported()
204 ):
205 pytest.skip("ML-KEM not supported")
206 if kem in [
207 KEM.MLKEM768_X25519,
208 KEM.MLKEM1024_P384,
209 ] and not backend.hash_supported(hashes.SHA3_256()):
210 pytest.skip("SHA3-256 not supported")
211 suite = Suite(kem, kdf, aead)
212
213 sk_r: (
214 x25519.X25519PrivateKey
215 | ec.EllipticCurvePrivateKey
216 | mlkem.MLKEM768PrivateKey
217 | mlkem.MLKEM1024PrivateKey
218 | MLKEM768X25519PrivateKey
219 | MLKEM1024P384PrivateKey
220 )
221 if kem == KEM.X25519:
222 sk_r = x25519.X25519PrivateKey.generate()
223 elif kem == KEM.P256:
224 sk_r = ec.generate_private_key(ec.SECP256R1())
225 elif kem == KEM.P384:
226 sk_r = ec.generate_private_key(ec.SECP384R1())
227 elif kem == KEM.P521:
228 sk_r = ec.generate_private_key(ec.SECP521R1())
229 elif kem == KEM.MLKEM768:
230 sk_r = mlkem.MLKEM768PrivateKey.generate()
231 elif kem == KEM.MLKEM1024:
232 sk_r = mlkem.MLKEM1024PrivateKey.generate()
233 elif kem == KEM.MLKEM768_X25519:
234 sk_r = MLKEM768X25519PrivateKey(
235 mlkem.MLKEM768PrivateKey.generate(),
236 x25519.X25519PrivateKey.generate(),
237 )
238 else:
239 sk_r = MLKEM1024P384PrivateKey(
240 mlkem.MLKEM1024PrivateKey.generate(),
241 ec.generate_private_key(ec.SECP384R1()),
242 )
243 pk_r = sk_r.public_key()

Callers

nothing calls this directly

Calls 7

hash_supportedMethod · 0.80
mlkem_supportedMethod · 0.80
generateMethod · 0.45
generate_private_keyMethod · 0.45
public_keyMethod · 0.45
encryptMethod · 0.45
decryptMethod · 0.45

Tested by

no test coverage detected