2007-04-10 06:01:03 +00:00
|
|
|
/*
|
2008-06-10 09:08:27 +00:00
|
|
|
* Copyright (C) 2007-2008 Tobias Brunner
|
2009-04-14 10:34:24 +00:00
|
|
|
* Copyright (C) 2005-2009 Martin Willi
|
2007-04-10 06:01:03 +00:00
|
|
|
* Copyright (C) 2005 Jan Hutter
|
|
|
|
* Hochschule fuer Technik Rapperswil
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
|
|
* under the terms of the GNU General Public License as published by the
|
|
|
|
* Free Software Foundation; either version 2 of the License, or (at your
|
|
|
|
* option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful, but
|
|
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
|
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
|
|
* for more details.
|
2008-03-13 14:14:44 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @defgroup peer_cfg peer_cfg
|
|
|
|
* @{ @ingroup config
|
2007-04-10 06:01:03 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef PEER_CFG_H_
|
|
|
|
#define PEER_CFG_H_
|
|
|
|
|
|
|
|
typedef enum cert_policy_t cert_policy_t;
|
2008-04-14 13:23:24 +00:00
|
|
|
typedef enum unique_policy_t unique_policy_t;
|
2007-04-10 06:01:03 +00:00
|
|
|
typedef struct peer_cfg_t peer_cfg_t;
|
|
|
|
|
|
|
|
#include <library.h>
|
|
|
|
#include <utils/identification.h>
|
2008-03-13 14:14:44 +00:00
|
|
|
#include <utils/enumerator.h>
|
2009-12-20 13:57:38 +00:00
|
|
|
#include <selectors/traffic_selector.h>
|
2007-04-10 06:01:03 +00:00
|
|
|
#include <config/proposal.h>
|
|
|
|
#include <config/ike_cfg.h>
|
|
|
|
#include <config/child_cfg.h>
|
|
|
|
#include <sa/authenticators/authenticator.h>
|
|
|
|
#include <sa/authenticators/eap/eap_method.h>
|
2010-07-05 09:54:25 +00:00
|
|
|
#include <credentials/auth_cfg.h>
|
2007-04-10 06:01:03 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Certificate sending policy. This is also used for certificate
|
|
|
|
* requests when using this definition for the other peer. If
|
|
|
|
* it is CERT_NEVER_SEND, a certreq is omitted, otherwise its
|
|
|
|
* included.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-04-10 06:01:03 +00:00
|
|
|
* @warning These definitions must be the same as in pluto/starter,
|
|
|
|
* as they are sent over the stroke socket.
|
|
|
|
*/
|
|
|
|
enum cert_policy_t {
|
|
|
|
/** always send certificates, even when not requested */
|
2009-09-04 12:50:23 +00:00
|
|
|
CERT_ALWAYS_SEND = 0,
|
2007-04-10 06:01:03 +00:00
|
|
|
/** send certificate upon cert request */
|
2009-09-04 12:50:23 +00:00
|
|
|
CERT_SEND_IF_ASKED = 1,
|
2007-04-10 06:01:03 +00:00
|
|
|
/** never send a certificate, even when requested */
|
2009-09-04 12:50:23 +00:00
|
|
|
CERT_NEVER_SEND = 2,
|
2007-04-10 06:01:03 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* enum strings for cert_policy_t
|
|
|
|
*/
|
|
|
|
extern enum_name_t *cert_policy_names;
|
|
|
|
|
2008-04-14 13:23:24 +00:00
|
|
|
/**
|
|
|
|
* Uniqueness of an IKE_SA, used to drop multiple connections with one peer.
|
|
|
|
*/
|
|
|
|
enum unique_policy_t {
|
|
|
|
/** do not check for client uniqueness */
|
|
|
|
UNIQUE_NO,
|
|
|
|
/** replace unique IKE_SAs if new ones get established */
|
|
|
|
UNIQUE_REPLACE,
|
|
|
|
/** keep existing IKE_SAs, close the new ones on connection attept */
|
|
|
|
UNIQUE_KEEP,
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* enum strings for unique_policy_t
|
|
|
|
*/
|
|
|
|
extern enum_name_t *unique_policy_names;
|
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Configuration of a peer, specified by IDs.
|
2007-04-10 06:01:03 +00:00
|
|
|
*
|
2007-04-11 07:20:39 +00:00
|
|
|
* The peer config defines a connection between two given IDs. It contains
|
|
|
|
* exactly one ike_cfg_t, which is use for initiation. Additionally, it contains
|
|
|
|
* multiple child_cfg_t defining which CHILD_SAs are allowed for this peer.
|
|
|
|
* @verbatim
|
2009-04-14 10:34:24 +00:00
|
|
|
+-------------------+ +---------------+
|
|
|
|
+---------------+ | peer_cfg | +---------------+ |
|
|
|
|
| ike_cfg | +-------------------+ | child_cfg | |
|
|
|
|
+---------------+ | - ids | +---------------+ |
|
|
|
|
| - hosts | 1 1 | - cas | 1 n | - proposals | |
|
|
|
|
| - proposals |<-----| - auth info |----->| - traffic sel | |
|
|
|
|
| - ... | | - dpd config | | - ... |-+
|
|
|
|
+---------------+ | - ... | +---------------+
|
|
|
|
+-------------------+
|
|
|
|
| 1 0 |
|
|
|
|
| |
|
|
|
|
v n n V
|
|
|
|
+-------------------+ +-------------------+
|
|
|
|
+-------------------+ | +-------------------+ |
|
|
|
|
| auth_cfg | | | auth_cfg | |
|
|
|
|
+-------------------+ | +-------------------+ |
|
|
|
|
| - local rules |-+ | - remote constr. |-+
|
|
|
|
+-------------------+ +-------------------+
|
2007-04-11 07:20:39 +00:00
|
|
|
@endverbatim
|
2009-04-14 10:34:24 +00:00
|
|
|
*
|
|
|
|
* Each peer_cfg has two lists of authentication config attached. Local
|
|
|
|
* authentication configs define how to authenticate ourself against the remote
|
|
|
|
* peer. Each config is enforced using the multiple authentication extension
|
2009-09-02 15:26:36 +00:00
|
|
|
* (RFC4739).
|
2009-04-14 10:34:24 +00:00
|
|
|
* The remote authentication configs are handled as constraints. The peer has
|
2011-07-20 13:57:53 +00:00
|
|
|
* to fulfill each of these rules (using multiple authentication, in any order)
|
2009-04-14 10:34:24 +00:00
|
|
|
* to gain access to the configuration.
|
2007-04-10 06:01:03 +00:00
|
|
|
*/
|
|
|
|
struct peer_cfg_t {
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get the name of the peer_cfg.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-04-10 06:01:03 +00:00
|
|
|
* Returned object is not getting cloned.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-04-10 06:01:03 +00:00
|
|
|
* @return peer_cfg's name
|
|
|
|
*/
|
|
|
|
char* (*get_name) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get the IKE version to use for initiating.
|
2007-04-10 06:01:03 +00:00
|
|
|
*
|
|
|
|
* @return IKE major version
|
|
|
|
*/
|
|
|
|
u_int (*get_ike_version)(peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get the IKE config to use for initiaton.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-04-10 06:01:03 +00:00
|
|
|
* @return the IKE config to use
|
|
|
|
*/
|
|
|
|
ike_cfg_t* (*get_ike_cfg) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Attach a CHILD config.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-04-10 06:01:03 +00:00
|
|
|
* @param child_cfg CHILD config to add
|
|
|
|
*/
|
|
|
|
void (*add_child_cfg) (peer_cfg_t *this, child_cfg_t *child_cfg);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Detach a CHILD config, pointed to by an enumerator.
|
|
|
|
*
|
|
|
|
* @param enumerator enumerator indicating element position
|
|
|
|
*/
|
|
|
|
void (*remove_child_cfg)(peer_cfg_t *this, enumerator_t *enumerator);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2008-03-13 14:14:44 +00:00
|
|
|
/**
|
|
|
|
* Create an enumerator for all attached CHILD configs.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2008-03-13 14:14:44 +00:00
|
|
|
* @return an enumerator over all CHILD configs.
|
2007-04-10 06:01:03 +00:00
|
|
|
*/
|
2008-03-13 14:14:44 +00:00
|
|
|
enumerator_t* (*create_child_cfg_enumerator) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Select a CHILD config from traffic selectors.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-04-10 06:01:03 +00:00
|
|
|
* @param my_ts TS for local side
|
|
|
|
* @param other_ts TS for remote side
|
|
|
|
* @param my_host host to narrow down dynamic TS for local side
|
|
|
|
* @param other_host host to narrow down dynamic TS for remote side
|
|
|
|
* @return selected CHILD config, or NULL if no match found
|
|
|
|
*/
|
|
|
|
child_cfg_t* (*select_child_cfg) (peer_cfg_t *this, linked_list_t *my_ts,
|
|
|
|
linked_list_t *other_ts, host_t *my_host,
|
|
|
|
host_t *other_host);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2009-04-14 10:34:24 +00:00
|
|
|
* Add an authentication config to the peer configuration.
|
2008-03-13 14:14:44 +00:00
|
|
|
*
|
2009-04-14 10:34:24 +00:00
|
|
|
* @param config config to add
|
|
|
|
* @param local TRUE for local rules, FALSE for remote constraints
|
2008-03-13 14:14:44 +00:00
|
|
|
*/
|
2009-04-14 10:34:24 +00:00
|
|
|
void (*add_auth_cfg)(peer_cfg_t *this, auth_cfg_t *cfg, bool local);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2009-04-14 10:34:24 +00:00
|
|
|
* Create an enumerator over registered authentication configs.
|
|
|
|
*
|
|
|
|
* @param local TRUE for local rules, FALSE for remote constraints
|
|
|
|
* @return enumerator over auth_cfg_t*
|
2007-04-10 06:01:03 +00:00
|
|
|
*/
|
2009-04-14 10:34:24 +00:00
|
|
|
enumerator_t* (*create_auth_cfg_enumerator)(peer_cfg_t *this, bool local);
|
2007-09-13 15:33:17 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Should be sent a certificate for this connection?
|
2007-04-10 06:01:03 +00:00
|
|
|
*
|
|
|
|
* @return certificate sending policy
|
|
|
|
*/
|
|
|
|
cert_policy_t (*get_cert_policy) (peer_cfg_t *this);
|
|
|
|
|
2008-04-14 13:23:24 +00:00
|
|
|
/**
|
|
|
|
* How to handle uniqueness of IKE_SAs?
|
|
|
|
*
|
|
|
|
* @return unique policy
|
|
|
|
*/
|
|
|
|
unique_policy_t (*get_unique_policy) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get the max number of retries after timeout.
|
2007-04-10 06:01:03 +00:00
|
|
|
*
|
|
|
|
* @return max number retries
|
|
|
|
*/
|
|
|
|
u_int32_t (*get_keyingtries) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get a time to start rekeying (is randomized with jitter).
|
2007-04-10 06:01:03 +00:00
|
|
|
*
|
2007-11-20 12:06:40 +00:00
|
|
|
* @return time in s when to start rekeying, 0 disables rekeying
|
2007-04-10 06:01:03 +00:00
|
|
|
*/
|
2007-11-20 12:06:40 +00:00
|
|
|
u_int32_t (*get_rekey_time)(peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get a time to start reauthentication (is randomized with jitter).
|
2007-11-20 12:06:40 +00:00
|
|
|
*
|
|
|
|
* @return time in s when to start reauthentication, 0 disables it
|
|
|
|
*/
|
|
|
|
u_int32_t (*get_reauth_time)(peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-11-20 12:06:40 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get the timeout of a rekeying/reauthenticating SA.
|
2007-11-20 12:06:40 +00:00
|
|
|
*
|
|
|
|
* @return timeout in s
|
2007-04-10 06:01:03 +00:00
|
|
|
*/
|
2007-11-20 12:06:40 +00:00
|
|
|
u_int32_t (*get_over_time)(peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-08-29 12:11:25 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Use MOBIKE (RFC4555) if peer supports it?
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-08-29 12:11:25 +00:00
|
|
|
* @return TRUE to enable MOBIKE support
|
|
|
|
*/
|
|
|
|
bool (*use_mobike) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get the DPD check interval.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-04-10 06:01:03 +00:00
|
|
|
* @return dpd_delay in seconds
|
|
|
|
*/
|
2008-04-11 08:14:48 +00:00
|
|
|
u_int32_t (*get_dpd) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get a virtual IP for the local peer.
|
2007-05-22 13:49:31 +00:00
|
|
|
*
|
|
|
|
* If no virtual IP should be used, NULL is returned. %any means to request
|
|
|
|
* a virtual IP using configuration payloads. A specific address is also
|
|
|
|
* used for a request and may be changed by the server.
|
|
|
|
*
|
|
|
|
* @param suggestion NULL, %any or specific
|
2008-04-09 12:54:47 +00:00
|
|
|
* @return virtual IP, %any or NULL
|
2007-05-22 13:49:31 +00:00
|
|
|
*/
|
2008-04-09 12:54:47 +00:00
|
|
|
host_t* (*get_virtual_ip) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-05-22 13:49:31 +00:00
|
|
|
/**
|
2008-04-09 12:54:47 +00:00
|
|
|
* Get the name of the pool to acquire configuration attributes from.
|
2007-05-22 13:49:31 +00:00
|
|
|
*
|
2008-04-09 12:54:47 +00:00
|
|
|
* @return pool name, NULL if none defined
|
2007-04-10 06:01:03 +00:00
|
|
|
*/
|
2008-04-09 12:54:47 +00:00
|
|
|
char* (*get_pool)(peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2008-03-26 18:40:19 +00:00
|
|
|
#ifdef ME
|
2007-10-03 15:10:41 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Is this a mediation connection?
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-10-03 15:10:41 +00:00
|
|
|
* @return TRUE, if this is a mediation connection
|
|
|
|
*/
|
|
|
|
bool (*is_mediation) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-10-03 15:10:41 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get peer_cfg of the connection this one is mediated through.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2008-04-03 15:13:25 +00:00
|
|
|
* @return the peer_cfg of the mediation connection
|
2007-10-03 15:10:41 +00:00
|
|
|
*/
|
|
|
|
peer_cfg_t* (*get_mediated_by) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-10-03 15:10:41 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Get the id of the other peer at the mediation server.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-10-03 15:10:41 +00:00
|
|
|
* This is the leftid of the peer's connection with the mediation server.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-10-03 15:10:41 +00:00
|
|
|
* If it is not configured, it is assumed to be the same as the right id
|
2009-09-02 15:26:36 +00:00
|
|
|
* of this connection.
|
|
|
|
*
|
2007-10-03 15:10:41 +00:00
|
|
|
* @return the id of the other peer
|
|
|
|
*/
|
|
|
|
identification_t* (*get_peer_id) (peer_cfg_t *this);
|
2008-03-26 18:40:19 +00:00
|
|
|
#endif /* ME */
|
2008-03-26 10:06:45 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Check if two peer configurations are equal.
|
|
|
|
*
|
|
|
|
* This method does not compare associated ike/child_cfg.
|
|
|
|
*
|
|
|
|
* @param other candidate to check for equality against this
|
|
|
|
* @return TRUE if peer_cfg and ike_cfg are equal
|
|
|
|
*/
|
|
|
|
bool (*equals)(peer_cfg_t *this, peer_cfg_t *other);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-05-06 10:55:42 +00:00
|
|
|
* Increase reference count.
|
2007-04-10 06:01:03 +00:00
|
|
|
*
|
2008-05-06 10:55:42 +00:00
|
|
|
* @return reference to this
|
2007-04-10 06:01:03 +00:00
|
|
|
*/
|
2008-05-06 10:55:42 +00:00
|
|
|
peer_cfg_t* (*get_ref) (peer_cfg_t *this);
|
2009-09-04 11:46:09 +00:00
|
|
|
|
2007-04-10 06:01:03 +00:00
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Destroys the peer_cfg object.
|
2007-04-10 06:01:03 +00:00
|
|
|
*
|
|
|
|
* Decrements the internal reference counter and
|
|
|
|
* destroys the peer_cfg when it reaches zero.
|
|
|
|
*/
|
|
|
|
void (*destroy) (peer_cfg_t *this);
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
2008-03-13 14:14:44 +00:00
|
|
|
* Create a configuration object for IKE_AUTH and later.
|
2009-09-02 15:26:36 +00:00
|
|
|
*
|
2007-04-10 06:01:03 +00:00
|
|
|
* name-string gets cloned, ID's not.
|
|
|
|
* Virtual IPs are used if they are != NULL. A %any host means the virtual
|
|
|
|
* IP should be obtained from the other peer.
|
|
|
|
* Lifetimes are in seconds. To prevent to peers to start rekeying at the
|
|
|
|
* same time, a jitter may be specified. Rekeying of an SA starts at
|
2009-09-02 15:26:36 +00:00
|
|
|
* (rekeylifetime - random(0, jitter)).
|
|
|
|
*
|
2007-04-10 06:01:03 +00:00
|
|
|
* @param name name of the peer_cfg
|
2011-07-20 13:57:53 +00:00
|
|
|
* @param ike_version which IKE version we should use for this peer
|
2007-04-10 06:01:03 +00:00
|
|
|
* @param ike_cfg IKE config to use when acting as initiator
|
|
|
|
* @param cert_policy should we send a certificate payload?
|
2008-04-14 13:23:24 +00:00
|
|
|
* @param unique uniqueness of an IKE_SA
|
2007-04-10 06:01:03 +00:00
|
|
|
* @param keyingtries how many keying tries should be done before giving up
|
2007-11-20 12:06:40 +00:00
|
|
|
* @param rekey_time timeout before starting rekeying
|
|
|
|
* @param reauth_time timeout before starting reauthentication
|
2011-07-20 13:57:53 +00:00
|
|
|
* @param jitter_time timerange to randomly subtract from rekey/reauth time
|
2007-11-20 12:06:40 +00:00
|
|
|
* @param over_time maximum overtime before closing a rekeying/reauth SA
|
2007-10-01 12:19:39 +00:00
|
|
|
* @param mobike use MOBIKE (RFC4555) if peer supports it
|
2008-04-11 08:14:48 +00:00
|
|
|
* @param dpd DPD check interval, 0 to disable
|
2008-04-09 12:54:47 +00:00
|
|
|
* @param virtual_ip virtual IP for local host, or NULL
|
|
|
|
* @param pool pool name to get configuration attributes from, or NULL
|
2008-03-26 18:40:19 +00:00
|
|
|
* @param mediation TRUE if this is a mediation connection
|
|
|
|
* @param mediated_by peer_cfg_t of the mediation connection to mediate through
|
2007-10-03 15:10:41 +00:00
|
|
|
* @param peer_id ID that identifies our peer at the mediation server
|
2007-04-10 06:01:03 +00:00
|
|
|
* @return peer_cfg_t object
|
|
|
|
*/
|
2009-03-24 17:43:01 +00:00
|
|
|
peer_cfg_t *peer_cfg_create(char *name, u_int ike_version, ike_cfg_t *ike_cfg,
|
2008-04-14 13:23:24 +00:00
|
|
|
cert_policy_t cert_policy, unique_policy_t unique,
|
2007-11-20 12:06:40 +00:00
|
|
|
u_int32_t keyingtries, u_int32_t rekey_time,
|
|
|
|
u_int32_t reauth_time, u_int32_t jitter_time,
|
2008-04-11 08:14:48 +00:00
|
|
|
u_int32_t over_time, bool mobike, u_int32_t dpd,
|
2008-04-09 12:54:47 +00:00
|
|
|
host_t *virtual_ip, char *pool,
|
2008-03-26 18:40:19 +00:00
|
|
|
bool mediation, peer_cfg_t *mediated_by,
|
2007-10-03 15:10:41 +00:00
|
|
|
identification_t *peer_id);
|
2007-04-10 06:01:03 +00:00
|
|
|
|
2009-03-24 17:43:01 +00:00
|
|
|
#endif /** PEER_CFG_H_ @}*/
|