#include "includes.h"
#if defined(SMARTCARD) && defined(USE_OPENSC)
+#include <sys/types.h>
+
#include <openssl/evp.h>
#include <openssl/x509.h>
+#include <stdarg.h>
+
#include <opensc/opensc.h>
#include <opensc/pkcs15.h>
#include "key.h"
#include "log.h"
#include "xmalloc.h"
-#include "readpass.h"
+#include "misc.h"
#include "scard.h"
#if OPENSSL_VERSION_NUMBER < 0x00907000L && defined(CRYPTO_LOCK_ENGINE)
}
key_count = r;
}
- keys = xmalloc(sizeof(Key *) * (key_count*2+1));
+ if (key_count > 1024)
+ fatal("Too many keys (%u), expected <= 1024", key_count);
+ keys = xcalloc(key_count * 2 + 1, sizeof(Key *));
for (i = 0; i < key_count; i++) {
sc_pkcs15_object_t *tmp_obj = NULL;
cert_id = ((sc_pkcs15_cert_info_t *)(certs[i]->data))->id;