Overview
Comment: | Moved computation of number of objects per DoD cert into the cackey_read_dod_identities() function |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
8a57ac5688254062de4f12469fb73c48 |
User & Date: | rkeene on 2012-07-27 18:39:51 |
Other Links: | manifest | tags |
Context
2012-07-27
| ||
18:44 | CACKey 0.6.8 check-in: 314ff4ce38 user: rkeene tags: 0.6.8, trunk | |
18:39 | Moved computation of number of objects per DoD cert into the cackey_read_dod_identities() function check-in: 8a57ac5688 user: rkeene tags: trunk | |
18:29 | Initialized variables we pass into PC/SC check-in: af692c90b0 user: rkeene tags: trunk | |
Changes
Modified cackey.c from [c4124c11f6] to [984e852cb7].
︙ | ︙ | |||
3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 | } free(identities); } static unsigned long cackey_read_dod_identities(struct cackey_identity *identities, unsigned long num_dod_certs) { unsigned long cert_idx, id_idx = 0; for (cert_idx = 0; cert_idx < num_dod_certs; cert_idx++) { identities[id_idx].pcsc_identity = NULL; identities[id_idx].attributes = cackey_get_attributes(CKO_CERTIFICATE, &extra_certs[cert_idx], 0xf000 | cert_idx, &identities[id_idx].attributes_count); id_idx++; identities[id_idx].pcsc_identity = NULL; | > > > > | 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 | } free(identities); } static unsigned long cackey_read_dod_identities(struct cackey_identity *identities, unsigned long num_dod_certs) { unsigned long cert_idx, id_idx = 0; if (identities == NULL) { return(num_dod_certs * 3); } for (cert_idx = 0; cert_idx < num_dod_certs; cert_idx++) { identities[id_idx].pcsc_identity = NULL; identities[id_idx].attributes = cackey_get_attributes(CKO_CERTIFICATE, &extra_certs[cert_idx], 0xf000 | cert_idx, &identities[id_idx].attributes_count); id_idx++; identities[id_idx].pcsc_identity = NULL; |
︙ | ︙ | |||
3463 3464 3465 3466 3467 3468 3469 | if (getenv("CACKEY_NO_EXTRA_CERTS") != NULL) { num_dod_certs = 0; } else { num_dod_certs = sizeof(extra_certs) / sizeof(extra_certs[0]); } if (slot->internal) { | | | | 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 | if (getenv("CACKEY_NO_EXTRA_CERTS") != NULL) { num_dod_certs = 0; } else { num_dod_certs = sizeof(extra_certs) / sizeof(extra_certs[0]); } if (slot->internal) { num_ids = cackey_read_dod_identities(NULL, num_dod_certs); if (num_ids != 0) { identities = malloc(num_ids * sizeof(*identities)); cackey_read_dod_identities(identities, num_dod_certs); } else { identities = NULL; } *ids_found = num_ids; return(identities); } pcsc_identities = cackey_read_certs(slot, NULL, &num_certs); if (pcsc_identities != NULL) { /* Convert number of Certs to number of objects */ num_ids = (CKO_PRIVATE_KEY - CKO_CERTIFICATE + 1) * num_certs; if (include_extra_certs) { num_ids += cackey_read_dod_identities(NULL, num_dod_certs); } identities = malloc(num_ids * sizeof(*identities)); /* Add certificates, public keys, and private keys from the smartcard */ id_idx = 0; for (cert_idx = 0; cert_idx < num_certs; cert_idx++) { |
︙ | ︙ |