mirror of
https://github.com/element-hq/element-web
synced 2024-11-23 09:46:09 +03:00
Fix "not attempting encryption" warning (#11899)
* Fix "not attempting encryption" warning Fixes https://github.com/vector-im/element-web/issues/26589 * Update src/utils/tokens/tokens.ts
This commit is contained in:
parent
c968f11833
commit
7ca0cd13d0
1 changed files with 12 additions and 11 deletions
|
@ -126,20 +126,21 @@ export async function persistTokenInStorage(
|
|||
|
||||
if (pickleKey) {
|
||||
let encryptedToken: IEncryptedPayload | undefined;
|
||||
try {
|
||||
if (!token) {
|
||||
throw new Error("No token: not attempting encryption");
|
||||
if (token) {
|
||||
try {
|
||||
// try to encrypt the access token using the pickle key
|
||||
const encrKey = await pickleKeyToAesKey(pickleKey);
|
||||
encryptedToken = await encryptAES(token, encrKey, initializationVector);
|
||||
encrKey.fill(0);
|
||||
} catch (e) {
|
||||
// This is likely due to the browser not having WebCrypto or somesuch.
|
||||
// Warn about it, but fall back to storing the unencrypted token.
|
||||
logger.warn(`Could not encrypt token for ${storageKey}`, e);
|
||||
}
|
||||
// try to encrypt the access token using the pickle key
|
||||
const encrKey = await pickleKeyToAesKey(pickleKey);
|
||||
encryptedToken = await encryptAES(token, encrKey, initializationVector);
|
||||
encrKey.fill(0);
|
||||
} catch (e) {
|
||||
logger.warn("Could not encrypt access token", e);
|
||||
}
|
||||
try {
|
||||
// save either the encrypted access token, or the plain access
|
||||
// token if we were unable to encrypt (e.g. if the browser doesn't
|
||||
// Save either the encrypted access token, or the plain access
|
||||
// token if there is no token or we were unable to encrypt (e.g. if the browser doesn't
|
||||
// have WebCrypto).
|
||||
await StorageManager.idbSave("account", storageKey, encryptedToken || token);
|
||||
} catch (e) {
|
||||
|
|
Loading…
Reference in a new issue