diff options
Diffstat (limited to 'src/libstrongswan/crypto/proposal/proposal_keywords.h')
-rw-r--r-- | src/libstrongswan/crypto/proposal/proposal_keywords.h | 62 |
1 files changed, 54 insertions, 8 deletions
diff --git a/src/libstrongswan/crypto/proposal/proposal_keywords.h b/src/libstrongswan/crypto/proposal/proposal_keywords.h index ad9e82a36..05f8958e0 100644 --- a/src/libstrongswan/crypto/proposal/proposal_keywords.h +++ b/src/libstrongswan/crypto/proposal/proposal_keywords.h @@ -1,4 +1,19 @@ /* + * Copyright (C) 2012 Tobias Brunner + * 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. + */ + +/* * Copyright (c) 2012 Nanoteq Pty Ltd * * Permission is hereby granted, free of charge, to any person obtaining a copy @@ -28,14 +43,16 @@ #ifndef PROPOSAL_KEYWORDS_H_ #define PROPOSAL_KEYWORDS_H_ -#include <crypto/transform.h> +typedef struct proposal_token_t proposal_token_t; +typedef struct proposal_keywords_t proposal_keywords_t; -typedef struct proposal_token proposal_token_t; +#include <library.h> +#include <crypto/transform.h> /** * Class representing a proposal token.. */ -struct proposal_token { +struct proposal_token_t { /** * The name of the token. @@ -59,11 +76,40 @@ struct proposal_token { }; /** - * Returns a proposal token for the specified string if a token exists. - * - * @param str the string containing the name of the token - * @return proposal_tolen if found otherwise NULL + * Class to manage proposal keywords + */ +struct proposal_keywords_t { + + /** + * Returns the proposal token for the specified string if a token exists. + * + * @param str the string containing the name of the token + * @return proposal_token if found, NULL otherwise + */ + const proposal_token_t *(*get_token)(proposal_keywords_t *this, + const char *str); + + /** + * Register a new proposal token for an algorithm. + * + * @param name the string containing the name of the token + * @param type the transform_type_t for the token + * @param algorithm the IKE id of the algorithm + * @param keysize the key size associated with the specific algorithm + */ + void (*register_token)(proposal_keywords_t *this, const char *name, + transform_type_t type, u_int16_t algorithm, + u_int16_t keysize); + + /** + * Destroy a proposal_keywords_t instance. + */ + void (*destroy)(proposal_keywords_t *this); +}; + +/** + * Create a proposal_keywords_t instance. */ -const proposal_token_t* proposal_get_token(const char *str); +proposal_keywords_t *proposal_keywords_create(); #endif /** PROPOSAL_KEYWORDS_H_ @}*/ |