UNPKG

edockit

Version:

A JavaScript library for listing, parsing, and verifying the contents and signatures of electronic documents (eDoc) and Associated Signature Containers (ASiC-E), supporting EU eIDAS standards for digital signatures and electronic seals.

102 lines (101 loc) 3.43 kB
import { CertificateInfo } from "./certificate"; import { SignatureInfo } from "./parser"; /** * Options for verification process */ export interface VerificationOptions { checkCertificateValidity?: boolean; verifySignatures?: boolean; verifyChecksums?: boolean; verifyTime?: Date; } /** * Result of a checksum verification */ export interface ChecksumVerificationResult { isValid: boolean; details: Record<string, { expected: string; actual: string; matches: boolean; fileFound: boolean; }>; } /** * Result of a signature verification */ export interface SignatureVerificationResult { isValid: boolean; reason?: string; errorDetails?: { category: string; originalMessage: string; algorithm: any; environment: string; keyLength: number; }; } /** * Result of a certificate verification */ export interface CertificateVerificationResult { isValid: boolean; reason?: string; info?: CertificateInfo; } /** * Complete verification result */ export interface VerificationResult { isValid: boolean; certificate: CertificateVerificationResult; checksums: ChecksumVerificationResult; signature?: SignatureVerificationResult; errors?: string[]; } /** * Compute a digest (hash) of file content with browser/node compatibility * @param fileContent The file content as Uint8Array * @param algorithm The digest algorithm to use (e.g., 'SHA-256') * @returns Promise with Base64-encoded digest */ export declare function computeDigest(fileContent: Uint8Array, algorithm: string): Promise<string>; /** * Verify checksums of files against signature * @param signature The signature information * @param files Map of filenames to file contents * @returns Promise with verification results for each file */ export declare function verifyChecksums(signature: { signedChecksums: Record<string, string>; algorithm?: string; }, files: Map<string, Uint8Array>): Promise<ChecksumVerificationResult>; /** * Verify certificate validity * @param certificatePEM PEM-formatted certificate * @param verifyTime Time to check validity against * @returns Certificate verification result */ export declare function verifyCertificate(certificatePEM: string, verifyTime?: Date): Promise<CertificateVerificationResult>; /** * Verify the XML signature specifically using SignedInfo and SignatureValue * @param signatureXml The XML string of the SignedInfo element * @param signatureValue The base64-encoded signature value * @param publicKeyData The public key raw data * @param algorithm Key algorithm details * @param canonicalizationMethod The canonicalization method used * @returns Signature verification result */ export declare function verifySignedInfo(signatureXml: string, signatureValue: string, publicKeyData: ArrayBuffer, algorithm: { name: string; hash: string; namedCurve?: string; }, canonicalizationMethod?: string): Promise<SignatureVerificationResult>; /** * Verify a complete signature (certificate, checksums, and signature) * @param signatureInfo Signature information * @param files File contents * @param options Verification options * @returns Complete verification result */ export declare function verifySignature(signatureInfo: SignatureInfo, files: Map<string, Uint8Array>, options?: VerificationOptions): Promise<VerificationResult>;