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) но все тот же результат.

Спасибо за любую помощь.

0 ответов

Другие вопросы по тегам