Add a return value to crypter_t.set_key()
This commit is contained in:
@@ -1430,7 +1430,7 @@ METHOD(crypter_t, get_key_size, size_t,
|
||||
return this->key_size;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, set_key, void,
|
||||
METHOD(crypter_t, set_key, bool,
|
||||
private_aes_crypter_t *this, chunk_t key)
|
||||
{
|
||||
u_int32_t *kf, *kt, rci, f = 0;
|
||||
@@ -1515,6 +1515,7 @@ METHOD(crypter_t, set_key, void,
|
||||
}
|
||||
cpy(kt, kf);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, destroy, void,
|
||||
|
||||
@@ -179,10 +179,11 @@ METHOD(crypter_t, get_key_size, size_t,
|
||||
return this->keymat_size;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, set_key, void,
|
||||
METHOD(crypter_t, set_key, bool,
|
||||
private_af_alg_crypter_t *this, chunk_t key)
|
||||
{
|
||||
this->ops->set_key(this->ops, key);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, destroy, void,
|
||||
|
||||
@@ -155,10 +155,11 @@ METHOD(crypter_t, get_key_size, size_t,
|
||||
return this->key_size;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, set_key, void,
|
||||
METHOD(crypter_t, set_key, bool,
|
||||
private_blowfish_crypter_t *this, chunk_t key)
|
||||
{
|
||||
BF_set_key(&this->schedule, key.len , key.ptr);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, destroy, void,
|
||||
|
||||
@@ -316,8 +316,7 @@ METHOD(aead_t, set_key, bool,
|
||||
{
|
||||
memcpy(this->salt, key.ptr + key.len - SALT_SIZE, SALT_SIZE);
|
||||
key.len -= SALT_SIZE;
|
||||
this->crypter->set_key(this->crypter, key);
|
||||
return TRUE;
|
||||
return this->crypter->set_key(this->crypter, key);
|
||||
}
|
||||
|
||||
METHOD(aead_t, destroy, void,
|
||||
|
||||
@@ -279,8 +279,8 @@ METHOD(mac_t, set_key, bool,
|
||||
memset(iv.ptr, 0, iv.len);
|
||||
l = chunk_alloca(this->b);
|
||||
memset(l.ptr, 0, l.len);
|
||||
this->k->set_key(this->k, resized);
|
||||
if (!this->k->encrypt(this->k, l, iv, NULL))
|
||||
if (!this->k->set_key(this->k, resized) ||
|
||||
!this->k->encrypt(this->k, l, iv, NULL))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -113,13 +113,13 @@ METHOD(crypter_t, get_key_size, size_t,
|
||||
+ sizeof(this->state.nonce);
|
||||
}
|
||||
|
||||
METHOD(crypter_t, set_key, void,
|
||||
METHOD(crypter_t, set_key, bool,
|
||||
private_ctr_ipsec_crypter_t *this, chunk_t key)
|
||||
{
|
||||
memcpy(this->state.nonce, key.ptr + key.len - sizeof(this->state.nonce),
|
||||
sizeof(this->state.nonce));
|
||||
key.len -= sizeof(this->state.nonce);
|
||||
this->crypter->set_key(this->crypter, key);
|
||||
return this->crypter->set_key(this->crypter, key);
|
||||
}
|
||||
|
||||
METHOD(crypter_t, destroy, void,
|
||||
|
||||
@@ -1541,18 +1541,20 @@ METHOD(crypter_t, get_key_size, size_t,
|
||||
return this->key_size;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, set_key, void,
|
||||
METHOD(crypter_t, set_key, bool,
|
||||
private_des_crypter_t *this, chunk_t key)
|
||||
{
|
||||
des_set_key((des_cblock*)(key.ptr), &this->ks);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, set_key3, void,
|
||||
METHOD(crypter_t, set_key3, bool,
|
||||
private_des_crypter_t *this, chunk_t key)
|
||||
{
|
||||
des_set_key((des_cblock*)(key.ptr) + 0, &this->ks3[0]);
|
||||
des_set_key((des_cblock*)(key.ptr) + 1, &this->ks3[1]);
|
||||
des_set_key((des_cblock*)(key.ptr) + 2, &this->ks3[2]);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, destroy, void,
|
||||
|
||||
@@ -348,8 +348,8 @@ METHOD(aead_t, set_key, bool,
|
||||
{
|
||||
memcpy(this->salt, key.ptr + key.len - SALT_SIZE, SALT_SIZE);
|
||||
key.len -= SALT_SIZE;
|
||||
this->crypter->set_key(this->crypter, key);
|
||||
return create_h(this, this->h);
|
||||
return this->crypter->set_key(this->crypter, key) &&
|
||||
create_h(this, this->h);
|
||||
}
|
||||
|
||||
METHOD(aead_t, destroy, void,
|
||||
|
||||
@@ -141,7 +141,7 @@ METHOD(crypter_t, get_key_size, size_t,
|
||||
return len;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, set_key, void,
|
||||
METHOD(crypter_t, set_key, bool,
|
||||
private_gcrypt_crypter_t *this, chunk_t key)
|
||||
{
|
||||
if (this->ctr_mode)
|
||||
@@ -151,7 +151,7 @@ METHOD(crypter_t, set_key, void,
|
||||
sizeof(this->ctr.nonce));
|
||||
key.len -= sizeof(this->ctr.nonce);
|
||||
}
|
||||
gcry_cipher_setkey(this->h, key.ptr, key.len);
|
||||
return gcry_cipher_setkey(this->h, key.ptr, key.len) == 0;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, destroy, void,
|
||||
|
||||
@@ -144,10 +144,11 @@ METHOD(crypter_t, get_key_size, size_t,
|
||||
return this->key.len;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, set_key, void,
|
||||
METHOD(crypter_t, set_key, bool,
|
||||
private_openssl_crypter_t *this, chunk_t key)
|
||||
{
|
||||
memcpy(this->key.ptr, key.ptr, min(key.len, this->key.len));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, destroy, void,
|
||||
|
||||
@@ -141,10 +141,11 @@ METHOD(crypter_t, get_key_size, size_t,
|
||||
return this->key.len;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, set_key, void,
|
||||
METHOD(crypter_t, set_key, bool,
|
||||
private_padlock_aes_crypter_t *this, chunk_t key)
|
||||
{
|
||||
memcpy(this->key.ptr, key.ptr, min(key.len, this->key.len));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
METHOD(crypter_t, destroy, void,
|
||||
|
||||
@@ -125,7 +125,6 @@ static status_t pem_decrypt(chunk_t *blob, encryption_algorithm_t alg,
|
||||
encryption_algorithm_names, alg);
|
||||
return NOT_SUPPORTED;
|
||||
}
|
||||
crypter->set_key(crypter, key);
|
||||
|
||||
if (iv.len != crypter->get_iv_size(crypter) ||
|
||||
blob->len % crypter->get_block_size(crypter))
|
||||
@@ -134,7 +133,8 @@ static status_t pem_decrypt(chunk_t *blob, encryption_algorithm_t alg,
|
||||
DBG1(DBG_ASN, " data size is not multiple of block size");
|
||||
return PARSE_ERROR;
|
||||
}
|
||||
if (!crypter->decrypt(crypter, *blob, iv, &decrypted))
|
||||
if (!crypter->set_key(crypter, key) ||
|
||||
!crypter->decrypt(crypter, *blob, iv, &decrypted))
|
||||
{
|
||||
crypter->destroy(crypter);
|
||||
return FAILED;
|
||||
|
||||
@@ -168,9 +168,8 @@ static private_key_t *decrypt_private_key(chunk_t blob,
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
crypter->set_key(crypter, key);
|
||||
if (!crypter->decrypt(crypter, blob, iv, &decrypted))
|
||||
if (!crypter->set_key(crypter, key) ||
|
||||
!crypter->decrypt(crypter, blob, iv, &decrypted))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -257,17 +257,16 @@ METHOD(mac_t, set_key, bool,
|
||||
memset(this->k2, 0x02, this->b);
|
||||
memset(this->k3, 0x03, this->b);
|
||||
|
||||
this->k1->set_key(this->k1, lengthened);
|
||||
if (!this->k1->encrypt(this->k1, chunk_create(this->k2, this->b), iv, NULL) ||
|
||||
if (!this->k1->set_key(this->k1, lengthened) ||
|
||||
!this->k1->encrypt(this->k1, chunk_create(this->k2, this->b), iv, NULL) ||
|
||||
!this->k1->encrypt(this->k1, chunk_create(this->k3, this->b), iv, NULL) ||
|
||||
!this->k1->encrypt(this->k1, k1, iv, NULL))
|
||||
!this->k1->encrypt(this->k1, k1, iv, NULL) ||
|
||||
!this->k1->set_key(this->k1, k1))
|
||||
{
|
||||
memwipe(k1.ptr, k1.len);
|
||||
return FALSE;
|
||||
}
|
||||
this->k1->set_key(this->k1, k1);
|
||||
|
||||
memwipe(k1.ptr, k1.len);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user