diff options
| author | Valery Febvre <vfebvre at easter-eggs.com> | 2004-05-07 00:58:56 +0000 |
|---|---|---|
| committer | Valery Febvre <vfebvre at easter-eggs.com> | 2004-05-07 00:58:56 +0000 |
| commit | 37f852ca18fa48cf25a238aa4fc411ef8cac5e50 (patch) | |
| tree | 779da65f676f8b7dc8a7dc90ea569ef86753f5e8 | |
| parent | 28460166e1f19e70e0969aca143d3beeb6e3c68b (diff) | |
| download | lasso-37f852ca18fa48cf25a238aa4fc411ef8cac5e50.tar.gz lasso-37f852ca18fa48cf25a238aa4fc411ef8cac5e50.tar.xz lasso-37f852ca18fa48cf25a238aa4fc411ef8cac5e50.zip | |
*** empty log message ***
| -rw-r--r-- | lasso/Attic/protocols/authn_request.c | 8 | ||||
| -rw-r--r-- | lasso/Attic/protocols/authn_request.h | 4 | ||||
| -rw-r--r-- | lasso/Attic/protocols/authn_response.c | 19 | ||||
| -rw-r--r-- | lasso/Attic/protocols/authn_response.h | 4 | ||||
| -rw-r--r-- | lasso/xml/tools.c | 12 | ||||
| -rw-r--r-- | lasso/xml/tools.h | 6 | ||||
| -rw-r--r-- | lasso/xml/xml.c | 40 | ||||
| -rw-r--r-- | lasso/xml/xml.h | 12 | ||||
| -rw-r--r-- | python/protocols/py_authn_request.c | 4 |
9 files changed, 56 insertions, 53 deletions
diff --git a/lasso/Attic/protocols/authn_request.c b/lasso/Attic/protocols/authn_request.c index 8660d009..b34d5249 100644 --- a/lasso/Attic/protocols/authn_request.c +++ b/lasso/Attic/protocols/authn_request.c @@ -29,10 +29,10 @@ /* functions */ /*****************************************************************************/ -xmlChar * -lasso_authn_request_get_protocolProfile(xmlChar *query) +gchar * +lasso_authn_request_get_protocolProfile(gchar *query) { - xmlChar *protocolProfile; + gchar *protocolProfile; protocolProfile = lasso_g_ptr_array_index(lasso_query_get_value(query, "ProtocolProfile"), 0); if (protocolProfile == NULL) @@ -174,7 +174,7 @@ lasso_authn_request_new(const xmlChar *providerID) } LassoNode* -lasso_authn_request_new_from_query(xmlChar *query) +lasso_authn_request_new_from_query(gchar *query) { LassoNode *request, *authn_context = NULL, *scoping; GData *gd; diff --git a/lasso/Attic/protocols/authn_request.h b/lasso/Attic/protocols/authn_request.h index 78bf5f6d..88d0815d 100644 --- a/lasso/Attic/protocols/authn_request.h +++ b/lasso/Attic/protocols/authn_request.h @@ -52,13 +52,13 @@ struct _LassoAuthnRequestClass { LassoLibAuthnRequestClass parent; }; -LASSO_EXPORT xmlChar* lasso_authn_request_get_protocolProfile (xmlChar *query); +LASSO_EXPORT gchar* lasso_authn_request_get_protocolProfile (gchar *query); LASSO_EXPORT GType lasso_authn_request_get_type (void); LASSO_EXPORT LassoNode* lasso_authn_request_new (const xmlChar *providerID); -LASSO_EXPORT LassoNode* lasso_authn_request_new_from_query (xmlChar *query); +LASSO_EXPORT LassoNode* lasso_authn_request_new_from_query (gchar *query); LASSO_EXPORT void lasso_authn_request_set_requestAuthnContext (LassoAuthnRequest *request, GPtrArray *authnContextClassRefs, diff --git a/lasso/Attic/protocols/authn_response.c b/lasso/Attic/protocols/authn_response.c index d5e358a1..0bf1ab79 100644 --- a/lasso/Attic/protocols/authn_response.c +++ b/lasso/Attic/protocols/authn_response.c @@ -154,7 +154,7 @@ lasso_authn_response_verify_signature(LassoAuthnResponse *response, static void lasso_authn_response_dispose(LassoAuthnResponse *response) { - parent_class->dispose(LASSO_NODE(response)); + parent_class->dispose(G_OBJECT(response)); } /* override lasso_node_dump() method */ @@ -169,7 +169,7 @@ lasso_authn_response_dump(LassoAuthnResponse *response, response_dump = lasso_node_new(); LASSO_NODE_GET_CLASS(response_dump)->set_name(response_dump, "LassoDumpAuthnResponse"); LASSO_NODE_GET_CLASS(response_dump)->add_child(response_dump, - lasso_node_copy(response), 0); + lasso_node_copy(LASSO_NODE(response)), 0); if (response->query != NULL) LASSO_NODE_GET_CLASS(response_dump)->add_child(response_dump, lasso_authn_request_new_from_query(response->query), 0); @@ -185,10 +185,11 @@ lasso_authn_response_dump(LassoAuthnResponse *response, static void lasso_authn_response_finalize(LassoAuthnResponse *response) { - xmlFree(response->query); + if (response->query != NULL) + g_free(response->query); if (response->request != NULL) g_object_unref(response->request); - parent_class->finalize(LASSO_NODE(response)); + parent_class->finalize(G_OBJECT(response)); } /*****************************************************************************/ @@ -210,7 +211,7 @@ lasso_authn_response_class_init(LassoAuthnResponseClass *class) /* override parent classes methods */ gobject_class->dispose = (void *)lasso_authn_response_dispose; gobject_class->finalize = (void *)lasso_authn_response_finalize; - lasso_node_class->dump = lasso_authn_response_dump; + lasso_node_class->dump = (xmlChar *)lasso_authn_response_dump; } GType lasso_authn_response_get_type() { @@ -264,11 +265,11 @@ lasso_authn_response_new_from_dump(xmlChar *buffer) } LassoNode* -lasso_authn_response_new_from_request_query(xmlChar *query, +lasso_authn_response_new_from_request_query(gchar *query, const xmlChar *providerID) { - GData *gd; - LassoNode *response, *status, *status_code; + GData *gd; + LassoNode *response, *status, *status_code; g_return_val_if_fail(query != NULL, NULL); g_return_val_if_fail(providerID != NULL, NULL); @@ -277,7 +278,7 @@ lasso_authn_response_new_from_request_query(xmlChar *query, gd = lasso_query_to_dict(query); /* store query - need to verify signature */ - LASSO_AUTHN_RESPONSE(response)->query = query; + LASSO_AUTHN_RESPONSE(response)->query = g_strdup(query); LASSO_AUTHN_RESPONSE(response)->request = NULL; /* ResponseID */ diff --git a/lasso/Attic/protocols/authn_response.h b/lasso/Attic/protocols/authn_response.h index a988750e..6f555a4c 100644 --- a/lasso/Attic/protocols/authn_response.h +++ b/lasso/Attic/protocols/authn_response.h @@ -46,7 +46,7 @@ typedef struct _LassoAuthnResponseClass LassoAuthnResponseClass; struct _LassoAuthnResponse { LassoLibAuthnResponse parent; /*< public >*/ - xmlChar *query; + gchar *query; LassoNode *request; /*< private >*/ }; @@ -57,7 +57,7 @@ struct _LassoAuthnResponseClass { LASSO_EXPORT GType lasso_authn_response_get_type (void); -LASSO_EXPORT LassoNode* lasso_authn_response_new_from_request_query (xmlChar *query, +LASSO_EXPORT LassoNode* lasso_authn_response_new_from_request_query (gchar *query, const xmlChar *providerID); LASSO_EXPORT LassoNode* lasso_authn_response_new_from_dump (xmlChar *buffer); diff --git a/lasso/xml/tools.c b/lasso/xml/tools.c index f654a396..1ca4b36d 100644 --- a/lasso/xml/tools.c +++ b/lasso/xml/tools.c @@ -53,7 +53,7 @@ lasso_build_unique_id(guint8 size) /* base64 encoding of build string */ enc_id = xmlSecBase64Encode((const xmlChar *)id, size, 0); - g_free(id); + xmlFree(id); return (enc_id); } @@ -97,7 +97,7 @@ lasso_get_current_time() } GPtrArray * -lasso_query_get_value(xmlChar *query, +lasso_query_get_value(const gchar *query, const xmlChar *param) { gint i; @@ -140,7 +140,7 @@ gdata_query_to_dict_destroy_notify(gpointer data) * Return value: a dictonary **/ GData * -lasso_query_to_dict(const xmlChar *query) +lasso_query_to_dict(const gchar *query) { GData *gd = NULL; gchar **sa1, **sa2, **sa3; @@ -179,7 +179,7 @@ lasso_query_to_dict(const xmlChar *query) } int -lasso_query_verify_signature(xmlChar *query, +lasso_query_verify_signature(const gchar *query, const xmlChar *sender_public_key_file, const xmlChar *recipient_private_key_file) { @@ -196,7 +196,7 @@ lasso_query_verify_signature(xmlChar *query, gint ret = -1; /* split query, signature (must be last param) */ - str_split = g_strsplit((const gchar *)query, "&Signature=", 0); + str_split = g_strsplit(query, "&Signature=", 0); if (str_split[1] == NULL) return (2); /* re-create doc to verify (signed + enrypted) */ @@ -238,11 +238,9 @@ lasso_query_verify_signature(xmlChar *query, /* print verification result to stdout and return */ if(dsigCtx->status == xmlSecDSigStatusSucceeded) { - fprintf(stdout, "Signature is OK\n"); ret = 1; } else { - fprintf(stdout, "Signature is INVALID\n"); ret = 0; } diff --git a/lasso/xml/tools.h b/lasso/xml/tools.h index 2459d8e5..a2c9cfe7 100644 --- a/lasso/xml/tools.h +++ b/lasso/xml/tools.h @@ -49,12 +49,12 @@ LASSO_EXPORT xmlChar* lasso_g_ptr_array_index (GPtrArray *a, LASSO_EXPORT xmlChar* lasso_get_current_time (void); -LASSO_EXPORT GPtrArray* lasso_query_get_value (xmlChar *query, +LASSO_EXPORT GPtrArray* lasso_query_get_value (const gchar *query, const xmlChar *param); -LASSO_EXPORT GData* lasso_query_to_dict (const xmlChar *query); +LASSO_EXPORT GData* lasso_query_to_dict (const gchar *query); -LASSO_EXPORT int lasso_query_verify_signature (xmlChar *str, +LASSO_EXPORT int lasso_query_verify_signature (const gchar *query, const xmlChar *sender_public_key_file, const xmlChar *recipient_private_key_file); diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c index 80acbb14..55b6f735 100644 --- a/lasso/xml/xml.c +++ b/lasso/xml/xml.c @@ -35,7 +35,7 @@ struct _LassoNodePrivate /* virtual public methods */ /*****************************************************************************/ -GString * +gchar * lasso_node_build_query(LassoNode *node) { g_return_val_if_fail (LASSO_IS_NODE(node), NULL); @@ -318,7 +318,7 @@ static void gdata_build_query_foreach_func(GQuark key_id, g_ptr_array_add((GPtrArray *)user_data, array); } -static GString * +static gchar * lasso_node_impl_build_query(LassoNode *node) { guint i, j; @@ -326,6 +326,7 @@ lasso_node_impl_build_query(LassoNode *node) GPtrArray *a, *aa; GString *query; xmlChar *str_escaped; + gchar *ret; g_return_val_if_fail (LASSO_IS_NODE(node), NULL); @@ -356,7 +357,10 @@ lasso_node_impl_build_query(LassoNode *node) g_ptr_array_free(a, TRUE); g_datalist_clear(&gd); - return (query); + ret = g_strdup(query->str); + g_string_free(query, TRUE); + + return (ret); } static LassoNode * @@ -679,41 +683,43 @@ lasso_node_impl_url_encode(LassoNode *node, guint sign_method, const gchar *private_key_file) { - GString *msg; + GString *url; xmlDocPtr doc; xmlChar *str1, *str2, *str_escaped; - gchar *ret; + gchar *unsigned_query, *ret; g_return_val_if_fail (LASSO_IS_NODE(node), NULL); - msg = lasso_node_build_query(node); - + unsigned_query = lasso_node_build_query(node); + url = g_string_new(unsigned_query); + g_free(unsigned_query); + if (sign_method > 0 && private_key_file != NULL) { - msg = g_string_append(msg, "&SigAlg="); + url = g_string_append(url, "&SigAlg="); switch (sign_method) { case lassoUrlEncodeRsaSha1: str_escaped = lasso_str_escape(xmlSecHrefRsaSha1); - msg = g_string_append(msg, str_escaped); - doc = lasso_str_sign(msg->str, xmlSecTransformRsaSha1Id, private_key_file); + url = g_string_append(url, str_escaped); + doc = lasso_str_sign(url->str, xmlSecTransformRsaSha1Id, private_key_file); break; case lassoUrlEncodeDsaSha1: str_escaped = lasso_str_escape(xmlSecHrefDsaSha1); - msg = g_string_append(msg, str_escaped); - doc = lasso_str_sign(msg->str, xmlSecTransformDsaSha1Id, private_key_file); + url = g_string_append(url, str_escaped); + doc = lasso_str_sign(url->str, xmlSecTransformDsaSha1Id, private_key_file); break; } xmlFree(str_escaped); - msg = g_string_append(msg, "&Signature="); + url = g_string_append(url, "&Signature="); str1 = lasso_doc_get_node_content(doc, xmlSecNodeSignatureValue); str2 = lasso_str_escape(str1); xmlFree(str1); - msg = g_string_append(msg, str2); + url = g_string_append(url, str2); xmlFree(str2); xmlFreeDoc(doc); } - ret = g_strdup(msg->str); - g_string_free(msg, TRUE); + ret = g_strdup(url->str); + g_string_free(url, TRUE); return (ret); } @@ -773,11 +779,9 @@ lasso_node_impl_verify_signature(LassoNode *node, /* print verification result to stdout */ if (dsigCtx->status == xmlSecDSigStatusSucceeded) { - fprintf(stdout, "Signature is OK\n"); ret = 1; } else { - fprintf(stdout, "Signature is INVALID\n"); ret = 0; } diff --git a/lasso/xml/xml.h b/lasso/xml/xml.h index 0f1a606a..f232a397 100644 --- a/lasso/xml/xml.h +++ b/lasso/xml/xml.h @@ -60,7 +60,7 @@ struct _LassoNodeClass { GObjectClass parent_class; /*< vtable >*/ /*< public >*/ - GString* (* build_query) (LassoNode *node); + gchar* (* build_query) (LassoNode *node); LassoNode* (* copy) (LassoNode *node); xmlChar* (* dump) (LassoNode *node, const xmlChar *encoding, @@ -73,19 +73,19 @@ struct _LassoNodeClass { LassoNode* (* get_child) (LassoNode *, const xmlChar *); GPtrArray* (* get_children) (LassoNode *); - xmlChar * (* get_content) (LassoNode *); + xmlChar* (* get_content) (LassoNode *); const xmlChar* (* get_name) (LassoNode *); void (* load_from_buffer) (LassoNode *node, const char *buffer); void (* rename_prop) (LassoNode *node, const xmlChar *old_name, const xmlChar *new_name); - GData * (* serialize) (LassoNode *, + GData* (* serialize) (LassoNode *, GData *); - gchar * (* url_encode) (LassoNode *node, + gchar* (* url_encode) (LassoNode *node, guint sign_method, const gchar *private_key_file); - gchar * (* soap_envelop) (LassoNode *node); + gchar* (* soap_envelop) (LassoNode *node); gint (* verify_signature) (LassoNode *node, const gchar *certificate_file); /*< private >*/ @@ -120,7 +120,7 @@ LASSO_EXPORT LassoNode* lasso_node_new (void); LASSO_EXPORT LassoNode* lasso_node_new_from_dump (xmlChar *buffer); LASSO_EXPORT LassoNode* lasso_node_new_from_xmlNode (xmlNodePtr node); -LASSO_EXPORT GString* lasso_node_build_query (LassoNode *node); +LASSO_EXPORT gchar* lasso_node_build_query (LassoNode *node); LASSO_EXPORT LassoNode* lasso_node_copy (LassoNode *node); diff --git a/python/protocols/py_authn_request.c b/python/protocols/py_authn_request.c index f52e95b3..a047f6c2 100644 --- a/python/protocols/py_authn_request.c +++ b/python/protocols/py_authn_request.c @@ -98,8 +98,8 @@ PyObject *authn_request_set_scoping(PyObject *self, PyObject *args) { /******************************************************************************/ PyObject *authn_request_get_protocolProfile(PyObject *self, PyObject *args) { - xmlChar *query; - xmlChar *protocolProfile; + gchar *query; + gchar *protocolProfile; if(!PyArg_ParseTuple(args, (char *) "s:authn_request_get_protocolProfile", &query)) |
