Skip to content

Commit 2388203

Browse files
metsmaxhanulik
authored andcommitted
Remove legacy EstEID codepaths
Signed-off-by: Raul Metsma <[email protected]>
1 parent 94c23f9 commit 2388203

File tree

1 file changed

+0
-70
lines changed

1 file changed

+0
-70
lines changed

src/libopensc/card-mcrd.c

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -102,24 +102,6 @@ struct mcrd_priv_data {
102102

103103
#define DRVDATA(card) ((struct mcrd_priv_data *) ((card)->drv_data))
104104

105-
// Control Reference Template Tag for Key Agreement (ISO 7816-4:2013 Table 54)
106-
static const struct sc_asn1_entry c_asn1_control[] = {
107-
{ "control", SC_ASN1_STRUCT, SC_ASN1_CONS | SC_ASN1_CTX | 0xA6, 0, NULL, NULL },
108-
{ NULL, 0, 0, 0, NULL, NULL }
109-
};
110-
111-
// Ephemeral public key Template Tag (ISO 7816-8:2016 Table 3)
112-
static const struct sc_asn1_entry c_asn1_ephermal[] = {
113-
{ "ephemeral", SC_ASN1_STRUCT, SC_ASN1_CONS | SC_ASN1_APP | 0x7F49, 0, NULL, NULL },
114-
{ NULL, 0, 0, 0, NULL, NULL }
115-
};
116-
117-
// External Public Key
118-
static const struct sc_asn1_entry c_asn1_public[] = {
119-
{ "publicKey", SC_ASN1_OCTET_STRING, SC_ASN1_CTX | 0x86, 0, NULL, NULL },
120-
{ NULL, 0, 0, 0, NULL, NULL }
121-
};
122-
123105
static int load_special_files(sc_card_t * card);
124106
static int select_part(sc_card_t * card, u8 kind, unsigned short int fid, sc_file_t ** file);
125107

@@ -950,7 +932,6 @@ static int mcrd_set_security_env(sc_card_t * card,
950932

951933
switch (env->operation) {
952934
case SC_SEC_OPERATION_DECIPHER:
953-
case SC_SEC_OPERATION_DERIVE:
954935
sc_log(card->ctx, "Using keyref %d to decipher\n", env->key_ref[0]);
955936
mcrd_delete_ref_to_authkey(card);
956937
mcrd_delete_ref_to_signkey(card);
@@ -966,7 +947,6 @@ static int mcrd_set_security_env(sc_card_t * card,
966947
sbuf[3] = env->key_ref[0];
967948
switch (env->operation) {
968949
case SC_SEC_OPERATION_DECIPHER:
969-
case SC_SEC_OPERATION_DERIVE:
970950
sc_format_apdu_ex(&apdu, 0x00, 0x22, 0x41, 0xB8, sbuf, 5, NULL, 0);
971951
break;
972952
case SC_SEC_OPERATION_SIGN:
@@ -1043,55 +1023,6 @@ static int mcrd_compute_signature(sc_card_t * card,
10431023
SC_FUNC_RETURN(card->ctx, SC_LOG_DEBUG_VERBOSE, (int)apdu.resplen);
10441024
}
10451025

1046-
static int mcrd_decipher(struct sc_card *card,
1047-
const u8 * crgram, size_t crgram_len,
1048-
u8 * out, size_t outlen)
1049-
{
1050-
sc_security_env_t *env = NULL;
1051-
int r = 0;
1052-
size_t sbuf_len = 0;
1053-
sc_apdu_t apdu;
1054-
u8 *sbuf = NULL;
1055-
struct sc_asn1_entry asn1_control[2], asn1_ephermal[2], asn1_public[2];
1056-
1057-
if (card == NULL || crgram == NULL || out == NULL)
1058-
return SC_ERROR_INVALID_ARGUMENTS;
1059-
env = &DRVDATA(card)->sec_env;
1060-
1061-
LOG_FUNC_CALLED(card->ctx);
1062-
if (env->operation != SC_SEC_OPERATION_DERIVE)
1063-
SC_FUNC_RETURN(card->ctx, SC_LOG_DEBUG_VERBOSE, iso_ops->decipher(card, crgram, crgram_len, out, outlen));
1064-
if (crgram_len > 255)
1065-
SC_FUNC_RETURN(card->ctx, SC_LOG_DEBUG_VERBOSE, SC_ERROR_INVALID_ARGUMENTS);
1066-
1067-
sc_log(card->ctx,
1068-
"Will derive (%d) for %"SC_FORMAT_LEN_SIZE_T"u (0x%02"SC_FORMAT_LEN_SIZE_T"x) bytes using key %d algorithm %lu flags %lu\n",
1069-
env->operation, crgram_len, crgram_len, env->key_ref[0],
1070-
env->algorithm, env->algorithm_flags);
1071-
1072-
// Encode TLV
1073-
sc_copy_asn1_entry(c_asn1_control, asn1_control);
1074-
sc_copy_asn1_entry(c_asn1_ephermal, asn1_ephermal);
1075-
sc_copy_asn1_entry(c_asn1_public, asn1_public);
1076-
sc_format_asn1_entry(asn1_public + 0, (void*)crgram, &crgram_len, 1);
1077-
sc_format_asn1_entry(asn1_ephermal + 0, &asn1_public, NULL, 1);
1078-
sc_format_asn1_entry(asn1_control + 0, &asn1_ephermal, NULL, 1);
1079-
r = sc_asn1_encode(card->ctx, asn1_control, &sbuf, &sbuf_len);
1080-
LOG_TEST_RET(card->ctx, r, "Error encoding TLV.");
1081-
1082-
// Create APDU
1083-
sc_format_apdu_ex(&apdu, 0x00, 0x2A, 0x80, 0x86, sbuf, sbuf_len, out, MIN(0x80U, outlen));
1084-
r = sc_transmit_apdu(card, &apdu);
1085-
sc_mem_clear(sbuf, sbuf_len);
1086-
free(sbuf);
1087-
LOG_TEST_RET(card->ctx, r, "APDU transmit failed");
1088-
1089-
r = sc_check_sw(card, apdu.sw1, apdu.sw2);
1090-
LOG_TEST_RET(card->ctx, r, "Card returned error");
1091-
1092-
SC_FUNC_RETURN(card->ctx, SC_LOG_DEBUG_VERBOSE, (int)apdu.resplen);
1093-
}
1094-
10951026
/* added by -mp, to give pin information in the card driver (pkcs15emu->driver needed) */
10961027
static int mcrd_pin_cmd(sc_card_t * card, struct sc_pin_cmd_data *data,
10971028
int *tries_left)
@@ -1127,7 +1058,6 @@ static struct sc_card_driver *sc_get_driver(void)
11271058
mcrd_ops.select_file = mcrd_select_file;
11281059
mcrd_ops.set_security_env = mcrd_set_security_env;
11291060
mcrd_ops.compute_signature = mcrd_compute_signature;
1130-
mcrd_ops.decipher = mcrd_decipher;
11311061
mcrd_ops.pin_cmd = mcrd_pin_cmd;
11321062
mcrd_ops.logout = mcrd_logout;
11331063

0 commit comments

Comments
 (0)