From 9de6450f4c0f2db9d87c30741a7229b22fb4744e Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 1 Dec 2011 18:43:10 +0100 Subject: [tools] add a LassoSignatureContext structure to pass signature parameters around Signature parameters are mainly a LassoSignatureMethod and a xmlSecKey. --- lasso/xml/private.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/lasso/xml/private.h b/lasso/xml/private.h index 249eeaf0..aebee11b 100644 --- a/lasso/xml/private.h +++ b/lasso/xml/private.h @@ -79,6 +79,41 @@ struct XmlSnippet { char *ns_uri; }; +/** + * LassoSignatureContext: + * @signature_method: the method for signing (RSA, DSA, HMAC) + * @signature_key: a key for the signature + * + * Information needed to make a signature + */ +typedef struct _LassoSignatureContext { + LassoSignatureMethod signature_method; + xmlSecKey *signature_key; +} LassoSignatureContext; + +#define LASSO_SIGNATURE_CONTEXT_NONE ((LassoSignatureContext){LASSO_SIGNATURE_TYPE_NONE, NULL}) + +#define lasso_assign_signature_context(to, from) \ + do { \ + LassoSignatureContext *__to = &(to); \ + LassoSignatureContext __from = (from); \ + __to->signature_method = __from.signature_method; \ + lasso_assign_sec_key(__to->signature_key, __from.signature_key); \ + } while(0) + +#define lasso_assign_new_signature_context(to, from) \ + do { \ + LassoSignatureContext *__to = &(to); \ + LassoSignatureContext __from = (from); \ + __to->signature_method = __from.signature_method; \ + lasso_assign_new_sec_key(__to->signature_key, __from.signature_key); \ + } while(0) + +static inline gboolean +lasso_validate_signature_context(LassoSignatureContext context) { + return lasso_validate_signature_method(context.signature_method) + && context.signature_key != NULL; +} /** * This inline method replace normal use of G_STRUCT_MEMBER_P/G_STRUCT_MEMBER, in order to add an -- cgit