Apple Wallet NFC 加密公钥
Apple Wallet NFC encryptionPublicKey
在 Apple's documentation for the keys available for a Wallet pass 中,有一个用于 NFC 相关数据的字典选项。我了解使用此密钥需要 Apple 的特别许可。不管...
message
是直截了当的——它是通过 到 一个 NFC 终端的数据(通常是客户)。
encryptionPublicKey
,然而,让我感到困惑。 Apple 声明它是 public 增值服务协议使用的加密密钥。 使用 Base64 编码的 X.509 SubjectPublicKeyInfo 结构包含组 P256 的 ECDH public 密钥。
任何人都可以解释第二句话的意思and/or开发人员必须做什么才能生成这个?从什么可以生成 public/private 密钥?
您需要以下内容来生成 public 和私钥。商户硬件在读取通行证和解码有效负载时使用私钥。
压缩的 public 密钥是进入您的 pass.json
的内容。
openssl ecparam -name prime256v1 -genkey -noout -out nfcKey.pem
openssl ec -in nfcKey.pem -pubout -out nfcPubkey.pem -conv_form compressed
cat nfcPubkey.pem
输出:
-----BEGIN PUBLIC KEY-----
MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAC/Bu9nyAtG1DQe7t7jszLb+dZ1GbX
oR8G0rIXoak67NM=
-----END PUBLIC KEY---
encryptionPublicKey
字段需要 Base64 密钥(不带换行符)。
例如
MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAC/Bu9nyAtG1DQe7t7jszLb+dZ1GbXoR8G0rIXoak67NM=
在 Apple's documentation for the keys available for a Wallet pass 中,有一个用于 NFC 相关数据的字典选项。我了解使用此密钥需要 Apple 的特别许可。不管...
message
是直截了当的——它是通过 到 一个 NFC 终端的数据(通常是客户)。
encryptionPublicKey
,然而,让我感到困惑。 Apple 声明它是 public 增值服务协议使用的加密密钥。 使用 Base64 编码的 X.509 SubjectPublicKeyInfo 结构包含组 P256 的 ECDH public 密钥。
任何人都可以解释第二句话的意思and/or开发人员必须做什么才能生成这个?从什么可以生成 public/private 密钥?
您需要以下内容来生成 public 和私钥。商户硬件在读取通行证和解码有效负载时使用私钥。
压缩的 public 密钥是进入您的 pass.json
的内容。
openssl ecparam -name prime256v1 -genkey -noout -out nfcKey.pem
openssl ec -in nfcKey.pem -pubout -out nfcPubkey.pem -conv_form compressed
cat nfcPubkey.pem
输出:
-----BEGIN PUBLIC KEY-----
MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAC/Bu9nyAtG1DQe7t7jszLb+dZ1GbX
oR8G0rIXoak67NM=
-----END PUBLIC KEY---
encryptionPublicKey
字段需要 Base64 密钥(不带换行符)。
例如
MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAC/Bu9nyAtG1DQe7t7jszLb+dZ1GbXoR8G0rIXoak67NM=