summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/xml/lib_authn_request_envelope.c188
-rw-r--r--lasso/xml/lib_authn_request_envelope.h86
-rw-r--r--lasso/xml/lib_authn_response_envelope.c111
-rw-r--r--lasso/xml/lib_authn_response_envelope.h72
4 files changed, 457 insertions, 0 deletions
diff --git a/lasso/xml/lib_authn_request_envelope.c b/lasso/xml/lib_authn_request_envelope.c
new file mode 100644
index 00000000..a2235496
--- /dev/null
+++ b/lasso/xml/lib_authn_request_envelope.c
@@ -0,0 +1,188 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: Nicolas Clapies <nclapies@entrouvert.com>
+ * Valery Febvre <vfebvre@easter-eggs.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <lasso/xml/lib_authn_request_envelope.h>
+
+/* <xs:element name="AuthnRequestEnvelope" type="AuthnRequestEnvelopeType"/> */
+/* <xs:complexType name="AuthnRequestEnvelopeType"> */
+/* <xs:complexContent> */
+/* <xs:extension base="RequestEnvelopeType"> */
+/* <xs:sequence> */
+/* <xs:element ref="AuthnRequest"/> */
+/* <xs:element ref="ProviderID"/> */
+/* <xs:element name="ProviderName" type="xs:string" minOccurs="0"/> */
+/* <xs:element name="AssertionConsumerServiceURL" type="xs:anyURI"/> */
+/* <xs:element ref="IDPList" minOccurs="0"/> */
+/* <xs:element name="IsPassive" type="xs:boolean" minOccurs="0"/> */
+/* </xs:sequence> */
+/* </xs:extension> */
+/* </xs:complexContent> */
+/* </xs:complexType> */
+/* <xs:complexType name="RequestEnvelopeType"> */
+/* <xs:sequence> */
+/* <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/> */
+/* </xs:sequence> */
+/* </xs:complexType> */
+/* <xs:element name="IDPList" type="IDPListType"/> */
+/* <xs:complexType name="IDPListType"> */
+/* <xs:sequence> */
+/* <xs:element ref="IDPEntries"/> */
+/* <xs:element ref="GetComplete" minOccurs="0"/> */
+/* </xs:sequence> */
+/* </xs:complexType> */
+/* <xs:complexType name="ResponseEnvelopeType"> */
+/* <xs:sequence> */
+/* <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/> */
+/* </xs:sequence> */
+
+
+/*****************************************************************************/
+/* public methods */
+/*****************************************************************************/
+
+void
+lasso_lib_authn_request_envelope_set_extension(LassoLibAuthnRequestEnvelope *node,
+ LassoNode *extension)
+{
+ g_assert(LASSO_IS_LIB_AUTHN_REQUEST_ENVELOPE(node));
+ g_assert(LASSO_IS_NODE(extension));
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ class->add_child(LASSO_NODE(node), extension, FALSE);
+}
+
+void lasso_lib_authn_request_envelope_set_authnRequest(LassoLibAuthnRequestEnvelope *node,
+ LassoLibAuthnRequest *request)
+{
+ g_assert(LASSO_IS_LIB_AUTHN_REQUEST_ENVELOPE(node));
+ g_assert(LASSO_IS_LIB_AUTHN_REQUEST(request));
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ class->add_child(LASSO_NODE(node), LASSO_NODE(request), FALSE);
+}
+
+void
+lasso_lib_authn_request_envelope_set_assertionConsumerServiceURL(LassoLibAuthnRequestEnvelope *node,
+ const xmlChar *assertionConsumerServiceURL)
+{
+ g_assert(LASSO_IS_LIB_AUTHN_REQUEST_ENVELOPE(node));
+ g_assert(assertionConsumerServiceURL != NULL);
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ class->new_child(LASSO_NODE(node), "AssertionConsumerServiceURL", assertionConsumerServiceURL, FALSE);
+}
+
+void
+lasso_lib_authn_request_envelope_set_providerID(LassoLibAuthnRequestEnvelope *node,
+ const xmlChar *providerID)
+{
+ g_assert(LASSO_IS_LIB_AUTHN_REQUEST_ENVELOPE(node));
+ g_assert(providerID != NULL);
+ /* FIXME : providerID lenght SHOULD be <= 1024 */
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ class->new_child(LASSO_NODE(node), "ProviderID", providerID, FALSE);
+}
+
+void lasso_lib_authn_request_envelope_set_providerName(LassoLibAuthnRequestEnvelope *node,
+ const xmlChar *providerName)
+{
+ g_assert(LASSO_IS_LIB_AUTHN_REQUEST_ENVELOPE(node));
+ g_assert(providerName != NULL);
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ class->new_child(LASSO_NODE(node), "ProviderName", providerName, FALSE);
+}
+
+void lasso_lib_authn_request_envelope_set_idpList(LassoLibAuthnRequestEnvelope *node,
+ LassoLibIDPList *idpList)
+{
+ g_assert(LASSO_IS_LIB_AUTHN_REQUEST_ENVELOPE(node));
+ g_assert(LASSO_IS_LIB_IDP_LIST(idpList));
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ class->add_child(LASSO_NODE(node), LASSO_NODE(idpList), FALSE);
+}
+
+void
+lasso_lib_authn_request_envelope_set_isPassive(LassoLibAuthnRequestEnvelope *node,
+ gboolean isPassive) {
+ g_assert(LASSO_IS_LIB_AUTHN_REQUEST_ENVELOPE(node));
+ g_assert(isPassive == FALSE || isPassive == TRUE);
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ if (isPassive == FALSE) {
+ class->new_child(LASSO_NODE (node), "IsPassive", "false", FALSE);
+ }
+ if (isPassive == TRUE) {
+ class->new_child(LASSO_NODE (node), "IsPassive", "true", FALSE);
+ }
+}
+
+/*****************************************************************************/
+/* instance and class init functions */
+/*****************************************************************************/
+
+static void
+lasso_lib_authn_request_envelope_instance_init(LassoLibAuthnRequestEnvelope *node)
+{
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(LASSO_NODE(node));
+
+ class->set_ns(LASSO_NODE(node), lassoLibHRef, lassoLibPrefix);
+ class->set_name(LASSO_NODE(node), "AuthnRequestEnvelope");
+}
+
+static void
+lasso_lib_authn_request_envelope_class_init(LassoLibAuthnRequestEnvelopeClass *class)
+{
+}
+
+GType lasso_lib_authn_request_envelope_get_type() {
+ static GType this_type = 0;
+
+ if (!this_type) {
+ static const GTypeInfo this_info = {
+ sizeof (LassoLibAuthnRequestEnvelopeClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) lasso_lib_authn_request_envelope_class_init,
+ NULL,
+ NULL,
+ sizeof(LassoLibAuthnRequestEnvelope),
+ 0,
+ (GInstanceInitFunc) lasso_lib_authn_request_envelope_instance_init,
+ };
+
+ this_type = g_type_register_static(LASSO_TYPE_NODE,
+ "LassoLibAuthnRequestEnvelope",
+ &this_info, 0);
+ }
+ return this_type;
+}
+
+LassoNode* lasso_lib_authn_request_envelope_new() {
+ return LASSO_NODE(g_object_new(LASSO_TYPE_LIB_AUTHN_REQUEST_ENVELOPE,
+ NULL));
+}
diff --git a/lasso/xml/lib_authn_request_envelope.h b/lasso/xml/lib_authn_request_envelope.h
new file mode 100644
index 00000000..e5bf7474
--- /dev/null
+++ b/lasso/xml/lib_authn_request_envelope.h
@@ -0,0 +1,86 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: Nicolas Clapies <nclapies@entrouvert.com>
+ * Valery Febvre <vfebvre@easter-eggs.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __LASSO_LIB_AUTHN_REQUEST_ENVELOPE_H__
+#define __LASSO_LIB_AUTHN_REQUEST_ENVELOPE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <lasso/xml/xml.h>
+#include <lasso/xml/lib_idp_list.h>
+#include <lasso/xml/lib_authn_request.h>
+
+#define LASSO_TYPE_LIB_AUTHN_REQUEST_ENVELOPE (lasso_lib_authn_request_envelope_get_type())
+#define LASSO_LIB_AUTHN_REQUEST_ENVELOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_LIB_AUTHN_REQUEST_ENVELOPE, LassoLibAuthnRequestEnvelope))
+#define LASSO_LIB_AUTHN_REQUEST_ENVELOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), LASSO_TYPE_LIB_AUTHN_REQUEST_ENVELOPE, LassoLibAuthnRequestEnvelopeClass))
+#define LASSO_IS_LIB_AUTHN_REQUEST_ENVELOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_LIB_AUTHN_REQUEST_ENVELOPE))
+#define LASSO_IS_LIB_AUTHN_REQUEST_ENVELOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_LIB_AUTHN_REQUEST_ENVELOPE))
+#define LASSO_LIB_AUTHN_REQUEST_ENVELOPE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_LIB_AUTHN_REQUEST_ENVELOPE, LassoLibAuthnRequestEnvelopeClass))
+
+typedef struct _LassoLibAuthnRequestEnvelope LassoLibAuthnRequestEnvelope;
+typedef struct _LassoLibAuthnRequestEnvelopeClass LassoLibAuthnRequestEnvelopeClass;
+
+struct _LassoLibAuthnRequestEnvelope {
+ LassoNode parent;
+
+ /*< private >*/
+};
+
+struct _LassoLibAuthnRequestEnvelopeClass {
+ LassoNodeClass parent;
+};
+
+LASSO_EXPORT GType lasso_lib_authn_request_envelope_get_type (void);
+
+LASSO_EXPORT LassoNode* lasso_lib_authn_request_envelope_new (void);
+
+LASSO_EXPORT void lasso_lib_authn_request_envelope_set_extension (LassoLibAuthnRequestEnvelope *node,
+ LassoNode *extension);
+
+LASSO_EXPORT void lasso_lib_authn_request_envelope_set_authnRequest (LassoLibAuthnRequestEnvelope *node,
+ LassoLibAuthnRequest *request);
+
+LASSO_EXPORT void lasso_lib_authn_request_envelope_set_assertionConsumerServiceURL (LassoLibAuthnRequestEnvelope *node,
+ const xmlChar *assertionConsumerServiceURL);
+
+LASSO_EXPORT void lasso_lib_authn_request_envelope_set_providerID (LassoLibAuthnRequestEnvelope *node,
+ const xmlChar *providerID);
+
+LASSO_EXPORT void lasso_lib_authn_request_envelope_set_providerName (LassoLibAuthnRequestEnvelope *node,
+ const xmlChar *providerName);
+
+LASSO_EXPORT void lasso_lib_authn_request_envelope_set_idpList (LassoLibAuthnRequestEnvelope *node,
+ LassoLibIDPList *idpList);
+
+LASSO_EXPORT void lasso_lib_authn_request_envelope_set_isPassive (LassoLibAuthnRequestEnvelope *node,
+ gboolean isPassive);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LASSO_LIB_AUTHN_REQUEST_ENVELOPE_H__ */
diff --git a/lasso/xml/lib_authn_response_envelope.c b/lasso/xml/lib_authn_response_envelope.c
new file mode 100644
index 00000000..2b23e4e6
--- /dev/null
+++ b/lasso/xml/lib_authn_response_envelope.c
@@ -0,0 +1,111 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: Nicolas Clapies <nclapies@entrouvert.com>
+ * Valery Febvre <vfebvre@easter-eggs.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <lasso/xml/lib_authn_response_envelope.h>
+
+
+
+/*****************************************************************************/
+/* public methods */
+/*****************************************************************************/
+
+void
+lasso_lib_authn_response_envelope_set_extension(LassoLibAuthnResponseEnvelope *node,
+ LassoNode *extension)
+{
+ g_assert(LASSO_IS_LIB_AUTHN_RESPONSE_ENVELOPE(node));
+ g_assert(LASSO_NODE(extension));
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ class->add_child(LASSO_NODE(extension), extension, FALSE);
+}
+
+void
+lasso_lib_authn_response_envelope_set_authnResponse(LassoLibAuthnResponseEnvelope *node,
+ LassoLibAuthnResponse *authnResponse_node)
+{
+ g_assert(LASSO_IS_LIB_AUTHN_RESPONSE_ENVELOPE(node));
+ g_assert(LASSO_IS_LIB_AUTHN_RESPONSE(authnResponse_node));
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ class->add_child(LASSO_NODE(node), LASSO_NODE(authnResponse_node), FALSE);
+}
+
+void
+lasso_lib_authn_response_envelope_set_assertionConsumerServiceURL(LassoLibAuthnResponseEnvelope *node,
+ const xmlChar *url) {
+ g_assert(LASSO_IS_LIB_AUTHN_RESPONSE_ENVELOPE(node));
+ g_assert(url != NULL);
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ class->new_child(LASSO_NODE (node), "AssertionConsumerServiceURL",
+ url, FALSE);
+}
+
+/*****************************************************************************/
+/* instance and class init functions */
+/*****************************************************************************/
+
+static void
+lasso_lib_authn_response_envelope_instance_init(LassoLibAuthnResponseEnvelope *node)
+{
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(LASSO_NODE(node));
+
+ class->set_ns(LASSO_NODE(node), lassoLibHRef, lassoLibPrefix);
+ class->set_name(LASSO_NODE(node), "AuthnResponseEnvelope");
+}
+
+static void
+lasso_lib_authn_response_envelope_class_init(LassoLibAuthnResponseEnvelopeClass *class)
+{
+}
+
+GType lasso_lib_authn_response_envelope_get_type() {
+ static GType this_type = 0;
+
+ if (!this_type) {
+ static const GTypeInfo this_info = {
+ sizeof (LassoLibAuthnResponseEnvelopeClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) lasso_lib_authn_response_envelope_class_init,
+ NULL,
+ NULL,
+ sizeof(LassoLibAuthnResponseEnvelope),
+ 0,
+ (GInstanceInitFunc) lasso_lib_authn_response_envelope_instance_init,
+ };
+
+ this_type = g_type_register_static(LASSO_TYPE_NODE,
+ "LassoLibAuthnResponseEnvelope",
+ &this_info, 0);
+ }
+ return this_type;
+}
+
+LassoNode* lasso_lib_authn_response_envelope_new() {
+ return LASSO_NODE(g_object_new(LASSO_TYPE_LIB_AUTHN_RESPONSE_ENVELOPE,
+ NULL));
+}
diff --git a/lasso/xml/lib_authn_response_envelope.h b/lasso/xml/lib_authn_response_envelope.h
new file mode 100644
index 00000000..29c3b38b
--- /dev/null
+++ b/lasso/xml/lib_authn_response_envelope.h
@@ -0,0 +1,72 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: Nicolas Clapies <nclapies@entrouvert.com>
+ * Valery Febvre <vfebvre@easter-eggs.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __LASSO_LIB_AUTHN_RESPONSE_ENVELOPE_H__
+#define __LASSO_LIB_AUTHN_RESPONSE_ENVELOPE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <lasso/xml/lib_idp_list.h>
+#include <lasso/xml/lib_authn_response.h>
+
+#define LASSO_TYPE_LIB_AUTHN_RESPONSE_ENVELOPE (lasso_lib_authn_response_envelope_get_type())
+#define LASSO_LIB_AUTHN_RESPONSE_ENVELOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_LIB_AUTHN_RESPONSE_ENVELOPE, LassoLibAuthnResponseEnvelope))
+#define LASSO_LIB_AUTHN_RESPONSE_ENVELOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), LASSO_TYPE_LIB_AUTHN_RESPONSE_ENVELOPE, LassoLibAuthnResponseEnvelopeClass))
+#define LASSO_IS_LIB_AUTHN_RESPONSE_ENVELOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_LIB_AUTHN_RESPONSE_ENVELOPE))
+#define LASSO_IS_LIB_AUTHN_RESPONSE_ENVELOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_LIB_AUTHN_RESPONSE_ENVELOPE))
+#define LASSO_LIB_AUTHN_RESPONSE_ENVELOPE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_LIB_AUTHN_RESPONSE_ENVELOPE, LassoLibAuthnResponseEnvelopeClass))
+
+typedef struct _LassoLibAuthnResponseEnvelope LassoLibAuthnResponseEnvelope;
+typedef struct _LassoLibAuthnResponseEnvelopeClass LassoLibAuthnResponseEnvelopeClass;
+
+struct _LassoLibAuthnResponseEnvelope {
+ LassoNode parent;
+ /*< private >*/
+};
+
+struct _LassoLibAuthnResponseEnvelopeClass {
+ LassoNodeClass parent;
+};
+
+LASSO_EXPORT GType lasso_lib_authn_response_envelope_get_type (void);
+
+LASSO_EXPORT LassoNode* lasso_lib_authn_response_envelope_new (void);
+
+LASSO_EXPORT void lasso_lib_authn_response_envelope_set_extension (LassoLibAuthnResponseEnvelope *node,
+ LassoNode *extension);
+
+LASSO_EXPORT void lasso_lib_authn_response_envelope_set_authnResponse (LassoLibAuthnResponseEnvelope *node,
+ LassoLibAuthnResponse *authnResponse);
+
+LASSO_EXPORT void lasso_lib_authn_response_envelope_set_assertionConsumerServiceURL (LassoLibAuthnResponseEnvelope *node,
+ const xmlChar *url);
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LASSO_LIB_AUTHN_RESPONSE_ENVELOPE_H__ */