diff options
author | Tobias Brunner <tobias@strongswan.org> | 2017-10-10 15:52:19 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2017-11-08 16:48:10 +0100 |
commit | c2935b03c4477a333e0ccb5d9811af7a89a6fa52 (patch) | |
tree | 4489accd428de889c45dfb778f3e69ab0f600321 /src/libstrongswan/credentials/keys/signature_params.h | |
parent | 72b7c0ffd820895e73973108426c47123499c78f (diff) | |
download | strongswan-c2935b03c4477a333e0ccb5d9811af7a89a6fa52.tar.bz2 strongswan-c2935b03c4477a333e0ccb5d9811af7a89a6fa52.tar.xz |
signature-params: Add helper struct for signature scheme and parameters
Diffstat (limited to 'src/libstrongswan/credentials/keys/signature_params.h')
-rw-r--r-- | src/libstrongswan/credentials/keys/signature_params.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/libstrongswan/credentials/keys/signature_params.h b/src/libstrongswan/credentials/keys/signature_params.h index 52a7ad7e5..4cde94c8f 100644 --- a/src/libstrongswan/credentials/keys/signature_params.h +++ b/src/libstrongswan/credentials/keys/signature_params.h @@ -21,11 +21,57 @@ #ifndef SIGNATURE_PARAMS_H_ #define SIGNATURE_PARAMS_H_ +typedef struct signature_params_t signature_params_t; typedef struct rsa_pss_params_t rsa_pss_params_t; #include <crypto/hashers/hasher.h> /** + * Signature scheme with parameters + */ +struct signature_params_t { + /** Signature scheme */ + signature_scheme_t scheme; + /** Parameters, depending on scheme */ + void *params; +}; + +/** + * Compare two signature schemes and their parameters + * + * @param a first scheme + * @param b second scheme + * @return TRUE if schemes and parameters are equal + */ +bool signature_params_equal(signature_params_t *a, signature_params_t *b); + +/** + * Compare two signature schemes and their parameters + * + * @param c constraint + * @param s scheme + * @return TRUE if scheme complies to constraint + */ +bool signature_params_comply(signature_params_t *c, signature_params_t *s); + +/** + * Clone the given scheme and parameters, if any + * + * @return cloned object + */ +signature_params_t *signature_params_clone(signature_params_t *this); + +/** + * Destroy the given scheme and parameters, if any + */ +void signature_params_destroy(signature_params_t *this); + +/** + * Clear the given parameters, if any, sets the scheme to SIGN_UNKNOWN + */ +void signature_params_clear(signature_params_t *this); + +/** * Parameters for SIGN_RSA_EMSA_PSS signature scheme */ struct rsa_pss_params_t { |