summaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-04-16 10:50:21 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-04-16 10:50:21 +0000
commitf096bdc7a0d5b8bbe1b4cfaebbdbfc1ad86540a7 (patch)
tree3aa357f864b829f5ae592d14d93e2791e1629586 /python
parenta73b11a5d3c79cb15b06f17d29a9063e120b2ed2 (diff)
downloadlasso-f096bdc7a0d5b8bbe1b4cfaebbdbfc1ad86540a7.tar.gz
lasso-f096bdc7a0d5b8bbe1b4cfaebbdbfc1ad86540a7.tar.xz
lasso-f096bdc7a0d5b8bbe1b4cfaebbdbfc1ad86540a7.zip
request and response definition
Diffstat (limited to 'python')
-rw-r--r--python/protocols/py_single_sign_on_and_federation.c129
-rw-r--r--python/protocols/py_single_sign_on_and_federation.h23
2 files changed, 152 insertions, 0 deletions
diff --git a/python/protocols/py_single_sign_on_and_federation.c b/python/protocols/py_single_sign_on_and_federation.c
index a18b2ea7..74637829 100644
--- a/python/protocols/py_single_sign_on_and_federation.c
+++ b/python/protocols/py_single_sign_on_and_federation.c
@@ -288,3 +288,132 @@ PyObject *authentication_statement_build(PyObject *self, PyObject *args) {
return (LassoNode_wrap(statement));
}
+
+/******************************************************************************/
+/* lassoRequest */
+/******************************************************************************/
+
+PyObject *lassoRequest_wrap(lassoRequest *request) {
+ PyObject *ret;
+
+ if (request == NULL) {
+ Py_INCREF(Py_None);
+ return (Py_None);
+ }
+ ret = PyCObject_FromVoidPtrAndDesc((void *) request,
+ (char *) "lassoRequest *", NULL);
+ return (ret);
+}
+
+PyObject *request_getattr(PyObject *self, PyObject *args) {
+ PyObject *lareq_obj;
+ lassoRequest *lareq;
+ const char *attr;
+
+ if (CheckArgs(args, "OS:request_get_attr")) {
+ if (!PyArg_ParseTuple(args, "Os:request_get_attr", &lareq_obj, &attr))
+ return NULL;
+ }
+ else return NULL;
+
+ lareq = lassoRequest_get(lareq_obj);
+
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[s]", "node");
+ if (!strcmp(attr, "node"))
+ return (LassoNode_wrap(lareq->node));
+
+ Py_INCREF(Py_None);
+ return (Py_None);
+}
+
+PyObject *request_create(PyObject *self, PyObject *args) {
+ const xmlChar *assertionArtifact;
+
+ lassoRequest *request;
+
+ if(!PyArg_ParseTuple(args, (char *) "s:request_create",
+ &assertionArtifact))
+ return NULL;
+
+ request = lasso_request_create(assertionArtifact);
+
+ return (lassoRequest_wrap(request));
+}
+
+/******************************************************************************/
+/* lassoResponse */
+/******************************************************************************/
+
+PyObject *lassoResponse_wrap(lassoResponse *response) {
+ PyObject *ret;
+
+ if (response == NULL) {
+ Py_INCREF(Py_None);
+ return (Py_None);
+ }
+ ret = PyCObject_FromVoidPtrAndDesc((void *) response,
+ (char *) "lassoResponse *", NULL);
+ return (ret);
+}
+
+PyObject *response_getattr(PyObject *self, PyObject *args) {
+ PyObject *lares_obj;
+ lassoResponse *lares;
+ const char *attr;
+
+ if (CheckArgs(args, "OS:response_get_attr")) {
+ if (!PyArg_ParseTuple(args, "Os:response_get_attr", &lares_obj, &attr))
+ return NULL;
+ }
+ else return NULL;
+
+ lares = lassoResponse_get(lares_obj);
+
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[s]", "node");
+ if (!strcmp(attr, "node"))
+ return (LassoNode_wrap(lares->node));
+ if (!strcmp(attr, "request_node"))
+ return (LassoNode_wrap(lares->request_node));
+
+ Py_INCREF(Py_None);
+ return (Py_None);
+}
+
+PyObject *response_create(PyObject *self, PyObject *args) {
+ const char *serialized_request;
+ int verifySignature;
+ const char *public_key;
+ const char *private_key;
+ const char *certificate;
+
+ lassoResponse *response;
+
+ if(!PyArg_ParseTuple(args, (char *) "sisss:response_create",
+ &serialized_request, &verifySignature, &public_key, &private_key, &certificate))
+ return NULL;
+
+ response = lasso_response_create(serialized_request,
+ verifySignature,
+ public_key,
+ private_key,
+ certificate);
+
+ return (lassoResponse_wrap(response));
+}
+
+PyObject *response_init(PyObject *self, PyObject *args) {
+ PyObject *response_obj;
+ gboolean authentication_result;
+ int ret;
+
+ if(!PyArg_ParseTuple(args, (char *) "Oi:response_init",
+ &response_obj, &authentication_result))
+ return NULL;
+
+ ret = lasso_response_init(lassoResponse_get(response_obj),
+ authentication_result);
+
+ return (int_wrap(ret));
+}
diff --git a/python/protocols/py_single_sign_on_and_federation.h b/python/protocols/py_single_sign_on_and_federation.h
index e2a64f1b..94c75b6f 100644
--- a/python/protocols/py_single_sign_on_and_federation.h
+++ b/python/protocols/py_single_sign_on_and_federation.h
@@ -56,4 +56,27 @@ PyObject *assertion_add_authenticationStatement(PyObject *self, PyObject *args);
PyObject *authentication_statement_build(PyObject *self, PyObject *args);
+typedef struct {
+ PyObject_HEAD
+ lassoRequest *obj;
+} lassoRequest_object;
+
+#define lassoRequest_get(v) (((v) == Py_None) ? NULL : (((lassoRequest_object *)(PyObject_GetAttr(v, PyString_FromString("_o"))))->obj))
+PyObject *lassoRequest_wrap(lassoRequest *request);
+
+typedef struct {
+ PyObject_HEAD
+ lassoResponse *obj;
+} lassoResponse_object;
+
+#define lassoResponse_get(v) (((v) == Py_None) ? NULL : (((lassoResponse_object *)(PyObject_GetAttr(v, PyString_FromString("_o"))))->obj))
+PyObject *lassoResponse_wrap(lassoResponse *response);
+
+PyObject *request_getattr(PyObject *self, PyObject *args);
+PyObject *request_create(PyObject *self, PyObject *args);
+
+PyObject *response_getattr(PyObject *self, PyObject *args);
+PyObject *response_create(PyObject *self, PyObject *args);
+PyObject *response_init(PyObject *self, PyObject *args);
+
#endif /* __PYLASSO_PY_SINGLE_SIGN_ON_AND_FEDERATION_H__ */