window.crypto - член JWK "n" не может быть декодирован base64url или содержит заполнение
Я пытаюсь установить e
- экспонент и n
- Модуль параметров в window.crypto.subtle.importKey
:
window.crypto.subtle.importKey(
"jwk", //can be "jwk" (public or private), "spki" (public only), or "pkcs8" (private only)
{ //this is an example jwk key, other key types are Uint8Array objects
kty: "RSA",
e: jsonData.e,
n: btoa(jsonData.n),
alg: "PS256",
ext: true,
},
{ //these are the algorithm options
name: "RSA-PSS",
hash: {name: "SHA-256"}, //can be "SHA-1", "SHA-256", "SHA-384", or "SHA-512"
},
false, //whether the key is extractable (i.e. can be used in exportKey)
["verify"] //"verify" for public key import, "sign" for private key imports
)
И мой Java BE для создания значений e, n:
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048);
KeyPair keyPair = kpg.genKeyPair();
RSAPublicKey key = (RSAPublicKey) keyPair.getPublic();
byte[] n = key.getModulus().toByteArray();
byte[] e = key.getPublicExponent().toByteArray();
int modLength = key.getModulus().toByteArray().length;
Но я получаю эту ошибку:
Uncaught (in promise) DOMException: The JWK member "n" could not be base64url decoded or contained padding
я пытался btoa
- n: btoa(jsonData.n)
но все тот же результат.
Спасибо за любую помощь.