Apple Pay - 解密付款数据

时间:2014-12-14 19:18:44

标签: ios encryption ios8.1 applepay

我正在尝试在Apple Pay授权成功后解密paymentData对象的PKPaymentToken属性。

我正在尝试遵循here指令,但我仍然坚持解密步骤的第2步,其中说:

  

使用publicKeyHash键的值来确定哪个商家   公钥由Apple使用,然后检索相应的   商家公钥证书和私钥。

我该怎么做?

请告知。

谢谢!

2 个答案:

答案 0 :(得分:5)

以下是如何在Apple开发人员中心下载Apple Pay证书文件的情况下计算Ruby中的publicKeyHash。

require "base64"
require "digest"
require "openssl"

# set cert_file = path to the downloaded Apple Pay .cer file

cert = OpenSSL::X509::Certificate.new(File.read(cert_file)) 
# strip off the "-----BEGIN PUBLIC KEY-----" line at the start of the string
pem = cert.public_key.to_pem.split("\n").drop(1)
# strip off the "-----END PUBLIC KEY-----" line at the end of the string
pem = pem.take(pem.length - 1)

decoded = Base64.decode64(pem.join)
public_key_hash = Digest::SHA256.base64digest(decoded)

答案 1 :(得分:1)

publicKeyHash字段的值是......公钥的哈希值。根据文档,它是商家证书的X.509编码公钥字节的SHA-256哈希值。您可以使用它来确定用于签署付款数据的商家标识符(您可能只有一个商家标识符,在这种情况下,您已经知道正在使用哪个)。