@mojsoski/server-crypto
Version:
Asymmetric key-exchange cryptography library
15 lines (14 loc) • 912 B
TypeScript
import { AsyncReadStream } from "@mojsoski/async-stream";
import { EncryptedContent, EncryptionContext, EncryptedHeader, ICryptoProvider } from "./base";
export declare abstract class Server<TKey> {
abstract get name(): string;
abstract get publicKey(): TKey;
protected _provider: ICryptoProvider<TKey>;
constructor(crypto: ICryptoProvider<TKey>);
verifyJwt<T extends object>(jwt: string): Promise<T>;
createContext(): Promise<EncryptionContext>;
static decrypt<TKey>({ key, iv }: EncryptionContext, content: EncryptedContent, provider: ICryptoProvider<TKey>): Promise<Buffer<ArrayBufferLike>>;
encryptStream(stream: AsyncReadStream<Buffer>): AsyncReadStream<EncryptedHeader | EncryptedContent>;
static encrypt<TKey>({ key, iv }: EncryptionContext, content: Buffer, provider: ICryptoProvider<TKey>): Promise<EncryptedContent>;
encryptBase64<T>(obj: T): Promise<string>;
}