version 1.58, 2023/07/19 14:02:27 |
version 1.59, 2023/07/27 22:26:49 |
|
|
} |
} |
|
|
/* remove trailing spaces */ |
/* remove trailing spaces */ |
static void |
static char * |
rmspace(u_char *buf, size_t len) |
rmspace(u_char *buf, size_t len) |
{ |
{ |
size_t i; |
size_t i; |
|
|
if (!len) |
if (len == 0) |
return; |
return buf; |
for (i = len - 1; i > 0; i--) |
for (i = len - 1; i > 0; i--) |
if (i == len - 1 || buf[i] == ' ') |
if (buf[i] == ' ') |
buf[i] = '\0'; |
buf[i] = '\0'; |
else |
else |
break; |
break; |
|
return buf; |
} |
} |
|
/* Used to printf fixed-width, space-padded, unterminated strings using %.*s */ |
|
#define RMSPACE(s) (int)sizeof(s), rmspace(s, sizeof(s)) |
|
|
/* |
/* |
* open a pkcs11 session and login if required. |
* open a pkcs11 session and login if required. |
|
|
provider_id, rv); |
provider_id, rv); |
goto fail; |
goto fail; |
} |
} |
rmspace(p->info.manufacturerID, sizeof(p->info.manufacturerID)); |
debug("provider %s: manufacturerID <%.*s> cryptokiVersion %d.%d" |
rmspace(p->info.libraryDescription, sizeof(p->info.libraryDescription)); |
" libraryDescription <%.*s> libraryVersion %d.%d", |
debug("provider %s: manufacturerID <%s> cryptokiVersion %d.%d" |
|
" libraryDescription <%s> libraryVersion %d.%d", |
|
provider_id, |
provider_id, |
p->info.manufacturerID, |
RMSPACE(p->info.manufacturerID), |
p->info.cryptokiVersion.major, |
p->info.cryptokiVersion.major, |
p->info.cryptokiVersion.minor, |
p->info.cryptokiVersion.minor, |
p->info.libraryDescription, |
RMSPACE(p->info.libraryDescription), |
p->info.libraryVersion.major, |
p->info.libraryVersion.major, |
p->info.libraryVersion.minor); |
p->info.libraryVersion.minor); |
if ((rv = f->C_GetSlotList(CK_TRUE, NULL, &p->nslots)) != CKR_OK) { |
if ((rv = f->C_GetSlotList(CK_TRUE, NULL, &p->nslots)) != CKR_OK) { |
|
|
"provider %s slot %lu", provider_id, (u_long)i); |
"provider %s slot %lu", provider_id, (u_long)i); |
continue; |
continue; |
} |
} |
rmspace(token->label, sizeof(token->label)); |
debug("provider %s slot %lu: label <%.*s> " |
rmspace(token->manufacturerID, sizeof(token->manufacturerID)); |
"manufacturerID <%.*s> model <%.*s> serial <%.*s> " |
rmspace(token->model, sizeof(token->model)); |
"flags 0x%lx", |
rmspace(token->serialNumber, sizeof(token->serialNumber)); |
|
debug("provider %s slot %lu: label <%s> manufacturerID <%s> " |
|
"model <%s> serial <%s> flags 0x%lx", |
|
provider_id, (unsigned long)i, |
provider_id, (unsigned long)i, |
token->label, token->manufacturerID, token->model, |
RMSPACE(token->label), RMSPACE(token->manufacturerID), |
token->serialNumber, token->flags); |
RMSPACE(token->model), RMSPACE(token->serialNumber), |
|
token->flags); |
/* |
/* |
* open session, login with pin and retrieve public |
* open session, login with pin and retrieve public |
* keys (if keyp is provided) |
* keys (if keyp is provided) |