diff options
| author | Valery Febvre <vfebvre at easter-eggs.com> | 2004-07-01 23:04:11 +0000 |
|---|---|---|
| committer | Valery Febvre <vfebvre at easter-eggs.com> | 2004-07-01 23:04:11 +0000 |
| commit | 757f7416a54186420fca3c66885297a212590bf9 (patch) | |
| tree | bf6cf7d283aa7e489c85ec4e2e1dcc6c9c36a939 | |
| parent | d935b20b7e135c7fef9af1ff5e18a9437e4ab838 (diff) | |
| download | lasso-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.c | 22 | ||||
| -rw-r--r-- | lasso/xml/tools.h | 6 |
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); |
