Skip to content

Commit c2ce2cd

Browse files
committed
added more test coverage
1 parent 9c1bd29 commit c2ce2cd

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

src/rust/src/pkcs7.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -809,7 +809,7 @@ fn verify_der<'p>(
809809
_ => {
810810
return Err(CryptographyError::from(
811811
pyo3::exceptions::PyValueError::new_err(
812-
"The PKCS7 data is not an SignedData structure.",
812+
"The PKCS7 data is not a SignedData structure.",
813813
),
814814
));
815815
}

tests/hazmat/primitives/test_pkcs7.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,6 +1063,25 @@ def test_pkcs7_verify_der(
10631063
# Verification
10641064
pkcs7.pkcs7_verify_der(signature, data, certificate, [])
10651065

1066+
def test_pkcs7_verify_der_no_content(
1067+
self, backend, data, certificate, private_key
1068+
):
1069+
"""
1070+
Tests verification when needing the content stored in the PKCS7 signed
1071+
data structure.
1072+
"""
1073+
# Signature
1074+
builder = (
1075+
pkcs7.PKCS7SignatureBuilder()
1076+
.set_data(data)
1077+
.add_signer(certificate, private_key, hashes.SHA256())
1078+
)
1079+
options = [pkcs7.PKCS7Options.NoAttributes]
1080+
signature = builder.sign(serialization.Encoding.DER, options)
1081+
1082+
# Verification
1083+
pkcs7.pkcs7_verify_der(signature, None, certificate, [])
1084+
10661085
def test_pkcs7_verify_der_no_data(
10671086
self, backend, data, certificate, private_key
10681087
):
@@ -1082,6 +1101,20 @@ def test_pkcs7_verify_der_no_data(
10821101
with pytest.raises(ValueError):
10831102
pkcs7.pkcs7_verify_der(signature, None, certificate, [])
10841103

1104+
def test_pkcs7_verify_der_not_signed(self, backend, data):
1105+
# Encryption of data with a text/html content type header
1106+
certificate, _ = _load_rsa_cert_key()
1107+
builder = (
1108+
pkcs7.PKCS7EnvelopeBuilder()
1109+
.set_data(b"Hello world!")
1110+
.add_recipient(certificate)
1111+
)
1112+
enveloped = builder.encrypt(serialization.Encoding.DER, [])
1113+
1114+
# Verification
1115+
with pytest.raises(ValueError):
1116+
pkcs7.pkcs7_verify_der(enveloped, None, certificate, [])
1117+
10851118
def test_pkcs7_verify_der_wrong_certificate(
10861119
self, backend, data, certificate, private_key
10871120
):

0 commit comments

Comments
 (0)