UNPKG

@fin.cx/skr

Version:

SKR03 and SKR04 German accounting standards for double-entry bookkeeping

66 lines (65 loc) 2.07 kB
export interface ISigningOptions { certificatePem?: string; privateKeyPem?: string; privateKeyPassphrase?: string; timestampServerUrl?: string; includeTimestamp?: boolean; } export interface ISignatureResult { signature: string; signatureFormat: 'CAdES-B' | 'CAdES-T' | 'CAdES-LT'; signingTime: string; certificateChain?: string[]; timestampToken?: string; timestampTime?: string; } export interface ITimestampResponse { token: string; time: string; serverUrl: string; hashAlgorithm: string; } export declare class SecurityManager { private options; private logger; constructor(options?: ISigningOptions); /** * Creates a CAdES-B (Basic) signature for data */ createCadesSignature(data: Buffer | string, certificatePem?: string, privateKeyPem?: string): Promise<ISignatureResult>; /** * Requests an RFC 3161 timestamp from a TSA */ requestTimestamp(dataHash: string | Buffer): Promise<ITimestampResponse>; /** * Creates a timestamp request (simplified version) */ private createTimestampRequest; /** * Sends timestamp request to TSA server */ private sendTimestampRequest; /** * Verifies a CAdES signature */ verifyCadesSignature(data: Buffer | string, signature: string, certificatePem?: string): Promise<boolean>; /** * Generates a self-signed certificate for testing */ generateSelfSignedCertificate(commonName?: string, validDays?: number): Promise<{ certificate: string; privateKey: string; }>; /** * Creates a detached signature file */ createDetachedSignature(dataPath: string, outputPath: string): Promise<void>; /** * Verifies a detached signature file */ verifyDetachedSignature(dataPath: string, signaturePath: string): Promise<boolean>; /** * Adds Long-Term Validation (LTV) information */ addLtvInformation(signature: ISignatureResult, ocspResponse?: Buffer, crlData?: Buffer): Promise<ISignatureResult>; }