.get_aead = _get_aead,
.destroy = _destroy,
},
+ .create_qske = (void*)return_null,
.derive_ike_keys = _derive_ike_keys,
.derive_ike_keys_ppk = (void*)return_false,
.derive_child_keys = _derive_child_keys,
/*
- * Copyright (C) 2015 Tobias Brunner
+ * Copyright (C) 2015-2018 Tobias Brunner
* Copyright (C) 2008 Martin Willi
* HSR Hochschule fuer Technik Rapperswil
*
return lib->crypto->create_dh(lib->crypto, group);
}
+METHOD(keymat_v2_t, create_qske, qske_t*,
+ private_keymat_v2_t *this, qske_mechanism_t mechanism)
+{
+ return lib->crypto->create_qske(lib->crypto, mechanism);
+}
+
METHOD(keymat_t, create_nonce_gen, nonce_gen_t*,
private_keymat_v2_t *this)
{
.get_aead = _get_aead,
.destroy = _destroy,
},
+ .create_qske = _create_qske,
.derive_ike_keys = _derive_ike_keys,
.derive_ike_keys_ppk = _derive_ike_keys_ppk,
.derive_child_keys = _derive_child_keys,
/*
- * Copyright (C) 2011-2015 Tobias Brunner
+ * Copyright (C) 2011-2018 Tobias Brunner
* HSR Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
*/
keymat_t keymat;
+ /**
+ * Create a QSKE object.
+ *
+ * Only QSKE objects allocated through this method are passed to other
+ * keymat_t methods, allowing private QSKE implementations.
+ *
+ * @param mechanism QSKE mechanism
+ * @return QSKE object, NULL if mechanism not supported
+ */
+ qske_t* (*create_qske)(keymat_v2_t *this, qske_mechanism_t mechanism);
+
/**
* Derive keys for the IKE_SA.
*
chunk_t nonce_i, chunk_t nonce_r,
chunk_t *encr_i, chunk_t *integ_i,
chunk_t *encr_r, chunk_t *integ_r);
+
/**
* Get SKd to pass to derive_ikey_keys() during rekeying.
*