diff options
author | Konstantin Shemyak <konstantin@shemyak.com> | 2015-10-25 21:28:37 +0200 |
---|---|---|
committer | Konstantin Shemyak <konstantin@shemyak.com> | 2016-11-28 19:40:30 +0200 |
commit | 7defbbfa7edc87d26f4c3df9793848697882dad8 (patch) | |
tree | 3b55d89c264cddab261fe857a6e5c9bc6ced474e /tests/test_smime.py | |
parent | 55c673dcb3cc740000bb306b8ceb12713221a615 (diff) | |
download | m2crypto-7defbbfa7edc87d26f4c3df9793848697882dad8.tar.gz |
Add possibility to sign PKCS7 with a non-default digest.
An optional parameter "algo" is added to SMIME.sign().
This is what is done by "-md" option in the command
"openssl smime -sign -md <digest_name> ..."
Diffstat (limited to 'tests/test_smime.py')
-rw-r--r-- | tests/test_smime.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/test_smime.py b/tests/test_smime.py index 4dd20d2..b60d418 100644 --- a/tests/test_smime.py +++ b/tests/test_smime.py @@ -67,6 +67,31 @@ class SMIMETestCase(unittest.TestCase): s.write(out, p7, BIO.MemoryBuffer(self.cleartext)) return out + def test_sign_unknown_digest(self): + buf = BIO.MemoryBuffer(self.cleartext) + s = SMIME.SMIME() + s.load_key('tests/signer_key.pem', 'tests/signer.pem') + self.assertRaises(SMIME.SMIME_Error, s.sign, + buf, SMIME.PKCS7_DETACHED, 'invalid digest name') + + def test_sign_nondefault_digest(self): + buf = BIO.MemoryBuffer(self.cleartext) + s = SMIME.SMIME() + s.load_key('tests/signer_key.pem', 'tests/signer.pem') + p7 = s.sign(buf, flags=SMIME.PKCS7_DETACHED, algo='sha512') + self.assertEqual(p7.type(), SMIME.PKCS7_SIGNED) + + def test_sign_with_stack(self): + buf = BIO.MemoryBuffer(self.cleartext) + s = SMIME.SMIME() + s.load_key('tests/signer_key.pem', 'tests/signer.pem') + cert = X509.load_cert('tests/server.pem') + stack = X509.X509_Stack() + stack.push(cert) + s.set_x509_stack(stack) + p7 = s.sign(buf, flags=SMIME.PKCS7_DETACHED, algo='sha512') + self.assertEqual(p7.type(), SMIME.PKCS7_SIGNED) + def test_store_load_info(self): st = X509.X509_Store() with self.assertRaises(X509.X509Error): |