(self, backend, kem, kdf, aead)
| 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() |
nothing calls this directly
no test coverage detected