summaryrefslogtreecommitdiff
path: root/tests/test_smime.py
diff options
context:
space:
mode:
authorKonstantin Shemyak <konstantin@shemyak.com>2015-10-25 21:28:37 +0200
committerKonstantin Shemyak <konstantin@shemyak.com>2016-11-28 19:40:30 +0200
commit7defbbfa7edc87d26f4c3df9793848697882dad8 (patch)
tree3b55d89c264cddab261fe857a6e5c9bc6ced474e /tests/test_smime.py
parent55c673dcb3cc740000bb306b8ceb12713221a615 (diff)
downloadm2crypto-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.py25
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):