Nodejs 使用 public 键字符串构造 public 键
Nodejs construct the public key using public key string
我有一个public键字符串如下
let pk_str = "public key strig here" 我正在使用库 jose
来验证 JWS
(async() => {
const decoder = new TextDecoder();
const jws = vc_proof_value;
const { payload, protectedHeader } = await compactVerify(jws, pk_str);
console.log(protectedHeader)
console.log(decoder.decode(payload))
})();
我在尝试 运行 脚本时遇到以下错误
(node:75986) UnhandledPromiseRejectionWarning: TypeError: Key must be one of type KeyObject, CryptoKey, or Uint8Array. Received type string
有没有办法构造密钥?
在 NodeJS 中(我指的是 NodeJS,因为你已经标记了这个),public 键作为 KeyObject
传递,它是用 crypto.createPublicKey()
创建的。您没有对密钥说太多,大概是 PEM 编码的(因为它是一个字符串)。在这种情况下,您只需传递 PEM 编码的密钥:
var key = crypto.createPublicKey(pk_str);
如果在 compactVerify()
调用中 pk_str
被 key
替换,验证有效。
除了 PEM 密钥(默认)外,还支持 JWK 和 DER 密钥(X.509/SPKI 或 PKCS#1)。
Here 是所有适用函数的 key
参数的文档。
我有一个public键字符串如下
let pk_str = "public key strig here" 我正在使用库 jose
来验证 JWS
(async() => {
const decoder = new TextDecoder();
const jws = vc_proof_value;
const { payload, protectedHeader } = await compactVerify(jws, pk_str);
console.log(protectedHeader)
console.log(decoder.decode(payload))
})();
我在尝试 运行 脚本时遇到以下错误
(node:75986) UnhandledPromiseRejectionWarning: TypeError: Key must be one of type KeyObject, CryptoKey, or Uint8Array. Received type string
有没有办法构造密钥?
在 NodeJS 中(我指的是 NodeJS,因为你已经标记了这个),public 键作为 KeyObject
传递,它是用 crypto.createPublicKey()
创建的。您没有对密钥说太多,大概是 PEM 编码的(因为它是一个字符串)。在这种情况下,您只需传递 PEM 编码的密钥:
var key = crypto.createPublicKey(pk_str);
如果在 compactVerify()
调用中 pk_str
被 key
替换,验证有效。
除了 PEM 密钥(默认)外,还支持 JWK 和 DER 密钥(X.509/SPKI 或 PKCS#1)。
Here 是所有适用函数的 key
参数的文档。