2018-02-19 19:07:19 +01:00
|
|
|
import { CipherString } from '../models/domain/cipherString';
|
|
|
|
import { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';
|
2018-01-08 20:11:28 +01:00
|
|
|
|
2018-02-19 19:07:19 +01:00
|
|
|
import { ProfileOrganizationResponse } from '../models/response/profileOrganizationResponse';
|
2018-01-08 20:11:28 +01:00
|
|
|
|
2018-08-14 21:12:10 +02:00
|
|
|
import { KdfType } from '../enums/kdfType';
|
|
|
|
|
2018-01-25 20:26:09 +01:00
|
|
|
export abstract class CryptoService {
|
|
|
|
setKey: (key: SymmetricCryptoKey) => Promise<any>;
|
|
|
|
setKeyHash: (keyHash: string) => Promise<{}>;
|
|
|
|
setEncKey: (encKey: string) => Promise<{}>;
|
|
|
|
setEncPrivateKey: (encPrivateKey: string) => Promise<{}>;
|
|
|
|
setOrgKeys: (orgs: ProfileOrganizationResponse[]) => Promise<{}>;
|
|
|
|
getKey: () => Promise<SymmetricCryptoKey>;
|
|
|
|
getKeyHash: () => Promise<string>;
|
|
|
|
getEncKey: () => Promise<SymmetricCryptoKey>;
|
2018-07-02 23:09:45 +02:00
|
|
|
getPublicKey: () => Promise<ArrayBuffer>;
|
2018-01-25 20:26:09 +01:00
|
|
|
getPrivateKey: () => Promise<ArrayBuffer>;
|
2018-11-08 05:12:45 +01:00
|
|
|
getFingerprint: (userId: string, publicKey?: ArrayBuffer) => Promise<string[]>;
|
2018-01-25 20:26:09 +01:00
|
|
|
getOrgKeys: () => Promise<Map<string, SymmetricCryptoKey>>;
|
|
|
|
getOrgKey: (orgId: string) => Promise<SymmetricCryptoKey>;
|
2018-06-13 23:10:52 +02:00
|
|
|
hasKey: () => Promise<boolean>;
|
2018-07-12 23:07:06 +02:00
|
|
|
hasEncKey: () => Promise<boolean>;
|
2018-01-25 20:26:09 +01:00
|
|
|
clearKey: () => Promise<any>;
|
|
|
|
clearKeyHash: () => Promise<any>;
|
|
|
|
clearEncKey: (memoryOnly?: boolean) => Promise<any>;
|
2018-07-03 17:41:55 +02:00
|
|
|
clearKeyPair: (memoryOnly?: boolean) => Promise<any>;
|
2018-01-25 20:26:09 +01:00
|
|
|
clearOrgKeys: (memoryOnly?: boolean) => Promise<any>;
|
2019-02-13 05:52:50 +01:00
|
|
|
clearPinProtectedKey: () => Promise<any>;
|
2018-01-25 20:26:09 +01:00
|
|
|
clearKeys: () => Promise<any>;
|
|
|
|
toggleKey: () => Promise<any>;
|
2018-08-14 21:12:10 +02:00
|
|
|
makeKey: (password: string, salt: string, kdf: KdfType, kdfIterations: number) => Promise<SymmetricCryptoKey>;
|
2018-07-02 23:09:45 +02:00
|
|
|
makeShareKey: () => Promise<[CipherString, SymmetricCryptoKey]>;
|
2018-07-03 17:41:55 +02:00
|
|
|
makeKeyPair: (key?: SymmetricCryptoKey) => Promise<[string, CipherString]>;
|
2019-02-13 06:04:31 +01:00
|
|
|
makePinKey: (pin: string, salt: string, kdf: KdfType, kdfIterations: number) => Promise<SymmetricCryptoKey>;
|
2018-01-25 20:26:09 +01:00
|
|
|
hashPassword: (password: string, key: SymmetricCryptoKey) => Promise<string>;
|
2018-07-03 17:41:55 +02:00
|
|
|
makeEncKey: (key: SymmetricCryptoKey) => Promise<[SymmetricCryptoKey, CipherString]>;
|
2018-08-28 02:00:41 +02:00
|
|
|
remakeEncKey: (key: SymmetricCryptoKey) => Promise<[SymmetricCryptoKey, CipherString]>;
|
2018-04-22 05:14:04 +02:00
|
|
|
encrypt: (plainValue: string | ArrayBuffer, key?: SymmetricCryptoKey) => Promise<CipherString>;
|
2018-01-25 20:26:09 +01:00
|
|
|
encryptToBytes: (plainValue: ArrayBuffer, key?: SymmetricCryptoKey) => Promise<ArrayBuffer>;
|
2018-11-26 21:29:54 +01:00
|
|
|
rsaEncrypt: (data: ArrayBuffer, publicKey?: ArrayBuffer) => Promise<CipherString>;
|
2018-09-10 18:13:30 +02:00
|
|
|
decryptToBytes: (cipherString: CipherString, key?: SymmetricCryptoKey) => Promise<ArrayBuffer>;
|
2018-04-22 05:14:04 +02:00
|
|
|
decryptToUtf8: (cipherString: CipherString, key?: SymmetricCryptoKey) => Promise<string>;
|
2018-01-25 20:26:09 +01:00
|
|
|
decryptFromBytes: (encBuf: ArrayBuffer, key: SymmetricCryptoKey) => Promise<ArrayBuffer>;
|
2018-04-23 19:03:47 +02:00
|
|
|
randomNumber: (min: number, max: number) => Promise<number>;
|
2018-01-08 20:11:28 +01:00
|
|
|
}
|