| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #ifndef IKE_ALG_PRF_IKEv2_OPS_H |
| #define IKE_ALG_PRF_IKEv2_OPS_H |
| |
| #include "chunk.h" |
| #include "shunk.h" |
| #include "crypt_mac.h" |
| |
| struct logger; |
| |
| struct prf_ikev2_ops { |
| const char *backend; |
| |
| |
| |
| |
| PK11SymKey *(*prfplus)(const struct prf_desc *prf_desc, |
| PK11SymKey *key, PK11SymKey *seed, |
| size_t required_keymat, |
| struct logger *logger); |
| |
| PK11SymKey *(*ike_sa_skeyseed)(const struct prf_desc *prf_desc, |
| const chunk_t Ni, const chunk_t Nr, |
| PK11SymKey *dh_secret, |
| struct logger *logger); |
| |
| PK11SymKey *(*ike_sa_rekey_skeyseed)(const struct prf_desc *prf_desc, |
| PK11SymKey *old_SK_d, |
| PK11SymKey *new_dh_secret, |
| const chunk_t Ni, const chunk_t Nr, |
| struct logger *logger); |
| |
| PK11SymKey *(*ike_sa_keymat)(const struct prf_desc *prf_desc, |
| PK11SymKey *skeyseed, |
| const chunk_t Ni, const chunk_t Nr, |
| const shunk_t SPIi, const shunk_t SPIr, |
| size_t required_bytes, |
| struct logger *logger); |
| |
| PK11SymKey *(*child_sa_keymat)(const struct prf_desc *prf_desc, |
| PK11SymKey *SK_d, |
| PK11SymKey *new_dh_secret, |
| const chunk_t Ni, const chunk_t Nr, |
| size_t required_bytes, |
| struct logger *logger); |
| |
| struct crypt_mac (*psk_auth)(const struct prf_desc *prf_desc, chunk_t pss, |
| chunk_t first_packet, chunk_t nonce, |
| const struct crypt_mac *id_hash, |
| struct logger *logger, bool use_intermediate, chunk_t intermediate_packet); |
| }; |
| |
| extern const struct prf_ikev2_ops ike_alg_prf_ikev2_mac_ops; |
| #ifdef USE_NSS_KDF |
| extern const struct prf_ikev2_ops ike_alg_prf_ikev2_nss_ops; |
| #endif |
| |
| #endif |