23 #include "../../log.h"
27 #include <openssl/err.h>
29 using namespace digidoc;
40 INFO(
"Loaded %d certificates into certificate store.", sk_X509_num(
d->stack));
51 HCERTSTORE s = CertOpenStore(CERT_STORE_PROV_SYSTEM_A,
52 X509_ASN_ENCODING, 0, CERT_SYSTEM_STORE_CURRENT_USER, provider.c_str() );
54 THROW_IOEXCEPTION(
"Failed to ope CertStore with provider %s, can not load cert store.", provider.c_str());
56 PCCERT_CONTEXT pc = 0;
57 while((pc = CertEnumCertificatesInStore(s, pc)))
59 const unsigned char *pBytes = pc->pbCertEncoded;
60 X509 *c = d2i_X509(0, &pBytes, pc->cbCertEncoded);
62 WARN(
"Cant add cert %ld to X509_STORE, %s", ASN1_INTEGER_get(X509_get_serialNumber(c)), ERR_reason_error_string(ERR_get_error()));
63 sk_X509_push(d->stack, c);
64 if(!X509_STORE_add_cert(d->store, c))
65 WARN(
"Cant add cert %ld to X509_STORE, %s", ASN1_INTEGER_get(X509_get_serialNumber(c)), ERR_reason_error_string(ERR_get_error()));