2 * Copyright (C) 2012 Reto Buerki
3 * Copyright (C) 2012 Adrian-Ken Rueegsegger
4 * Hochschule fuer Technik Rapperswil
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 #include <sa/ikev2/keymat_v2.h>
22 typedef struct tkm_keymat_t tkm_keymat_t
;
25 * Derivation and management of sensitive keying material, TKM variant.
30 * Implements keymat_v2_t.
32 keymat_v2_t keymat_v2
;
37 * @return id of associated ISA context.
39 isa_id_type (*get_isa_id
)(tkm_keymat_t
* const this);
42 * Set IKE AUTH payload.
44 * @param payload AUTH payload
46 void (*set_auth_payload
)(tkm_keymat_t
*this, const chunk_t
* const payload
);
49 * Get IKE AUTH payload.
51 * @return AUTH payload if set, chunk_empty otherwise
53 chunk_t
* (*get_auth_payload
)(tkm_keymat_t
* const this);
58 * Create TKM keymat instance.
60 * @param initiator TRUE if we are the initiator
61 * @return keymat instance
63 tkm_keymat_t
*tkm_keymat_create(bool initiator
);
65 #endif /** KEYMAT_TKM_H_ */