Tag: asn.1

如何在PHP中检查Apple AppReceipt服务器端的UID散列?

我问这个问题,以共享解决scheme的代码。 上下文:苹果在iOS 7中引入了AppReceipt。它也适用于OS X IAP。 这个收据是一个PKCS#7容器(asn.1),其有效负载也是asn.1结构化的。 Apple的文档指导如何控制设备收据的有效性,并parsing它以检查是否已经为当前设备发出。 还有联系Ap​​ple服务器通过应用程序服务器validation收据的说明。 不过,在后一种情况下,苹果公司返回的json数据不包含识别原始设备的信息。 之前的带有transactionReceipt的IAP协议模型在json中包含了identifierForVendor UID。 问题:如何使用PHPparsing服务器上的二进制收据以检查UID散列,以确保此收据属于此设备? 这可以在将收据发送到Apple服务器之前或之后完成。

将XML Dsig格式转换为DER ASN.1公钥

我正在处理一个iPhone应用程序,它从ASP.NET web服务中以如下格式检索RSA公钥: <RSAKeyValue> <Modulus>qdd0paiiBJ+xYaN4TKDdbEzrJJw9xlbRAltb5OPdegjLoW60yOjL/sni52WVsGC9QxpNitZR33dnUscmI0cTJoxkXypPjbD94UpH+p4el2tuKBypHlE7bERApuUp55y8BiRkbQNFH8smZFWDwtIc/PsJryeGf8fAryel8c5V3PU=</Modulus> <Exponent>AQAB</Exponent> </RSAKeyValue> 然后我需要将这个响应转换成适当格式的NSData * (从一些激烈的谷歌search,很可能是'ASN.1 DER'二进制格式。我已经有代码将两个部分从Base64表示转换为原始二进制值,但我不能为我的生活找出一个合理的方式来创build一个一体化的二进制密钥。 等待密钥的代码是Apple的CryptoExercise示例项目( 此处的代码)的SecKeyWrapper类的-addPeerPublicKey:(NSString *) keyBits:(NSData *)方法。 我将非常乐意以另一种方式实现这一点 – 我需要的只是encryption一个string(不需要解密)。 据我所知,虽然内置的安全框架有我所需要的,如果我能够缩小这种格式的差距。 如果有一种方法来转换密钥,并从webservice发送Base64编码,那也适用于我 – 但是我找不到ASN.1编码它的任何方法。