summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValery Febvre <vfebvre at easter-eggs.com>2004-05-07 00:58:56 +0000
committerValery Febvre <vfebvre at easter-eggs.com>2004-05-07 00:58:56 +0000
commit37f852ca18fa48cf25a238aa4fc411ef8cac5e50 (patch)
tree779da65f676f8b7dc8a7dc90ea569ef86753f5e8
parent28460166e1f19e70e0969aca143d3beeb6e3c68b (diff)
downloadlasso-37f852ca18fa48cf25a238aa4fc411ef8cac5e50.tar.gz
lasso-37f852ca18fa48cf25a238aa4fc411ef8cac5e50.tar.xz
lasso-37f852ca18fa48cf25a238aa4fc411ef8cac5e50.zip
*** empty log message ***
-rw-r--r--lasso/Attic/protocols/authn_request.c8
-rw-r--r--lasso/Attic/protocols/authn_request.h4
-rw-r--r--lasso/Attic/protocols/authn_response.c19
-rw-r--r--lasso/Attic/protocols/authn_response.h4
-rw-r--r--lasso/xml/tools.c12
-rw-r--r--lasso/xml/tools.h6
-rw-r--r--lasso/xml/xml.c40
-rw-r--r--lasso/xml/xml.h12
-rw-r--r--python/protocols/py_authn_request.c4
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))