import type { CAPICOM_CERT_INFO_TYPE, CAPICOM_ENCODING_TYPE } from '../../constants'; import type { WithOptionalPromise } from '../WithOptionalPromise'; /** * Описывает сертификат открытого ключа. * @see https://docs.microsoft.com/en-us/windows/win32/seccrypto/certificate * @see https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_class/cpcertificate * @see https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_interface/icpcertificate */ export interface ICertificate { /** * Издатель сертификата. */ readonly IssuerName: WithOptionalPromise; /** * Имя субъекта. */ readonly SubjectName: WithOptionalPromise; /** * Версия сертификата. */ readonly Version: WithOptionalPromise; /** * Серийный номер. */ readonly SerialNumber: WithOptionalPromise; /** * Отпечаток. */ readonly Thumbprint: WithOptionalPromise; /** * Дата, с которой сертификат действителен. */ readonly ValidFromDate: WithOptionalPromise; /** * Дата, до которой сертификат действителен. */ readonly ValidToDate: WithOptionalPromise; /** * Закрытый ключ. */ readonly PrivateKey: WithOptionalPromise; /** * Возвращает информацию из сертификата. * @param InfoType Enumeration type defines what information is to be queried from a certificate. * @returns {WithOptionalPromise} Запрошенная информация в виде строки. */ GetInfo(InfoType: CAPICOM_CERT_INFO_TYPE): WithOptionalPromise; /** * Экспортирует открытую часть сертификата в виде Base64 строки. * @remarks возвращает без BEGIN и END CERTIFICATE. А перенос строки каждые 64 символа и зависит от ОС: \r\n или \n */ Export(EncodingType: CAPICOM_ENCODING_TYPE): WithOptionalPromise; /** * Импотирует открытую часть сертификата в виде Base64 строки. */ Import(base64Certificate: string): WithOptionalPromise; /** * Имеется ли закрытый ключ для сертификата. */ HasPrivateKey(): WithOptionalPromise; /** * Является ли сертификат валидным. */ IsValid(): WithOptionalPromise; /** * Производит поиск закрытого ключа соответствующего сертификату и устанавливает ссылку на него. */ FindPrivateKey(): WithOptionalPromise; }