Drop unused stuff.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22454 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -80,15 +80,10 @@ static struct soft_token {
|
|||||||
int next_object;
|
int next_object;
|
||||||
} find;
|
} find;
|
||||||
|
|
||||||
int encrypt_object;
|
|
||||||
CK_MECHANISM_PTR encrypt_mechanism;
|
|
||||||
int decrypt_object;
|
|
||||||
CK_MECHANISM_PTR decrypt_mechanism;
|
|
||||||
int sign_object;
|
int sign_object;
|
||||||
CK_MECHANISM_PTR sign_mechanism;
|
CK_MECHANISM_PTR sign_mechanism;
|
||||||
int verify_object;
|
int verify_object;
|
||||||
CK_MECHANISM_PTR verify_mechanism;
|
CK_MECHANISM_PTR verify_mechanism;
|
||||||
int digest_object;
|
|
||||||
} state[10];
|
} state[10];
|
||||||
#define MAX_NUM_SESSION (sizeof(soft_token.state)/sizeof(soft_token.state[0]))
|
#define MAX_NUM_SESSION (sizeof(soft_token.state)/sizeof(soft_token.state[0]))
|
||||||
FILE *logfile;
|
FILE *logfile;
|
||||||
@@ -648,14 +643,6 @@ find_object_final(struct session_state *state)
|
|||||||
static void
|
static void
|
||||||
reset_crypto_state(struct session_state *state)
|
reset_crypto_state(struct session_state *state)
|
||||||
{
|
{
|
||||||
state->encrypt_object = -1;
|
|
||||||
if (state->encrypt_mechanism)
|
|
||||||
free(state->encrypt_mechanism);
|
|
||||||
state->encrypt_mechanism = NULL_PTR;
|
|
||||||
state->decrypt_object = -1;
|
|
||||||
if (state->decrypt_mechanism)
|
|
||||||
free(state->decrypt_mechanism);
|
|
||||||
state->decrypt_mechanism = NULL_PTR;
|
|
||||||
state->sign_object = -1;
|
state->sign_object = -1;
|
||||||
if (state->sign_mechanism)
|
if (state->sign_mechanism)
|
||||||
free(state->sign_mechanism);
|
free(state->sign_mechanism);
|
||||||
@@ -664,7 +651,6 @@ reset_crypto_state(struct session_state *state)
|
|||||||
if (state->verify_mechanism)
|
if (state->verify_mechanism)
|
||||||
free(state->verify_mechanism);
|
free(state->verify_mechanism);
|
||||||
state->verify_mechanism = NULL_PTR;
|
state->verify_mechanism = NULL_PTR;
|
||||||
state->digest_object = -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -1388,317 +1374,6 @@ dup_mechanism(CK_MECHANISM_PTR *dup, const CK_MECHANISM_PTR pMechanism)
|
|||||||
return CKR_OK;
|
return CKR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
CK_RV
|
|
||||||
C_EncryptInit(CK_SESSION_HANDLE hSession,
|
|
||||||
CK_MECHANISM_PTR pMechanism,
|
|
||||||
CK_OBJECT_HANDLE hKey)
|
|
||||||
{
|
|
||||||
struct session_state *state;
|
|
||||||
CK_MECHANISM_TYPE mechs[] = { CKM_RSA_PKCS };
|
|
||||||
CK_BBOOL bool_true = CK_TRUE;
|
|
||||||
CK_ATTRIBUTE attr[] = {
|
|
||||||
{ CKA_ENCRYPT, &bool_true, sizeof(bool_true) }
|
|
||||||
};
|
|
||||||
struct st_object *o;
|
|
||||||
CK_RV ret;
|
|
||||||
|
|
||||||
INIT_CONTEXT();
|
|
||||||
|
|
||||||
st_logf("EncryptInit\n");
|
|
||||||
VERIFY_SESSION_HANDLE(hSession, &state);
|
|
||||||
|
|
||||||
ret = commonInit(attr, sizeof(attr)/sizeof(attr[0]),
|
|
||||||
mechs, sizeof(mechs)/sizeof(mechs[0]),
|
|
||||||
pMechanism, hKey, &o);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = dup_mechanism(&state->encrypt_mechanism, pMechanism);
|
|
||||||
if (ret == CKR_OK)
|
|
||||||
state->encrypt_object = OBJECT_ID(o);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
CK_RV
|
|
||||||
C_Encrypt(CK_SESSION_HANDLE hSession,
|
|
||||||
CK_BYTE_PTR pData,
|
|
||||||
CK_ULONG ulDataLen,
|
|
||||||
CK_BYTE_PTR pEncryptedData,
|
|
||||||
CK_ULONG_PTR pulEncryptedDataLen)
|
|
||||||
{
|
|
||||||
CK_RV ret = CKR_FUNCTION_NOT_SUPPORTED;
|
|
||||||
#if 0
|
|
||||||
struct session_state *state;
|
|
||||||
struct st_object *o;
|
|
||||||
void *buffer = NULL;
|
|
||||||
RSA *rsa;
|
|
||||||
int padding, len, buffer_len, padding_len;
|
|
||||||
|
|
||||||
INIT_CONTEXT();
|
|
||||||
|
|
||||||
st_logf("Encrypt\n");
|
|
||||||
|
|
||||||
VERIFY_SESSION_HANDLE(hSession, &state);
|
|
||||||
|
|
||||||
if (state->encrypt_object == -1)
|
|
||||||
return CKR_ARGUMENTS_BAD;
|
|
||||||
|
|
||||||
o = soft_token.object.objs[state->encrypt_object];
|
|
||||||
|
|
||||||
if (o->u.public_key == NULL) {
|
|
||||||
st_logf("public key NULL\n");
|
|
||||||
return CKR_ARGUMENTS_BAD;
|
|
||||||
}
|
|
||||||
|
|
||||||
rsa = o->u.public_key->pkey.rsa;
|
|
||||||
|
|
||||||
if (rsa == NULL)
|
|
||||||
return CKR_ARGUMENTS_BAD;
|
|
||||||
|
|
||||||
RSA_blinding_off(rsa); /* XXX RAND is broken while running in mozilla ? */
|
|
||||||
|
|
||||||
buffer_len = RSA_size(rsa);
|
|
||||||
|
|
||||||
buffer = malloc(buffer_len);
|
|
||||||
if (buffer == NULL) {
|
|
||||||
ret = CKR_DEVICE_MEMORY;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = CKR_OK;
|
|
||||||
switch(state->encrypt_mechanism->mechanism) {
|
|
||||||
case CKM_RSA_PKCS:
|
|
||||||
padding = RSA_PKCS1_PADDING;
|
|
||||||
padding_len = RSA_PKCS1_PADDING_SIZE;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
ret = CKR_FUNCTION_NOT_SUPPORTED;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (buffer_len + padding_len < ulDataLen) {
|
|
||||||
ret = CKR_ARGUMENTS_BAD;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pulEncryptedDataLen == NULL) {
|
|
||||||
st_logf("pulEncryptedDataLen NULL\n");
|
|
||||||
ret = CKR_ARGUMENTS_BAD;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pData == NULL_PTR) {
|
|
||||||
st_logf("data NULL\n");
|
|
||||||
ret = CKR_ARGUMENTS_BAD;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
len = RSA_public_encrypt(ulDataLen, pData, buffer, rsa, padding);
|
|
||||||
if (len <= 0) {
|
|
||||||
ret = CKR_DEVICE_ERROR;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
if (len > buffer_len)
|
|
||||||
abort();
|
|
||||||
|
|
||||||
if (pEncryptedData != NULL_PTR)
|
|
||||||
memcpy(pEncryptedData, buffer, len);
|
|
||||||
*pulEncryptedDataLen = len;
|
|
||||||
|
|
||||||
out:
|
|
||||||
if (buffer) {
|
|
||||||
memset(buffer, 0, buffer_len);
|
|
||||||
free(buffer);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
CK_RV
|
|
||||||
C_EncryptUpdate(CK_SESSION_HANDLE hSession,
|
|
||||||
CK_BYTE_PTR pPart,
|
|
||||||
CK_ULONG ulPartLen,
|
|
||||||
CK_BYTE_PTR pEncryptedPart,
|
|
||||||
CK_ULONG_PTR pulEncryptedPartLen)
|
|
||||||
{
|
|
||||||
INIT_CONTEXT();
|
|
||||||
st_logf("EncryptUpdate\n");
|
|
||||||
VERIFY_SESSION_HANDLE(hSession, NULL);
|
|
||||||
return CKR_FUNCTION_NOT_SUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CK_RV
|
|
||||||
C_EncryptFinal(CK_SESSION_HANDLE hSession,
|
|
||||||
CK_BYTE_PTR pLastEncryptedPart,
|
|
||||||
CK_ULONG_PTR pulLastEncryptedPartLen)
|
|
||||||
{
|
|
||||||
INIT_CONTEXT();
|
|
||||||
st_logf("EncryptFinal\n");
|
|
||||||
VERIFY_SESSION_HANDLE(hSession, NULL);
|
|
||||||
return CKR_FUNCTION_NOT_SUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* C_DecryptInit initializes a decryption operation. */
|
|
||||||
CK_RV
|
|
||||||
C_DecryptInit(CK_SESSION_HANDLE hSession,
|
|
||||||
CK_MECHANISM_PTR pMechanism,
|
|
||||||
CK_OBJECT_HANDLE hKey)
|
|
||||||
{
|
|
||||||
struct session_state *state;
|
|
||||||
CK_MECHANISM_TYPE mechs[] = { CKM_RSA_PKCS };
|
|
||||||
CK_BBOOL bool_true = CK_TRUE;
|
|
||||||
CK_ATTRIBUTE attr[] = {
|
|
||||||
{ CKA_DECRYPT, &bool_true, sizeof(bool_true) }
|
|
||||||
};
|
|
||||||
struct st_object *o;
|
|
||||||
CK_RV ret;
|
|
||||||
|
|
||||||
INIT_CONTEXT();
|
|
||||||
st_logf("DecryptInit\n");
|
|
||||||
VERIFY_SESSION_HANDLE(hSession, &state);
|
|
||||||
|
|
||||||
ret = commonInit(attr, sizeof(attr)/sizeof(attr[0]),
|
|
||||||
mechs, sizeof(mechs)/sizeof(mechs[0]),
|
|
||||||
pMechanism, hKey, &o);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = dup_mechanism(&state->decrypt_mechanism, pMechanism);
|
|
||||||
if (ret == CKR_OK)
|
|
||||||
state->decrypt_object = OBJECT_ID(o);
|
|
||||||
|
|
||||||
return CKR_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CK_RV
|
|
||||||
C_Decrypt(CK_SESSION_HANDLE hSession,
|
|
||||||
CK_BYTE_PTR pEncryptedData,
|
|
||||||
CK_ULONG ulEncryptedDataLen,
|
|
||||||
CK_BYTE_PTR pData,
|
|
||||||
CK_ULONG_PTR pulDataLen)
|
|
||||||
{
|
|
||||||
CK_RV ret = CKR_FUNCTION_NOT_SUPPORTED;
|
|
||||||
#if 0
|
|
||||||
struct session_state *state;
|
|
||||||
struct st_object *o;
|
|
||||||
void *buffer = NULL;
|
|
||||||
RSA *rsa;
|
|
||||||
int padding, len, buffer_len, padding_len;
|
|
||||||
|
|
||||||
INIT_CONTEXT();
|
|
||||||
st_logf("Decrypt\n");
|
|
||||||
|
|
||||||
VERIFY_SESSION_HANDLE(hSession, &state);
|
|
||||||
|
|
||||||
if (state->decrypt_object == -1)
|
|
||||||
return CKR_ARGUMENTS_BAD;
|
|
||||||
|
|
||||||
o = soft_token.object.objs[state->decrypt_object];
|
|
||||||
|
|
||||||
if (o->u.private_key.key == NULL) {
|
|
||||||
st_logf("private key NULL\n");
|
|
||||||
return CKR_ARGUMENTS_BAD;
|
|
||||||
}
|
|
||||||
|
|
||||||
rsa = o->u.private_key.key->pkey.rsa;
|
|
||||||
|
|
||||||
if (rsa == NULL)
|
|
||||||
return CKR_ARGUMENTS_BAD;
|
|
||||||
|
|
||||||
RSA_blinding_off(rsa); /* XXX RAND is broken while running in mozilla ? */
|
|
||||||
|
|
||||||
buffer_len = RSA_size(rsa);
|
|
||||||
|
|
||||||
buffer = malloc(buffer_len);
|
|
||||||
if (buffer == NULL) {
|
|
||||||
ret = CKR_DEVICE_MEMORY;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = CKR_OK;
|
|
||||||
switch(state->decrypt_mechanism->mechanism) {
|
|
||||||
case CKM_RSA_PKCS:
|
|
||||||
padding = RSA_PKCS1_PADDING;
|
|
||||||
padding_len = RSA_PKCS1_PADDING_SIZE;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
ret = CKR_FUNCTION_NOT_SUPPORTED;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (buffer_len + padding_len < ulEncryptedDataLen) {
|
|
||||||
ret = CKR_ARGUMENTS_BAD;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pulDataLen == NULL) {
|
|
||||||
st_logf("pulDataLen NULL\n");
|
|
||||||
ret = CKR_ARGUMENTS_BAD;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pEncryptedData == NULL_PTR) {
|
|
||||||
st_logf("data NULL\n");
|
|
||||||
ret = CKR_ARGUMENTS_BAD;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
len = RSA_private_decrypt(ulEncryptedDataLen, pEncryptedData, buffer,
|
|
||||||
rsa, padding);
|
|
||||||
if (len <= 0) {
|
|
||||||
ret = CKR_DEVICE_ERROR;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
if (len > buffer_len)
|
|
||||||
abort();
|
|
||||||
|
|
||||||
if (pData != NULL_PTR)
|
|
||||||
memcpy(pData, buffer, len);
|
|
||||||
*pulDataLen = len;
|
|
||||||
|
|
||||||
out:
|
|
||||||
if (buffer) {
|
|
||||||
memset(buffer, 0, buffer_len);
|
|
||||||
free(buffer);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CK_RV
|
|
||||||
C_DecryptUpdate(CK_SESSION_HANDLE hSession,
|
|
||||||
CK_BYTE_PTR pEncryptedPart,
|
|
||||||
CK_ULONG ulEncryptedPartLen,
|
|
||||||
CK_BYTE_PTR pPart,
|
|
||||||
CK_ULONG_PTR pulPartLen)
|
|
||||||
|
|
||||||
{
|
|
||||||
st_logf("DecryptUpdate\n");
|
|
||||||
INIT_CONTEXT();
|
|
||||||
VERIFY_SESSION_HANDLE(hSession, NULL);
|
|
||||||
return CKR_FUNCTION_NOT_SUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CK_RV
|
|
||||||
C_DecryptFinal(CK_SESSION_HANDLE hSession,
|
|
||||||
CK_BYTE_PTR pLastPart,
|
|
||||||
CK_ULONG_PTR pulLastPartLen)
|
|
||||||
{
|
|
||||||
st_logf("DecryptFinal\n");
|
|
||||||
INIT_CONTEXT();
|
|
||||||
VERIFY_SESSION_HANDLE(hSession, NULL);
|
|
||||||
return CKR_FUNCTION_NOT_SUPPORTED;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
CK_RV
|
CK_RV
|
||||||
C_DigestInit(CK_SESSION_HANDLE hSession,
|
C_DigestInit(CK_SESSION_HANDLE hSession,
|
||||||
CK_MECHANISM_PTR pMechanism)
|
CK_MECHANISM_PTR pMechanism)
|
||||||
|
Reference in New Issue
Block a user