diff options
author | Martin Willi <martin@strongswan.org> | 2005-11-23 09:57:18 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2005-11-23 09:57:18 +0000 |
commit | 4a962238848168cba23363854be971b17e04aa92 (patch) | |
tree | 07836f0ce0c90f4e991e2beb41091359075a52d4 /Source/charon/encoding/payloads/nonce_payload.h | |
parent | 716abc9f8332c040df6e296104fd11ec5ac6b8cc (diff) | |
download | strongswan-4a962238848168cba23363854be971b17e04aa92.tar.bz2 strongswan-4a962238848168cba23363854be971b17e04aa92.tar.xz |
- created encoding package
Diffstat (limited to 'Source/charon/encoding/payloads/nonce_payload.h')
-rw-r--r-- | Source/charon/encoding/payloads/nonce_payload.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/Source/charon/encoding/payloads/nonce_payload.h b/Source/charon/encoding/payloads/nonce_payload.h new file mode 100644 index 000000000..7768fa990 --- /dev/null +++ b/Source/charon/encoding/payloads/nonce_payload.h @@ -0,0 +1,93 @@ +/** + * @file nonce_payload.h + * + * @brief Declaration of the class nonce_payload_t. + * + * An object of this type represents an IKEv2 Nonce-Payload. + * + */ + +/* + * Copyright (C) 2005 Jan Hutter, Martin Willi + * 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. + */ + +#ifndef NONCE_PAYLOAD_H_ +#define NONCE_PAYLOAD_H_ + +#include <types.h> +#include <encoding/payloads/payload.h> + +/** + * length of a nonce payload without a nonce in int + */ +#define NONCE_PAYLOAD_HEADER_LENGTH 4 + +/** + * Object representing an IKEv2 Nonce payload + * + * The Nonce payload format is described in draft section 3.3. + * + */ +typedef struct nonce_payload_s nonce_payload_t; + +struct nonce_payload_s { + /** + * implements payload_t interface + */ + payload_t payload_interface; + + /** + * @brief Set the nonce value. + * + * The nonce must have length between 16 and 256 bytes + * + * @param this calling nonce_payload_t object + * @param nonce chunk containing the nonce, will be cloned + * @return + * - SUCCESS or + * - INVALID_ARG, if nonce has an invalid size + */ + status_t (*set_nonce) (nonce_payload_t *this, chunk_t nonce); + + /** + * @brief Get the nonce value. + * + * @param this calling nonce_payload_t object + * @param[out] nonce chunk where nonce data is located (cloned) + * @return SUCCESS in any case + */ + status_t (*get_nonce) (nonce_payload_t *this, chunk_t *nonce); + + /** + * @brief Destroys an nonce_payload_t object. + * + * @param this nonce_payload_t object to destroy + * @return + * SUCCESS in any case + */ + status_t (*destroy) (nonce_payload_t *this); +}; + +/** + * @brief Creates an empty nonce_payload_t object + * + * @return + * - created nonce_payload_t object, or + * - NULL if failed + */ + +nonce_payload_t *nonce_payload_create(); + + +#endif /*NONCE_PAYLOAD_H_*/ |