我是OpenSSL的新手,我正在尝试在python中本地验证Itunes IAP收据。
最外层部分(图中标记为Receipt)是一个PKCS#7容器,由RFC 2315定义,其有效负载使用ASN.1(抽象语法表示法一)编码,由ITU-T X.690定义。有效负载由一组接收属性组成。每个收据属性都包含类型,版本和值。
import OpenSSL
f = open('sample_IAP_receipt_base64.txt', 'r').read()
type = OpenSSL.crypto.FILETYPE_ASN1
data = OpenSSL.crypto.load_pkcs7_data(type, f)
print f
此测试似乎会产生错误:
data = OpenSSL.crypto.load_pkcs7_data(type, f)
OpenSSL.crypto.Error: [('asn1 encoding routines', 'ASN1_CHECK_TLEN', 'wrong tag'), ('asn1 encoding routines', 'ASN1_ITEM_EX_D2I', 'nested asn1 error')]
任何想法如何使这个工作?
答案 0 :(得分:1)
我的建议是使用现有的python包,itunes-iap是一个很好的包:
答案 1 :(得分:0)
唯一可以在本地执行此操作的是该库: