summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-04-01 15:29:34 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-04-01 15:29:34 +0000
commit936fcf5056038270609ae15fee99f8e17c7ba0db (patch)
treef328b006b73b3564d64810ba474b78e86e4e69f1
parent98c97ca26f67e67efea110ed49ccdc4fcc6952c9 (diff)
add function lasso_build_authnRequest_from_query
-rw-r--r--lasso/Attic/protocols/single_sign_on_and_federation.c44
-rw-r--r--lasso/Attic/protocols/single_sign_on_and_federation.h5
2 files changed, 49 insertions, 0 deletions
diff --git a/lasso/Attic/protocols/single_sign_on_and_federation.c b/lasso/Attic/protocols/single_sign_on_and_federation.c
index 702bf7ff..e9b4abe3 100644
--- a/lasso/Attic/protocols/single_sign_on_and_federation.c
+++ b/lasso/Attic/protocols/single_sign_on_and_federation.c
@@ -25,6 +25,50 @@
#include <lasso/protocols/single_sign_on_and_federation.h>
+LassoNode *lasso_build_authnRequest_from_query(gboolean verifySignature,
+ const xmlChar *query,
+ const xmlChar *rsapub,
+ const xmlChar *rsakey)
+{
+ LassoNode *req;
+ GData *gd;
+ int result;
+
+ if(verifySignature==TRUE){
+ result = lasso_str_verify(query, rsapub, rsakey);
+ if(result==-1){
+ return(NULL);
+ }
+ }
+
+ gd = lasso_query_to_dict(query);
+ if(gd!=NULL){
+ req = lasso_build_full_authnRequest(lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RequestID"), 0),
+ lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MajorVersion"), 0),
+ lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MinorVersion"), 0),
+ lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IssueInstance"), 0),
+ lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0),
+ lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameIDPolicy"), 0),
+ lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ForceAuthn"), 0),
+ lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IsPassive"), 0),
+ lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd,
+ "AssertionConsumerServiceID"),
+ 0),
+ NULL, // AuthnContextClassRef
+ NULL, // AuthnContextStatementRef
+ NULL, // AuthnContextComparison
+ lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RelayState"), 0),
+ NULL, // ProxyCount
+ NULL, // IDPList
+ lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "consent"), 0));
+
+ g_datalist_clear(&gd);
+ return(req);
+ }
+
+ return(NULL);
+}
+
LassoNode *lasso_build_authnRequest(const xmlChar *providerID,
const xmlChar *nameIDPolicy,
const xmlChar *forceAuthn,
diff --git a/lasso/Attic/protocols/single_sign_on_and_federation.h b/lasso/Attic/protocols/single_sign_on_and_federation.h
index 594ecd8d..6fa974f4 100644
--- a/lasso/Attic/protocols/single_sign_on_and_federation.h
+++ b/lasso/Attic/protocols/single_sign_on_and_federation.h
@@ -31,6 +31,11 @@ extern "C" {
#include <lasso/lasso.h>
+LassoNode *lasso_build_authnRequest_from_query(gboolean verifySignature,
+ const xmlChar *query,
+ const xmlChar *rsapub,
+ const xmlChar *rsakey);
+
LassoNode *lasso_build_authnRequest(const xmlChar *providerID,
const xmlChar *nameIDPolicy,
const xmlChar *forceAuthn,