Use bits instead of bytes for a private/public key
This commit is contained in:
@@ -306,10 +306,10 @@ METHOD(private_key_t, decrypt, bool,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_keysize, size_t,
|
||||
METHOD(private_key_t, get_keysize, int,
|
||||
private_agent_private_key_t *this)
|
||||
{
|
||||
return this->key_size;
|
||||
return this->key_size * 8;
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_public_key, public_key_t*,
|
||||
|
||||
@@ -277,10 +277,10 @@ METHOD(private_key_t, decrypt, bool,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_keysize, size_t,
|
||||
METHOD(private_key_t, get_keysize, int,
|
||||
private_gcrypt_rsa_private_key_t *this)
|
||||
{
|
||||
return gcry_pk_get_nbits(this->key) / 8;
|
||||
return gcry_pk_get_nbits(this->key);
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_public_key, public_key_t*,
|
||||
|
||||
@@ -228,10 +228,10 @@ METHOD(public_key_t, encrypt_, bool,
|
||||
return !!encrypted->len;
|
||||
}
|
||||
|
||||
METHOD(public_key_t, get_keysize, size_t,
|
||||
METHOD(public_key_t, get_keysize, int,
|
||||
private_gcrypt_rsa_public_key_t *this)
|
||||
{
|
||||
return gcry_pk_get_nbits(this->key) / 8;
|
||||
return gcry_pk_get_nbits(this->key);
|
||||
}
|
||||
|
||||
METHOD(public_key_t, get_encoding, bool,
|
||||
|
||||
@@ -250,7 +250,7 @@ static bool build_emsa_pkcs1_signature(private_gmp_rsa_private_key_t *this,
|
||||
{
|
||||
free(digestInfo.ptr);
|
||||
DBG1(DBG_LIB, "unable to sign %d bytes using a %dbit key", data.len,
|
||||
this->k * 8);
|
||||
mpz_sizeinbase(this->n, 2));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -356,10 +356,10 @@ end:
|
||||
return success;
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_keysize, size_t,
|
||||
METHOD(private_key_t, get_keysize, int,
|
||||
private_gmp_rsa_private_key_t *this)
|
||||
{
|
||||
return this->k;
|
||||
return mpz_sizeinbase(this->n, 2);
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_public_key, public_key_t*,
|
||||
|
||||
@@ -375,10 +375,10 @@ METHOD(public_key_t, encrypt_, bool,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
METHOD(public_key_t, get_keysize, size_t,
|
||||
METHOD(public_key_t, get_keysize, int,
|
||||
private_gmp_rsa_public_key_t *this)
|
||||
{
|
||||
return this->k;
|
||||
return mpz_sizeinbase(this->n, 2);
|
||||
}
|
||||
|
||||
METHOD(public_key_t, get_encoding, bool,
|
||||
|
||||
@@ -178,10 +178,20 @@ METHOD(private_key_t, decrypt, bool,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_keysize, size_t,
|
||||
METHOD(private_key_t, get_keysize, int,
|
||||
private_openssl_ec_private_key_t *this)
|
||||
{
|
||||
return EC_FIELD_ELEMENT_LEN(EC_KEY_get0_group(this->ec));
|
||||
switch (EC_GROUP_get_curve_name(EC_KEY_get0_group(this->ec)))
|
||||
{
|
||||
case NID_X9_62_prime256v1:
|
||||
return 256;
|
||||
case NID_secp384r1:
|
||||
return 384;
|
||||
case NID_secp521r1:
|
||||
return 521;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_type, key_type_t,
|
||||
|
||||
@@ -176,10 +176,20 @@ METHOD(public_key_t, encrypt, bool,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
METHOD(public_key_t, get_keysize, size_t,
|
||||
METHOD(public_key_t, get_keysize, int,
|
||||
private_openssl_ec_public_key_t *this)
|
||||
{
|
||||
return EC_FIELD_ELEMENT_LEN(EC_KEY_get0_group(this->ec));
|
||||
switch (EC_GROUP_get_curve_name(EC_KEY_get0_group(this->ec)))
|
||||
{
|
||||
case NID_X9_62_prime256v1:
|
||||
return 256;
|
||||
case NID_secp384r1:
|
||||
return 384;
|
||||
case NID_secp521r1:
|
||||
return 521;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -173,10 +173,10 @@ METHOD(private_key_t, decrypt, bool,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_keysize, size_t,
|
||||
METHOD(private_key_t, get_keysize, int,
|
||||
private_openssl_rsa_private_key_t *this)
|
||||
{
|
||||
return RSA_size(this->rsa);
|
||||
return RSA_size(this->rsa) * 8;
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_public_key, public_key_t*,
|
||||
|
||||
@@ -155,10 +155,10 @@ METHOD(public_key_t, encrypt, bool,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
METHOD(public_key_t, get_keysize, size_t,
|
||||
METHOD(public_key_t, get_keysize, int,
|
||||
private_openssl_rsa_public_key_t *this)
|
||||
{
|
||||
return RSA_size(this->rsa);
|
||||
return RSA_size(this->rsa) * 8;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -80,7 +80,7 @@ METHOD(private_key_t, get_type, key_type_t,
|
||||
return this->pubkey->get_type(this->pubkey);
|
||||
}
|
||||
|
||||
METHOD(private_key_t, get_keysize, size_t,
|
||||
METHOD(private_key_t, get_keysize, int,
|
||||
private_pkcs11_private_key_t *this)
|
||||
{
|
||||
return this->pubkey->get_keysize(this->pubkey);
|
||||
@@ -178,7 +178,7 @@ METHOD(private_key_t, sign, bool,
|
||||
DBG1(DBG_LIB, "C_SignInit() failed: %N", ck_rv_names, rv);
|
||||
return FALSE;
|
||||
}
|
||||
len = get_keysize(this);
|
||||
len = (get_keysize(this) + 7) / 8;
|
||||
buf = malloc(len);
|
||||
rv = this->lib->f->C_Sign(this->session, data.ptr, data.len, buf, &len);
|
||||
this->mutex->unlock(this->mutex);
|
||||
|
||||
@@ -125,10 +125,10 @@ METHOD(public_key_t, encrypt, bool,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
METHOD(public_key_t, get_keysize, size_t,
|
||||
METHOD(public_key_t, get_keysize, int,
|
||||
private_pkcs11_public_key_t *this)
|
||||
{
|
||||
return this->k;
|
||||
return this->k * 8;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user