diff options
author | Martin Willi <martin@revosec.ch> | 2011-11-16 09:29:38 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-03-20 17:30:40 +0100 |
commit | b0b9d185931e7f88f0f7c89e9ef4e6034ac38dd3 (patch) | |
tree | 4aa8013d6126f2205d6d98df6ac102a511bacf8a /src/libcharon/encoding/payloads/sa_payload.h | |
parent | 8f3aea2f774c5647c6cb7e4da664c6323f5cc669 (diff) | |
download | strongswan-b0b9d185931e7f88f0f7c89e9ef4e6034ac38dd3.tar.bz2 strongswan-b0b9d185931e7f88f0f7c89e9ef4e6034ac38dd3.tar.xz |
Extend sa_payload for IKEv1 support
Diffstat (limited to 'src/libcharon/encoding/payloads/sa_payload.h')
-rw-r--r-- | src/libcharon/encoding/payloads/sa_payload.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/libcharon/encoding/payloads/sa_payload.h b/src/libcharon/encoding/payloads/sa_payload.h index cc8c481c8..11fc774e5 100644 --- a/src/libcharon/encoding/payloads/sa_payload.h +++ b/src/libcharon/encoding/payloads/sa_payload.h @@ -30,12 +30,17 @@ typedef struct sa_payload_t sa_payload_t; #include <utils/linked_list.h> /** - * SA_PAYLOAD length in bytes without any proposal substructure. + * SECURITY_ASSOCIATION length in bytes without any proposal substructure. */ #define SA_PAYLOAD_HEADER_LENGTH 4 /** - * Class representing an IKEv2-SA Payload. + * SECURITY_ASSOCIATION_V1 length in bytes without any proposal substructure. + */ +#define SA_PAYLOAD_V1_HEADER_LENGTH 12 + +/** + * Class representing an IKEv1 or IKEv2 SA Payload. * * The SA Payload format is described in RFC section 3.3. */ @@ -76,17 +81,20 @@ struct sa_payload_t { /** * Creates an empty sa_payload_t object * + * @param type SECURITY_ASSOCIATION or SECURITY_ASSOCIATION_V1 * @return created sa_payload_t object */ -sa_payload_t *sa_payload_create(void); +sa_payload_t *sa_payload_create(payload_type_t type); /** * Creates a sa_payload_t object from a list of proposals. * + * @param type SECURITY_ASSOCIATION or SECURITY_ASSOCIATION_V1 * @param proposals list of proposals to build the payload from * @return sa_payload_t object */ -sa_payload_t *sa_payload_create_from_proposal_list(linked_list_t *proposals); +sa_payload_t *sa_payload_create_from_proposal_list(payload_type_t type, + linked_list_t *proposals); /** * Creates a sa_payload_t object from a single proposal. @@ -94,9 +102,11 @@ sa_payload_t *sa_payload_create_from_proposal_list(linked_list_t *proposals); * This is only for convenience. Use sa_payload_create_from_proposal_list * if you want to add more than one proposal. * + * @param type SECURITY_ASSOCIATION or SECURITY_ASSOCIATION_V1 * @param proposal proposal from which the payload should be built. * @return sa_payload_t object */ -sa_payload_t *sa_payload_create_from_proposal(proposal_t *proposal); +sa_payload_t *sa_payload_create_from_proposal(payload_type_t type, + proposal_t *proposal); #endif /** SA_PAYLOAD_H_ @}*/ |