tpm_specific.c revision 2
1N/A#include "tpmtok_int.h"
1N/A#include "tpmtok_defs.h"
1N/Aint not_initialized = 0;
1N/Astatic TSS_RESULT
1N/Astatic TSS_RESULT
int ret = 0;
char *tmpfname;
char *p = get_tpm_keystore_path();
if (p == NULL)
return (ret);
char *p = get_tpm_keystore_path();
if (p == NULL)
if (ret == 0) {
uuid);
if (!found)
return (ret);
int nulluuid;
return (nulluuid);
char *p = get_tpm_keystore_path();
if (p == NULL)
static UINT32
switch (size) {
return (TSS_KEY_SIZE_512);
return (TSS_KEY_SIZE_1024);
return (TSS_KEY_SIZE_2048);
static CK_ULONG
if (!flag) {
return (CKR_TEMPLATE_INCOMPLETE);
case sizeof (CK_ULONG):
rc = 0;
return (rc);
unsigned long size_n, unsigned char *n)
return (result);
offset = 0;
return (result);
offset = 0;
return (result);
return (result);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_OK);
return (CKR_OK);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_OK);
return (CKR_FUNCTION_FAILED);
*pContext = 0;
return (CKR_FUNCTION_FAILED);
return (result);
static CK_RV
if (result)
return (CKR_FUNCTION_FAILED);
&hDefaultPolicy))) {
return (CKR_FUNCTION_FAILED);
return (result);
static CK_RV
int size_n,
int size_p,
if (initFlags == 0) {
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
TSS_ES_RSAESPKCSV15))) {
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_OK);
static CK_RV
return (rc);
return (CKR_TEMPLATE_INCOMPLETE);
return (CKR_TEMPLATE_INCONSISTENT);
return (CKR_TEMPLATE_INCOMPLETE);
return (CKR_TEMPLATE_INCOMPLETE);
return (CKR_TEMPLATE_INCONSISTENT);
return (CKR_TEMPLATE_INCOMPLETE);
if (initFlags == 0) {
return (CKR_TEMPLATE_INCONSISTENT);
phKey))) {
return (rc);
return (CKR_TEMPLATE_INCONSISTENT);
return (CKR_TEMPLATE_INCONSISTENT);
if (initFlags == 0) {
return (CKR_TEMPLATE_INCONSISTENT);
return (result);
return (CKR_FUNCTION_FAILED);
if (result) {
return (CKR_FUNCTION_FAILED);
if (result) {
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
&new_attr))) {
return (rc);
return (rc);
static TSS_RESULT
return (result);
goto done;
0, NULL);
goto done;
done:
return (result);
static CK_RV
return (rc);
return (result);
static TSS_RESULT
return (CKR_FUNCTION_FAILED);
goto done;
&hPolicy))) {
goto done;
goto done;
done:
return (result);
static TSS_RESULT
return (TSS_SUCCESS);
if (ret) {
return (ret);
return (ret);
static TSS_RESULT
if (result) {
return (result);
if (result)
return (result);
if (result)
return (result);
static TSS_RESULT
return (TSS_SUCCESS);
return (result);
return (result);
if (result)
return (result);
return (result);
static TSS_RESULT
TSS_ES_RSAESPKCSV15))) {
return (result);
return (result);
return (result);
static TSS_RESULT
return (result);
if (result) {
return (result);
if (result) {
return (result);
if (result) {
return (result);
return (result);
static TSS_RESULT
return (result);
return (result);
hPolicy))) {
return (result);
static CK_RV
char *keyid;
switch (key_type) {
case TPMTOK_PUBLIC_LEAF_KEY:
case TPMTOK_PRIVATE_LEAF_KEY:
goto done;
return (rc);
int ret;
if (ret)
done:
return (rc);
static CK_RV
goto done;
if (rc)
goto done;
goto done;
goto done;
goto done;
done:
return (rc);
static CK_RV
int ret;
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
&hPrivateRootKey))) {
goto cleanup;
if (result) {
goto cleanup;
if (ret) {
goto cleanup;
goto cleanup;
goto cleanup;
return (rc);
static CK_RV
int ret;
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
&hPublicRootKey))) {
goto cleanup;
if (result) {
goto cleanup;
if (ret) {
goto cleanup;
goto cleanup;
goto cleanup;
return (rc);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (result);
goto cleanup;
&privateRootKeyUUID)) {
return (CKR_PIN_INCORRECT);
goto cleanup;
goto cleanup;
&publicRootKeyUUID)) {
return (CKR_PIN_INCORRECT);
goto cleanup;
if (result) {
goto cleanup;
if (result) {
goto cleanup;
goto cleanup;
return (rc);
return (CKR_OK);
return (CKR_OK);
static CK_RV
return (CKR_PIN_INVALID);
return (CKR_PIN_INVALID);
return (CKR_PIN_LEN_RANGE);
return (CKR_OK);
static CK_RV
return (CKR_FUNCTION_FAILED);
return (result);
if (result) {
goto cleanup;
if (result) {
goto cleanup;
return (rc);
if (!sess) {
return (CKR_SESSION_HANDLE_INVALID);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
if (not_initialized) {
return (CKR_PIN_INCORRECT);
ulNewPinLen))) {
return (rc);
newpin_hash))) {
return (CKR_FUNCTION_FAILED);
return (CKR_PIN_INCORRECT);
oldpin_hash))) {
return (rc);
ulNewPinLen)))
return (rc);
return (CKR_FUNCTION_FAILED);
if (not_initialized) {
return (CKR_PIN_INCORRECT);
return (rc);
newpin_hash)))
return (CKR_FUNCTION_FAILED);
return (CKR_PIN_INCORRECT);
ulNewPinLen)))
return (rc);
return (CKR_FUNCTION_FAILED);
return (rc);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_PIN_INCORRECT);
return (CKR_OK);
if (result)
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
if (result) {
goto cleanup;
goto cleanup;
if (result) {
goto cleanup;
if (result) {
goto cleanup;
if (result) {
goto cleanup;
return (rc);
return (CKR_OK);
static CK_RV
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
authData))) {
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
&new_attr))) {
return (rc);
return (rc);
return (rc);
static CK_RV
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_OK);
return (CKR_TEMPLATE_INCONSISTENT);
if (!flag) {
return (CKR_TEMPLATE_INCOMPLETE);
return (CKR_KEY_SIZE_RANGE);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (result);
return (CKR_FUNCTION_FAILED);
return (rc);
return (rc);
return (result);
return (rc);
return (rc);
return (rc);
static CK_RV
return (CKR_FUNCTION_FAILED);
return (CKR_TEMPLATE_INCOMPLETE);
return (CKR_FUNCTION_FAILED);
return (rc);
if (result) {
return (CKR_FUNCTION_FAILED);
return (rc);
phKey))) {
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
&hPolicy))) {
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
*phKey))) {
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_OK);
return (CKR_FUNCTION_FAILED);
return (result);
outlen = 0;
while (remain > 0) {
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_BUFFER_TOO_SMALL);
return (CKR_OK);
return (rc);
return (rc);
return (rc);
return (CKR_FUNCTION_FAILED);
in_data))) {
return (CKR_FUNCTION_FAILED);
return (rc);
return (rc);
return (CKR_FUNCTION_FAILED);
in_data))) {
return (CKR_FUNCTION_FAILED);
return (CKR_DATA_LEN_RANGE);
return (CKR_BUFFER_TOO_SMALL);
return (CKR_OK);
return (CKR_FUNCTION_FAILED);
return (result);
return (result);
return (result);
switch (scheme) {
case TSS_ES_RSAESPKCSV15:
maxsize = 0;
outlen = 0;
while (remain > 0) {
return (CKR_FUNCTION_FAILED);
return (CKR_FUNCTION_FAILED);
return (CKR_DATA_LEN_RANGE);
return (CKR_OK);
return (rc);
return (rc);
return (rc);
return (CKR_FUNCTION_FAILED);
goto end;
goto end;
goto end;
goto end;
for (i = 0; i < sslrv; i++)
if (outdata[i] != 0)
if (sslrv < 0) {
goto end;
*out_data_len = 0;
goto end;
end:
if (rsa)
return (rc);