Я пытаюсь расшифровать зашифрованное сообщение SMIME (зашифрованное в JavaScript с использованием библиотеки PKI.js), которое выглядит следующим образом:
Content-Type: application/pkcs7-mime; name=smime.p7m;
smime-type=enveloped-data
Content-Description: Enveloped Data
Content-Disposition: attachment; filename=smime.p7m
Content-Transfer-Encoding: base64
From: sender@example.com
To: recipient@example.com
Subject: Example S/MIME encrypted message
Date: Sun, 13 May 2018 23:53:48 +0000
Message-Id: <1526255628125-055f663b-fd554ae9-1ed33cf1@example.com>
MIME-Version: 1.0
MIIBzAYJKoZIhvcNAQcDoIIBvTCCAbkCAQIxggFuMIIBagIBADAjMB4xHDAJBgNVBAYTAlJVMA8G
A1UEAx4IAFQAZQBzAHQCAQEwPAYJKoZIhvcNAQEHMC+gDzANBglghkgBZQMEAgMFAKEcMBoGCSqG
SIb3DQEBCDANBglghkgBZQMEAgMFAASCAQA6EIOlgaYQ1/wYJe4DfZ5EDMLvCFbkj1h3CPtCsw7A
dKDdQAO1Sn25T0yyAO5iaXkETUGX2DGEqzOFspROrXObiuk4vLu0/D78780FhU59ybLY41m4ydT3
Dxpz3+2e3aRgfP2qnwG0WepIe14OWQWTZwtvRRrsh3AhjE9NAQik1MicPA8mTlQYKge6FEFbRvzu
+PNXht9bn/a+asSrPJleesST+srGm6/lllmTMOtqcGp5aelkQwCQ/aHJJ9HTSYtg8TAb4N78o00C
YJrhMrsKygJSC65VGV2BDbsbyBIhuiIdrCWx3JNoaKd2N6uix8V0UCHZHkzXnEduL5RH9SWdMIAG
CSqGSIb3DQEHATAdBglghkgBZQMEAQIEEGtZdxyVU9+8aONDzGlUjFuggAQQECObjBYnr23zUJ+6
60kRvAAAAAA=
И я делаю это следующим образом:
from M2Crypto import BIO, SMIME, X509
def decrypt(s):
mime = SMIME.SMIME()
with open("tmp.p7", 'wb') as f:
f.write(s.encode('utf-8'))
p7, data = SMIME.smime_load_pkcs7("tmp.p7")
return mime.decrypt(p7)
Я получаю следующее сообщение:
File "/Users/Adam/Library/Python/3.5/lib/python/site-packages/M2Crypto/SMIME.py", line 113, in smime_load_pkcs7
p7_ptr, bio_ptr = m2.smime_read_pkcs7(bio)
M2Crypto.SMIME.SMIME_Error: no content type
Если я сделаю
with open("tmp.p7", 'w') as f:
f.write(s)
Вместо этого результат тот же ... что сообщение об ошибке типа содержимого отсутствует.
Может кто-нибудь, пожалуйста, помогите мне?