gpt4 book ai didi

python - 在 Google App Engine 中编码 PKCS7(python,存折)

转载 作者:行者123 更新时间:2023-11-28 18:51:23 26 4
gpt4 key购买 nike

这个问题与 Passbook 有关,在接下来的几天内处于 NDA 之下,但这是一个通用的 PKCS7 问题。

我有一个从我的钥匙串(keychain)中导出的 .p12 文件。我可以使用以下命令将其分成 2 个 pems

openssl pkcs12 -in "mycert.p12" -clcerts -nokeys -out certificate.pem
openssl pkcs12 -in "mycert.p12" -nocerts -out key.pem

下一步是使用此 key 和证书创建签名的 PKCS7 文件。使用 openssl 很容易做到这一点:

openssl smime -binary -sign \
-signer certificate.pem -inkey key.pem \
-in <datafile> -out signature \
-outform DER

问题是,假设我有证书和 key ,在 Google App Engine 中执行此操作的最佳方法是什么?不幸的是,我对密码学有点陌生,但我一直在谷歌搜索并找到了 PyCrypto 和 keyczar。在 App Engine 上是否有可接受的方法来执行此操作,或者我需要写一些东西吗?关于从哪个软件包开始有什么建议吗?
我知道 openssl 在 AppEngine 上不可用,但如果你使用 python 2.7,PyCrypto 是不可用的,对吧?而且我看到有人让 keyczar 使用它的帖子。不过,在给定 key 和证书的情况下,我无法找到一种生成 PKCS7 编码数据的简单方法。

提前感谢您的指导。

最佳答案

这是一种使用取自 https://github.com/devartis/passbook 的 M2Crypto 的方法

def passwordCallback(*args, **kwds):
return password

smime = SMIME.SMIME()
smime.load_key('key.pem', 'certificate.pem', callback=passwordCallback)
pk7 = smime.sign(SMIME.BIO.MemoryBuffer(manifest), flags=SMIME.PKCS7_DETACHED | SMIME.PKCS7_BINARY)
pem = SMIME.BIO.MemoryBuffer()
pk7.write(pem)
# convert pem to der
der = ''.join(l.strip() for l in pem.read().split('-----')[2].splitlines()).decode('base64')

open('signature', 'w').write(der)

关于python - 在 Google App Engine 中编码 PKCS7(python,存折),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12465931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com