Google app engine PKCS7是否可以在Google App Engine上签名?

Google app engine PKCS7是否可以在Google App Engine上签名?,google-app-engine,passbook,pkcs#7,Google App Engine,Passbook,Pkcs#7,我需要使用在Google app Engine(GAE)上运行的Python应用程序为某些数据创建PKCS7签名。更具体地说,我试图创建一个苹果存折通行证清单的PKCS7签名;存折通行证要求有PKCS7签名文件,才能成为完整有效的通行证 我花了将近一个星期的时间进行研究,但都没有结果 我可以在本地PC上使用openssl命令行通过以下方式成功创建签名: openssl smime -binary -sign -certfile WWDR.pem -signer certificate.pem -

我需要使用在Google app Engine(GAE)上运行的Python应用程序为某些数据创建PKCS7签名。更具体地说,我试图创建一个苹果存折通行证清单的PKCS7签名;存折通行证要求有PKCS7签名文件,才能成为完整有效的通行证

我花了将近一个星期的时间进行研究,但都没有结果

我可以在本地PC上使用openssl命令行通过以下方式成功创建签名:

openssl smime -binary -sign -certfile WWDR.pem -signer certificate.pem -inkey key.pem -in manifest.json -out signature -outform DER 
from M2Crypto import BIO, SMIME, X509

s = SMIME.SMIME()
s.load_key('identity.pem')         # my certificate and private key

x509 = X509.load_cert('WWDR.pem')  # Apple's intermediate certificate
sk = X509.X509_Stack()
sk.push(x509)
s.set_x509_stack(sk)

p7 = s.sign(bio_manifest, SMIME.PKCS7_DETACHED | SMIME.PKCS7_BINARY)
pkcs7_buffer = BIO.MemoryBuffer()
p7.write_der(pkcs7_buffer)

f = open('signature', 'w')
f.write(pkcs7_buffer.read())
f.close()
我还可以在本地PC上使用M2Crypto library成功创建签名,方法是:

openssl smime -binary -sign -certfile WWDR.pem -signer certificate.pem -inkey key.pem -in manifest.json -out signature -outform DER 
from M2Crypto import BIO, SMIME, X509

s = SMIME.SMIME()
s.load_key('identity.pem')         # my certificate and private key

x509 = X509.load_cert('WWDR.pem')  # Apple's intermediate certificate
sk = X509.X509_Stack()
sk.push(x509)
s.set_x509_stack(sk)

p7 = s.sign(bio_manifest, SMIME.PKCS7_DETACHED | SMIME.PKCS7_BINARY)
pkcs7_buffer = BIO.MemoryBuffer()
p7.write_der(pkcs7_buffer)

f = open('signature', 'w')
f.write(pkcs7_buffer.read())
f.close()
但是,M2Crypto是OpenSSL的包装,GAE不支持它

GAE支持pycrypto库,但该库似乎不支持PKCS7签名

我还研究了tlslite,它是一个纯python实现,因此应该在GAE上得到支持,但它似乎也不支持PKCS7签名

我正在寻找任何能够在GAE上成功创建PKCS7签名的人的指导。如果您能给我介绍一个纯python库或任何其他解决方案,我将非常感激

否则,我觉得我已经达到了GAE的极限,并将考虑将我的应用程序移动到另一个平台。考虑到数据安全的重要性,GAE不支持openssl库,这让我有点震惊;看来他们对提供一个web应用程序服务并不认真,该服务可以提供除基础之外的任何支持。除非(希望)我错过了显而易见的事情


谢谢你的帮助

已经朝着凯沙尔的方向看了吗@olituks我确实查阅了keyczar文档。它也不会生成pkcs7签名:(太糟糕了。在某些情况下,您可以使用填充PKCS5代替PKCS7,也许这对您来说还可以。