@fin.cx/skr
Version:
SKR03 and SKR04 German accounting standards for double-entry bookkeeping
66 lines (65 loc) • 2.07 kB
TypeScript
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>;
}