Add a return value to tls_prf_t.set_key()
This commit is contained in:
@@ -1483,13 +1483,14 @@ static bool derive_master(private_tls_crypto_t *this, chunk_t premaster,
|
|||||||
|
|
||||||
/* derive master secret */
|
/* derive master secret */
|
||||||
seed = chunk_cata("cc", client_random, server_random);
|
seed = chunk_cata("cc", client_random, server_random);
|
||||||
this->prf->set_key(this->prf, premaster);
|
|
||||||
if (!this->prf->get_bytes(this->prf, "master secret", seed,
|
if (!this->prf->set_key(this->prf, premaster) ||
|
||||||
sizeof(master), master))
|
!this->prf->get_bytes(this->prf, "master secret", seed,
|
||||||
|
sizeof(master), master) ||
|
||||||
|
!this->prf->set_key(this->prf, chunk_from_thing(master)))
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
this->prf->set_key(this->prf, chunk_from_thing(master));
|
|
||||||
|
|
||||||
if (this->cache && session.len)
|
if (this->cache && session.len)
|
||||||
{
|
{
|
||||||
@@ -1624,8 +1625,8 @@ METHOD(tls_crypto_t, resume_session, tls_cipher_suite_t,
|
|||||||
this->suite = select_cipher_suite(this, &this->suite, 1, KEY_ANY);
|
this->suite = select_cipher_suite(this, &this->suite, 1, KEY_ANY);
|
||||||
if (this->suite)
|
if (this->suite)
|
||||||
{
|
{
|
||||||
this->prf->set_key(this->prf, master);
|
if (!this->prf->set_key(this->prf, master) ||
|
||||||
if (!expand_keys(this, client_random, server_random))
|
!expand_keys(this, client_random, server_random))
|
||||||
{
|
{
|
||||||
this->suite = 0;
|
this->suite = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,10 +33,11 @@ struct private_tls_prf12_t {
|
|||||||
prf_t *prf;
|
prf_t *prf;
|
||||||
};
|
};
|
||||||
|
|
||||||
METHOD(tls_prf_t, set_key12, void,
|
METHOD(tls_prf_t, set_key12, bool,
|
||||||
private_tls_prf12_t *this, chunk_t key)
|
private_tls_prf12_t *this, chunk_t key)
|
||||||
{
|
{
|
||||||
this->prf->set_key(this->prf, key);
|
this->prf->set_key(this->prf, key);
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -136,13 +137,14 @@ struct private_tls_prf10_t {
|
|||||||
prf_t *sha1;
|
prf_t *sha1;
|
||||||
};
|
};
|
||||||
|
|
||||||
METHOD(tls_prf_t, set_key10, void,
|
METHOD(tls_prf_t, set_key10, bool,
|
||||||
private_tls_prf10_t *this, chunk_t key)
|
private_tls_prf10_t *this, chunk_t key)
|
||||||
{
|
{
|
||||||
size_t len = key.len / 2 + key.len % 2;
|
size_t len = key.len / 2 + key.len % 2;
|
||||||
|
|
||||||
this->md5->set_key(this->md5, chunk_create(key.ptr, len));
|
this->md5->set_key(this->md5, chunk_create(key.ptr, len));
|
||||||
this->sha1->set_key(this->sha1, chunk_create(key.ptr + key.len - len, len));
|
this->sha1->set_key(this->sha1, chunk_create(key.ptr + key.len - len, len));
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(tls_prf_t, get_bytes10, bool,
|
METHOD(tls_prf_t, get_bytes10, bool,
|
||||||
|
|||||||
@@ -34,8 +34,9 @@ struct tls_prf_t {
|
|||||||
* Set the key of the PRF function.
|
* Set the key of the PRF function.
|
||||||
*
|
*
|
||||||
* @param key key to set
|
* @param key key to set
|
||||||
|
* @return TRUE if key set successfully
|
||||||
*/
|
*/
|
||||||
void (*set_key)(tls_prf_t *this, chunk_t key);
|
bool (*set_key)(tls_prf_t *this, chunk_t key);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate a series of bytes using a label and a seed.
|
* Generate a series of bytes using a label and a seed.
|
||||||
|
|||||||
Reference in New Issue
Block a user