Check-in [e491e4b5f9]
Overview
Comment:Removed extraneous parameter of cackey_read_dod_identities()
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: e491e4b5f94497a74a222aaef47fee472b1eaa67
User & Date: rkeene on 2012-07-27 18:29:12
Other Links: manifest | tags
Context
2012-07-27
18:29
Initialized variables we pass into PC/SC check-in: af692c90b0 user: rkeene tags: trunk
18:29
Removed extraneous parameter of cackey_read_dod_identities() check-in: e491e4b5f9 user: rkeene tags: trunk
18:27
Fixed bug where DoD certs were overwriting random parts of memory causing strange bugs, fixes [b9306c2b35] check-in: 3efa328414 user: rkeene tags: trunk
Changes

Modified cackey.c from [2007da4548] to [c41337ffcb].

3409
3410
3411
3412
3413
3414
3415
3416
3417


3418
3419
3420
3421
3422
3423
3424
3409
3410
3411
3412
3413
3414
3415


3416
3417
3418
3419
3420
3421
3422
3423
3424







-
-
+
+







			cackey_free_certs(identities[id_idx].pcsc_identity, 1, 1);
		}
	}

	free(identities);
}

static unsigned long cackey_read_dod_identities(struct cackey_identity *identities, unsigned long id_idx, unsigned long num_dod_certs) {
	unsigned long cert_idx;
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;
3468
3469
3470
3471
3472
3473
3474
3475

3476
3477
3478
3479
3480
3481
3482
3468
3469
3470
3471
3472
3473
3474

3475
3476
3477
3478
3479
3480
3481
3482







-
+








	if (slot->internal) {
		num_ids = num_dod_certs * 3;

		if (num_ids != 0) {
			identities = malloc(num_ids * sizeof(*identities));

			cackey_read_dod_identities(identities, 0, num_dod_certs);
			cackey_read_dod_identities(identities, num_dod_certs);
		} else {
			identities = NULL;
		}

		*ids_found = num_ids;

		return(identities);
3508
3509
3510
3511
3512
3513
3514
3515

3516
3517
3518
3519
3520
3521
3522
3508
3509
3510
3511
3512
3513
3514

3515
3516
3517
3518
3519
3520
3521
3522







-
+







				id_idx++;
			}
		}

		if (include_extra_certs) {
			CACKEY_DEBUG_PRINTF("Including DoD Certificates on hardware slot");

			cackey_read_dod_identities(identities, id_idx, num_dod_certs);
			cackey_read_dod_identities(identities + id_idx, num_dod_certs);
		}

		cackey_free_certs(pcsc_identities, num_certs, 1);

		*ids_found = num_ids;

		return(identities);