I am using and subtleCrypto to encode an API key but I get undefined as a return from trying to read Promise. What I have is
subtleCrypto.js:
const encryptKey = async (storedAPIKey) => {
// First generate a keypair
window.crypto.subtle
.generateKey(
{
name: "RSA-OAEP",
modulusLength: 2048,
publicExponent: new Uint8Array([1, 0, 1]),
hash: "SHA-256",
},
true,
["encrypt", "decrypt"]
)
.then(async (keyPair) => {
// call encryptMessage() w/keypair
const encryptedKey = await encryptMessage(
storedAPIKey,
keyPair.publicKey
);
console.log(encryptedKey);
return encryptedKey;
});
};
export { encryptKey };
and then try to use it in vue component as :
import { encryptKey } from "@/modules/subtleCrypto.js";
let myAPIKey = localStorage.getItem("ai-key");
const encryptMyKey = async () => {
const encryptedAPIKey = await encryptKey(myAPIKey);
console.log(encryptedAPIKey);
return encryptedAPIKey;
}
const encryptedKey = encryptMyKey();
console.log(encryptedKey)
The encryptedAPIKey shows on line 81 inside encryptMyKey as undefined, then line 86 in the main block variable shows as a pending promise. Any help in showing how to get the encrypted key value into the encryptedKey variable much appreciated.