Add get key from storage for ensuring biometric browser integration (#408)
This commit is contained in:
parent
8797924bd1
commit
d2ca46b6f5
|
@ -15,6 +15,7 @@ export abstract class CryptoService {
|
|||
setEncPrivateKey: (encPrivateKey: string) => Promise<{}>;
|
||||
setOrgKeys: (orgs: ProfileOrganizationResponse[]) => Promise<{}>;
|
||||
getKey: (keySuffix?: KeySuffixOptions) => Promise<SymmetricCryptoKey>;
|
||||
getKeyFromStorage: (keySuffix: KeySuffixOptions) => Promise<SymmetricCryptoKey>;
|
||||
getKeyHash: () => Promise<string>;
|
||||
getEncKey: (key?: SymmetricCryptoKey) => Promise<SymmetricCryptoKey>;
|
||||
getPublicKey: () => Promise<ArrayBuffer>;
|
||||
|
|
|
@ -100,7 +100,18 @@ export class CryptoService implements CryptoServiceAbstraction {
|
|||
if (this.key != null) {
|
||||
return this.key;
|
||||
}
|
||||
|
||||
keySuffix ||= 'auto';
|
||||
const symmetricKey = await this.getKeyFromStorage(keySuffix);
|
||||
|
||||
if (symmetricKey != null) {
|
||||
this.setKey(symmetricKey);
|
||||
}
|
||||
|
||||
return symmetricKey;
|
||||
}
|
||||
|
||||
async getKeyFromStorage(keySuffix: KeySuffixOptions): Promise<SymmetricCryptoKey> {
|
||||
const key = await this.retrieveKeyFromStorage(keySuffix);
|
||||
if (key != null) {
|
||||
|
||||
|
@ -112,10 +123,9 @@ export class CryptoService implements CryptoServiceAbstraction {
|
|||
return null;
|
||||
}
|
||||
|
||||
this.setKey(symmetricKey);
|
||||
return symmetricKey;
|
||||
}
|
||||
|
||||
return key == null ? null : this.key;
|
||||
return null;
|
||||
}
|
||||
|
||||
async getKeyHash(): Promise<string> {
|
||||
|
|
Loading…
Reference in New Issue