/* $Id$ * * PyLasso - Python bindings for Lasso library * * Copyright (C) 2004 Entr'ouvert * http://lasso.entrouvert.org * * Authors: Nicolas Clapies * Valery Febvre * * 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 "lassomod.h" #include "py_lasso.h" #include "xml/py_xml.h" #include "xml/py_lib_authentication_statement.h" #include "xml/py_lib_authn_request.h" #include "xml/py_lib_federation_termination_notification.h" #include "xml/py_lib_logout_request.h" #include "xml/py_lib_logout_response.h" #include "xml/py_lib_name_identifier_mapping_request.h" #include "xml/py_lib_name_identifier_mapping_response.h" #include "xml/py_lib_register_name_identifier_request.h" #include "xml/py_saml_assertion.h" #include "xml/py_saml_authentication_statement.h" #include "xml/py_saml_name_identifier.h" #include "xml/py_samlp_response.h" #include "protocols/py_authn_request.h" #include "protocols/py_authn_response.h" #include "protocols/py_federation_termination_notification.h" #include "protocols/py_logout_request.h" #include "protocols/py_logout_response.h" #include "protocols/py_name_identifier_mapping_request.h" #include "protocols/py_name_identifier_mapping_response.h" #include "protocols/py_register_name_identifier_request.h" #include "protocols/py_register_name_identifier_response.h" #include "protocols/elements/py_assertion.h" #include "protocols/elements/py_authentication_statement.h" #include "environs/py_federation_termination.h" #include "environs/py_identity.h" #include "environs/py_lecp.h" #include "environs/py_login.h" #include "environs/py_logout.h" #include "environs/py_profile.h" #include "environs/py_register_name_identifier.h" #include "environs/py_server.h" #include "environs/py_session.h" static PyMethodDef lasso_methods[] = { /* py_lasso.h */ {"init", init, METH_VARARGS}, {"shutdown", shutdown2, METH_VARARGS}, {"check_version_exact", check_version_exact, METH_VARARGS}, {"check_version", check_version, METH_VARARGS}, {"check_version_ext", check_version_ext, METH_VARARGS}, /* xml */ /* py_xml.h */ {"node_destroy", node_destroy, METH_VARARGS}, {"node_dump", node_dump, METH_VARARGS}, {"node_export", node_export, METH_VARARGS}, {"node_export_to_base64", node_export_to_base64, METH_VARARGS}, {"node_export_to_query", node_export_to_query, METH_VARARGS}, {"node_export_to_soap", node_export_to_soap, METH_VARARGS}, {"node_get_attr_value", node_get_attr_value, METH_VARARGS}, {"node_get_child", node_get_child, METH_VARARGS}, {"node_get_content", node_get_content, METH_VARARGS}, {"node_verify_signature", node_verify_signature, METH_VARARGS}, /* py_lib_authentication_statement.h */ {"lib_authentication_statement_new", lib_authentication_statement_new, METH_VARARGS}, {"lib_authentication_statement_set_sessionIndex", lib_authentication_statement_set_sessionIndex, METH_VARARGS}, /* py_lib_authn_request.h */ {"lib_authn_request_new", lib_authn_request_new, METH_VARARGS}, {"lib_authn_request_set_consent", lib_authn_request_set_consent, METH_VARARGS}, {"lib_authn_request_set_forceAuthn", lib_authn_request_set_forceAuthn, METH_VARARGS}, {"lib_authn_request_set_isPassive", lib_authn_request_set_isPassive, METH_VARARGS}, {"lib_authn_request_set_nameIDPolicy", lib_authn_request_set_nameIDPolicy, METH_VARARGS}, {"lib_authn_request_set_protocolProfile", lib_authn_request_set_protocolProfile, METH_VARARGS}, {"lib_authn_request_set_relayState", lib_authn_request_set_relayState, METH_VARARGS}, /* py_lib_federation_termination_notification.h */ {"lib_federation_termination_notification_new", lib_federation_termination_notification_new, METH_VARARGS}, {"lib_federation_termination_notification_set_consent", lib_federation_termination_notification_set_consent, METH_VARARGS}, /* py_lib_logout_request.h */ {"lib_logout_request_new", lib_logout_request_new, METH_VARARGS}, {"lib_logout_request_set_consent", lib_logout_request_set_consent, METH_VARARGS}, {"lib_logout_request_set_nameIdentifier", lib_logout_request_set_nameIdentifier, METH_VARARGS}, {"lib_logout_request_set_providerID", lib_logout_request_set_providerID, METH_VARARGS}, {"lib_logout_request_set_relayState", lib_logout_request_set_relayState, METH_VARARGS}, {"lib_logout_request_set_sessionIndex", lib_logout_request_set_sessionIndex, METH_VARARGS}, {"lib_logout_response_new", lib_logout_response_new, METH_VARARGS}, /* py_lib_name_identifier_mapping_request.h */ {"lib_name_identifier_mapping_request_new", lib_name_identifier_mapping_request_new, METH_VARARGS}, {"lib_name_identifier_mapping_request_set_consent", lib_name_identifier_mapping_request_set_consent, METH_VARARGS}, /* py_lib_name_identifier_mapping_response.h */ {"lib_name_identifier_mapping_response_new", lib_name_identifier_mapping_response_new, METH_VARARGS}, /* py_lib_register_name_identifier_request.h */ {"lib_register_name_identifier_request_new", lib_register_name_identifier_request_new, METH_VARARGS}, {"lib_register_name_identifier_request_set_relayState", lib_register_name_identifier_request_set_relayState, METH_VARARGS}, /* py_saml_assertion.h */ {"saml_assertion_new", saml_assertion_new, METH_VARARGS}, {"saml_assertion_add_authenticationStatement", saml_assertion_add_authenticationStatement, METH_VARARGS}, {"saml_assertion_set_signature", saml_assertion_set_signature, METH_VARARGS}, /* py_saml_authentication_statement.h */ {"saml_authentication_statement_new", saml_authentication_statement_new, METH_VARARGS}, /* py_saml_name_identifier.h */ {"saml_name_identifier_new", saml_name_identifier_new, METH_VARARGS}, {"saml_name_identifier_set_format", saml_name_identifier_set_format, METH_VARARGS}, {"saml_name_identifier_set_nameQualifier", saml_name_identifier_set_nameQualifier, METH_VARARGS}, /* py_samlp_response.h */ {"samlp_response_new", samlp_response_new, METH_VARARGS}, {"samlp_response_add_assertion", samlp_response_add_assertion, METH_VARARGS}, /* protocols */ /* py_authn_request.h */ {"authn_request_new", authn_request_new, METH_VARARGS}, {"authn_request_set_requestAuthnContext", authn_request_set_requestAuthnContext, METH_VARARGS}, {"authn_request_set_scoping", authn_request_set_scoping, METH_VARARGS}, {"authn_request_get_protocolProfile", authn_request_get_protocolProfile, METH_VARARGS}, /* py_authn_response.h */ {"authn_response_new_from_export", authn_response_new_from_export, METH_VARARGS}, /* py_federation_termination_notification.h */ {"federation_termination_notification_new", federation_termination_notification_new, METH_VARARGS}, {"federation_termination_notification_new_from_export", federation_termination_notification_new_from_export, METH_VARARGS}, /* py_logout_request.h */ {"logout_request_new", logout_request_new, METH_VARARGS}, {"logout_request_new_from_export", logout_request_new_from_export, METH_VARARGS}, /* py_logout_response.h */ {"logout_response_new_from_request_export", logout_response_new_from_request_export, METH_VARARGS}, {"logout_response_new_from_export", logout_response_new_from_export, METH_VARARGS}, /* py_name_identifier_mapping_request.h */ {"name_identifier_mapping_request_new", name_identifier_mapping_request_new, METH_VARARGS}, /* {"name_identifier_mapping_request_new_from_export", name_identifier_mapping_request_new_from_export, METH_VARARGS}, */ /* py_name_identifier_mapping_response.h */ /* {"name_identifier_mapping_response_new_from_request_export", name_identifier_mapping_response_new_from_request_export, METH_VARARGS}, */ /* {"name_identifier_mapping_response_new_from_export", name_identifier_mapping_response_new_from_export, METH_VARARGS}, */ /* py_register_name_identifier_request.h */ {"register_name_identifier_request_new", register_name_identifier_request_new, METH_VARARGS}, {"register_name_identifier_request_rename_attributes_for_query", register_name_identifier_request_rename_attributes_for_query, METH_VARARGS}, /* py_register_name_identifier_response.h */ {"register_name_identifier_response_new_from_request_export", register_name_identifier_response_new_from_request_export, METH_VARARGS}, {"register_name_identifier_response_new_from_export", register_name_identifier_response_new_from_export, METH_VARARGS}, /* py_request.h */ /* {"request_create", request_create, METH_VARARGS}, */ /* {"request_getattr", request_getattr, METH_VARARGS}, */ /* py_response.h */ /* {"response_create", response_create, METH_VARARGS}, */ /* {"response_getattr", response_getattr, METH_VARARGS}, */ /* {"response_init", response_init, METH_VARARGS}, */ /* {"response_add_assertion", response_add_assertion, METH_VARARGS}, */ /* protocols/elements */ /* assertion.h */ {"assertion_new", assertion_new, METH_VARARGS}, /* authentication_statement.h */ {"authentication_statement_new", authentication_statement_new, METH_VARARGS}, /* environs */ {"profile_get_request_type_from_soap_msg", profile_get_request_type_from_soap_msg, METH_VARARGS}, {"profile_new", profile_new, METH_VARARGS}, {"profile_get_identity", profile_get_identity, METH_VARARGS}, {"profile_get_session", profile_get_session, METH_VARARGS}, {"profile_is_identity_dirty", profile_is_identity_dirty, METH_VARARGS}, {"profile_is_session_dirty", profile_is_session_dirty, METH_VARARGS}, {"profile_set_identity", profile_set_identity, METH_VARARGS}, {"profile_set_identity_from_dump", profile_set_identity_from_dump, METH_VARARGS}, {"profile_set_session", profile_set_session, METH_VARARGS}, {"profile_set_session_from_dump", profile_set_session_from_dump, METH_VARARGS}, /* py_identity.h */ {"identity_new", identity_new, METH_VARARGS}, {"identity_new_from_dump", identity_new_from_dump, METH_VARARGS}, {"identity_dump", identity_dump, METH_VARARGS}, /* py_federation_termination.h */ {"federation_termination_getattr", federation_termination_getattr, METH_VARARGS}, {"federation_termination_new", federation_termination_new, METH_VARARGS}, {"federation_termination_build_notification_msg", federation_termination_build_notification_msg, METH_VARARGS}, {"federation_termination_destroy", federation_termination_destroy, METH_VARARGS}, {"federation_termination_init_notification", federation_termination_init_notification, METH_VARARGS}, {"federation_termination_load_notification_msg", federation_termination_load_notification_msg, METH_VARARGS}, {"federation_termination_process_notification", federation_termination_process_notification, METH_VARARGS}, /* py_lecp.h */ {"lecp_new", lecp_new, METH_VARARGS}, {"lecp_getattr", lecp_getattr, METH_VARARGS}, {"lecp_build_authn_request_msg", lecp_build_authn_request_msg, METH_VARARGS}, {"lecp_build_authn_request_envelope_msg", lecp_build_authn_request_envelope_msg, METH_VARARGS}, {"lecp_build_authn_response_msg", lecp_build_authn_response_msg, METH_VARARGS}, {"lecp_build_authn_response_envelope_msg", lecp_build_authn_response_envelope_msg, METH_VARARGS}, {"lecp_destroy", lecp_destroy, METH_VARARGS}, {"lecp_init_authn_request_envelope", lecp_init_authn_request_envelope, METH_VARARGS}, {"lecp_init_authn_response_envelope", lecp_init_authn_response_envelope, METH_VARARGS}, {"lecp_process_authn_request_envelope_msg", lecp_process_authn_request_envelope_msg, METH_VARARGS}, {"lecp_process_authn_response_envelope_msg", lecp_process_authn_response_envelope_msg, METH_VARARGS}, /* py_login.h */ {"login_getattr", login_getattr, METH_VARARGS}, {"login_new", login_new, METH_VARARGS}, {"login_new_from_dump", login_new_from_dump, METH_VARARGS}, {"login_accept_sso", login_accept_sso, METH_VARARGS}, {"login_build_artifact_msg", login_build_artifact_msg, METH_VARARGS}, {"login_build_authn_request_msg", login_build_authn_request_msg, METH_VARARGS}, {"login_build_authn_response_msg", login_build_authn_response_msg, METH_VARARGS}, {"login_build_request_msg", login_build_request_msg, METH_VARARGS}, {"login_dump", login_dump, METH_VARARGS}, {"login_init_authn_request", login_init_authn_request, METH_VARARGS}, {"login_init_from_authn_request_msg", login_init_from_authn_request_msg, METH_VARARGS}, {"login_init_request", login_init_request, METH_VARARGS}, {"login_must_authenticate", login_must_authenticate, METH_VARARGS}, {"login_process_authn_response_msg", login_process_authn_response_msg, METH_VARARGS}, {"login_process_request_msg", login_process_request_msg, METH_VARARGS}, {"login_process_response_msg", login_process_response_msg, METH_VARARGS}, /* py_logout.h */ {"logout_getattr", logout_getattr, METH_VARARGS}, {"logout_new", logout_new, METH_VARARGS}, {"logout_build_request_msg", logout_build_request_msg, METH_VARARGS}, {"logout_build_response_msg", logout_build_response_msg, METH_VARARGS}, {"logout_destroy", logout_destroy, METH_VARARGS}, {"logout_get_next_providerID", logout_get_next_providerID, METH_VARARGS}, {"logout_init_request", logout_init_request, METH_VARARGS}, {"logout_load_request_msg", logout_load_request_msg, METH_VARARGS}, {"logout_process_request", logout_process_request, METH_VARARGS}, {"logout_process_response_msg", logout_process_response_msg, METH_VARARGS}, /* py_register_name_identifier.h */ {"register_name_identifier_getattr", register_name_identifier_getattr, METH_VARARGS}, {"register_name_identifier_new", register_name_identifier_new, METH_VARARGS}, {"register_name_identifier_build_request_msg", register_name_identifier_build_request_msg, METH_VARARGS}, {"register_name_identifier_build_response_msg", register_name_identifier_build_response_msg, METH_VARARGS}, {"register_name_identifier_destroy", register_name_identifier_destroy, METH_VARARGS}, {"register_name_identifier_init_request", register_name_identifier_init_request, METH_VARARGS}, {"register_name_identifier_process_request", register_name_identifier_process_request, METH_VARARGS}, {"register_name_identifier_process_response_msg", register_name_identifier_process_response_msg, METH_VARARGS}, /* py_server.h */ {"server_new", server_new, METH_VARARGS}, {"server_new_from_dump", server_new_from_dump, METH_VARARGS}, {"server_add_provider", server_add_provider, METH_VARARGS}, {"server_destroy", server_destroy, METH_VARARGS}, {"server_dump", server_dump, METH_VARARGS}, /* py_session.h */ {"session_getattr", session_getattr, METH_VARARGS}, {"session_new", session_new, METH_VARARGS}, {"session_new_from_dump", session_new_from_dump, METH_VARARGS}, {"session_add_assertion", session_add_assertion, METH_VARARGS}, {"session_destroy", session_destroy, METH_VARARGS}, {"session_dump", session_dump, METH_VARARGS}, {"session_get_assertion", session_get_assertion, METH_VARARGS}, {"session_get_authentication_method", session_get_authentication_method, METH_VARARGS}, {"session_get_next_assertion_remote_providerID", session_get_next_assertion_remote_providerID, METH_VARARGS}, {"session_remove_assertion", session_remove_assertion, METH_VARARGS}, {NULL, NULL} /* End of Methods Sentinel */ }; PyObject *lasso_error; void initlassomod(void) { PyObject *m, *d; m = Py_InitModule("lassomod", lasso_methods); d = PyModule_GetDict(m); lasso_error = PyErr_NewException("lassomod.error", NULL, NULL); PyDict_SetItemString(d, "lassomod error", lasso_error); Py_INCREF(lasso_error); PyModule_AddObject(m, "lassomod error", lasso_error); }