From 54f879426736b35cc3591cde021a140f904850ce Mon Sep 17 00:00:00 2001 From: nils Date: Thu, 3 Feb 2005 22:44:19 +0000 Subject: [PATCH] indent fixes and cleanup by Martin Paljak git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@2126 c6295689-39f2-0310-b995-f0e70906c6a9 --- src/libopensc/cardctl.h | 10 +- src/libopensc/esteid.h | 45 ++--- src/libopensc/pinpad-ccid.c | 6 +- src/libopensc/pkcs15-esteid.c | 303 ++++++++++++++++------------------ src/pkcs11/framework-pkcs15.c | 16 +- 5 files changed, 176 insertions(+), 204 deletions(-) diff --git a/src/libopensc/cardctl.h b/src/libopensc/cardctl.h index d969958c..6424193e 100644 --- a/src/libopensc/cardctl.h +++ b/src/libopensc/cardctl.h @@ -57,11 +57,11 @@ enum { SC_CARDCTL_MIOCOS_BASE = _CTL_PREFIX('M', 'I', 'O'), SC_CARDCTL_MIOCOS_CREATE_AC, - /* - * TCOS specific calls - */ - SC_CARDCTL_TCOS_BASE = _CTL_PREFIX('T','C','S'), - SC_CARDCTL_TCOS_SETPERM, + /* + * TCOS specific calls + */ + SC_CARDCTL_TCOS_BASE = _CTL_PREFIX('T','C','S'), + SC_CARDCTL_TCOS_SETPERM, /* * eToken specific calls diff --git a/src/libopensc/esteid.h b/src/libopensc/esteid.h index b503a7c3..6d8c2c6d 100644 --- a/src/libopensc/esteid.h +++ b/src/libopensc/esteid.h @@ -1,31 +1,32 @@ #ifndef _OPENSC_ESTEID_H #define _OPENSC_ESTEID_H -#define SC_ESTEID_AUTH 1 -#define SC_ESTEID_SIGN 2 - - /* personal data file record numbers */ - -#define SC_ESTEID_PD_SURNAME 1 -#define SC_ESTEID_PD_GIVEN_NAMES1 2 -#define SC_ESTEID_PD_GIVEN_NAMES2 3 -#define SC_ESTEID_PD_SEX 4 -#define SC_ESTEID_PD_CITIZENSHIP 5 -#define SC_ESTEID_PD_DATE_OF_BIRTH 6 -#define SC_ESTEID_PD_PERSONAL_ID 7 -#define SC_ESTEID_PD_DOCUMENT_NR 8 -#define SC_ESTEID_PD_EXPIRY_DATE 9 -#define SC_ESTEID_PD_PLACE_OF_BIRTH 10 -#define SC_ESTEID_PD_ISSUING_DATE 11 -#define SC_ESTEID_PD_PERMIT_TYPE 12 -#define SC_ESTEID_PD_REMARK1 13 -#define SC_ESTEID_PD_REMARK2 14 -#define SC_ESTEID_PD_REMARK3 15 -#define SC_ESTEID_PD_REMARK4 16 +enum { + SC_ESTEID_PD_SURNAME = 1, + SC_ESTEID_PD_GIVEN_NAMES1, + SC_ESTEID_PD_GIVEN_NAMES2, + SC_ESTEID_PD_SEX, + SC_ESTEID_PD_CITIZENSHIP, + SC_ESTEID_PD_DATE_OF_BIRTH, + SC_ESTEID_PD_PERSONAL_ID, + SC_ESTEID_PD_DOCUMENT_NR, + SC_ESTEID_PD_EXPIRY_DATE, + SC_ESTEID_PD_PLACE_OF_BIRTH, + SC_ESTEID_PD_ISSUING_DATE, + SC_ESTEID_PD_PERMIT_TYPE, + SC_ESTEID_PD_REMARK1, + SC_ESTEID_PD_REMARK2, + SC_ESTEID_PD_REMARK3, + SC_ESTEID_PD_REMARK4 +}; +enum { + SC_ESTEID_AUTH = 1, + SC_ESTEID_SIGN +}; /* i love constants */ -#define SC_ESTEID_KEYREF_FILE_RECLEN 21 +#define SC_ESTEID_KEYREF_FILE_RECLEN 21 int select_esteid_df(sc_card_t * card); #endif diff --git a/src/libopensc/pinpad-ccid.c b/src/libopensc/pinpad-ccid.c index e6acb4d7..d4d21857 100644 --- a/src/libopensc/pinpad-ccid.c +++ b/src/libopensc/pinpad-ccid.c @@ -5,8 +5,6 @@ * CCID compatible pinpad readers. * Currently known to work only with libccid under unices via SCardControl(). * - * Tested with: SPR532 with firmware 5.04, ccid-0.9.2mp1, EstEID, opensc-0.9.4mp3 (CVS) - * * (C) 2004 Martin Paljak */ #include "internal.h" @@ -44,7 +42,7 @@ static int ccid_build_verify_pin_block(u8 * buf, size_t * size, struct sc_pin_cm buf[count++] = 0x00; /* bmPINLengthFormat */ if (!data->pin1.min_length || !data->pin1.max_length) - return SC_ERROR_INVALID_PIN_LENGTH; + return SC_ERROR_INVALID_ARGUMENTS; buf[count++] = data->pin1.max_length; /* wPINMaxExtraDigit: max */ buf[count++] = data->pin1.min_length; /* wPINMaxExtraDigit: min */ @@ -93,7 +91,7 @@ ccid_pin_cmd(struct sc_reader *reader, sc_slot_info_t * slot, u8 rbuf[SC_MAX_APDU_BUFFER_SIZE], sbuf[SC_MAX_APDU_BUFFER_SIZE]; size_t rcount = sizeof(rbuf), scount = 0; int r; - unsigned long code; + unsigned long code = 0; sc_apdu_t *apdu; SC_FUNC_CALLED(reader->ctx, 3); diff --git a/src/libopensc/pkcs15-esteid.c b/src/libopensc/pkcs15-esteid.c index 24d3927d..1adf3c3f 100644 --- a/src/libopensc/pkcs15-esteid.c +++ b/src/libopensc/pkcs15-esteid.c @@ -23,11 +23,9 @@ #include "internal.h" #include "pkcs15.h" -#include "asn1.h" #include #include #include -#include #include "esteid.h" @@ -36,193 +34,168 @@ int sc_pkcs15emu_esteid_init_ex(sc_pkcs15_card_t *, sc_pkcs15emu_opt_t *); static void set_string (char **strp, const char *value) { - if (*strp) - free (strp); - *strp = value ? strdup (value) : NULL; + if (*strp) + free (strp); + *strp = value ? strdup (value) : NULL; } int select_esteid_df (sc_card_t * card) { - int r; - sc_path_t tmppath; - sc_format_path ("3F00EEEE", &tmppath); - tmppath.type = SC_PATH_TYPE_PATH; - r = sc_select_file (card, &tmppath, NULL); - SC_TEST_RET (card->ctx, r, "esteid select DF failed"); - return r; + int r; + sc_path_t tmppath; + sc_format_path ("3f00eeee", &tmppath); + tmppath.type = SC_PATH_TYPE_PATH; + r = sc_select_file (card, &tmppath, NULL); + SC_TEST_RET (card->ctx, r, "esteid select DF failed"); + return r; } static int sc_pkcs15emu_esteid_init (sc_pkcs15_card_t * p15card) { - sc_card_t *card = p15card->card; - unsigned char buff[256]; - int r, i, flags; - sc_path_t tmppath; + sc_card_t *card = p15card->card; + unsigned char buff[256]; + int r, i, flags; + sc_path_t tmppath; - set_string (&p15card->label, "EstEID isikutunnistus"); - set_string (&p15card->manufacturer_id, "AS Sertifitseerimiskeskus"); + set_string (&p15card->label, "EstEID isikutunnistus"); + set_string (&p15card->manufacturer_id, "AS Sertifitseerimiskeskus"); - select_esteid_df (card); + select_esteid_df (card); - /* read the serial (document number) */ - sc_format_path ("5044", &tmppath); - tmppath.type = SC_PATH_TYPE_PATH; - r = sc_select_file (card, &tmppath, NULL); - SC_TEST_RET (card->ctx, r, "select esteid PD failed"); - r = sc_read_record (card, SC_ESTEID_PD_DOCUMENT_NR, buff, 8, - SC_RECORD_BY_REC_NR); - SC_TEST_RET (card->ctx, r, "read document number failed"); - buff[r] = '\0'; - set_string (&p15card->serial_number, (const char *) buff); + /* read the serial (document number) */ + sc_format_path ("5044", &tmppath); + tmppath.type = SC_PATH_TYPE_PATH; + r = sc_select_file (card, &tmppath, NULL); + SC_TEST_RET (card->ctx, r, "select esteid PD failed"); + r = sc_read_record (card, SC_ESTEID_PD_DOCUMENT_NR, buff, 8, + SC_RECORD_BY_REC_NR); + SC_TEST_RET (card->ctx, r, "read document number failed"); + buff[r] = '\0'; + set_string (&p15card->serial_number, (const char *) buff); - p15card->flags = - SC_PKCS15_CARD_FLAG_PRN_GENERATION | - SC_PKCS15_CARD_FLAG_EID_COMPLIANT | SC_PKCS15_CARD_FLAG_READONLY; + p15card->flags = SC_PKCS15_CARD_FLAG_PRN_GENERATION + | SC_PKCS15_CARD_FLAG_EID_COMPLIANT + | SC_PKCS15_CARD_FLAG_READONLY; - /* EstEEID uses 1024b RSA */ - card->algorithm_count = 0; - flags = SC_ALGORITHM_RSA_PAD_PKCS1; - _sc_card_add_rsa_alg (card, 1024, flags, 0); + /* EstEEID uses 1024b RSA */ + card->algorithm_count = 0; + flags = SC_ALGORITHM_RSA_PAD_PKCS1; + _sc_card_add_rsa_alg (card, 1024, flags, 0); - /* add certificates */ - for (i = 0; i < 2; i++) - { - static const char *esteid_cert_names[2] = { - "Isikutuvastus", - "Allkirjastamine" - }; - static char const *esteid_cert_paths[2] = { - "3f00eeeeaace", - "3f00eeeeddce" - }; - static int esteid_cert_ids[2] = { - SC_ESTEID_AUTH, - SC_ESTEID_SIGN - }; + /* add certificates */ + for (i = 0; i < 2; i++) { + static const char *esteid_cert_names[2] = { + "Isikutuvastus", + "Allkirjastamine"}; + static char const *esteid_cert_paths[2] = { + "3f00eeeeaace", + "3f00eeeeddce"}; + static int esteid_cert_ids[2] = {1, 2}; + + struct sc_pkcs15_cert_info cert_info; + struct sc_pkcs15_object cert_obj; + + memset(&cert_info, 0, sizeof(cert_info)); + memset(&cert_obj, 0, sizeof(cert_obj)); + + cert_info.id.value[0] = esteid_cert_ids[i]; + cert_info.id.len = 1; + sc_format_path(esteid_cert_paths[i], &cert_info.path); + snprintf(cert_obj.label, SC_PKCS15_MAX_LABEL_SIZE, "%s", esteid_cert_names[i]); + r = sc_pkcs15emu_add_x509_cert(p15card, &cert_obj, &cert_info); + if (r < 0) + return SC_ERROR_INTERNAL; + } - struct sc_pkcs15_cert_info cert_info; - struct sc_pkcs15_object cert_obj; + /* the file with key pin info (tries left) */ + sc_format_path ("3f000016", &tmppath); + sc_select_file (card, &tmppath, NULL); - memset(&cert_info, 0, sizeof(cert_info)); - memset(&cert_obj, 0, sizeof(cert_obj)); + /* add pins */ + for (i = 0; i < 3; i++) { + unsigned char tries_left; + static const char *esteid_pin_names[3] = { + "PIN1 - Isikutuvastus", + "PIN2 - Allkirjastamine", + "PUK" }; + + static const int esteid_pin_min[3] = {4, 5, 8}; + static const int esteid_pin_ref[3] = {1, 2, 0}; + static const int esteid_pin_flags[3] = {0, 0, SC_PKCS15_PIN_FLAG_UNBLOCKING_PIN}; + + struct sc_pkcs15_pin_info pin_info; + struct sc_pkcs15_object pin_obj; - cert_info.id.value[0] = esteid_cert_ids[i]; - cert_info.id.len = 1; - sc_format_path(esteid_cert_paths[i], &cert_info.path); - snprintf(cert_obj.label, SC_PKCS15_MAX_LABEL_SIZE, "%s", - esteid_cert_names[i]); + memset(&pin_info, 0, sizeof(pin_info)); + memset(&pin_obj, 0, sizeof(pin_obj)); + + /* read the number of tries left for the PIN */ + r = sc_read_record (card, i + 1, buff, 128, SC_RECORD_BY_REC_NR); + if (r < 0) + return SC_ERROR_INTERNAL; + tries_left = buff[5]; + + pin_info.auth_id.len = 1; + pin_info.auth_id.value[0] = i + 1; + pin_info.reference = esteid_pin_ref[i]; + pin_info.flags = esteid_pin_flags[i]; + pin_info.type = SC_PKCS15_PIN_TYPE_ASCII_NUMERIC; + pin_info.min_length = esteid_pin_min[i]; + pin_info.stored_length = 12; + pin_info.max_length = 12; + pin_info.pad_char = '\0'; + pin_info.tries_left = (int)tries_left; - r = sc_pkcs15emu_add_x509_cert(p15card, &cert_obj, &cert_info); - if (r < 0) - return SC_ERROR_INTERNAL; - } + snprintf(pin_obj.label, SC_PKCS15_MAX_LABEL_SIZE, "%s", esteid_pin_names[i]); + pin_obj.flags = esteid_pin_flags[i]; - /* the file with key pin info (tries left) */ - sc_format_path ("3f000016", &tmppath); - sc_select_file (card, &tmppath, NULL); + r = sc_pkcs15emu_add_pin_obj(p15card, &pin_obj, &pin_info); + if (r < 0) + return SC_ERROR_INTERNAL; + } + + /* add private keys */ + for (i = 0; i < 2; i++) { + static int prkey_pin[2] = {1, 2}; + static int prkey_usage[2] = { + SC_PKCS15_PRKEY_USAGE_ENCRYPT + | SC_PKCS15_PRKEY_USAGE_DECRYPT + | SC_PKCS15_PRKEY_USAGE_SIGN + | SC_PKCS15_PRKEY_USAGE_SIGNRECOVER + | SC_PKCS15_PRKEY_USAGE_WRAP + | SC_PKCS15_PRKEY_USAGE_UNWRAP, + SC_PKCS15_PRKEY_USAGE_NONREPUDIATION}; + + static const char *prkey_name[2] = { + "Isikutuvastus", + "Allkirjastamine"}; - /* add pins */ - for (i = 0; i < 3; i++) - { - unsigned char tries_left; - static const char *esteid_pin_names[3] = { - "PIN1 - Isikutuvastus", - "PIN2 - Allkirjastamine", - "PUK" - }; + struct sc_pkcs15_prkey_info prkey_info; + struct sc_pkcs15_object prkey_obj; - static const int esteid_pin_min[3] = { - 4, - 5, - 8 - }; + memset(&prkey_info, 0, sizeof(prkey_info)); + memset(&prkey_obj, 0, sizeof(prkey_obj)); + + prkey_info.id.len = 1; + prkey_info.id.value[0] = prkey_pin[i]; + prkey_info.usage = prkey_usage[i]; + prkey_info.native = 1; + prkey_info.key_reference = i + 1; + prkey_info.modulus_length= 1024; - static const int esteid_pin_ref[3] = { - 1, - 2, - 0 - }; + snprintf(prkey_obj.label, SC_PKCS15_MAX_LABEL_SIZE, "%s", prkey_name[i]); + prkey_obj.auth_id.len = 1; + prkey_obj.auth_id.value[0] = prkey_pin[i]; + prkey_obj.user_consent = (i == 1) ? 1 : 0; - static const int esteid_pin_flags[3] = { - 0, - 0, - SC_PKCS15_PIN_FLAG_UNBLOCKING_PIN - }; - - struct sc_pkcs15_pin_info pin_info; - struct sc_pkcs15_object pin_obj; - - memset(&pin_info, 0, sizeof(pin_info)); - memset(&pin_obj, 0, sizeof(pin_obj)); - - r = sc_read_record (card, i + 1, buff, 128, SC_RECORD_BY_REC_NR); - if (r < 0) - return SC_ERROR_INTERNAL; - tries_left = buff[5]; - - pin_info.auth_id.len = 1; - pin_info.auth_id.value[0] = i + 1; - pin_info.reference = esteid_pin_ref[i]; - pin_info.flags = esteid_pin_flags[i]; - pin_info.type = SC_PKCS15_PIN_TYPE_ASCII_NUMERIC; - pin_info.min_length = esteid_pin_min[i]; - pin_info.stored_length = 12; - pin_info.max_length = 12; - pin_info.pad_char = '\0'; - pin_info.tries_left = (int)tries_left; - - snprintf(pin_obj.label, SC_PKCS15_MAX_LABEL_SIZE, "%s", esteid_pin_names[i]); - pin_obj.flags = esteid_pin_flags[i]; - - r = sc_pkcs15emu_add_pin_obj(p15card, &pin_obj, &pin_info); - if (r < 0) - return SC_ERROR_INTERNAL; - } - - /* add private keys */ - for (i = 0; i < 2; i++) - { - static int prkey_pin[2] = { SC_ESTEID_AUTH, SC_ESTEID_SIGN }; - static int prkey_usage[2] = { - SC_PKCS15_PRKEY_USAGE_ENCRYPT | - SC_PKCS15_PRKEY_USAGE_DECRYPT | - SC_PKCS15_PRKEY_USAGE_SIGN | - SC_PKCS15_PRKEY_USAGE_SIGNRECOVER | - SC_PKCS15_PRKEY_USAGE_WRAP | SC_PKCS15_PRKEY_USAGE_UNWRAP, - - SC_PKCS15_PRKEY_USAGE_NONREPUDIATION - }; - static const char *prkey_name[2] = { - "Isikutuvastus", - "Allkirjastamine" - }; - - struct sc_pkcs15_prkey_info prkey_info; - struct sc_pkcs15_object prkey_obj; - - memset(&prkey_info, 0, sizeof(prkey_info)); - memset(&prkey_obj, 0, sizeof(prkey_obj)); - - prkey_info.id.len = 1; - prkey_info.id.value[0] = prkey_pin[i]; - prkey_info.usage = prkey_usage[i]; - prkey_info.native = 1; - prkey_info.key_reference = i + 1; - prkey_info.modulus_length= 1024; - - snprintf(prkey_obj.label, SC_PKCS15_MAX_LABEL_SIZE, "%s", prkey_name[i]); - prkey_obj.auth_id.len = 1; - prkey_obj.auth_id.value[0] = prkey_pin[i]; - prkey_obj.user_consent = (i == 1) ? 1 : 0; - - r = sc_pkcs15emu_add_rsa_prkey(p15card, &prkey_obj, &prkey_info); - if (r < 0) - return SC_ERROR_INTERNAL; - } - return 0; + r = sc_pkcs15emu_add_rsa_prkey(p15card, &prkey_obj, &prkey_info); + if (r < 0) + return SC_ERROR_INTERNAL; + } + return 0; } static const char *atr1 = "3B:FE:94:00:FF:80:B1:FA:45:1F:03:45:73:74:45:49:44:20:76:65:72:20:31:2E:30:43"; @@ -230,8 +203,8 @@ static const char *atr2 = "3B:6E:00:FF:45:73:74:45:49:44:20:76:65:72:20:31:2E:30 static int esteid_detect_card(sc_pkcs15_card_t *p15card) { - u8 buf[SC_MAX_ATR_SIZE]; - size_t len = sizeof(buf); + u8 buf[SC_MAX_ATR_SIZE]; + size_t len = sizeof(buf); sc_card_t *card = p15card->card; /* XXX: save type of the micardo card in the card structure */ diff --git a/src/pkcs11/framework-pkcs15.c b/src/pkcs11/framework-pkcs15.c index 2def266e..486964b7 100644 --- a/src/pkcs11/framework-pkcs15.c +++ b/src/pkcs11/framework-pkcs15.c @@ -1665,7 +1665,7 @@ static CK_RV pkcs15_prkey_get_attribute(struct sc_pkcs11_session *session, case CKA_CLASS: check_attribute_buffer(attr, sizeof(CK_OBJECT_CLASS)); *(CK_OBJECT_CLASS*)attr->pValue = CKO_PRIVATE_KEY; - break; + break; case CKA_TOKEN: case CKA_LOCAL: case CKA_SENSITIVE: @@ -1674,28 +1674,28 @@ static CK_RV pkcs15_prkey_get_attribute(struct sc_pkcs11_session *session, case CKA_PRIVATE: check_attribute_buffer(attr, sizeof(CK_BBOOL)); *(CK_BBOOL*)attr->pValue = TRUE; - break; + break; case CKA_MODIFIABLE: case CKA_EXTRACTABLE: check_attribute_buffer(attr, sizeof(CK_BBOOL)); *(CK_BBOOL*)attr->pValue = FALSE; - break; + break; case CKA_LABEL: len = strlen(prkey->prv_p15obj->label); check_attribute_buffer(attr, len); - memcpy(attr->pValue, prkey->prv_p15obj->label, len); + memcpy(attr->pValue, prkey->prv_p15obj->label, len); break; case CKA_KEY_TYPE: check_attribute_buffer(attr, sizeof(CK_KEY_TYPE)); - *(CK_KEY_TYPE*)attr->pValue = CKK_RSA; - break; + *(CK_KEY_TYPE*)attr->pValue = CKK_RSA; + break; case CKA_ID: check_attribute_buffer(attr, prkey->prv_info->id.len); memcpy(attr->pValue, prkey->prv_info->id.value, prkey->prv_info->id.len); - break; + break; case CKA_KEY_GEN_MECHANISM: check_attribute_buffer(attr, sizeof(CK_MECHANISM_TYPE)); - *(CK_MECHANISM_TYPE*)attr->pValue = CK_UNAVAILABLE_INFORMATION; + *(CK_MECHANISM_TYPE*)attr->pValue = CK_UNAVAILABLE_INFORMATION; break; case CKA_ENCRYPT: case CKA_DECRYPT: