mirror of
https://github.com/crypto-pro-web/crypto-pro-js.git
synced 2025-04-21 04:53:08 +03:00

* Добавил новые методы для получения сертификатов * Методы загрузки объединённого списка сертификатов из личного хранилища и из закрытого ключа * Поиск сертификата в объединённом списке сертификатов из личного хранилища и из закрытого ключа * Получение сертификата в формате Cades из личного хранилища пользователя и хранилища закрытого ключа * в примере получает список сертификатов из всех доступных источников * build с последними изменениями * linter fixes
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { Certificate } from './certificate';
|
||
import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';
|
||
import { getCertificates } from './getCertificates';
|
||
import { getAllCertificates } from './getAllCertificates';
|
||
|
||
/**
|
||
* Возвращает сертификат по отпечатку
|
||
*
|
||
* @param thumbprint - отпечаток сертификата
|
||
* @param validOnly - проверять сертификаты по дате и наличию приватного ключа
|
||
* @returns сертификат
|
||
*/
|
||
export const getCertificate = _afterPluginsLoaded(
|
||
async (thumbprint: string, validOnly: boolean = true): Promise<Certificate> => {
|
||
if (!thumbprint) {
|
||
throw new Error('Отпечаток не указан');
|
||
}
|
||
|
||
let availableCertificates: Certificate[];
|
||
|
||
if (validOnly) {
|
||
availableCertificates = await getCertificates();
|
||
} else {
|
||
availableCertificates = await getAllCertificates();
|
||
}
|
||
|
||
const foundCertificate: Certificate = availableCertificates.find((cert) => cert.thumbprint === thumbprint);
|
||
|
||
if (!foundCertificate) {
|
||
throw new Error(`Сертификат с отпечатком: "${thumbprint}" не найден`);
|
||
}
|
||
|
||
return foundCertificate;
|
||
},
|
||
);
|