pkcs15-esteid: remove openssl dependency (#863)
Uses e4f5f84512
API instead
This commit is contained in:
parent
73ed21aeb7
commit
14a5e628be
|
@ -28,9 +28,6 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#ifdef ENABLE_OPENSSL
|
|
||||||
#include <openssl/x509v3.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "common/compat_strlcpy.h"
|
#include "common/compat_strlcpy.h"
|
||||||
#include "common/compat_strlcat.h"
|
#include "common/compat_strlcat.h"
|
||||||
|
@ -110,53 +107,22 @@ sc_pkcs15emu_esteid_init (sc_pkcs15_card_t * p15card)
|
||||||
r = sc_pkcs15emu_add_x509_cert(p15card, &cert_obj, &cert_info);
|
r = sc_pkcs15emu_add_x509_cert(p15card, &cert_obj, &cert_info);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return SC_ERROR_INTERNAL;
|
return SC_ERROR_INTERNAL;
|
||||||
#ifdef ENABLE_OPENSSL
|
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
BIO *mem = NULL;
|
|
||||||
X509 *x509 = NULL;
|
|
||||||
sc_pkcs15_cert_t *cert;
|
sc_pkcs15_cert_t *cert;
|
||||||
char cardholder_name[64];
|
|
||||||
unsigned char *tmp = NULL;
|
|
||||||
r = sc_pkcs15_read_certificate(p15card, &cert_info, &cert);
|
r = sc_pkcs15_read_certificate(p15card, &cert_info, &cert);
|
||||||
if (r == SC_SUCCESS) {
|
if (r == SC_SUCCESS) {
|
||||||
mem = BIO_new_mem_buf(cert->data.value, cert->data.len);
|
static const struct sc_object_id cn_oid = {{ 2, 5, 4, 3, -1 }};
|
||||||
if (!mem) {
|
u8 *cn_name = NULL;
|
||||||
|
size_t cn_len = 0;
|
||||||
|
sc_pkcs15_get_name_from_dn(card->ctx, cert->subject,
|
||||||
|
cert->subject_len, &cn_oid, &cn_name, &cn_len);
|
||||||
|
if (cn_len > 0) {
|
||||||
|
set_string(&p15card->tokeninfo->label, (const char*)cn_name);
|
||||||
|
}
|
||||||
|
free(cn_name);
|
||||||
sc_pkcs15_free_certificate(cert);
|
sc_pkcs15_free_certificate(cert);
|
||||||
return SC_ERROR_INTERNAL;
|
|
||||||
}
|
|
||||||
x509 = d2i_X509_bio(mem, NULL);
|
|
||||||
BIO_free(mem);
|
|
||||||
sc_pkcs15_free_certificate(cert);
|
|
||||||
if (!x509)
|
|
||||||
return SC_ERROR_INTERNAL;
|
|
||||||
r = X509_NAME_get_index_by_NID(X509_get_subject_name(x509), NID_commonName, -1);
|
|
||||||
if (r >= 0) {
|
|
||||||
X509_NAME_ENTRY *ne;
|
|
||||||
ASN1_STRING *a_str;
|
|
||||||
ne = X509_NAME_get_entry(X509_get_subject_name(x509), r);
|
|
||||||
if (!ne) {
|
|
||||||
X509_free(x509);
|
|
||||||
return SC_ERROR_INTERNAL;
|
|
||||||
}
|
|
||||||
a_str = X509_NAME_ENTRY_get_data(ne);
|
|
||||||
if (!a_str) {
|
|
||||||
X509_free(x509);
|
|
||||||
return SC_ERROR_INTERNAL;
|
|
||||||
}
|
|
||||||
r = ASN1_STRING_to_UTF8(&tmp, a_str);
|
|
||||||
if (r > 0) {
|
|
||||||
if ((unsigned)r > sizeof(cardholder_name) - 1)
|
|
||||||
r = sizeof(cardholder_name) -1;
|
|
||||||
memcpy(cardholder_name, tmp, r);
|
|
||||||
cardholder_name[r] = '\0';
|
|
||||||
set_string(&p15card->tokeninfo->label, cardholder_name);
|
|
||||||
OPENSSL_free(tmp);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
X509_free(x509);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* the file with key pin info (tries left) */
|
/* the file with key pin info (tries left) */
|
||||||
|
|
Loading…
Reference in New Issue