allow compilation with --disable-shared
This commit is contained in:
parent
54cb1099a0
commit
c70888f9ab
|
@ -31,6 +31,7 @@
|
||||||
#include "sm/sm-eac.h"
|
#include "sm/sm-eac.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
static int fread_to_eof(const char *file, unsigned char **buf, size_t *buflen);
|
||||||
#include "../tools/fread_to_eof.c"
|
#include "../tools/fread_to_eof.c"
|
||||||
|
|
||||||
struct npa_drv_data {
|
struct npa_drv_data {
|
||||||
|
|
|
@ -27,13 +27,13 @@ extern "C" {
|
||||||
|
|
||||||
#include "sm/sm-eac.h"
|
#include "sm/sm-eac.h"
|
||||||
|
|
||||||
const unsigned char esign_chat[] = {
|
static const unsigned char esign_chat[] = {
|
||||||
0x7F, 0x4C, 0x0E,
|
0x7F, 0x4C, 0x0E,
|
||||||
0x06, 0x09, 0x04, 0x00, 0x7F, 0x00, 0x07, 0x03, 0x01, 0x02, 0x03,
|
0x06, 0x09, 0x04, 0x00, 0x7F, 0x00, 0x07, 0x03, 0x01, 0x02, 0x03,
|
||||||
0x53, 0x01, 0x03,
|
0x53, 0x01, 0x03,
|
||||||
};
|
};
|
||||||
|
|
||||||
const unsigned char df_esign_aid[] = { 0xa0, 0x00, 0x00, 0x01, 0x67, 0x45, 0x53, 0x49, 0x47, 0x4e};
|
static const unsigned char df_esign_aid[] = { 0xa0, 0x00, 0x00, 0x01, 0x67, 0x45, 0x53, 0x49, 0x47, 0x4e};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sends a reset retry counter APDU
|
* @brief Sends a reset retry counter APDU
|
||||||
|
|
|
@ -88,14 +88,15 @@ static int getline(char **lineptr, size_t *n, FILE *stream)
|
||||||
#define ASN1_APP_IMP_OPT(stname, field, type, tag) ASN1_EX_TYPE(ASN1_TFLG_IMPTAG|ASN1_TFLG_APPLICATION|ASN1_TFLG_OPTIONAL, tag, stname, field, type)
|
#define ASN1_APP_IMP_OPT(stname, field, type, tag) ASN1_EX_TYPE(ASN1_TFLG_IMPTAG|ASN1_TFLG_APPLICATION|ASN1_TFLG_OPTIONAL, tag, stname, field, type)
|
||||||
#define ASN1_APP_IMP(stname, field, type, tag) ASN1_EX_TYPE(ASN1_TFLG_IMPTAG|ASN1_TFLG_APPLICATION, tag, stname, field, type)
|
#define ASN1_APP_IMP(stname, field, type, tag) ASN1_EX_TYPE(ASN1_TFLG_IMPTAG|ASN1_TFLG_APPLICATION, tag, stname, field, type)
|
||||||
|
|
||||||
|
typedef ASN1_AUXILIARY_DATA ASN1_AUXILIARY_DATA_NPA_TOOL;
|
||||||
/* 0x67
|
/* 0x67
|
||||||
* Auxiliary authenticated data */
|
* Auxiliary authenticated data */
|
||||||
ASN1_ITEM_TEMPLATE(ASN1_AUXILIARY_DATA) =
|
ASN1_ITEM_TEMPLATE(ASN1_AUXILIARY_DATA_NPA_TOOL) =
|
||||||
ASN1_EX_TEMPLATE_TYPE(
|
ASN1_EX_TEMPLATE_TYPE(
|
||||||
ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_IMPTAG|ASN1_TFLG_APPLICATION,
|
ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_IMPTAG|ASN1_TFLG_APPLICATION,
|
||||||
7, AuxiliaryAuthenticatedData, CVC_DISCRETIONARY_DATA_TEMPLATE)
|
7, AuxiliaryAuthenticatedData, CVC_DISCRETIONARY_DATA_TEMPLATE)
|
||||||
ASN1_ITEM_TEMPLATE_END(ASN1_AUXILIARY_DATA)
|
ASN1_ITEM_TEMPLATE_END(ASN1_AUXILIARY_DATA_NPA_TOOL)
|
||||||
IMPLEMENT_ASN1_FUNCTIONS(ASN1_AUXILIARY_DATA)
|
IMPLEMENT_ASN1_FUNCTIONS(ASN1_AUXILIARY_DATA_NPA_TOOL)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Print binary data to a file stream
|
* @brief Print binary data to a file stream
|
||||||
|
@ -285,8 +286,8 @@ int npa_translate_apdus(sc_card_t *card, FILE *input)
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int add_to_ASN1_AUXILIARY_DATA(
|
static int add_to_ASN1_AUXILIARY_DATA_NPA_TOOL(
|
||||||
ASN1_AUXILIARY_DATA **auxiliary_data,
|
ASN1_AUXILIARY_DATA_NPA_TOOL **auxiliary_data,
|
||||||
int nid, const unsigned char *data, size_t data_len)
|
int nid, const unsigned char *data, size_t data_len)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
@ -298,7 +299,7 @@ static int add_to_ASN1_AUXILIARY_DATA(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!*auxiliary_data) {
|
if (!*auxiliary_data) {
|
||||||
*auxiliary_data = ASN1_AUXILIARY_DATA_new();
|
*auxiliary_data = ASN1_AUXILIARY_DATA_NPA_TOOL_new();
|
||||||
if (!*auxiliary_data) {
|
if (!*auxiliary_data) {
|
||||||
r = SC_ERROR_INTERNAL;
|
r = SC_ERROR_INTERNAL;
|
||||||
goto err;
|
goto err;
|
||||||
|
@ -372,7 +373,7 @@ main (int argc, char **argv)
|
||||||
unsigned char *certs_chat = NULL;
|
unsigned char *certs_chat = NULL;
|
||||||
unsigned char *dg = NULL;
|
unsigned char *dg = NULL;
|
||||||
size_t dg_len = 0;
|
size_t dg_len = 0;
|
||||||
ASN1_AUXILIARY_DATA *templates = NULL;
|
ASN1_AUXILIARY_DATA_NPA_TOOL *templates = NULL;
|
||||||
unsigned char *ef_cardsecurity = NULL;
|
unsigned char *ef_cardsecurity = NULL;
|
||||||
size_t ef_cardsecurity_len = 0;
|
size_t ef_cardsecurity_len = 0;
|
||||||
|
|
||||||
|
@ -671,7 +672,7 @@ main (int argc, char **argv)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (cmdline.older_than_given) {
|
if (cmdline.older_than_given) {
|
||||||
r = add_to_ASN1_AUXILIARY_DATA(&templates,
|
r = add_to_ASN1_AUXILIARY_DATA_NPA_TOOL(&templates,
|
||||||
NID_id_DateOfBirth,
|
NID_id_DateOfBirth,
|
||||||
(unsigned char *) cmdline.older_than_arg,
|
(unsigned char *) cmdline.older_than_arg,
|
||||||
strlen(cmdline.older_than_arg));
|
strlen(cmdline.older_than_arg));
|
||||||
|
@ -679,7 +680,7 @@ main (int argc, char **argv)
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
if (cmdline.verify_validity_given) {
|
if (cmdline.verify_validity_given) {
|
||||||
r = add_to_ASN1_AUXILIARY_DATA(&templates,
|
r = add_to_ASN1_AUXILIARY_DATA_NPA_TOOL(&templates,
|
||||||
NID_id_DateOfExpiry,
|
NID_id_DateOfExpiry,
|
||||||
(unsigned char *) cmdline.verify_validity_arg,
|
(unsigned char *) cmdline.verify_validity_arg,
|
||||||
strlen(cmdline.verify_validity_arg));
|
strlen(cmdline.verify_validity_arg));
|
||||||
|
@ -693,7 +694,7 @@ main (int argc, char **argv)
|
||||||
fprintf(stderr, "Could not parse community ID.\n");
|
fprintf(stderr, "Could not parse community ID.\n");
|
||||||
exit(2);
|
exit(2);
|
||||||
}
|
}
|
||||||
r = add_to_ASN1_AUXILIARY_DATA(&templates,
|
r = add_to_ASN1_AUXILIARY_DATA_NPA_TOOL(&templates,
|
||||||
NID_id_CommunityID,
|
NID_id_CommunityID,
|
||||||
community_id, community_id_len);
|
community_id, community_id_len);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
@ -701,7 +702,7 @@ main (int argc, char **argv)
|
||||||
}
|
}
|
||||||
if (templates) {
|
if (templates) {
|
||||||
unsigned char *p = NULL;
|
unsigned char *p = NULL;
|
||||||
auxiliary_data_len = i2d_ASN1_AUXILIARY_DATA(
|
auxiliary_data_len = i2d_ASN1_AUXILIARY_DATA_NPA_TOOL(
|
||||||
templates, &p);
|
templates, &p);
|
||||||
if (0 > (int) auxiliary_data_len
|
if (0 > (int) auxiliary_data_len
|
||||||
|| auxiliary_data_len > sizeof auxiliary_data) {
|
|| auxiliary_data_len > sizeof auxiliary_data) {
|
||||||
|
@ -892,7 +893,7 @@ err:
|
||||||
free(privkey);
|
free(privkey);
|
||||||
free(dg);
|
free(dg);
|
||||||
if (templates)
|
if (templates)
|
||||||
ASN1_AUXILIARY_DATA_free(templates);
|
ASN1_AUXILIARY_DATA_NPA_TOOL_free(templates);
|
||||||
|
|
||||||
sc_sm_stop(card);
|
sc_sm_stop(card);
|
||||||
sc_reset(card, 1);
|
sc_reset(card, 1);
|
||||||
|
|
Loading…
Reference in New Issue