Cleanup - unused files / unused exports / duplicate exports
[ProtonMail-WebClient.git] / packages / shared / lib / interfaces / Key.ts
blob7d3ad5d30e65dd2353ef8dbab818b1a08865a00b
1 import type { PrivateKeyReference, PublicKeyReference } from '@proton/crypto';
3 import type { RequireSome } from './utils';
5 export interface KeyWithRecoverySecret extends Key {
6     RecoverySecret: string;
7     RecoverySecretSignature: string;
10 export interface Key {
11     ID: string;
12     Primary: 1 | 0;
13     Active: 1 | 0;
14     Flags?: number; // Only available for address keys
15     Fingerprint: string;
16     Fingerprints: string[];
17     PublicKey: string; // armored key
18     Version: number;
19     Activation?: string;
20     PrivateKey: string; // armored key
21     Token?: string;
22     Signature?: string; // Only available for address keys
23     RecoverySecret?: string | null; // Only available for user keys
24     RecoverySecretSignature?: string | null; // Only available for user keys
25     AddressForwardingID?: string | null; // Only available for address keys
28 export type AddressKey = RequireSome<Key, 'Flags' | 'Signature' | 'AddressForwardingID'>;
29 export type UserKey = RequireSome<Key, 'RecoverySecret' | 'RecoverySecretSignature'>;
31 export interface KeyPair {
32     privateKey: PrivateKeyReference;
33     publicKey: PublicKeyReference;
36 export interface KeysPair {
37     privateKeys: PrivateKeyReference[];
38     publicKeys: PublicKeyReference[];
41 export interface DecryptedKey extends KeyPair {
42     ID: string;
45 export interface DecryptedAddressKey extends KeyPair {
46     ID: string;
47     Flags: number;
48     Primary: 1 | 0;
51 export interface InactiveKey {
52     Key: Key;
53     fingerprint?: string;
56 export interface ActiveKey extends DecryptedKey {
57     fingerprint: string;
58     flags: number;
59     primary: 1 | 0;
60     sha256Fingerprints: string[];