fix "use guid as label"

Allow to use as pkcs15 label the windows container name (max: 39 characters)
This commit is contained in:
vletoux 2015-10-03 18:59:52 +02:00
parent b667645797
commit c3f2cb142f
1 changed files with 9 additions and 4 deletions

View File

@ -1459,10 +1459,14 @@ md_set_cmapfile(PCARD_DATA pCardData, struct md_file *file)
memset(cont->guid, 0, sizeof(cont->guid));
guid_len = sizeof(cont->guid);
rv = sc_pkcs15_get_object_guid(vs->p15card, key_obj, 0, cont->guid, &guid_len);
if (rv) {
logprintf(pCardData, 2, "sc_pkcs15_get_object_guid() error %d\n", rv);
return SCARD_F_INTERNAL_ERROR;
if (md_is_guid_as_label(pCardData)) {
strncpy(cont->guid, key_obj->label, MAX_CONTAINER_NAME_LEN);
} else {
rv = sc_pkcs15_get_object_guid(vs->p15card, key_obj, 0, cont->guid, &guid_len);
if (rv) {
logprintf(pCardData, 2, "sc_pkcs15_get_object_guid() error %d\n", rv);
return SCARD_F_INTERNAL_ERROR;
}
}
cont->flags = CONTAINER_MAP_VALID_CONTAINER;
@ -1974,6 +1978,7 @@ md_pkcs15_generate_key(PCARD_DATA pCardData, DWORD idx, DWORD key_type, DWORD ke
if (md_is_guid_as_label(pCardData)) {
keygen_args.prkey_args.label = cont->guid;
keygen_args.pubkey_label = cont->guid;
logprintf(pCardData, 3, "MdGenerateKey(): use label '%s'\n", keygen_args.prkey_args.label);
}