summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValery Febvre <vfebvre at easter-eggs.com>2004-07-01 23:04:11 +0000
committerValery Febvre <vfebvre at easter-eggs.com>2004-07-01 23:04:11 +0000
commit757f7416a54186420fca3c66885297a212590bf9 (patch)
treebf6cf7d283aa7e489c85ec4e2e1dcc6c9c36a939
parentd935b20b7e135c7fef9af1ff5e18a9437e4ab838 (diff)
downloadlasso-757f7416a54186420fca3c66885297a212590bf9.tar.gz
lasso-757f7416a54186420fca3c66885297a212590bf9.tar.xz
lasso-757f7416a54186420fca3c66885297a212590bf9.zip
Added functions lasso_build_random_sequence() and lasso_str_hash()
-rw-r--r--lasso/xml/tools.c22
-rw-r--r--lasso/xml/tools.h6
2 files changed, 27 insertions, 1 deletions
diff --git a/lasso/xml/tools.c b/lasso/xml/tools.c
index b61cf037..f060a085 100644
--- a/lasso/xml/tools.c
+++ b/lasso/xml/tools.c
@@ -357,6 +357,28 @@ lasso_str_escape(xmlChar *str)
return (xmlURIEscapeStr((const xmlChar *)str, NULL));
}
+xmlChar *
+lasso_str_hash(xmlChar *str,
+ const char *private_key_file)
+{
+ xmlDocPtr doc;
+ xmlChar *b64_digest, *digest = g_new0(xmlChar, 21);
+ gint i;
+
+ doc = lasso_str_sign(str,
+ lassoSignatureMethodRsaSha1,
+ private_key_file);
+ b64_digest = xmlNodeGetContent(xmlSecFindNode(xmlDocGetRootElement(doc),
+ xmlSecNodeDigestValue,
+ xmlSecDSigNs));
+ i = xmlSecBase64Decode(b64_digest, digest, 21);
+ //printf("Decoded string %s lenght is %d\n", digest, i);
+ xmlFree(b64_digest);
+ xmlFreeDoc(doc);
+ /* value returned must be xmlFree() */
+ return (digest);
+}
+
/**
* lasso_str_sign:
* @str:
diff --git a/lasso/xml/tools.h b/lasso/xml/tools.h
index 4a70e23b..f1a9bc82 100644
--- a/lasso/xml/tools.h
+++ b/lasso/xml/tools.h
@@ -41,7 +41,8 @@ extern "C" {
typedef enum {
lassoSignatureMethodRsaSha1 = 1,
- lassoSignatureMethodDsaSha1
+ lassoSignatureMethodDsaSha1,
+ lassoSignatureMethodSha1
} lassoSignatureMethod;
LASSO_EXPORT xmlChar* lasso_build_random_sequence (guint8 size);
@@ -67,6 +68,9 @@ LASSO_EXPORT int lasso_query_verify_signature (const gchar *query,
LASSO_EXPORT xmlChar* lasso_str_escape (xmlChar *str);
+LASSO_EXPORT xmlChar* lasso_str_hash (xmlChar *str,
+ const char *private_key_file);
+
LASSO_EXPORT xmlDocPtr lasso_str_sign (xmlChar *str,
lassoSignatureMethod sign_method,
const char *private_key_file);