Javascript 来自PEM的SublecryPTO导入密钥
我正在尝试使用Ionic中的SublecryptoWebAPI使用公钥加密数据。我正在以PEM格式导入密钥,然后将其传递到Javascript 来自PEM的SublecryPTO导入密钥,javascript,ionic-framework,Javascript,Ionic Framework,我正在尝试使用Ionic中的SublecryptoWebAPI使用公钥加密数据。我正在以PEM格式导入密钥,然后将其传递到window.crypto.minute.importKey,然后将该结果使用到window.crypto.minute.encrypt window.crypto.minute.importKey似乎有问题-当我尝试导入密钥时,我得到了一个未捕获(承诺):DataError 我目前正在使用以下方法导入密钥: //Get the public key in CryptoKey
window.crypto.minute.importKey
,然后将该结果使用到window.crypto.minute.encrypt
window.crypto.minute.importKey
似乎有问题-当我尝试导入密钥时,我得到了一个未捕获(承诺):DataError
我目前正在使用以下方法导入密钥:
//Get the public key in CryptoKey format
let importedPublicKey = await window.crypto.subtle.importKey(
"pkcs8",
this.pemPublicToArrayBuffer(serverPublicKey),
{
name: "RSA-OAEP",
hash: {name: "SHA-256"}
},
true,
[]
);
private pemPublicToArrayBuffer(pem) {
var b64Lines = this.removeLines(pem);
var b64Prefix = b64Lines.replace('-----BEGIN PUBLIC KEY-----', '');
var b64Final = b64Prefix.replace('-----END PUBLIC KEY-----', '');
return this.base64ToArrayBuffer(b64Final);
}
private base64ToArrayBuffer(b64) {
var byteString = window.atob(b64);
var byteArray = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i++) {
byteArray[i] = byteString.charCodeAt(i);
}
return byteArray;
}
//获取加密密钥格式的公钥
让importedPublicKey=等待window.crypto.minute.importKey(
“pkcs8”,
此.pemplictoarraybuffer(服务器公钥),
{
名称:“RSA-OAEP”,
哈希:{name:“SHA-256”}
},
是的,
[]
);
私人pemPublicToArrayBuffer(pem){
var b64Lines=此移除线(pem);
var b64Prefix=b64行。替换('----开始公钥---','');
var b64Final=b64前缀.replace('----结束公钥---','');
将此.base64返回到ArrayBuffer(B64最终);
}
专用基站64ToArrayBuffer(b64){
var byteString=window.atob(b64);
var byteArray=新的Uint8Array(byteString.length);
for(var i=0;i
有人知道为什么PEM公钥的密钥导入失败吗?我自己也花了很长时间来解决这个错误,现在我相信我可以给你(和其他任何人)一些很好的建议