await нельзя использовать вне функции async .Вы можете добавить асинхронность в ваш .then , чтобы вы могли использовать await внутри.
.then(async(encrypted) => {
const options = {
message: await openpgp.message.readArmored(encrypted), // parse armored message
publicKeys: (await openpgp.key.readArmored(pubkey)).keys, // for verification (optional)
privateKeys: [privKeyObj] // for decryption
}
openpgp.decrypt(options).then(plaintext => {
console.log(plaintext.data)
return plaintext.data // 'Hello, World!'
})
})
Но я бы предпочел рефакторинг вашего кода следующим образом, чтобы получитьизбавиться от избыточного .then .Они вам не нужны, поскольку вы используете async / await .
const encryptDecryptFunction = async () => {
console.log("init", openpgp)
const privKeyObj = (await openpgp.key.readArmored(privkey)).keys[0]
await privKeyObj.decrypt(passphrase)
const options = {
message: openpgp.message.fromText('Hello, World!'), // input as Message object
publicKeys: (await openpgp.key.readArmored(pubkey)).keys, // for encryption
privateKeys: [privKeyObj] // for signing (optional)
}
console.log("init", options)
const { data: encripted } = await openpgp.encrypt(options)
const options = {
message: await openpgp.message.readArmored(encrypted), // parse armored message
publicKeys: (await openpgp.key.readArmored(pubkey)).keys, // for verification (optional)
privateKeys: [privKeyObj] // for decryption
}
const plaintext = await openpgp.decrypt(options);
console.log(plaintext.data)
return plaintext.data // 'Hello, World!'
}