aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/threads/kernel_interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/charon/threads/kernel_interface.h')
-rw-r--r--src/charon/threads/kernel_interface.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/charon/threads/kernel_interface.h b/src/charon/threads/kernel_interface.h
index 6c9a181ed..9d5846f34 100644
--- a/src/charon/threads/kernel_interface.h
+++ b/src/charon/threads/kernel_interface.h
@@ -26,6 +26,7 @@
#include <linux/xfrm.h>
#include <utils/host.h>
+#include <crypto/prf_plus.h>
#include <encoding/payloads/proposal_substructure.h>
typedef struct kernel_interface_t kernel_interface_t;
@@ -70,7 +71,9 @@ struct kernel_interface_t {
* SPI (via get_spi). In this case, the replace
* flag must be set.
* This function does install a single SA for a
- * single protocol in one direction.
+ * single protocol in one direction. The kernel-interface
+ * gets the keys itself from the PRF, as we don't know
+ * his algorithms and key sizes.
*
* @param this calling object
* @param src source address for this SA
@@ -81,9 +84,8 @@ struct kernel_interface_t {
* @param expire_soft lifetime in seconds before rekeying
* @param expire_hard lieftime in seconds before delete
* @param enc_alg Algorithm to use for encryption (ESP only)
- * @param enc_key Key to use for encryption
* @param int_alg Algorithm to use for integrity protection
- * @param int_key Key for integrity protection
+ * @param prf_plus PRF to derive keys
* @param replace Should an already installed SA be updated?
* @return
* - SUCCESS
@@ -96,10 +98,9 @@ struct kernel_interface_t {
u_int32_t reqid,
u_int64_t expire_soft,
u_int64_t expire_hard,
- encryption_algorithm_t enc_alg,
- chunk_t enc_key,
- integrity_algorithm_t int_alg,
- chunk_t int_key,
+ algorithm_t *enc_alg,
+ algorithm_t *int_alg,
+ prf_plus_t *prf_plus,
bool replace);
/**
* @brief Delete a previusly installed SA from the SAD.