pkcs11: coding style
Signed-off-by: Viktor Tarasov <viktor.tarasov@gmail.com>
This commit is contained in:
parent
8f9bbbe780
commit
c0072d16dd
|
@ -85,18 +85,22 @@
|
|||
#define CKA_CERT_MD5_HASH (CKA_TRUST + 101)
|
||||
|
||||
|
||||
static char *buf_spec(CK_VOID_PTR buf_addr, CK_ULONG buf_len)
|
||||
static char *
|
||||
buf_spec(CK_VOID_PTR buf_addr, CK_ULONG buf_len)
|
||||
{
|
||||
static char ret[64];
|
||||
if (sizeof(CK_VOID_PTR) == 4) {
|
||||
|
||||
if (sizeof(CK_VOID_PTR) == 4)
|
||||
sprintf(ret, "%08lx / %ld", (unsigned long) buf_addr, (CK_LONG) buf_len);
|
||||
} else {
|
||||
else
|
||||
sprintf(ret, "%016lx / %ld", (unsigned long) buf_addr, (CK_LONG) buf_len);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void print_enum(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID_PTR arg)
|
||||
|
||||
void
|
||||
print_enum(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID_PTR arg)
|
||||
{
|
||||
enum_spec *spec = (enum_spec*)arg;
|
||||
CK_ULONG i;
|
||||
|
@ -111,19 +115,25 @@ void print_enum(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID
|
|||
fprintf(f, "Value %lX not found for type %s\n", ctype, spec->name);
|
||||
}
|
||||
|
||||
void print_boolean(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID_PTR arg)
|
||||
|
||||
void
|
||||
print_boolean(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID_PTR arg)
|
||||
{
|
||||
CK_BYTE i = *((CK_BYTE *)value);
|
||||
fprintf(f, i ? "True\n" : "False\n");
|
||||
}
|
||||
|
||||
void print_generic(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID_PTR arg)
|
||||
|
||||
void
|
||||
print_generic(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID_PTR arg)
|
||||
{
|
||||
CK_ULONG i;
|
||||
|
||||
if((CK_LONG)size != -1 && value != NULL) {
|
||||
char hex[16*3+1], ascii[16+1];
|
||||
char *hex_ptr = hex, *ascii_ptr = ascii;
|
||||
int offset = 0;
|
||||
|
||||
memset(ascii, ' ', sizeof ascii);
|
||||
ascii[sizeof ascii -1] = 0;
|
||||
fprintf(f, "%s", buf_spec(value, size));
|
||||
|
@ -149,11 +159,13 @@ void print_generic(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_V
|
|||
*ascii_ptr = '.';
|
||||
ascii_ptr++;
|
||||
}
|
||||
|
||||
/* padd */
|
||||
while (strlen(hex) < 3*16)
|
||||
strcat(hex, " ");
|
||||
fprintf(f, "\n %08X %s %s", offset, hex, ascii);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
if (value != NULL)
|
||||
fprintf(f, "EMPTY");
|
||||
else
|
||||
|
@ -162,13 +174,16 @@ void print_generic(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_V
|
|||
fprintf(f, "\n");
|
||||
}
|
||||
|
||||
|
||||
#ifdef ENABLE_OPENSSL
|
||||
static void print_dn(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID_PTR arg)
|
||||
static void
|
||||
print_dn(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID_PTR arg)
|
||||
{
|
||||
print_generic(f, type, value, size, arg);
|
||||
if(size && value) {
|
||||
X509_NAME *name;
|
||||
const unsigned char *tmp = value;
|
||||
|
||||
name = d2i_X509_NAME(NULL, &tmp, size);
|
||||
if(name) {
|
||||
BIO *bio = BIO_new(BIO_s_file());
|
||||
|
@ -182,31 +197,37 @@ static void print_dn(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK
|
|||
}
|
||||
#endif
|
||||
|
||||
void print_print(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID_PTR arg)
|
||||
void
|
||||
print_print(FILE *f, CK_LONG type, CK_VOID_PTR value, CK_ULONG size, CK_VOID_PTR arg)
|
||||
{
|
||||
CK_ULONG i, j;
|
||||
CK_BYTE c;
|
||||
|
||||
if((CK_LONG)size != -1) {
|
||||
fprintf(f, "%s\n ", buf_spec(value, size));
|
||||
for(i = 0; i < size; i += j) {
|
||||
for(j = 0; ((i + j < size) && (j < 32)); j++) {
|
||||
if (((j % 4) == 0) && (j != 0)) fprintf(f, " ");
|
||||
if (((j % 4) == 0) && (j != 0))
|
||||
fprintf(f, " ");
|
||||
c = ((CK_BYTE *)value)[i+j];
|
||||
fprintf(f, "%02X", c);
|
||||
}
|
||||
fprintf(f, "\n ");
|
||||
|
||||
for(j = 0; ((i + j < size) && (j < 32)); j++) {
|
||||
if (((j % 4) == 0) && (j != 0)) fprintf(f, " ");
|
||||
if (((j % 4) == 0) && (j != 0))
|
||||
fprintf(f, " ");
|
||||
c = ((CK_BYTE *)value)[i + j];
|
||||
if((c > 32) && (c < 128)) {
|
||||
if((c > 32) && (c < 128))
|
||||
fprintf(f, " %c", c);
|
||||
} else {
|
||||
else
|
||||
fprintf(f, " .");
|
||||
}
|
||||
}
|
||||
if(j == 32) fprintf(f, "\n ");
|
||||
if(j == 32)
|
||||
fprintf(f, "\n ");
|
||||
}
|
||||
} else {
|
||||
else {
|
||||
fprintf(f, "EMPTY");
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
|
@ -713,35 +734,40 @@ type_spec ck_attribute_specs[] = {
|
|||
CK_ULONG ck_attribute_num = sizeof(ck_attribute_specs)/sizeof(type_spec);
|
||||
|
||||
|
||||
const char *lookup_enum_spec(enum_spec *spec, CK_ULONG value)
|
||||
const char
|
||||
lookup_enum_spec(enum_spec *spec, CK_ULONG value)
|
||||
{
|
||||
CK_ULONG i;
|
||||
for(i = 0; i < spec->size; i++) {
|
||||
if(spec->specs[i].type == value) {
|
||||
|
||||
for(i = 0; i < spec->size; i++)
|
||||
if(spec->specs[i].type == value)
|
||||
return spec->specs[i].name;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *lookup_enum(CK_ULONG type, CK_ULONG value)
|
||||
|
||||
const char *
|
||||
lookup_enum(CK_ULONG type, CK_ULONG value)
|
||||
{
|
||||
CK_ULONG i;
|
||||
for(i = 0; ck_types[i].type < ( sizeof(ck_types) / sizeof(enum_spec) ) ; i++) {
|
||||
if(ck_types[i].type == type) {
|
||||
|
||||
for(i = 0; ck_types[i].type < ( sizeof(ck_types) / sizeof(enum_spec) ) ; i++)
|
||||
if(ck_types[i].type == type)
|
||||
return lookup_enum_spec(&(ck_types[i]), value);
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void show_error( FILE *f, char *str, CK_RV rc )
|
||||
|
||||
void
|
||||
show_error( FILE *f, char *str, CK_RV rc )
|
||||
{
|
||||
fprintf(f, "%s returned: %ld %s", str, (unsigned long) rc, lookup_enum ( RV_T, rc ));
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
|
||||
void print_ck_info(FILE *f, CK_INFO *info)
|
||||
|
||||
void
|
||||
print_ck_info(FILE *f, CK_INFO *info)
|
||||
{
|
||||
fprintf(f, " cryptokiVersion: %d.%d\n", info->cryptokiVersion.major, info->cryptokiVersion.minor );
|
||||
fprintf(f, " manufacturerID: '%32.32s'\n", info->manufacturerID );
|
||||
|
@ -750,19 +776,24 @@ void print_ck_info(FILE *f, CK_INFO *info)
|
|||
fprintf(f, " libraryVersion: %d.%d\n", info->libraryVersion.major, info->libraryVersion.minor );
|
||||
}
|
||||
|
||||
void print_slot_list(FILE *f, CK_SLOT_ID_PTR pSlotList, CK_ULONG ulCount)
|
||||
|
||||
void
|
||||
print_slot_list(FILE *f, CK_SLOT_ID_PTR pSlotList, CK_ULONG ulCount)
|
||||
{
|
||||
CK_ULONG i;
|
||||
|
||||
if(pSlotList) {
|
||||
for (i = 0; i < ulCount; i++) {
|
||||
for (i = 0; i < ulCount; i++)
|
||||
fprintf(f, "Slot %ld\n", pSlotList[i]);
|
||||
}
|
||||
} else {
|
||||
else {
|
||||
fprintf(f, "Count is %ld\n", ulCount);
|
||||
}
|
||||
}
|
||||
|
||||
void print_slot_info(FILE *f, CK_SLOT_INFO *info)
|
||||
|
||||
void
|
||||
print_slot_info(FILE *f, CK_SLOT_INFO *info)
|
||||
{
|
||||
size_t i;
|
||||
enum_specs ck_flags[] = {
|
||||
|
@ -777,14 +808,15 @@ void print_slot_info(FILE *f, CK_SLOT_INFO *info)
|
|||
fprintf(f, " hardwareVersion: %d.%d\n", info->hardwareVersion.major, info->hardwareVersion.minor );
|
||||
fprintf(f, " firmwareVersion: %d.%d\n", info->firmwareVersion.major, info->firmwareVersion.minor );
|
||||
fprintf(f, " flags: %0lx\n", info->flags );
|
||||
for(i = 0; i < sizeof (ck_flags) / sizeof (*ck_flags); i++) {
|
||||
if(info->flags & ck_flags[i].type) {
|
||||
|
||||
for(i = 0; i < sizeof (ck_flags) / sizeof (*ck_flags); i++)
|
||||
if(info->flags & ck_flags[i].type)
|
||||
fprintf(f, " %s\n", ck_flags[i].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void print_token_info(FILE *f, CK_TOKEN_INFO *info)
|
||||
|
||||
void
|
||||
print_token_info(FILE *f, CK_TOKEN_INFO *info)
|
||||
{
|
||||
size_t i;
|
||||
enum_specs ck_flags[] = {
|
||||
|
@ -826,45 +858,46 @@ void print_token_info(FILE *f, CK_TOKEN_INFO *info)
|
|||
fprintf(f, " firmwareVersion: %d.%d\n", info->firmwareVersion.major, info->firmwareVersion.minor );
|
||||
fprintf(f, " time: '%16.16s'\n", info->utcTime );
|
||||
fprintf(f, " flags: %0lx\n", info->flags );
|
||||
for(i = 0; i < sizeof (ck_flags) / sizeof (*ck_flags); i++) {
|
||||
if(info->flags & ck_flags[i].type) {
|
||||
|
||||
for(i = 0; i < sizeof (ck_flags) / sizeof (*ck_flags); i++)
|
||||
if(info->flags & ck_flags[i].type)
|
||||
fprintf(f, " %s\n", ck_flags[i].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void print_mech_list(FILE *f, CK_MECHANISM_TYPE_PTR pMechanismList,
|
||||
CK_ULONG ulMechCount)
|
||||
|
||||
void
|
||||
print_mech_list(FILE *f, CK_MECHANISM_TYPE_PTR pMechanismList, CK_ULONG ulMechCount)
|
||||
{
|
||||
CK_ULONG imech;
|
||||
|
||||
if(pMechanismList) {
|
||||
for (imech = 0; imech < ulMechCount; imech++) {
|
||||
const char *name = lookup_enum(MEC_T, pMechanismList[imech]);
|
||||
if (name) {
|
||||
if (name)
|
||||
fprintf(f, "%30s \n", name);
|
||||
} else {
|
||||
else
|
||||
fprintf(f, " Unknown Mechanism (%08lx) \n", pMechanismList[imech]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
else {
|
||||
fprintf(f, "Count is %ld\n", ulMechCount);
|
||||
}
|
||||
}
|
||||
|
||||
void print_mech_info(FILE *f, CK_MECHANISM_TYPE type,
|
||||
CK_MECHANISM_INFO_PTR minfo)
|
||||
|
||||
void
|
||||
print_mech_info(FILE *f, CK_MECHANISM_TYPE type, CK_MECHANISM_INFO_PTR minfo)
|
||||
{
|
||||
const char *name = lookup_enum(MEC_T, type);
|
||||
CK_ULONG known_flags = CKF_HW | CKF_ENCRYPT | CKF_DECRYPT | CKF_DIGEST |
|
||||
CKF_SIGN | CKF_SIGN_RECOVER | CKF_VERIFY | CKF_VERIFY_RECOVER |
|
||||
CKF_GENERATE|CKF_GENERATE_KEY_PAIR|CKF_WRAP|CKF_UNWRAP|
|
||||
CKF_DERIVE;
|
||||
CKF_GENERATE | CKF_GENERATE_KEY_PAIR | CKF_WRAP | CKF_UNWRAP | CKF_DERIVE;
|
||||
|
||||
if (name) {
|
||||
if (name)
|
||||
fprintf(f, "%s : ", name);
|
||||
} else {
|
||||
else
|
||||
fprintf(f, "Unknown Mechanism (%08lx) : ", type);
|
||||
}
|
||||
|
||||
fprintf(f, "min:%lu max:%lu flags:0x%lX ",
|
||||
(unsigned long) minfo->ulMinKeySize,
|
||||
(unsigned long) minfo->ulMaxKeySize, minfo->flags);
|
||||
|
@ -885,8 +918,9 @@ void print_mech_info(FILE *f, CK_MECHANISM_TYPE type,
|
|||
(minfo->flags & ~known_flags) ? "Unknown " : "");
|
||||
}
|
||||
|
||||
void print_attribute_list(FILE *f, CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulCount)
|
||||
|
||||
void
|
||||
print_attribute_list(FILE *f, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
|
||||
{
|
||||
CK_ULONG j, k;
|
||||
int found;
|
||||
|
@ -915,11 +949,13 @@ void print_attribute_list(FILE *f, CK_ATTRIBUTE_PTR pTemplate,
|
|||
}
|
||||
}
|
||||
|
||||
void print_attribute_list_req(FILE *f, CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulCount)
|
||||
|
||||
void
|
||||
print_attribute_list_req(FILE *f, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
|
||||
{
|
||||
CK_ULONG j, k;
|
||||
int found;
|
||||
|
||||
for(j = 0; j < ulCount ; j++) {
|
||||
found = 0;
|
||||
for(k = 0; k < ck_attribute_num; k++) {
|
||||
|
@ -930,6 +966,7 @@ void print_attribute_list_req(FILE *f, CK_ATTRIBUTE_PTR pTemplate,
|
|||
k = ck_attribute_num;
|
||||
}
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
fprintf(f, " CKA_? (0x%08lx) ", pTemplate[j].type);
|
||||
fprintf(f, "%s\n", buf_spec(pTemplate[j].pValue, pTemplate[j].ulValueLen));
|
||||
|
@ -937,7 +974,9 @@ void print_attribute_list_req(FILE *f, CK_ATTRIBUTE_PTR pTemplate,
|
|||
}
|
||||
}
|
||||
|
||||
void print_session_info(FILE *f, CK_SESSION_INFO *info)
|
||||
|
||||
void
|
||||
print_session_info(FILE *f, CK_SESSION_INFO *info)
|
||||
{
|
||||
size_t i;
|
||||
enum_specs ck_flags[] = {
|
||||
|
@ -948,10 +987,10 @@ void print_session_info(FILE *f, CK_SESSION_INFO *info)
|
|||
fprintf(f, " slotID: %ld\n", info->slotID );
|
||||
fprintf(f, " state: '%32.32s'\n", lookup_enum(STA_T, info->state));
|
||||
fprintf(f, " flags: %0lx\n", info->flags );
|
||||
|
||||
for(i = 0; i < sizeof (ck_flags) / sizeof (*ck_flags); i++) {
|
||||
if(info->flags & ck_flags[i].type) {
|
||||
if(info->flags & ck_flags[i].type)
|
||||
fprintf(f, " %s\n", ck_flags[i].name);
|
||||
}
|
||||
}
|
||||
fprintf(f, " ulDeviceError: %0lx\n", info->ulDeviceError );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue