hsynchronous
Version:
Hybrid synchronous encryption protocol using NIST approved post-quantum algorithms.
45 lines (42 loc) • 1.27 kB
text/typescript
import { kem, sign } from 'pqclean';
interface generateKeysFunc {
(KEM_ALGORITHM?: string, SIG_ALGORITHM?: string): Promise<{
kemKeyPair: kem.GenerateKeyPairResult;
sigKeyPair: sign.GenerateKeyPairResult;
}>;
}
interface encryptFunc {
(message: string, keypair: {
kemKeyPair: kem.GenerateKeyPairResult;
sigKeyPair: sign.GenerateKeyPairResult;
}, options?: {
fixedRunTime?: boolean;
}, nonce?: string): Promise<string>;
}
interface decryptFunc {
(payload: string, keypair: {
kemKeyPair: kem.GenerateKeyPairResult;
sigKeyPair: sign.GenerateKeyPairResult;
}, options?: {
fixedRunTime?: boolean;
memoryNonceProtection?: boolean;
}): Promise<{
message: string;
createdAt: Date;
decryptedAt: Date;
nonce: string;
}>;
}
interface exportKeysFunc {
(keypair: {
kemKeyPair: kem.GenerateKeyPairResult;
sigKeyPair: sign.GenerateKeyPairResult;
}): Promise<string>;
}
interface importKeysFunc {
(keys: string): Promise<{
kemKeyPair: kem.GenerateKeyPairResult;
sigKeyPair: sign.GenerateKeyPairResult;
}>;
}
export type { decryptFunc, encryptFunc, exportKeysFunc, generateKeysFunc, importKeysFunc };