fixed special functions
This commit is contained in:
@@ -233,7 +233,7 @@ static int add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(
|
|||||||
template = &(*templates)->template2;
|
template = &(*templates)->template2;
|
||||||
else {
|
else {
|
||||||
fprintf(stderr,
|
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;
|
r = SC_ERROR_INVALID_ARGUMENTS;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
@@ -586,27 +586,21 @@ main (int argc, char **argv)
|
|||||||
r = add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(&templates,
|
r = add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(&templates,
|
||||||
NID_id_DateOfBirth, cmdline.older_than_arg,
|
NID_id_DateOfBirth, cmdline.older_than_arg,
|
||||||
strlen(cmdline.older_than_arg));
|
strlen(cmdline.older_than_arg));
|
||||||
if (r < 0) {
|
if (r < 0)
|
||||||
fprintf(stderr, "Error formatting age verification data template.\n");
|
|
||||||
goto err;
|
goto err;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (cmdline.verify_validity_given) {
|
if (cmdline.verify_validity_given) {
|
||||||
r = add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(&templates,
|
r = add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(&templates,
|
||||||
NID_id_DateOfExpiry, NULL, 0);
|
NID_id_DateOfExpiry, NULL, 0);
|
||||||
if (r < 0) {
|
if (r < 0)
|
||||||
fprintf(stderr, "Error formatting validity verification data template.\n");
|
|
||||||
goto err;
|
goto err;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (cmdline.verify_community_given) {
|
if (cmdline.verify_community_given) {
|
||||||
r = add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(&templates,
|
r = add_to_CVC_DISCRETIONARY_DATA_TEMPLATES(&templates,
|
||||||
NID_id_CommunityID, cmdline.verify_community_arg,
|
NID_id_CommunityID, cmdline.verify_community_arg,
|
||||||
strlen(cmdline.verify_community_arg));
|
strlen(cmdline.verify_community_arg));
|
||||||
if (r < 0) {
|
if (r < 0)
|
||||||
fprintf(stderr, "Error formatting community ID verification data template.\n");
|
|
||||||
goto err;
|
goto err;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
unsigned char *p = NULL;
|
unsigned char *p = NULL;
|
||||||
auxiliary_data_len = i2d_CVC_DISCRETIONARY_DATA_TEMPLATES(
|
auxiliary_data_len = i2d_CVC_DISCRETIONARY_DATA_TEMPLATES(
|
||||||
@@ -789,6 +783,7 @@ err:
|
|||||||
free(certs_chat);
|
free(certs_chat);
|
||||||
if (cvc_cert)
|
if (cvc_cert)
|
||||||
CVC_CERT_free(cvc_cert);
|
CVC_CERT_free(cvc_cert);
|
||||||
|
free(privkey);
|
||||||
free(dg);
|
free(dg);
|
||||||
if (templates)
|
if (templates)
|
||||||
CVC_DISCRETIONARY_DATA_TEMPLATES_free(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);
|
BUF_MEM_free(eacsmctx->auxiliary_data);
|
||||||
eacsmctx->auxiliary_data = BUF_MEM_create_init(auxiliary_data,
|
eacsmctx->auxiliary_data = BUF_MEM_create_init(auxiliary_data,
|
||||||
auxiliary_data_len);
|
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,
|
signature = TA_STEP5_sign(eacsmctx->ctx, eacsmctx->eph_pub_key,
|
||||||
eacsmctx->id_icc, eacsmctx->auxiliary_data);
|
eacsmctx->id_icc, eacsmctx->auxiliary_data);
|
||||||
if (!signature) {
|
if (!signature) {
|
||||||
|
|||||||
@@ -60,7 +60,11 @@ do
|
|||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
$NPA_TOOL --pin=111111 --private-key=$DATA/$KA/$TERM_KEY \
|
$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=$?
|
NPA_RESULT=$?
|
||||||
|
|
||||||
kill $VICC_PID 2>/dev/null
|
kill $VICC_PID 2>/dev/null
|
||||||
|
|||||||
Reference in New Issue
Block a user