fixed special functions
This commit is contained in:
@@ -233,7 +233,7 @@ static int add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(
|
||||
template = &(*templates)->template2;
|
||||
else {
|
||||
fprintf(stderr,
|
||||
"Not enough space in auxiliary data for that many data templates");
|
||||
"Choose at most two nPA operations.\n");
|
||||
r = SC_ERROR_INVALID_ARGUMENTS;
|
||||
goto err;
|
||||
}
|
||||
@@ -586,27 +586,21 @@ main (int argc, char **argv)
|
||||
r = add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(&templates,
|
||||
NID_id_DateOfBirth, cmdline.older_than_arg,
|
||||
strlen(cmdline.older_than_arg));
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "Error formatting age verification data template.\n");
|
||||
if (r < 0)
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
if (cmdline.verify_validity_given) {
|
||||
r = add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(&templates,
|
||||
NID_id_DateOfExpiry, NULL, 0);
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "Error formatting validity verification data template.\n");
|
||||
if (r < 0)
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
if (cmdline.verify_community_given) {
|
||||
r = add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(&templates,
|
||||
NID_id_CommunityID, cmdline.verify_community_arg,
|
||||
strlen(cmdline.verify_community_arg));
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "Error formatting community ID verification data template.\n");
|
||||
if (r < 0)
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
unsigned char *p = NULL;
|
||||
auxiliary_data_len = i2d_CVC_DISCRETIONARY_DATA_TEMPLATES(
|
||||
@@ -789,6 +783,7 @@ err:
|
||||
free(certs_chat);
|
||||
if (cvc_cert)
|
||||
CVC_CERT_free(cvc_cert);
|
||||
free(privkey);
|
||||
free(dg);
|
||||
if (templates)
|
||||
CVC_DISCRETIONARY_DATA_TEMPLATES_free(templates);
|
||||
|
||||
@@ -1741,6 +1741,10 @@ int perform_terminal_authentication(sc_card_t *card,
|
||||
BUF_MEM_free(eacsmctx->auxiliary_data);
|
||||
eacsmctx->auxiliary_data = BUF_MEM_create_init(auxiliary_data,
|
||||
auxiliary_data_len);
|
||||
/* FIXME this is a workaround for fixing 0x30 tag of
|
||||
* CVC_DISCRETIONARY_DATA_TEMPLATES. */
|
||||
if (eacsmctx->auxiliary_data->data && eacsmctx->auxiliary_data->length)
|
||||
eacsmctx->auxiliary_data->data[0] = 0x67;
|
||||
signature = TA_STEP5_sign(eacsmctx->ctx, eacsmctx->eph_pub_key,
|
||||
eacsmctx->id_icc, eacsmctx->auxiliary_data);
|
||||
if (!signature) {
|
||||
|
||||
@@ -60,7 +60,11 @@ do
|
||||
sleep 1
|
||||
|
||||
$NPA_TOOL --pin=111111 --private-key=$DATA/$KA/$TERM_KEY \
|
||||
--cv-certificate=$DATA/$KA/$DVCA,$DATA/$KA/$TERMINAL --disable-checks
|
||||
--cv-certificate=$DATA/$KA/$DVCA,$DATA/$KA/$TERMINAL \
|
||||
--older-than=19991231 --verify-validity \
|
||||
--read-dg1 --read-dg2 --read-dg3 --read-dg4 --read-dg5 --read-dg6 --read-dg7 --read-dg8 --read-dg9 --read-dg10 --read-dg11 --read-dg12 --read-dg13 --read-dg14 --read-dg15 --read-dg16 --read-dg17 --read-dg18 --read-dg19 --read-dg20 --read-dg21 \
|
||||
--write-dg17=0107 --write-dg18=0108 --write-dg19=0109 --write-dg20=0200 --write-dg21=0201 \
|
||||
--disable-checks
|
||||
NPA_RESULT=$?
|
||||
|
||||
kill $VICC_PID 2>/dev/null
|
||||
|
||||
Reference in New Issue
Block a user