Added a keymat_t version to cast it safely
This commit is contained in:
@@ -946,6 +946,12 @@ METHOD(keymat_v1_t, confirm_iv, void,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
METHOD(keymat_t, get_version, ike_version_t,
|
||||||
|
private_keymat_v1_t *this)
|
||||||
|
{
|
||||||
|
return IKEV1;
|
||||||
|
}
|
||||||
|
|
||||||
METHOD(keymat_t, create_dh, diffie_hellman_t*,
|
METHOD(keymat_t, create_dh, diffie_hellman_t*,
|
||||||
private_keymat_v1_t *this, diffie_hellman_group_t group)
|
private_keymat_v1_t *this, diffie_hellman_group_t group)
|
||||||
{
|
{
|
||||||
@@ -984,6 +990,7 @@ keymat_v1_t *keymat_v1_create(bool initiator)
|
|||||||
INIT(this,
|
INIT(this,
|
||||||
.public = {
|
.public = {
|
||||||
.keymat = {
|
.keymat = {
|
||||||
|
.get_version = _get_version,
|
||||||
.create_dh = _create_dh,
|
.create_dh = _create_dh,
|
||||||
.get_aead = _get_aead,
|
.get_aead = _get_aead,
|
||||||
.destroy = _destroy,
|
.destroy = _destroy,
|
||||||
|
|||||||
@@ -71,6 +71,12 @@ struct private_keymat_v2_t {
|
|||||||
chunk_t skp_verify;
|
chunk_t skp_verify;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
METHOD(keymat_t, get_version, ike_version_t,
|
||||||
|
private_keymat_v2_t *this)
|
||||||
|
{
|
||||||
|
return IKEV2;
|
||||||
|
}
|
||||||
|
|
||||||
METHOD(keymat_t, create_dh, diffie_hellman_t*,
|
METHOD(keymat_t, create_dh, diffie_hellman_t*,
|
||||||
private_keymat_v2_t *this, diffie_hellman_group_t group)
|
private_keymat_v2_t *this, diffie_hellman_group_t group)
|
||||||
{
|
{
|
||||||
@@ -563,6 +569,7 @@ keymat_v2_t *keymat_v2_create(bool initiator)
|
|||||||
INIT(this,
|
INIT(this,
|
||||||
.public = {
|
.public = {
|
||||||
.keymat = {
|
.keymat = {
|
||||||
|
.get_version = _get_version,
|
||||||
.create_dh = _create_dh,
|
.create_dh = _create_dh,
|
||||||
.get_aead = _get_aead,
|
.get_aead = _get_aead,
|
||||||
.destroy = _destroy,
|
.destroy = _destroy,
|
||||||
|
|||||||
@@ -36,6 +36,13 @@ typedef struct keymat_t keymat_t;
|
|||||||
*/
|
*/
|
||||||
struct keymat_t {
|
struct keymat_t {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get IKE version of this keymat.
|
||||||
|
*
|
||||||
|
* @return IKEV1 for keymat_v1_t, IKEV2 for keymat_v2_t
|
||||||
|
*/
|
||||||
|
ike_version_t (*get_version)(keymat_t *this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a diffie hellman object for key agreement.
|
* Create a diffie hellman object for key agreement.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user