Skip to content

Commit 194eb61

Browse files
committed
only use single mechanism per marker, as the fixture only checks the first parameter
1 parent b7ec236 commit 194eb61

File tree

8 files changed

+30
-15
lines changed

8 files changed

+30
-15
lines changed

tests/test_des.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ def test_generate_des3_key(session: pkcs11.Session):
2020
assert isinstance(key, pkcs11.SecretKey)
2121

2222

23-
@pytest.mark.requires(Mechanism.DES2_KEY_GEN, Mechanism.DES3_CBC_PAD)
23+
@pytest.mark.requires(Mechanism.DES2_KEY_GEN)
24+
@pytest.mark.requires(Mechanism.DES3_CBC_PAD)
2425
def test_encrypt_des2(session: pkcs11.Session):
2526
key = session.generate_key(KeyType.DES2)
2627

@@ -31,7 +32,8 @@ def test_encrypt_des2(session: pkcs11.Session):
3132
assert plaintext == b"PLAIN TEXT_"
3233

3334

34-
@pytest.mark.requires(Mechanism.DES3_KEY_GEN, Mechanism.DES3_CBC_PAD)
35+
@pytest.mark.requires(Mechanism.DES3_KEY_GEN)
36+
@pytest.mark.requires(Mechanism.DES3_CBC_PAD)
3537
def test_encrypt_des3(session: pkcs11.Session):
3638
key = session.generate_key(KeyType.DES3)
3739

tests/test_dh.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
)
1616

1717

18-
@pytest.mark.requires(Mechanism.DH_PKCS_KEY_PAIR_GEN, Mechanism.DH_PKCS_DERIVE)
18+
@pytest.mark.requires(Mechanism.DH_PKCS_KEY_PAIR_GEN)
19+
@pytest.mark.requires(Mechanism.DH_PKCS_DERIVE)
1920
@pytest.mark.xfail_opencryptoki # AttributeValueInvalid when generating keypair
2021
def test_derive_key(session: pkcs11.Session) -> None:
2122
# Alice and Bob each create a Diffie-Hellman keypair from the
@@ -371,7 +372,8 @@ def test_load_params(session: pkcs11.Session) -> None:
371372
assert params[Attribute.PRIME][:4] == b"\xad\x10\x7e\x1e"
372373

373374

374-
@pytest.mark.requires(Mechanism.DH_PKCS_PARAMETER_GEN, Mechanism.DH_PKCS_KEY_PAIR_GEN)
375+
@pytest.mark.requires(Mechanism.DH_PKCS_PARAMETER_GEN)
376+
@pytest.mark.requires(Mechanism.DH_PKCS_KEY_PAIR_GEN)
375377
def test_generate_params(session: pkcs11.Session) -> None:
376378
params = session.generate_domain_parameters(KeyType.DH, 512)
377379
assert isinstance(params, DomainParameters)

tests/test_digest.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ def test_digest_generator(session: pkcs11.Session) -> None:
3232
assert digest == m.digest()
3333

3434

35-
@pytest.mark.requires(Mechanism.AES_KEY_GEN, Mechanism.SHA256)
35+
@pytest.mark.requires(Mechanism.AES_KEY_GEN)
36+
@pytest.mark.requires(Mechanism.SHA256)
3637
@pytest.mark.skipif(IS_NFAST, reason="nFast can't digest keys")
3738
def test_digest_key(session: pkcs11.Session) -> None:
3839
key = session.generate_key(
@@ -44,7 +45,8 @@ def test_digest_key(session: pkcs11.Session) -> None:
4445
assert digest == hashlib.sha256(key[Attribute.VALUE]).digest()
4546

4647

47-
@pytest.mark.requires(Mechanism.AES_KEY_GEN, Mechanism.SHA256)
48+
@pytest.mark.requires(Mechanism.AES_KEY_GEN)
49+
@pytest.mark.requires(Mechanism.SHA256)
4850
@pytest.mark.skipif(IS_NFAST, reason="nFast can't digest keys")
4951
def test_digest_key_data(session: pkcs11.Session) -> None:
5052
key = session.generate_key(

tests/test_dsa.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ def test_generate_params(session: pkcs11.Session) -> None:
3030
encode_dsa_domain_parameters(parameters)
3131

3232

33-
@pytest.mark.requires(Mechanism.DSA_KEY_PAIR_GEN, Mechanism.DSA_SHA1)
33+
@pytest.mark.requires(Mechanism.DSA_KEY_PAIR_GEN)
34+
@pytest.mark.requires(Mechanism.DSA_SHA1)
3435
def test_generate_keypair_and_sign(session: pkcs11.Session):
3536
dhparams = session.create_domain_parameters(
3637
KeyType.DSA, decode_dsa_domain_parameters(DHPARAMS), local=True
@@ -47,7 +48,8 @@ def test_generate_keypair_and_sign(session: pkcs11.Session):
4748

4849

4950
@pytest.mark.xfail_nfast
50-
@pytest.mark.requires(Mechanism.DSA_PARAMETER_GEN, Mechanism.DSA_KEY_PAIR_GEN)
51+
@pytest.mark.requires(Mechanism.DSA_PARAMETER_GEN)
52+
@pytest.mark.requires(Mechanism.DSA_KEY_PAIR_GEN)
5153
def test_generate_keypair_directly(session: pkcs11.Session):
5254
public, private = session.generate_keypair(KeyType.DSA, 1024)
5355
assert len(public[Attribute.VALUE]) == 1024 // 8

tests/test_ecc.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
)
1818

1919

20-
@pytest.mark.requires(Mechanism.EC_KEY_PAIR_GEN, Mechanism.ECDSA)
20+
@pytest.mark.requires(Mechanism.EC_KEY_PAIR_GEN)
21+
@pytest.mark.requires(Mechanism.ECDSA)
2122
def test_sign_ecdsa(session: pkcs11.Session) -> None:
2223
parameters = session.create_domain_parameters(
2324
KeyType.EC,
@@ -33,7 +34,8 @@ def test_sign_ecdsa(session: pkcs11.Session) -> None:
3334
assert pub.verify(data, ecdsa, mechanism=mechanism)
3435

3536

36-
@pytest.mark.requires(Mechanism.EC_KEY_PAIR_GEN, Mechanism.ECDH1_DERIVE)
37+
@pytest.mark.requires(Mechanism.EC_KEY_PAIR_GEN)
38+
@pytest.mark.requires(Mechanism.ECDH1_DERIVE)
3739
def test_derive_key(session: pkcs11.Session) -> None:
3840
# DER encoded EC params from OpenSSL
3941
# openssl ecparam -out ec_param.der -name prime192v1
@@ -151,7 +153,8 @@ def test_import_key_pair(session: pkcs11.Session) -> None:
151153
assert pub.verify(b"Example", signature, mechanism=Mechanism.ECDSA)
152154

153155

154-
@pytest.mark.requires(Mechanism.EC_EDWARDS_KEY_PAIR_GEN, Mechanism.EDDSA)
156+
@pytest.mark.requires(Mechanism.EC_EDWARDS_KEY_PAIR_GEN)
157+
@pytest.mark.requires(Mechanism.EDDSA)
155158
def test_sign_eddsa(session: pkcs11.Session) -> None:
156159
parameters = session.create_domain_parameters(
157160
KeyType.EC_EDWARDS,

tests/test_iterators.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
import pkcs11
88

99

10-
@pytest.mark.requires(pkcs11.Mechanism.AES_KEY_GEN, pkcs11.Mechanism.AES_CBC_PAD)
10+
@pytest.mark.requires(pkcs11.Mechanism.AES_KEY_GEN)
11+
@pytest.mark.requires(pkcs11.Mechanism.AES_CBC_PAD)
1112
def test_partial_decrypt(session: pkcs11.Session) -> None:
1213
session.generate_key(pkcs11.KeyType.AES, 128, label="LOOK ME UP")
1314

@@ -25,7 +26,8 @@ def test_partial_decrypt(session: pkcs11.Session) -> None:
2526
next(iter2)
2627

2728

28-
@pytest.mark.requires(pkcs11.Mechanism.AES_KEY_GEN, pkcs11.Mechanism.AES_CBC_PAD)
29+
@pytest.mark.requires(pkcs11.Mechanism.AES_KEY_GEN)
30+
@pytest.mark.requires(pkcs11.Mechanism.AES_CBC_PAD)
2931
# Ideally deleting iterator #1 would terminate the operation, but it
3032
# currently does not.
3133
@pytest.mark.xfail

tests/test_sessions.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ def test_generate_key(token: pkcs11.Token, pin: str) -> None:
6060
assert key.label == "MY KEY"
6161

6262

63-
@pytest.mark.requires(pkcs11.Mechanism.RSA_PKCS_KEY_PAIR_GEN, pkcs11.Mechanism.RSA_PKCS)
63+
@pytest.mark.requires(pkcs11.Mechanism.RSA_PKCS_KEY_PAIR_GEN)
64+
@pytest.mark.requires(pkcs11.Mechanism.RSA_PKCS)
6465
def test_generate_keypair(token: pkcs11.Token, pin: str) -> None:
6566
with token.open(user_pin=pin) as session:
6667
pub, priv = session.generate_keypair(pkcs11.KeyType.RSA, 1024)

tests/test_x509.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,8 @@ def test_self_sign_certificate(tmpdir: Path, session: pkcs11.Session) -> None:
241241

242242

243243
@pytest.mark.skipif(OPENSSL is None, reason="openssl command not found.")
244-
@pytest.mark.requires(Mechanism.RSA_PKCS_KEY_PAIR_GEN, Mechanism.SHA1_RSA_PKCS)
244+
@pytest.mark.requires(Mechanism.RSA_PKCS_KEY_PAIR_GEN)
245+
@pytest.mark.requires(Mechanism.SHA1_RSA_PKCS)
245246
def test_sign_csr(session: pkcs11.Session) -> None:
246247
# Warning: proof of concept code only!
247248
pub, priv = session.generate_keypair(KeyType.RSA, 1024)

0 commit comments

Comments
 (0)