crypto-pro-js/src/api/getCertificate.ts
Artem Vasilev 51ed50491a
Добавил новые методы для получения сертификатов (#28)
* Добавил новые методы для получения сертификатов

* Методы загрузки объединённого списка сертификатов из личного хранилища и из закрытого ключа

* Поиск сертификата в объединённом списке сертификатов из личного хранилища и из закрытого ключа

* Получение сертификата в формате Cades из личного хранилища пользователя и хранилища закрытого ключа

* в примере получает список сертификатов из всех доступных источников

* build с последними изменениями

* linter fixes
2022-06-23 13:13:33 +03:00

36 lines
1.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
},
);