@sentclose/sentc-nodejs
Version:
End-to-end encryption sdk
49 lines (48 loc) • 2.4 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/**
* @author Jörn Heinemann <joernheinemann@gmx.de>
* @since 2022/08/19
*/
import { AbstractCrypto } from "./AbstractCrypto";
import { CryptoRawOutput, UserPublicKeyData } from "../Enities";
import { SymKey } from "./SymKey";
export declare abstract class AbstractAsymCrypto extends AbstractCrypto {
/**
* Fetch the public key for this user
*
* @param reply_id
*/
abstract getPublicKey(reply_id: string): Promise<UserPublicKeyData>;
/**
* Get the own private key
* because only the actual user got access to the private key
*
* @param key_id
*/
abstract getPrivateKey(key_id: string): Promise<string>;
abstract getPrivateKeySync(key_id: string): string;
abstract getSignKey(): Promise<string>;
abstract getSignKeySync(): string;
abstract getJwt(): Promise<string>;
encryptRaw(data: Buffer, reply_id: string): Promise<CryptoRawOutput>;
encryptRaw(data: Buffer, reply_id: string, sign: true): Promise<CryptoRawOutput>;
encryptRawSync(data: Buffer, reply_public_key: string, sign?: boolean): CryptoRawOutput;
decryptRaw(head: string, encrypted_data: Buffer): Promise<Buffer>;
decryptRaw(head: string, encrypted_data: Buffer, verify_key: string): Promise<Buffer>;
decryptRawSync(head: string, encrypted_data: Buffer, verify_key?: string): Buffer;
encrypt(data: Buffer, reply_id: string): Promise<Buffer>;
encrypt(data: Buffer, reply_id: string, sign: true): Promise<Buffer>;
encryptSync(data: Buffer, reply_public_key: string, sign?: boolean): Buffer;
decrypt(data: Buffer): Promise<Buffer>;
decrypt(data: Buffer, verify: boolean, user_id: string): Promise<Buffer>;
decryptSync(data: Buffer, verify_key?: string): Buffer;
encryptString(data: string, reply_id: string): Promise<string>;
encryptString(data: string, reply_id: string, sign: true): Promise<string>;
encryptStringSync(data: string, reply_public_key: string, sign?: boolean): string;
decryptString(data: string): Promise<string>;
decryptString(data: string, verify: boolean, user_id: string): Promise<string>;
decryptStringSync(data: string, verify_key?: string): string;
generateNonRegisteredKey(reply_id: string): Promise<[SymKey, string]>;
getNonRegisteredKey(master_key_id: string, key: string): Promise<SymKey>;
}