fix "use guid as label"
Allow to use as pkcs15 label the windows container name (max: 39 characters)
This commit is contained in:
parent
b667645797
commit
c3f2cb142f
|
@ -1459,10 +1459,14 @@ md_set_cmapfile(PCARD_DATA pCardData, struct md_file *file)
|
||||||
memset(cont->guid, 0, sizeof(cont->guid));
|
memset(cont->guid, 0, sizeof(cont->guid));
|
||||||
guid_len = sizeof(cont->guid);
|
guid_len = sizeof(cont->guid);
|
||||||
|
|
||||||
rv = sc_pkcs15_get_object_guid(vs->p15card, key_obj, 0, cont->guid, &guid_len);
|
if (md_is_guid_as_label(pCardData)) {
|
||||||
if (rv) {
|
strncpy(cont->guid, key_obj->label, MAX_CONTAINER_NAME_LEN);
|
||||||
logprintf(pCardData, 2, "sc_pkcs15_get_object_guid() error %d\n", rv);
|
} else {
|
||||||
return SCARD_F_INTERNAL_ERROR;
|
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;
|
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)) {
|
if (md_is_guid_as_label(pCardData)) {
|
||||||
keygen_args.prkey_args.label = cont->guid;
|
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);
|
logprintf(pCardData, 3, "MdGenerateKey(): use label '%s'\n", keygen_args.prkey_args.label);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue