4 * @brief Generic payload interface
10 * Copyright (C) 2005 Jan Hutter, Martin Willi
11 * Hochschule fuer Technik Rapperswil
13 * This program is free software; you can redistribute it and/or modify it
14 * under the terms of the GNU General Public License as published by the
15 * Free Software Foundation; either version 2 of the License, or (at your
16 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
18 * This program is distributed in the hope that it will be useful, but
19 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
20 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
27 #include <payloads/ike_header.h>
28 #include <payloads/sa_payload.h>
29 #include <payloads/nonce_payload.h>
30 #include <payloads/ke_payload.h>
31 #include <payloads/notify_payload.h>
38 * build the mappings for payload_type_t
40 mapping_t payload_type_m
[] = {
41 {NO_PAYLOAD
, "NO_PAYLOAD"},
42 {SECURITY_ASSOCIATION
, "SECURITY_ASSOCIATION"},
43 {KEY_EXCHANGE
, "KEY_EXCHANGE"},
44 {ID_INITIATOR
, "ID_INITIATOR"},
45 {ID_RESPONDER
, "ID_RESPONDER"},
46 {CERTIFICATE
, "CERTIFICATE"},
47 {CERTIFICATE_REQUEST
, "CERTIFICATE_REQUEST"},
48 {AUTHENTICATION
, "AUTHENTICATION"},
52 {VENDOR_ID
, "VENDOR_ID"},
53 {TRAFFIC_SELECTOR_INITIATOR
, "TRAFFIC_SELECTOR_INITIATOR"},
54 {TRAFFIC_SELECTOR_RESPONDER
, "TRAFFIC_SELECTOR_RESPONDER"},
55 {ENCRYPTED
, "ENCRYPTED"},
56 {CONFIGURATION
, "CONFIGURATION"},
57 {EXTENSIBLE_AUTHENTICATION
, "EXTENSIBLE_AUTHENTICATION"},
59 {PROPOSAL_SUBSTRUCTURE
, "PROPOSAL_SUBSTRUCTURE"},
60 {TRANSFORM_SUBSTRUCTURE
, "TRANSFORM_SUBSTRUCTURE"},
61 {TRANSFORM_ATTRIBUTE
, "TRANSFORM_ATTRIBUTE"},
68 payload_t
*payload_create(payload_type_t type
)
73 return (payload_t
*)ike_header_create();
74 case SECURITY_ASSOCIATION
:
75 return (payload_t
*)sa_payload_create();
76 case PROPOSAL_SUBSTRUCTURE
:
77 return (payload_t
*)proposal_substructure_create();
78 case TRANSFORM_SUBSTRUCTURE
:
79 return (payload_t
*)transform_substructure_create();
80 case TRANSFORM_ATTRIBUTE
:
81 return (payload_t
*)transform_attribute_create();
83 return (payload_t
*)nonce_payload_create();
85 return (payload_t
*)ke_payload_create();
87 return (payload_t
*)notify_payload_create();