export class DN { CN: string; [key: string]: string; } export interface InitResultInterface { version: string; manifestV3?: boolean; // CryptoPro serialNumber?: string; // JaCarta2 label?: string; // JaCarta2, RuToken type?: string; // JaCarta2, RuToken flags?: { [key: string]: boolean; }; // JaCarta2 serial?: string; // RuToken reader?: string; // RuToken model?: string; // RuToken } export interface CSROptionsInterface { pin?: string; // CryptoPro providerType?: number; // CryptoPro algorithm?: string; // JaCarta2, RuToken description?: string; // JaCarta2 marker?: string; // RuToken } export interface CSRInterface { csr: string; keyPairId?: number | string; // JaCarta | RuToken } export interface CertificateInfoInterface { Name: string; Issuer: DN; IssuerName: string; Subject: DN; SubjectName: string; Version: string; SerialNumber: string; Thumbprint: string; ValidFromDate: Date; ValidToDate: Date; HasPrivateKey: boolean; IsValid: boolean; Algorithm: string; ProviderName?: string; // CryptoPro ProviderType?: string; // CryptoPro } export interface CertificateInfoOptionsInterface { checkValid?: boolean; // CryptoPro } export interface CertListItemInterface { id: string; name: string; subject: DN; validFrom: Date; validTo: Date; } export interface SignOptionsInterface { attached: boolean; pin?: string; // CryptoPro pin2?: string; // CryptoPro } export class CryptoPro { init(): Promise; bind(userPin?: string): Promise; unbind(): Promise; generateCSR(dn: DN, ekuOids?: string[], options?: CSROptionsInterface): Promise; writeCertificate(certBase64: string): Promise; certificateInfo(certThumbprint: string, options?: CertificateInfoOptionsInterface): Promise; listCertificates(): Promise; readCertificate(certThumbprint: string): Promise; signData(dataBase64: string, certThumbprint: string, options?: SignOptionsInterface): Promise; signData2(dataBase64: string, certThumbprint: string, certThumbprint2: string, options?: SignOptionsInterface): Promise; addSign(dataBase64: string, signBase64: string, certThumbprint: string, options: SignOptionsInterface): Promise; verifySign(dataBase64: string, signBase64: string, options?: SignOptionsInterface): Promise; encryptData(dataBase64: string, certThumbprint: string): Promise; decryptData(dataBase64: string, certThumbprint: string, pin?: string): Promise; } export class JaCarta2 { init(): Promise; bind(userPin?: string): Promise; unbind(): Promise; clean(): Promise; generateCSR(dn: DN, ekuOids?: string[], options?: CSROptionsInterface): Promise; writeCertificate(certificate: string, keyPairId: number): Promise; certificateInfo(containerId: number, options?: CertificateInfoOptionsInterface): Promise; listCertificates(): Promise; readCertificate(containerId: number): Promise; signData(dataBase64: string, containerId: number, options?: SignOptionsInterface): Promise; verifySign(dataBase64: string, signBase64: string, options?: SignOptionsInterface): Promise; encryptData(dataBase64: string, containerId: number): Promise; decryptData(dataBase64: string, containerId: number): Promise; } export class RuToken { init(): Promise; bind(userPin?: string): Promise; unbind(): Promise; clean(): Promise; generateCSR(dn: DN, extKeyUsage?: string[], options?: CSROptionsInterface): Promise; writeCertificate(certificate: string): Promise; certificateInfo(certId: string, options?: CertificateInfoOptionsInterface): Promise; listCertificates(): Promise; readCertificate(certId: string): Promise; signData(dataBase64: string, certId: string, options?: SignOptionsInterface): Promise; addSign(dataBase64: string, signBase64: string, certId: string, options?: SignOptionsInterface): Promise; verifySign(dataBase64: string, signBase64: string, options?: SignOptionsInterface): Promise; encryptData(dataBase64: string, certId: string): Promise; decryptData(dataBase64: string, certId: string): Promise; }