【发布时间】:2016-09-20 00:56:16
【问题描述】:
我生成了一个 ECDH 密钥对,并从中获取了公钥。使用 nodejs 和加密库。
const ecdh = crypto.createECDH('secp384r1');
ecdh.generateKeys();
const publicKey = ecdh.getPublicKey('hex');
我正在实现一个客户端库来使用这个公钥、ECDH 算法和来自 WebCrypto 的 SubtleCrypto 接口来加密数据。
要实现这一点,我必须导入公钥(使用 nodejs 加密生成),WebCrypto importKey method 有一些格式选项可以做到这一点,但我可以让它不使用它们。我注意到jwk 比其他人更常用。
jwk 的一个例子是
{
kty: "EC",
crv: "P-256",
x: "kgR_PqO07L8sZOBbw6rvv7O_f7clqDeiE3WnMkb5EoI",
y: "djI-XqCqSyO9GFk_QT_stROMCAROIvU8KOORBgQUemE",
d: "5aPFSt0UFVXYGu-ZKyC9FQIUOAMmnjzdIwkxCMe3Iok",
ext: true,
}
那么如何将我的公钥解析为jwk 对象。我的公钥如下所示:
04f8b2a6e9d2ffa424c3e7b6addf23112153920fd0209390da460f99e03bf8665052e72df4a0b7927381f1b026c98a3a2b348fdd10969875e6b0e86cb1f093a5fc07e49fbbbf091922ce71af17f4a79de03f6069836a7143b137be34451f162235
【问题讨论】:
标签: javascript encryption cryptography webcrypto-api jwk