Docs: change the doc production and lot of other fixes

* lasso/Makefile.am:
   distribute extract_sections.py
 * docs/references/lasso/lasso.types.in: add missing class (mainly SAML2
   and ID-WSF 1.0/2.0) from docs/references/lasso.types.in

 * lasso/xml/strings.h:
   add lots of documentation, or at least documentation template to
   strings constants.
 * id-ff/login.h:
 * saml-2.0/assertion_query.h:
 * xml/xml.h:
   document undocumented enumerations.
 * lasso/errors.h:
   add proper documentation about error codes.
 * lasso/errors.c:
   new version of the lasso_strerror function
 * lasso/build_strerror.py:
   update the script that generater lasso_strerror from the
   documentation comments.

   Remove usage of OFTYPE

 * lasso/id-ff/session.c:
 * lasso/id-ff/session.h:
   remove usage of oftype, prefer gtk-introspection annotations instead.
 * lasso/id-wsf/data_service.h:
 * lasso/id-wsf/data_service.c:
   do the same.

   Add a script to build lasso-sections.txt

 * lasso/extract_sections.py:
   this script parses header files and generated lasso-sections.txt
   content for GObject class descriptions.

   Add a template file for the lasso-section.txt file

 * docs/references/lasso-sections.txt.in:
   this file serves as a base for the generation of lasso-sections.txt

   Update docs/references/Makefile.am for generating lasso-sections.txt

 * docs/references/Makefile.am:
   always rebuild template, using out of source build directory is too
   weird without it.
   call new script extract_sections.py to regenerate lasso-sections.txt
   if header files changed.

   Update lasso.sgml file with all missing sections

 * docs/reference/lasso.sgml:
   add all missing sections, mainly objects from XML schemas.

 * docs/reference/lasso-sections.txt: update it

 * *.c: add section documentation to some files.
 * lasso/xml/strings.h: fix bad usage or docbook markup
This commit is contained in:
Benjamin Dauvergne 2009-08-26 15:15:07 +00:00
parent b8475305e4
commit fd256b2269
53 changed files with 9466 additions and 3271 deletions

View File

@ -34,3 +34,4 @@ pkgconfigdir = $(libdir)/pkgconfig
clean-local:
-rm -f lasso.pc
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc

View File

@ -84,6 +84,9 @@ libtoolize --copy --force
echo "* Running $AUTOMAKE"
$AUTOMAKE --add-missing -Wno-portability $am_opt || exit $?
echo "* Running gtkdocize"
gtkdocize --flavour no-tmpl || exit $?
cd "$THEDIR"
$srcdir/configure --enable-maintainer-mode "$@" || exit $?

View File

@ -767,18 +767,13 @@ fi
AC_SUBST(LASSO_WSF_SUPPORT)
dnl ==========================================================================
dnl User specific option.
dnl ==========================================================================
dnl Where do we want to install docs
AC_MSG_CHECKING(for docs folder)
AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ])
dnl API Reference documentation support
GTK_DOC_CHECK(1.9)
if test "z$with_html_dir" != "z" ; then
LASSO_DOCDIR=$with_html_dir
else
LASSO_DOCDIR='$(datadir)/doc/lasso'
fi
AC_MSG_RESULT($LASSO_DOCDIR)
AC_SUBST(LASSO_DOCDIR)
AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ])
@ -815,19 +810,6 @@ if test "x$enable_wsf" = "xyes"; then
LASSO_LIBS="$LASSO_LIBS -lsasl2"
fi
dnl Let people disable the gtk-doc stuff.
AC_ARG_ENABLE(gtk-doc, [ --disable-gtk-doc disable documentation build],,
enable_gtk_doc="yes")
if test "x$enable_gtk_doc" = "xyes" ; then
GTK_DOC_MIN_VERSION=1.0
PKG_CHECK_MODULES(GTK_DOC, gtk-doc >= $GTK_DOC_MIN_VERSION, enable_gtk_doc="yes",
enable_gtk_doc="no")
fi
dnl Conditional docs sub dir test.
AM_CONDITIONAL([GTK_DOC_ENABLED],[test "x$enable_gtk_doc" = "xyes"])
AC_CHECK_PROGS(REST2HTML, rest2html rst2html)
AM_CONDITIONAL(HAVE_REST2HTML, test -n "$ac_cv_prog_REST2HTML")
@ -933,7 +915,8 @@ docs/Makefile
docs/lasso-book/Makefile
docs/lasso-book/figures/Makefile
docs/reference/Makefile
docs/reference/version.xml
docs/reference/lasso/version.xml
docs/reference/lasso/Makefile
lasso/Makefile
lasso/id-ff/Makefile
lasso/id-wsf/Makefile

View File

@ -1,7 +1,4 @@
MAINTAINERCLEANFILES = Makefile.in
if GTK_DOC_ENABLED
GTK_DOC_SD = reference
endif
SUBDIRS = lasso-book $(GTK_DOC_SD)
SUBDIRS = lasso-book reference

View File

@ -1,170 +1 @@
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = \
lasso-sections.txt \
lasso.sgml \
lasso.types.in \
version.xml.in \
style.css
if WSF_ENABLED
lasso.types: lasso.types.in
sed -e 's/#WSF# //g' < $(srcdir)/lasso.types.in > lasso.types
else
lasso.types: lasso.types.in
grep -v '#WSF#' $(srcdir)/lasso.types.in > lasso.types
endif
# We need to pre-process original source files
# because gtkdoc does not understand some C features
#
DOC_SOURCE_DIR = ./code
DOC_SOURCE_FILES = \
$(shell find $(top_srcdir)/lasso -name '*.c' -print ) \
$(shell find $(top_srcdir)/lasso -name '*.h' -print | grep -v private)
IGNORE_HFILES = lasso_config.h
# do nothing for all
all: docs
docs: sgml html clean-sources
html: sgml lasso.sgml lasso-index
@echo '*** Building HTML ***'
test -d html || mkdir html
cd html && gtkdoc-mkhtml lasso ../build/lasso.sgml
cp $(srcdir)/style.css html/
SCANOBJ_FILES = lasso.hierarchy lasso.signals lasso.interfaces lasso.prerequisites lasso.args
#
# Prepeare sgml files from sources for each library. We are also
# doing some "magic" here by automatically adding links to XML DSig and
# XML Enc specification, we also remove "Ptr" from the end of the link
# targets to make more references
#
sgml: templates
@echo '*** Building SGML ***'
cp $(srcdir)/*.sgml version.xml build/
cd build && gtkdoc-mkdb --module=lasso \
--main-sgml-file=lasso.sgml \
--sgml-mode \
--output-format=xml \
--tmpl-dir=../tmpl/ \
--source-dir=../$(DOC_SOURCE_DIR)/lasso \
--output-dir=../sgml/
(for i in `find sgml -name "*.sgml" -print` ; do \
cat $$i | \
sed 's!\(&lt;dsig:\)\([^/]*\)\(\/&gt;\)!<ulink URL=\"http://www.w3.org/TR/xmldsig-core/#sec-\2\">\1\2\3</ulink>!g' | \
sed 's!\(&lt;enc:\)\([^/]*\)\(\/&gt;\)!<ulink URL=\"http://www.w3.org/TR/xmlenc-core/#sec-\2\">\1\2\3</ulink>!g' | \
sed 's!linkend=\"\(.*\)Ptr\"!linkend=\"\1\"!g' > \
$$i.tmp; \
mv -f $$i.tmp $$i; \
done);
rm -f build/sgml && $(LN_S) ../sgml build/sgml
# don't rebuild templates if tmpl is not in srcdir
templates: scan
@echo '*** Building TMPL ***'
if test $(top_builddir) = $(top_srcdir); then \
(cd build && gtkdoc-mktmpl --module=lasso --output-dir=../tmpl/) ; \
fi
# CFLAGS and LDFLAGS for compiling scan program.
GTKDOC_CFLAGS = \
$(LASSO_CFLAGS) \
-I$(top_builddir) \
-I$(top_srcdir)
GTKDOC_LIBS = \
$(LASSO_LIBS) \
$(top_builddir)/lasso/liblasso.la
GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC)
GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC)
scan: doc_sources lasso.types
test -d build || mkdir build
@echo '*** Scan sources ***'
cp $(srcdir)/lasso-sections.txt build/
if grep -l '^..*$$' lasso.types > /dev/null ; then \
CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANOBJ_OPTIONS) --module=lasso --types=lasso.types --output-dir=build/ ; \
else \
cd $(srcdir) ; \
for i in $(SCANOBJ_FILES) ; do \
test -f $$i || touch $$i ; \
done \
fi
gtkdoc-scan --module=lasso \
--source-dir=$(DOC_SOURCE_DIR)/lasso/ \
--output-dir=build/ \
--ignore-headers="$(IGNORE_HFILES)"
#
# Prepare source files by coping them to "code" folder and
# removing LASSO_EXPORT* stuff that makes gtkdoc crazy
#
doc_sources: $(DOC_SOURCE_FILES)
@echo '*** Prepare sources ***'
(for i in $(DOC_SOURCE_FILES) ; do \
folder_name=`echo $$i | sed 's#$(top_srcdir)/##' | sed 's#/[^/]*$$##'`; \
file_name=`echo $$i | sed 's#.*/##'`; \
test -d $(DOC_SOURCE_DIR)/$$folder_name || mkdir -p $(DOC_SOURCE_DIR)/$$folder_name; \
cat $$i | \
sed 's/#if.*//' | \
sed 's/#el.*//' | \
sed 's/#end.*//' | \
sed 's/LASSO_EXPORT_VAR//' | \
sed 's/LASSO_EXPORT//' > \
$(DOC_SOURCE_DIR)/$$folder_name/$$file_name; \
done);
#
# Create index for all functions. For macros and defines need to add -CAPS suffix
#
lasso-index: scan
@echo '*** Create functions index ***'
grep -h '<NAME>.*</NAME>' build/lasso-*decl.txt | \
grep -v '<NAME>extern</NAME>' | \
sort -u | \
sed 's#_#-#g' | \
sed 's#<NAME>\([^-]*\)-\([^<]*\)</NAME>#<listitem><para><link linkend=\"\1-\2-CAPS\">\1-\2</link></para></listitem>#g' | \
sed 's#<NAME>\([^<]*\)</NAME>#<listitem><para><link linkend=\"\1\">\1</link></para></listitem>#g' > \
sgml/lasso-index.sgml
clean-local: clean-sources
-rm -rf $(DOC_SOURCE_DIR)
-rm -rf .libs
-if test $(top_builddir) != $(top_srcdir); then rm -f tmpl/*.sgml ; fi
-rm -rf sgml
-rm -rf html
-rm -rf build
-rm -f $(SCANOBJ_FILES) index.sgml lasso-index.sgml
-rm -rf $(SCANOBJ_FILES) *.o *~ *.bak *.stamp
-rm -f lasso.types
-rm -rf tmpl
clean-sources:
-rm -rf code
maintainer-clean-local: clean
-rm -rf `find sgml -name "*.sgml" -print`
if GTK_DOC_ENABLED
dist-check-gtkdoc:
else
dist-check-gtkdoc:
@echo "*** gtk-doc must be installed and enabled in order to make dist"
@false
endif
dist-hook: dist-check-gtkdoc dist-hook-local
mkdir $(distdir)/tmpl
mkdir $(distdir)/html
-cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
-cp $(srcdir)/html/* $(distdir)/html
.PHONY : dist-hook-local
SUBDIRS = lasso

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,529 @@
<INCLUDE>lasso/lasso.h</INCLUDE>
<SECTION>
<FILE>strings</FILE>
<SUBSECTION>
LASSO_LASSO_HREF
LASSO_LASSO_PREFIX
LASSO_PYTHON_HREF
<SUBSECTION>
LASSO_LIB_HREF
LASSO_LIB_PREFIX
LASSO_LIB_MAJOR_VERSION_N
LASSO_LIB_MINOR_VERSION_N
<SUBSECTION>
LASSO_LIB_NAMEID_POLICY_TYPE_NONE
LASSO_LIB_NAMEID_POLICY_TYPE_ONE_TIME
LASSO_LIB_NAMEID_POLICY_TYPE_FEDERATED
LASSO_LIB_NAMEID_POLICY_TYPE_ANY
<SUBSECTION>
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_INTERNET_PROTOCOL
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_INTERNET_PROTOCOL_PASSWORD
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_ONE_FACTOR_UNREGISTERED
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_TWO_FACTOR_UNREGISTERED
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_ONE_FACTOR_CONTRACT
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_TWO_FACTOR_CONTRACT
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PASSWORD
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PASSWORD_PROTECTED_TRANSPORT
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PREVIOUS_SESSION
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SMARTCARD
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SMARTCARD_PKI
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SOFTWARE_PKI
LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_TIME_SYNC_TOKEN
<SUBSECTION>
LASSO_LIB_AUTHN_CONTEXT_COMPARISON_EXACT
LASSO_LIB_AUTHN_CONTEXT_COMPARISON_MINIMUM
LASSO_LIB_AUTHN_CONTEXT_COMPARISON_MAXIMUM
LASSO_LIB_AUTHN_CONTEXT_COMPARISON_BETTER
<SUBSECTION>
LASSO_LIB_STATUS_CODE_FEDERATION_DOES_NOT_EXIST
LASSO_LIB_STATUS_CODE_INVALID_ASSERTION_CONSUMER_SERVICE_INDEX
LASSO_LIB_STATUS_CODE_INVALID_SIGNATURE
LASSO_LIB_STATUS_CODE_NO_AUTHN_CONTEXT
LASSO_LIB_STATUS_CODE_NO_AVAILABLEIDP
LASSO_LIB_STATUS_CODE_NO_PASSIVE
LASSO_LIB_STATUS_CODE_NO_SUPPORTEDIDP
LASSO_LIB_STATUS_CODE_PROXY_COUNT_EXCEEDED
LASSO_LIB_STATUS_CODE_UNKNOWN_PRINCIPAL
LASSO_LIB_STATUS_CODE_UNSIGNED_AUTHN_REQUEST
LASSO_LIB_STATUS_CODE_UNSUPPORTED_PROFILE
<SUBSECTION>
LASSO_LIB_PROTOCOL_PROFILE_BRWS_ART
LASSO_LIB_PROTOCOL_PROFILE_BRWS_POST
LASSO_LIB_PROTOCOL_PROFILE_BRWS_LECP
LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_IDP_HTTP
LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_IDP_SOAP
LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_SP_HTTP
LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_SP_SOAP
LASSO_LIB_PROTOCOL_PROFILE_NIM_SP_HTTP
LASSO_LIB_PROTOCOL_PROFILE_RNI_IDP_HTTP
LASSO_LIB_PROTOCOL_PROFILE_RNI_IDP_SOAP
LASSO_LIB_PROTOCOL_PROFILE_RNI_SP_HTTP
LASSO_LIB_PROTOCOL_PROFILE_RNI_SP_SOAP
LASSO_LIB_PROTOCOL_PROFILE_SLO_SP_HTTP
LASSO_LIB_PROTOCOL_PROFILE_SLO_SP_SOAP
LASSO_LIB_PROTOCOL_PROFILE_SLO_IDP_HTTP
LASSO_LIB_PROTOCOL_PROFILE_SLO_IDP_SOAP
<SUBSECTION>
LASSO_LIB_NAME_IDENTIFIER_FORMAT_FEDERATED
LASSO_LIB_NAME_IDENTIFIER_FORMAT_ONE_TIME
LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENCRYPTED
LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENTITYID
<SUBSECTION>
LASSO_LIB_CONSENT_OBTAINED
LASSO_LIB_CONSENT_OBTAINED_PRIOR
LASSO_LIB_CONSENT_OBTAINED_CURRENT_IMPLICIT
LASSO_LIB_CONSENT_OBTAINED_CURRENT_EXPLICIT
LASSO_LIB_CONSENT_UNAVAILABLE
LASSO_LIB_CONSENT_INAPPLICABLE
<SUBSECTION>
LASSO_SECURITY_MECH_NULL
LASSO_SECURITY_MECH_X509
LASSO_SECURITY_MECH_SAML
LASSO_SECURITY_MECH_BEARER
LASSO_SECURITY_MECH_TLS
LASSO_SECURITY_MECH_TLS_X509
LASSO_SECURITY_MECH_TLS_SAML
LASSO_SECURITY_MECH_TLS_BEARER
LASSO_SECURITY_MECH_CLIENT_TLS
LASSO_SECURITY_MECH_CLIENT_TLS_X509
LASSO_SECURITY_MECH_CLIENT_TLS_SAML
LASSO_SECURITY_MECH_CLIENT_TLS_BEARER
<SUBSECTION>
LASSO_SECURITY11_MECH_X509
LASSO_SECURITY11_MECH_SAML
LASSO_SECURITY11_MECH_BEARER
LASSO_SECURITY11_MECH_TLS_X509
LASSO_SECURITY11_MECH_TLS_SAML
LASSO_SECURITY11_MECH_TLS_BEARER
<SUBSECTION>
LASSO_DISCO_HREF
LASSO_DISCO_PREFIX
LASSO_EP_HREF
LASSO_EP_PREFIX
LASSO_PP_HREF
LASSO_PP_PREFIX
LASSO_IS_HREF
LASSO_IS_PREFIX
LASSO_SA_HREF
LASSO_SA_PREFIX
LASSO_SEC_HREF
LASSO_SEC_PREFIX
<SUBSECTION>
LASSO_SA_SASL_SERVICE_NAME
<SUBSECTION>
LASSO_IS_INTERACT_ATTR_INTERACT_IF_NEEDED
LASSO_IS_INTERACT_ATTR_DO_NOT_INTERACT
LASSO_IS_INTERACT_ATTR_DO_NOT_INTERACT_FOR_DATA
<SUBSECTION>
LASSO_DISCO_STATUS_CODE_OK
LASSO_DISCO_STATUS_CODE_DISCO_OK
LASSO_DISCO_STATUS_CODE_FAILED
LASSO_DISCO_STATUS_CODE_REMOVE_ENTRY
LASSO_DISCO_STATUS_CODE_FORBIDDEN
LASSO_DISCO_STATUS_CODE_NO_RESULTS
LASSO_DISCO_STATUS_CODE_DIRECTIVES
<SUBSECTION>
LASSO_DST_STATUS_CODE_OK
LASSO_DST_STATUS_CODE_FAILED
LASSO_DST_STATUS_CODE_PARTIAL
LASSO_DST_STATUS_CODE_ACTION_NOT_AUTHORIZED
LASSO_DST_STATUS_CODE_ACTION_NOT_SUPPORTED
LASSO_DST_STATUS_CODE_ALL_RETURNED
LASSO_DST_STATUS_CODE_CHANGE_HISTORY_NOT_SUPPORTED
LASSO_DST_STATUS_CODE_CHANGED_SINCE_RETURNS_ALL
LASSO_DST_STATUS_CODE_DATA_TOO_LONG
LASSO_DST_STATUS_CODE_EXISTS_ALREADY
LASSO_DST_STATUS_CODE_EXTENSION_NOT_SUPPORTED
LASSO_DST_STATUS_CODE_INVALID_DATA
LASSO_DST_STATUS_CODE_INVALID_RESOURCE_ID
LASSO_DST_STATUS_CODE_INVALID_SELECT
LASSO_DST_STATUS_CODE_MISSING_NEW_DATA_ELEMENT
LASSO_DST_STATUS_CODE_MISSING_RESOURCE_ID_ELEMENT
LASSO_DST_STATUS_CODE_MISSING_SELECT
LASSO_DST_STATUS_CODE_MODIFIED_SINCE
LASSO_DST_STATUS_CODE_NO_MORE_ELEMENTS
LASSO_DST_STATUS_CODE_NO_MULTIPLE_ALLOWED
LASSO_DST_STATUS_CODE_NO_MULTIPLE_RESOURCES
LASSO_DST_STATUS_CODE_TIME_OUT
LASSO_DST_STATUS_CODE_UNEXPECTED_ERROR
<SUBSECTION>
LASSO_SA_STATUS_CODE_OK
LASSO_SA_STATUS_CODE_CONTINUE
LASSO_SA_STATUS_CODE_ABORT
<SUBSECTION>
LASSO_METADATA_HREF
LASSO_METADATA_PREFIX
<SUBSECTION>
LASSO_SAML_ASSERTION_HREF
LASSO_SAML_ASSERTION_PREFIX
LASSO_SAML_PROTOCOL_HREF
LASSO_SAML_PROTOCOL_PREFIX
LASSO_SAML_MAJOR_VERSION_N
LASSO_SAML_MINOR_VERSION_N
<SUBSECTION>
LASSO_SAML_STATUS_CODE_SUCCESS
LASSO_SAML_STATUS_CODE_REQUEST_DENIED
LASSO_SAML_STATUS_CODE_VERSION_MISMATCH
LASSO_SAML_STATUS_CODE_REQUESTER
LASSO_SAML_STATUS_CODE_RESPONDER
LASSO_SAML_STATUS_CODE_REQUEST_VERSION_TOO_HIGH
LASSO_SAML_STATUS_CODE_REQUEST_VERSION_TOO_LOW
LASSO_SAML_STATUS_CODE_REQUEST_VERSION_DEPRECATED
LASSO_SAML_STATUS_CODE_TOO_MANY_RESPONSES
LASSO_SAML_STATUS_CODE_RESOURCE_NOT_RECOGNIZED
<SUBSECTION>
LASSO_SAML_AUTHENTICATION_METHOD_PASSWORD
LASSO_SAML_AUTHENTICATION_METHOD_KERBEROS
LASSO_SAML_AUTHENTICATION_METHOD_SECURE_REMOTE_PASSWORD
LASSO_SAML_AUTHENTICATION_METHOD_HARDWARE_TOKEN
LASSO_SAML_AUTHENTICATION_METHOD_SMARTCARD_PKI
LASSO_SAML_AUTHENTICATION_METHOD_SOFTWARE_PKI
LASSO_SAML_AUTHENTICATION_METHOD_PGP
LASSO_SAML_AUTHENTICATION_METHODS_PKI
LASSO_SAML_AUTHENTICATION_METHOD_XKMS
LASSO_SAML_AUTHENTICATION_METHOD_XMLD_SIG
LASSO_SAML_AUTHENTICATION_METHOD_UNSPECIFIED
LASSO_SAML_AUTHENTICATION_METHOD_LIBERTY
<SUBSECTION>
LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT
LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT01
LASSO_SAML_CONFIRMATION_METHOD_BEARER
LASSO_SAML_CONFIRMATION_METHOD_HOLDER_OF_KEY
LASSO_SAML_CONFIRMATION_METHOD_SENDER_VOUCHES
<SUBSECTION>
LASSO_SOAP_ENV_HREF
LASSO_SOAP_ENV_PREFIX
LASSO_SOAP_ENV_ACTOR
LASSO_SOAP_BINDING_HREF
LASSO_SOAP_BINDING_PREFIX
LASSO_SOAP_BINDING_EXT_HREF
LASSO_SOAP_BINDING_EXT_PREFIX
<SUBSECTION>
LASSO_IDWSF2_SB2_HREF
LASSO_IDWSF2_SB2_PREFIX
LASSO_IDWSF2_SBF_HREF
LASSO_IDWSF2_SBF_PREFIX
<SUBSECTION>
LASSO_SOAP_BINDING_PROCESS_CONTEXT_PRINCIPAL_OFFLINE
LASSO_SOAP_BINDING_PROCESS_CONTEXT_PRINCIPAL_ONLINE
LASSO_SOAP_BINDING_PROCESS_CONTEXT_SIMULATE
<SUBSECTION>
LASSO_SOAP_FAULT_CODE_SERVER
LASSO_SOAP_FAULT_STRING_SERVER
LASSO_SOAP_FAULT_STRING_IDENTITY_NOT_FOUND
<SUBSECTION>
LASSO_PAOS_HREF
LASSO_PAOS_PREFIX
<SUBSECTION>
LASSO_ECP_HREF
LASSO_ECP_PREFIX
<SUBSECTION>
LASSO_SAML2_METADATA_HREF
LASSO_SAML2_METADATA_BINDING_SOAP
LASSO_SAML2_METADATA_BINDING_REDIRECT
LASSO_SAML2_METADATA_BINDING_POST
LASSO_SAML2_METADATA_BINDING_ARTIFACT
LASSO_SAML2_METADATA_BINDING_PAOS
<SUBSECTION>
LASSO_SAML2_PROTOCOL_HREF
LASSO_SAML2_PROTOCOL_PREFIX
LASSO_SAML2_ASSERTION_HREF
LASSO_SAML2_ASSERTION_PREFIX
<SUBSECTION>
LASSO_SAML2_DEFLATE_ENCODING
<SUBSECTION>
LASSO_SAML2_NAME_IDENTIFIER_FORMAT_UNSPECIFIED
LASSO_SAML2_NAME_IDENTIFIER_FORMAT_EMAIL
LASSO_SAML2_NAME_IDENTIFIER_FORMAT_X509
LASSO_SAML2_NAME_IDENTIFIER_FORMAT_WINDOWS
LASSO_SAML2_NAME_IDENTIFIER_FORMAT_KERBEROS
LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY
LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT
LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT
LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED
<SUBSECTION>
LASSO_SAML2_ATTRIBUTE_NAME_EPR
LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_URI
<SUBSECTION>
LASSO_SAML2_CONSENT_OBTAINED
LASSO_SAML2_CONSENT_PRIOR
LASSO_SAML2_CONSENT_IMPLICIT
LASSO_SAML2_CONSENT_EXPLICIT
LASSO_SAML2_CONSENT_UNAVAILABLE
LASSO_SAML2_CONSENT_INAPPLICABLE
<SUBSECTION>
LASSO_SAML2_STATUS_CODE_SUCCESS
LASSO_SAML2_STATUS_CODE_REQUESTER
LASSO_SAML2_STATUS_CODE_RESPONDER
LASSO_SAML2_STATUS_CODE_VERSION_MISMATCH
LASSO_SAML2_STATUS_CODE_AUTHN_FAILED
LASSO_SAML2_STATUS_CODE_INVALID_ATTR_NAME
LASSO_SAML2_STATUS_CODE_INVALID_NAME_ID_POLICY
LASSO_SAML2_STATUS_CODE_NO_AUTHN_CONTEXT
LASSO_SAML2_STATUS_CODE_NO_AVAILABLE_IDP
LASSO_SAML2_STATUS_CODE_NO_PASSIVE
LASSO_SAML2_STATUS_CODE_NO_SUPPORTED_IDP
LASSO_SAML2_STATUS_CODE_PARTIAL_LOGOUT
LASSO_SAML2_STATUS_CODE_PROXY_COUNT_EXCEEDED
LASSO_SAML2_STATUS_CODE_REQUEST_DENIED
LASSO_SAML2_STATUS_CODE_REQUEST_UNSUPPORTED
LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_DEPRECATED
LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_TOO_HIGH
LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_TOO_LOW
LASSO_SAML2_STATUS_CODE_RESOURCE_NOT_RECOGNIZED
LASSO_SAML2_STATUS_CODE_TOO_MANY_RESPONSES
LASSO_SAML2_STATUS_CODE_UNKNOWN_ATTR_PROFILE
LASSO_SAML2_STATUS_CODE_UNKNOWN_PRINCIPAL
LASSO_SAML2_STATUS_CODE_UNSUPPORTED_BINDING
<SUBSECTION>
LASSO_SAML2_AUTHN_CONTEXT_AUTHENTICATED_TELEPHONY
LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL
LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL_PASSWORD
LASSO_SAML2_AUTHN_CONTEXT_KERBEROS
LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_CONTRACT
LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_UNREGISTERED
LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_CONTRACT
LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_UNREGISTERED
LASSO_SAML2_AUTHN_CONTEXT_NOMAD_TELEPHONY
LASSO_SAML2_AUTHN_CONTEXT_PERSONALIZED_TELEPHONY
LASSO_SAML2_AUTHN_CONTEXT_PGP
LASSO_SAML2_AUTHN_CONTEXT_PASSWORD_PROTECTED_TRANSPORT
LASSO_SAML2_AUTHN_CONTEXT_PASSWORD
LASSO_SAML2_AUTHN_CONTEXT_PREVIOUS_SESSION
LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD
LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD_PKI
LASSO_SAML2_AUTHN_CONTEXT_SOFTWARE_PKI
LASSO_SAML2_AUTHN_CONTEXT_SPKI
LASSO_SAML2_AUTHN_CONTEXT_SECURE_REMOTE_PASSWORD
LASSO_SAML2_AUTHN_CONTEXT_TLS_CLIENT
LASSO_SAML2_AUTHN_CONTEXT_X509
LASSO_SAML2_AUTHN_CONTEXT_TELEPHONY
LASSO_SAML2_AUTHN_CONTEXT_TIME_SYNC_TOKEN
LASSO_SAML2_AUTHN_CONTEXT_XMLDSIG
<SUBSECTION>
LASSO_SAML2_CONFIRMATION_METHOD_BEARER
<SUBSECTION>
LASSO_IDWSF2_DISCO_HREF
LASSO_IDWSF2_DISCO_PREFIX
LASSO_IDWSF2_DST_HREF
LASSO_IDWSF2_DST_PREFIX
LASSO_IDWSF2_DSTREF_HREF
LASSO_IDWSF2_DSTREF_PREFIX
LASSO_IDWSF2_IMS_HREF
LASSO_IDWSF2_IMS_PREFIX
LASSO_IDWSF2_IS_HREF
LASSO_IDWSF2_IS_PREFIX
LASSO_IDWSF2_PS_HREF
LASSO_IDWSF2_PS_PREFIX
LASSO_IDWSF2_SUBS_HREF
LASSO_IDWSF2_SUBS_PREFIX
LASSO_IDWSF2_SUBSREF_HREF
LASSO_IDWSF2_SUBSREF_PREFIX
LASSO_IDWSF2_UTIL_HREF
LASSO_IDWSF2_UTIL_PREFIX
LASSO_IDWSF2_SEC_HREF
LASSO_IDWSF2_SEC_PREFIX
<SUBSECTION>
LASSO_WSSE_HREF
LASSO_WSSE_PREFIX
LASSO_WSSE1_HREF
LASSO_WSSE1_PREFIX
LASSO_WSUTIL1_HREF
LASSO_WSUTIL1_PREFIX
LASSO_WSA_HREF
LASSO_WSA_PREFIX
LASSO_WSSE_200401_HREF
LASSO_WSSE_200401_PREFIX
LASSO_WSU_HREF
LASSO_WSU_PREFIX
<SUBSECTION>
LASSO_DS_HREF
LASSO_DS_PREFIX
LASSO_XSI_HREF
LASSO_XSI_PREFIX
</SECTION>
<SECTION>
<FILE>lasso</FILE>
lasso_init
lasso_shutdown
lasso_check_version
LassoCheckVersionMode
</SECTION>
<SECTION>
<FILE>errors</FILE>
<TITLE>Error codes</TITLE>
LASSO_ERROR_UNDEFINED
LASSO_ERROR_UNIMPLEMENTED
LASSO_ERROR_OUT_OF_MEMORY
LASSO_ERROR_CAST_FAILED
LASSO_XML_ERROR_NODE_NOT_FOUND
LASSO_XML_ERROR_NODE_CONTENT_NOT_FOUND
LASSO_XML_ERROR_ATTR_NOT_FOUND
LASSO_XML_ERROR_ATTR_VALUE_NOT_FOUND
LASSO_XML_ERROR_INVALID_FILE
LASSO_XML_ERROR_OBJECT_CONSTRUCTION_FAILED
LASSO_XML_ERROR_MISSING_NAMESPACE
LASSO_DS_ERROR_SIGNATURE_NOT_FOUND
LASSO_DS_ERROR_INVALID_SIGNATURE
LASSO_DS_ERROR_SIGNATURE_TMPL_CREATION_FAILED
LASSO_DS_ERROR_CONTEXT_CREATION_FAILED
LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED
LASSO_DS_ERROR_PRIVATE_KEY_LOAD_FAILED
LASSO_DS_ERROR_CERTIFICATE_LOAD_FAILED
LASSO_DS_ERROR_SIGNATURE_FAILED
LASSO_DS_ERROR_KEYS_MNGR_CREATION_FAILED
LASSO_DS_ERROR_KEYS_MNGR_INIT_FAILED
LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED
LASSO_DS_ERROR_CA_CERT_CHAIN_LOAD_FAILED
LASSO_DS_ERROR_INVALID_SIGALG
LASSO_DS_ERROR_DIGEST_COMPUTE_FAILED
LASSO_DS_ERROR_SIGNATURE_TEMPLATE_NOT_FOUND
LASSO_DS_ERROR_TOO_MUCH_REFERENCES
LASSO_DS_ERROR_INVALID_REFERENCE_FOR_SAML
LASSO_DS_ERROR_DECRYPTION_FAILED
LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND
LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED
LASSO_SERVER_ERROR_ADD_PROVIDER_PROTOCOL_MISMATCH
LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED
LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE
LASSO_LOGOUT_ERROR_REQUEST_DENIED
LASSO_LOGOUT_ERROR_FEDERATION_NOT_FOUND
LASSO_LOGOUT_ERROR_UNKNOWN_PRINCIPAL
LASSO_PROFILE_ERROR_INVALID_QUERY
LASSO_PROFILE_ERROR_INVALID_POST_MSG
LASSO_PROFILE_ERROR_INVALID_SOAP_MSG
LASSO_PROFILE_ERROR_MISSING_REQUEST
LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD
LASSO_PROFILE_ERROR_INVALID_PROTOCOLPROFILE
LASSO_PROFILE_ERROR_INVALID_MSG
LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID
LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE
LASSO_PROFILE_ERROR_UNKNOWN_PROFILE_URL
LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND
LASSO_PROFILE_ERROR_FEDERATION_NOT_FOUND
LASSO_PROFILE_ERROR_NAME_IDENTIFIER_NOT_FOUND
LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED
LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED
LASSO_PROFILE_ERROR_BUILDING_MESSAGE_FAILED
LASSO_PROFILE_ERROR_BUILDING_RESPONSE_FAILED
LASSO_PROFILE_ERROR_SESSION_NOT_FOUND
LASSO_PROFILE_ERROR_BAD_IDENTITY_DUMP
LASSO_PROFILE_ERROR_BAD_SESSION_DUMP
LASSO_PROFILE_ERROR_MISSING_RESPONSE
LASSO_PROFILE_ERROR_MISSING_STATUS_CODE
LASSO_PROFILE_ERROR_MISSING_ARTIFACT
LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING
LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION
LASSO_PROFILE_ERROR_MISSING_SERVICE_TYPE
LASSO_PROFILE_ERROR_MISSING_ASSERTION
LASSO_PROFILE_ERROR_MISSING_SUBJECT
LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER
LASSO_PROFILE_ERROR_INVALID_ARTIFACT
LASSO_PROFILE_ERROR_MISSING_ENCRYPTION_PRIVATE_KEY
LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS
LASSO_PROFILE_ERROR_MISSING_ISSUER
LASSO_PROFILE_ERROR_MISSING_SERVICE_INSTANCE
LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE
LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE_ADDRESS
LASSO_PROFILE_ERROR_INVALID_ISSUER
LASSO_PROFILE_ERROR_MISSING_SERVER
LASSO_PROFILE_ERROR_UNKNOWN_PROVIDER
LASSO_PROFILE_ERROR_CANNOT_VERIFY_SIGNATURE
LASSO_PROFILE_ERROR_CANNOT_FIND_A_PROVIDER
LASSO_PROFILE_ERROR_RESPONSE_DOES_NOT_MATCH_REQUEST
LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ
LASSO_PARAM_ERROR_INVALID_VALUE
LASSO_PARAM_ERROR_CHECK_FAILED
LASSO_PARAM_ERROR_NON_INITIALIZED_OBJECT
LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND
LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED
LASSO_LOGIN_ERROR_INVALID_NAMEIDPOLICY
LASSO_LOGIN_ERROR_REQUEST_DENIED
LASSO_LOGIN_ERROR_INVALID_SIGNATURE
LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST
LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS
LASSO_LOGIN_ERROR_UNKNOWN_PRINCIPAL
LASSO_LOGIN_ERROR_NO_DEFAULT_ENDPOINT
LASSO_LOGIN_ERROR_ASSERTION_REPLAY
LASSO_LOGIN_ERROR_ASSERTION_DOES_NOT_MATCH_REQUEST_ID
LASSO_DEFEDERATION_ERROR_MISSING_NAME_IDENTIFIER
LASSO_SOAP_FAULT_REDIRECT_REQUEST
LASSO_SOAP_ERROR_MISSING_ENVELOPE
LASSO_SOAP_ERROR_MISSING_HEADER
LASSO_SOAP_ERROR_MISSING_BODY
LASSO_SOAP_ERROR_MISSING_SOAP_FAULT_DETAIL
LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_NAMESPACE
LASSO_NAME_IDENTIFIER_MAPPING_ERROR_FORBIDDEN_CALL_ON_THIS_SIDE
LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_IDENTIFIER
LASSO_DATA_SERVICE_ERROR_UNREGISTERED_DST
LASSO_DATA_SERVICE_CANNOT_ADD_ITEM
LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION
LASSO_WSF_PROFILE_ERROR_MISSING_SECURITY
LASSO_WSF_PROFILE_ERROR_MISSING_ASSERTION_ID
LASSO_WSF_PROFILE_ERROR_MISSING_ENDPOINT
LASSO_WSF_PROFILE_ERROR_SOAP_FAULT
LASSO_WSF_PROFILE_ERROR_UNSUPPORTED_SECURITY_MECHANISM
LASSO_WSF_PROFILE_ERROR_MISSING_DESCRIPTION
LASSO_WSF_PROFILE_ERROR_MISSING_RESOURCE_ID
LASSO_WSF_PROFILE_ERROR_MISSING_CREDENTIAL_REF
LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID
LASSO_DISCOVERY_ERROR_SVC_METADATA_REGISTER_FAILED
LASSO_DISCOVERY_ERROR_SVC_METADATA_ASSOCIATION_ADD_FAILED
LASSO_DISCOVERY_ERROR_MISSING_REQUESTED_SERVICE
LASSO_DISCOVERY_ERROR_FAILED_TO_BUILD_ENDPOINT_REFERENCE
LASSO_DST_ERROR_MISSING_SERVICE_DATA
LASSO_DST_ERROR_QUERY_FAILED
LASSO_DST_ERROR_QUERY_PARTIALLY_FAILED
LASSO_DST_ERROR_MODIFY_FAILED
LASSO_DST_ERROR_MODIFY_PARTIALLY_FAILED
LASSO_DST_ERROR_NEW_DATA_MISSING
LASSO_DST_ERROR_QUERY_NOT_FOUND
LASSO_DST_ERROR_NO_DATA
LASSO_DST_ERROR_MALFORMED_QUERY
LASSO_REGISTRY_ERROR_KEY_EXISTS
LASSO_PROVIDER_ERROR_MISSING_PUBLIC_KEY
</SECTION>

View File

@ -1,377 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY LassoLibAssertion SYSTEM "sgml/lib_assertion.xml">
<!ENTITY LassoLibAuthnRequest SYSTEM "sgml/lib_authn_request.xml">
<!ENTITY LassoLibAuthnRequestEnvelope SYSTEM "sgml/lib_authn_request_envelope.xml">
<!ENTITY LassoLibAuthnResponse SYSTEM "sgml/lib_authn_response.xml">
<!ENTITY LassoLibAuthnResponseEnvelope SYSTEM "sgml/lib_authn_response_envelope.xml">
<!ENTITY LassoLibIDPEntries SYSTEM "sgml/lib_idp_entries.xml">
<!ENTITY LassoLibIDPEntry SYSTEM "sgml/lib_idp_entry.xml">
<!ENTITY LassoLibIDPList SYSTEM "sgml/lib_idp_list.xml">
<!ENTITY LassoLibRequestAuthnContext SYSTEM "sgml/lib_request_authn_context.xml">
<!ENTITY LassoLibScoping SYSTEM "sgml/lib_scoping.xml">
<!ENTITY LassoSamlAdvice SYSTEM "sgml/saml_advice.xml">
<!ENTITY LassoSamlAssertion SYSTEM "sgml/saml_assertion.xml">
<!ENTITY LassoSamlAttribute SYSTEM "sgml/saml_attribute.xml">
<!ENTITY LassoSamlAttributeDesignator SYSTEM "sgml/saml_attribute_designator.xml">
<!ENTITY LassoSamlAttributeValue SYSTEM "sgml/saml_attribute_value.xml">
<!ENTITY LassoSamlAttributeStatement SYSTEM "sgml/saml_attribute_statement.xml">
<!ENTITY LassoSamlAudienceRestrictionCondition SYSTEM "sgml/saml_audience_restriction_condition.xml">
<!ENTITY LassoSamlAuthenticationStatement SYSTEM "sgml/saml_authentication_statement.xml">
<!ENTITY LassoSamlAuthorityBinding SYSTEM "sgml/saml_authority_binding.xml">
<!ENTITY LassoSamlConditionAbstract SYSTEM "sgml/saml_condition_abstract.xml">
<!ENTITY LassoSamlConditions SYSTEM "sgml/saml_conditions.xml">
<!ENTITY LassoSamlNameIdentifier SYSTEM "sgml/saml_name_identifier.xml">
<!ENTITY LassoSamlStatementAbstract SYSTEM "sgml/saml_statement_abstract.xml">
<!ENTITY LassoSamlSubject SYSTEM "sgml/saml_subject.xml">
<!ENTITY LassoSamlSubjectConfirmation SYSTEM "sgml/saml_subject_confirmation.xml">
<!ENTITY LassoSamlSubjectLocality SYSTEM "sgml/saml_subject_locality.xml">
<!ENTITY LassoSamlSubjectStatementAbstract SYSTEM "sgml/saml_subject_statement_abstract.xml">
<!ENTITY LassoSamlpRequestAbstract SYSTEM "sgml/samlp_request_abstract.xml">
<!ENTITY LassoSamlpResponse SYSTEM "sgml/samlp_response.xml">
<!ENTITY LassoSamlpResponseAbstract SYSTEM "sgml/samlp_response_abstract.xml">
<!ENTITY LassoSamlpStatus SYSTEM "sgml/samlp_status.xml">
<!ENTITY LassoSamlpStatusCode SYSTEM "sgml/samlp_status_code.xml">
<!ENTITY LassoNode SYSTEM "sgml/node.xml">
<!ENTITY LassoLibLogoutRequest SYSTEM "sgml/lib_logout_request.xml">
<!ENTITY LassoLibFederationTerminationNotification SYSTEM "sgml/lib_federation_termination_notification.xml">
<!ENTITY LassoLibLogoutResponse SYSTEM "sgml/lib_logout_response.xml">
<!ENTITY LassoLibNameIdentifierMappingRequest SYSTEM "sgml/lib_name_identifier_mapping_request.xml">
<!ENTITY LassoLibNameIdentifierMappingResponse SYSTEM "sgml/lib_name_identifier_mapping_response.xml">
<!ENTITY LassoLibRegisterNameIdentifierRequest SYSTEM "sgml/lib_register_name_identifier_request.xml">
<!ENTITY LassoLibRegisterNameIdentifierResponse SYSTEM "sgml/lib_register_name_identifier_response.xml">
<!ENTITY LassoLibStatusResponse SYSTEM "sgml/lib_status_response.xml">
<!ENTITY LassoLibSubject SYSTEM "sgml/lib_subject.xml">
<!ENTITY LassoSamlpRequest SYSTEM "sgml/samlp_request.xml">
<!ENTITY LassoLibAuthnContext SYSTEM "sgml/lib_authn_context.xml">
<!ENTITY LassoLibAuthenticationStatement SYSTEM "sgml/lib_authentication_statement.xml">
<!ENTITY lasso-lasso SYSTEM "sgml/lasso.xml">
<!ENTITY LassoFederation SYSTEM "sgml/federation.xml">
<!ENTITY LassoLecp SYSTEM "sgml/lecp.xml">
<!ENTITY LassoProvider SYSTEM "sgml/provider.xml">
<!ENTITY LassoDefederation SYSTEM "sgml/defederation.xml">
<!ENTITY LassoNameRegistration SYSTEM "sgml/name_registration.xml">
<!ENTITY LassoNameIdentifierMapping SYSTEM "sgml/name_identifier_mapping.xml">
<!ENTITY LassoNameIdManagement SYSTEM "sgml/name_id_management.xml">
<!ENTITY LassoEcp SYSTEM "sgml/ecp.xml">
<!ENTITY LassoIdentity SYSTEM "sgml/identity.xml">
<!ENTITY LassoLogin SYSTEM "sgml/login.xml">
<!ENTITY LassoLogout SYSTEM "sgml/logout.xml">
<!ENTITY LassoProfile SYSTEM "sgml/profile.xml">
<!ENTITY LassoServer SYSTEM "sgml/server.xml">
<!ENTITY LassoSession SYSTEM "sgml/session.xml">
<!ENTITY LassoStrings SYSTEM "sgml/strings.xml">
<!ENTITY LassoDiscovery SYSTEM "sgml/discovery.xml">
<!ENTITY LassoDataService SYSTEM "sgml/data_service.xml">
<!ENTITY LassoIdWsf2Discovery SYSTEM "sgml/idwsf2_discovery.xml">
<!ENTITY LassoIdWsf2DataService SYSTEM "sgml/idwsf2_data_service.xml">
<!ENTITY LassoSaml2Action SYSTEM "sgml/saml2_action.xml">
<!ENTITY LassoSaml2Advice SYSTEM "sgml/saml2_advice.xml">
<!ENTITY LassoSaml2Assertion SYSTEM "sgml/saml2_assertion.xml">
<!ENTITY LassoSaml2Attribute SYSTEM "sgml/saml2_attribute.xml">
<!ENTITY LassoSaml2AttributeValue SYSTEM "sgml/saml2_attribute_value.xml">
<!ENTITY LassoSaml2AttributeStatement SYSTEM "sgml/saml2_attribute_statement.xml">
<!ENTITY LassoSaml2AudienceRestriction SYSTEM "sgml/saml2_audience_restriction.xml">
<!ENTITY LassoSaml2AuthnContext SYSTEM "sgml/saml2_authn_context.xml">
<!ENTITY LassoSaml2AuthnStatement SYSTEM "sgml/saml2_authn_statement.xml">
<!ENTITY LassoSaml2AuthzDecisionStatement SYSTEM "sgml/saml2_authz_decision_statement.xml">
<!ENTITY LassoSaml2BaseIDAbstract SYSTEM "sgml/saml2_base_idabstract.xml">
<!ENTITY LassoSaml2ConditionAbstract SYSTEM "sgml/saml2_condition_abstract.xml">
<!ENTITY LassoSaml2Conditions SYSTEM "sgml/saml2_conditions.xml">
<!ENTITY LassoSaml2EncryptedElement SYSTEM "sgml/saml2_encrypted_element.xml">
<!ENTITY LassoSaml2Evidence SYSTEM "sgml/saml2_evidence.xml">
<!ENTITY LassoSaml2KeyInfoConfirmationData SYSTEM "sgml/saml2_key_info_confirmation_data.xml">
<!ENTITY LassoSaml2NameID SYSTEM "sgml/saml2_name_id.xml">
<!ENTITY LassoSaml2OneTimeUse SYSTEM "sgml/saml2_one_time_use.xml">
<!ENTITY LassoSaml2ProxyRestriction SYSTEM "sgml/saml2_proxy_restriction.xml">
<!ENTITY LassoSaml2StatementAbstract SYSTEM "sgml/saml2_statement_abstract.xml">
<!ENTITY LassoSaml2SubjectConfirmationData SYSTEM "sgml/saml2_subject_confirmation_data.xml">
<!ENTITY LassoSaml2SubjectConfirmation SYSTEM "sgml/saml2_subject_confirmation.xml">
<!ENTITY LassoSaml2Subject SYSTEM "sgml/saml2_subject.xml">
<!ENTITY LassoSaml2SubjectLocality SYSTEM "sgml/saml2_subject_locality.xml">
<!ENTITY LassoSamlp2ArtifactResolve SYSTEM "sgml/samlp2_artifact_resolve.xml">
<!ENTITY LassoSamlp2ArtifactResponse SYSTEM "sgml/samlp2_artifact_response.xml">
<!ENTITY LassoSamlp2AssertionIDRequest SYSTEM "sgml/samlp2_assertion_id_request.xml">
<!ENTITY LassoSamlp2AttributeQuery SYSTEM "sgml/samlp2_attribute_query.xml">
<!ENTITY LassoSamlp2AuthnQuery SYSTEM "sgml/samlp2_authn_query.xml">
<!ENTITY LassoSamlp2AuthnRequest SYSTEM "sgml/samlp2_authn_request.xml">
<!ENTITY LassoSamlp2AuthzDecisionQuery SYSTEM "sgml/samlp2_authz_decision_query.xml">
<!ENTITY LassoSamlp2Extensions SYSTEM "sgml/samlp2_extensions.xml">
<!ENTITY LassoSamlp2IDPEntry SYSTEM "sgml/samlp2_idp_entry.xml">
<!ENTITY LassoSamlp2IDPList SYSTEM "sgml/samlp2_idp_list.xml">
<!ENTITY LassoSamlp2LogoutRequest SYSTEM "sgml/samlp2_logout_request.xml">
<!ENTITY LassoSamlp2LogoutResponse SYSTEM "sgml/samlp2_logout_response.xml">
<!ENTITY LassoSamlp2ManageNameIDRequest SYSTEM "sgml/samlp2_manage_name_id_request.xml">
<!ENTITY LassoSamlp2ManageNameIDResponse SYSTEM "sgml/samlp2_manage_name_id_response.xml">
<!ENTITY LassoSamlp2NameIDMappingRequest SYSTEM "sgml/samlp2_name_id_mapping_request.xml">
<!ENTITY LassoSamlp2NameIDMappingResponse SYSTEM "sgml/samlp2_name_id_mapping_response.xml">
<!ENTITY LassoSamlp2NameIDPolicy SYSTEM "sgml/samlp2_name_id_policy.xml">
<!ENTITY LassoSamlp2RequestAbstract SYSTEM "sgml/samlp2_request_abstract.xml">
<!ENTITY LassoSamlp2RequestedAuthnContext SYSTEM "sgml/samlp2_requested_authn_context.xml">
<!ENTITY LassoSamlp2Response SYSTEM "sgml/samlp2_response.xml">
<!ENTITY LassoSamlp2Scoping SYSTEM "sgml/samlp2_scoping.xml">
<!ENTITY LassoSamlp2StatusCode SYSTEM "sgml/samlp2_status_code.xml">
<!ENTITY LassoSamlp2StatusDetail SYSTEM "sgml/samlp2_status_detail.xml">
<!ENTITY LassoSamlp2Status SYSTEM "sgml/samlp2_status.xml">
<!ENTITY LassoSamlp2StatusResponse SYSTEM "sgml/samlp2_status_response.xml">
<!ENTITY LassoSamlp2SubjectQueryAbstract SYSTEM "sgml/samlp2_subject_query_abstract.xml">
<!ENTITY LassoSamlp2Terminate SYSTEM "sgml/samlp2_terminate.xml">
<!ENTITY version SYSTEM "version.xml">
]>
<book id="index">
<bookinfo>
<title>Lasso Reference Manual</title>
<releaseinfo>for Lasso &version;</releaseinfo>
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this document
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.
</para>
</legalnotice>
<copyright>
<year>2004, 2005, 2006, 2007, 2008</year>
<holder>Entr'ouvert</holder>
</copyright>
</bookinfo>
<chapter id="lasso">
<title>Lasso &amp; Liberty Alliance Overview</title>
<para>
Lasso is a library which provides all the necessary functions for sites to
implement <ulink url="http://www.projectliberty.org">Liberty Alliance</ulink>
specifications. It defines processes for federated identities, single sign-on
and related protocols.
</para>
<para>
Founded in 2001 by Sun in order to propose an alternative to the
Microsoft Passport project, the consortium Liberty Alliance aims to
promote an infrastructure of standards allowing the management of
federated identities between several services or systems.
</para>
<para>
A federated identity (or network identity) of an individual or a legal entity
on Internet gather at the same time:
<itemizedlist>
<listitem>
Its identification (name, co-ordinates, preferences, history...);
</listitem>
<listitem>
Its authentication (which guarantees the validity of an identity);
</listitem>
<listitem>
Its authorisations (access rights to information, access rights to
services).
</listitem>
</itemizedlist>
</para>
<para>
Liberty standards aims to give more coherence to a network identity
which is scattered (numerous logins and passwords) today. This identity
becomes frequently delicate to manage, both for customers and businesses.
</para>
<para>
The Liberty Alliance specifications define three types of actors:
<itemizedlist>
<listitem>
The user, person or entity who can acquire an identity;
</listitem>
<listitem>
The identity provider which creates and manages the identity of
the users, and authenticates them to the service providers;
</listitem>
<listitem>
The service provider who provides services to the users once that
they have authenticated to an identity provider.
</listitem>
</itemizedlist>
</para>
<para>
One calls circle of trust a grouping of identity providers and service
providers which agreed to share (to federate) the identity of their users.
</para>
<para>
Contrary to most other implementations of Liberty Alliance, Lasso is not a
full-fedged system but a simple C library, with complete bindings for Java,
Perl, PHP and Python. The integration work should largely be facilitated.
An existing site should be able to integrate it in a few days of
development, without calling into question its architecture. Lasso is a
library written in C Language.
</para>
<para>
Lasso is built on top of <ulink url="http://www.xmlsoft.org">libxml2</ulink>,
<ulink url="http://www.aleksey.com/xmlsec/">XMLSec</ulink> and
<ulink url="http://www.openssl.org">OpenSSL</ulink> and is licensed under
the <ulink url="http://lasso.entrouvert.org/license">GNU General Public License</ulink>
(with an <ulink url="http://lasso.entrouvert.org/license#openssl">OpenSSL exception</ulink>).
</para>
</chapter>
<index/>
<chapter id="architecture">
<title>Lasso Architecture</title>
&LassoProvider;
&LassoServer;
&LassoIdentity;
&LassoSession;
&LassoFederation;
</chapter>
<chapter id="idff">
<title>Identity Federation Framework</title>
&LassoProfile;
&LassoLogin;
&LassoLogout;
&LassoDefederation;
&LassoNameRegistration;
&LassoNameIdentifierMapping;
&LassoNameIdManagement;
&LassoLecp;
&LassoEcp;
</chapter>
<chapter id="idwsf">
<title>Identity Web Services Framework</title>
&LassoDiscovery;
&LassoDataService;
&LassoIdWsf2Discovery;
&LassoIdWsf2DataService;
</chapter>
<chapter id="xml-idff">
<title>Objects from ID-FF 1.2 schemas</title>
&LassoLibAssertion;
&LassoLibAuthenticationStatement;
&LassoLibAuthnContext;
&LassoLibAuthnRequest;
&LassoLibAuthnRequestEnvelope;
&LassoLibAuthnResponse;
&LassoLibAuthnResponseEnvelope;
&LassoLibFederationTerminationNotification;
&LassoLibIDPEntries;
&LassoLibIDPEntry;
&LassoLibIDPList;
&LassoLibLogoutRequest;
&LassoLibLogoutResponse;
&LassoLibNameIdentifierMappingRequest;
&LassoLibNameIdentifierMappingResponse;
&LassoLibRegisterNameIdentifierRequest;
&LassoLibRegisterNameIdentifierResponse;
&LassoLibRequestAuthnContext;
&LassoLibScoping;
&LassoLibStatusResponse;
&LassoLibSubject;
&LassoSamlAdvice;
&LassoSamlAssertion;
&LassoSamlAttribute;
&LassoSamlAttributeDesignator;
&LassoSamlAttributeValue;
&LassoSamlAttributeStatement;
&LassoSamlAudienceRestrictionCondition;
&LassoSamlAuthenticationStatement;
&LassoSamlAuthorityBinding;
&LassoSamlConditionAbstract;
&LassoSamlConditions;
&LassoSamlNameIdentifier;
&LassoSamlStatementAbstract;
&LassoSamlSubject;
&LassoSamlSubjectConfirmation;
&LassoSamlSubjectLocality;
&LassoSamlSubjectStatementAbstract;
&LassoSamlpRequest;
&LassoSamlpRequestAbstract;
&LassoSamlpResponse;
&LassoSamlpResponseAbstract;
&LassoSamlpStatus;
&LassoSamlpStatusCode;
</chapter>
<chapter id="xml-samlv2">
<title>Objects from SAML 2.0 schemas</title>
&LassoSaml2Action;
&LassoSaml2Advice;
&LassoSaml2Assertion;
&LassoSaml2Attribute;
&LassoSaml2AttributeValue;
&LassoSaml2AttributeStatement;
&LassoSaml2AudienceRestriction;
&LassoSaml2AuthnContext;
&LassoSaml2AuthnStatement;
&LassoSaml2AuthzDecisionStatement;
&LassoSaml2BaseIDAbstract;
&LassoSaml2ConditionAbstract;
&LassoSaml2Conditions;
&LassoSaml2EncryptedElement;
&LassoSaml2Evidence;
&LassoSaml2KeyInfoConfirmationData;
&LassoSaml2NameID;
&LassoSaml2OneTimeUse;
&LassoSaml2ProxyRestriction;
&LassoSaml2StatementAbstract;
&LassoSaml2SubjectConfirmationData;
&LassoSaml2SubjectConfirmation;
&LassoSaml2Subject;
&LassoSaml2SubjectLocality;
&LassoSamlp2ArtifactResolve;
&LassoSamlp2ArtifactResponse;
&LassoSamlp2AssertionIDRequest;
&LassoSamlp2AttributeQuery;
&LassoSamlp2AuthnQuery;
&LassoSamlp2AuthnRequest;
&LassoSamlp2AuthzDecisionQuery;
&LassoSamlp2Extensions;
&LassoSamlp2IDPEntry;
&LassoSamlp2IDPList;
&LassoSamlp2LogoutRequest;
&LassoSamlp2LogoutResponse;
&LassoSamlp2ManageNameIDRequest;
&LassoSamlp2ManageNameIDResponse;
&LassoSamlp2NameIDMappingRequest;
&LassoSamlp2NameIDMappingResponse;
&LassoSamlp2NameIDPolicy;
&LassoSamlp2RequestAbstract;
&LassoSamlp2RequestedAuthnContext;
&LassoSamlp2Response;
&LassoSamlp2Scoping;
&LassoSamlp2Status;
&LassoSamlp2StatusCode;
&LassoSamlp2StatusDetail;
&LassoSamlp2StatusResponse;
&LassoSamlp2SubjectQueryAbstract;
&LassoSamlp2Terminate;
</chapter>
<chapter id="misc">
<title>Misc</title>
&LassoNode;
&lasso-lasso;
&LassoStrings;
</chapter>
</book>

View File

@ -1,59 +0,0 @@
#include <lasso/lasso.h>
lasso_lib_assertion_get_type
lasso_lib_authentication_statement_get_type
lasso_lib_authn_context_get_type
lasso_lib_authn_request_get_type
lasso_lib_authn_response_get_type
lasso_lib_federation_termination_notification_get_type
lasso_lib_idp_entries_get_type
lasso_lib_idp_entry_get_type
lasso_lib_idp_list_get_type
lasso_lib_logout_request_get_type
lasso_lib_logout_response_get_type
lasso_lib_name_identifier_mapping_request_get_type
lasso_lib_name_identifier_mapping_response_get_type
lasso_lib_register_name_identifier_request_get_type
lasso_lib_register_name_identifier_response_get_type
lasso_lib_request_authn_context_get_type
lasso_lib_scoping_get_type
lasso_lib_status_response_get_type
lasso_lib_subject_get_type
lasso_saml_advice_get_type
lasso_saml_assertion_get_type
lasso_saml_audience_restriction_condition_get_type
lasso_saml_authentication_statement_get_type
lasso_saml_authority_binding_get_type
lasso_saml_condition_abstract_get_type
lasso_saml_conditions_get_type
lasso_saml_name_identifier_get_type
lasso_saml_statement_abstract_get_type
lasso_saml_subject_get_type
lasso_saml_subject_confirmation_get_type
lasso_saml_subject_locality_get_type
lasso_saml_subject_statement_abstract_get_type
lasso_samlp_request_get_type
lasso_samlp_request_abstract_get_type
lasso_samlp_response_get_type
lasso_samlp_response_abstract_get_type
lasso_samlp_status_get_type
lasso_samlp_status_code_get_type
lasso_defederation_get_type
lasso_federation_get_type
lasso_lecp_get_type
lasso_login_get_type
lasso_logout_get_type
lasso_profile_get_type
lasso_provider_get_type
lasso_server_get_type
lasso_identity_get_type
lasso_session_get_type
lasso_name_registration_get_type
lasso_name_identifier_mapping_get_type
lasso_name_id_management_get_type
lasso_ecp_get_type
#WSF# lasso_discovery_get_type
#WSF# lasso_data_service_get_type

View File

@ -0,0 +1,121 @@
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE=lasso
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
#DOC_MODULE_VERSION=2
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# The directory containing the source code. Relative to $(srcdir).
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting the functions and macros.
# e.g. DOC_SOURCE_DIR=../../../gtk
DOC_SOURCE_DIR=../../../lasso
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=--ignore-decorators=LASSO_EXPORT
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
MKDB_OPTIONS=--sgml-mode --output-format=xml
# Extra options to supply to gtkdoc-mktmpl
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS=
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=--path=$(shell pwd)
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB=
CFILE_GLOB=
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
EXTRA_HFILES=
# Header files to ignore when scanning. Use base file name, no paths
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
IGNORE_HFILES= sessionprivate.h logoutprivate.h loginprivate.h profileprivate.h \
identityprivate.h serverprivate.h providerprivate.h id_ff_extensions_private.h \
wsf_profile_private.h private.h saml_2_0_loginprivate.h \
saml_2_0_profileprivate.h saml_2_0_logoutprivate.h ecpprivate.h \
saml_2_0_serverprivate.h saml_2_0_providerprivate.h federationprivate.h \
registry-private.h id_wsf_2_0_sessionprivate.h id_wsf_2_0_serverprivate.h \
saml2_login_private.h id_wsf_2_0_private.h \
backward_comp.h id_wsf_2.h id_wsf.h lasso_config.h utils.h debug.h
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES=
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
content_files=
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# e.g. expand_content_files=running.sgml
expand_content_files=
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=$(LASSO_CFLAGS) -I$(top_srcdir) -I$(top_builddir)
GTKDOC_LIBS= \
$(top_builddir)/lasso/liblasso.la \
$(LASSO_LIBS)
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += lasso-sections.txt lasso-docs.sgml version.xml.in lasso.types.in
# Files not to distribute
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
# DISTCLEANFILES =
# Generate lasso.types depending on the WSF_ENABLED flag
if WSF_ENABLED
lasso.types: lasso.types.in
sed -e 's/#WSF# //g' < $(srcdir)/lasso.types.in > lasso.types
else
lasso.types: lasso.types.in
grep -v '#WSF#' $(srcdir)/lasso.types.in > lasso.types
endif
# Comment this out if you want your docs-status tested during 'make check'
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = cd $(srcdir)
TESTS = $(GTKDOC_CHECK)
endif
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,535 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY version SYSTEM "version.xml">
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
]>
<book id="index">
<bookinfo>
<title>Lasso Reference Manual</title>
<releaseinfo>for Lasso &version;</releaseinfo>
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://lasso.entrouvert.org/documentation/index.html">http://lasso.entrouvert.org/documentation/index.html</ulink>.
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this document
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.
</para>
</legalnotice>
<copyright>
<year>2004, 2005, 2006, 2007, 2008, 2009</year>
<holder>Entr'ouvert</holder>
</copyright>
</bookinfo>
<chapter id="lasso">
<title>Lasso &amp; Liberty Alliance Overview</title>
<para>
Lasso is a library which provides all the necessary functions for sites to
implement <ulink url="http://www.projectliberty.org">Liberty Alliance</ulink>
specifications. It defines processes for federated identities, single sign-on
and related protocols.
</para>
<para>
Founded in 2001 by Sun in order to propose an alternative to the
Microsoft Passport project, the consortium Liberty Alliance aims to
promote an infrastructure of standards allowing the management of
federated identities between several services or systems.
</para>
<para>
A federated identity (or network identity) of an individual or a legal entity
on Internet gather at the same time:
<itemizedlist>
<listitem>
Its identification (name, co-ordinates, preferences, history...);
</listitem>
<listitem>
Its authentication (which guarantees the validity of an identity);
</listitem>
<listitem>
Its authorisations (access rights to information, access rights to
services).
</listitem>
</itemizedlist>
</para>
<para>
Liberty standards aims to give more coherence to a network identity
which is scattered (numerous logins and passwords) today. This identity
becomes frequently delicate to manage, both for customers and businesses.
</para>
<para>
The Liberty Alliance specifications define three types of actors:
<itemizedlist>
<listitem>
The user, person or entity who can acquire an identity;
</listitem>
<listitem>
The identity provider which creates and manages the identity of
the users, and authenticates them to the service providers;
</listitem>
<listitem>
The service provider who provides services to the users once that
they have authenticated to an identity provider.
</listitem>
</itemizedlist>
</para>
<para>
One calls circle of trust a grouping of identity providers and service
providers which agreed to share (to federate) the identity of their users.
</para>
<para>
Contrary to most other implementations of Liberty Alliance, Lasso is not a
full-fedged system but a simple C library, with complete bindings for Java,
Perl, PHP and Python. The integration work should largely be facilitated.
An existing site should be able to integrate it in a few days of
development, without calling into question its architecture. Lasso is a
library written in C Language.
</para>
<para>
Lasso is built on top of <ulink url="http://www.xmlsoft.org">libxml2</ulink>,
<ulink url="http://www.aleksey.com/xmlsec/">XMLSec</ulink> and
<ulink url="http://www.openssl.org">OpenSSL</ulink> and is licensed under
the <ulink url="http://lasso.entrouvert.org/license">GNU General Public License</ulink>
(with an <ulink url="http://lasso.entrouvert.org/license#openssl">OpenSSL exception</ulink>).
</para>
</chapter>
<index/>
<chapter id="architecture">
<title>Lasso Architecture</title>
<xi:include href="xml/init.xml"/>
<para>Lasso handle the concepts of providers sharing identities, that can
enable the creation of sessions following an authentication. The
current provider is represented by the <link linkend="#lasso-LassoServer">LassoServer</link> object, which
inherit from the <link linkend="lasso-LassoProvider">LassoProvider</link>. All known providers to the current
provider must be registered inside the <link linkend="lasso-LassoServer">LassoServer</link> object. Some
providers are identity providers, by sending authentication request
you can establish federation, materialised by <link linkend="lasso-LassoFederation">LassoFederation</link>
objects, between identity stored by the identity provider and
another stored by the current provider. Those federation are stored
in the <link linkend="lasso-LassoIdentity">LassoIdentity</link> object. Each time an authentication is done,
an assertion reprenting it is stored in the <link linkend="lasso-LassoSession">LassoSession</link> object.
They are stored in a map, keyed by the originating identity
provider, see lasso_session_get_assertion().
</para>
<para>Protocols from the ID-FF 1.2 or the SAML 2.0 family are represented
by object whose class inherit from <link linkend="lasso-LassoProfile">LassoProfile</link>. The constructor
of those profile objects needs a <link linkend="lasso-LassoServer">LassoServer</link>, and eventually a
<link linkend="lasso-LassoIdentity">LassoIdentity</link> and a <link linkend="lasso-LassoSession">LassoSession</link>.
</para>
<xi:include href="xml/server.xml"/>
<xi:include href="xml/provider.xml"/>
<xi:include href="xml/identity.xml"/>
<xi:include href="xml/federation.xml"/>
<xi:include href="xml/session.xml"/>
<xi:include href="xml/profile.xml"/>
<xi:include href="xml/errors.xml"/>
<para><link linkend="lasso-LassoNode">LassoNode</link> is the base class for all Lasso classes, it gives XML serialization and deserialization support to all of them.</para>
<xi:include href="xml/node.xml"/>
<para>The <link linkend="lasso-LassoMiscTextNode">LassoMiscTextNode</link> allows to represent miscellenaous nodes for whose no mapping to a specific <link linkend="GObjectClass">GObjectClass</link> exists.</para>
<xi:include href="xml/misc_text_node.xml"/>
<xi:include href="xml/strings.xml"/>
<xi:include href="xml/registry.xml"/>
</chapter>
<chapter id="idff">
<title>Identity Federation Framework - ID-FF 1.2 profiles</title>
<xi:include href="xml/login.xml"/>
<xi:include href="xml/logout.xml"/>
<xi:include href="xml/defederation.xml"/>
<xi:include href="xml/name_registration.xml"/>
<xi:include href="xml/name_identifier_mapping.xml"/>
<xi:include href="xml/lecp.xml"/>
</chapter>
<chapter id="xml-idff">
<title>Objects from ID-FF 1.2 schemas</title>
<xi:include href="xml/id_ff_strings.xml"/>
<xi:include href="xml/lib_assertion.xml"/>
<xi:include href="xml/lib_authentication_statement.xml"/>
<xi:include href="xml/lib_authn_context.xml"/>
<xi:include href="xml/lib_authn_request_envelope.xml"/>
<xi:include href="xml/lib_authn_request.xml"/>
<xi:include href="xml/lib_authn_response_envelope.xml"/>
<xi:include href="xml/lib_authn_response.xml"/>
<xi:include href="xml/lib_federation_termination_notification.xml"/>
<xi:include href="xml/lib_idp_entries.xml"/>
<xi:include href="xml/lib_idp_entry.xml"/>
<xi:include href="xml/lib_idp_list.xml"/>
<xi:include href="xml/lib_logout_request.xml"/>
<xi:include href="xml/lib_logout_response.xml"/>
<xi:include href="xml/lib_name_identifier_mapping_request.xml"/>
<xi:include href="xml/lib_name_identifier_mapping_response.xml"/>
<xi:include href="xml/lib_register_name_identifier_request.xml"/>
<xi:include href="xml/lib_register_name_identifier_response.xml"/>
<xi:include href="xml/lib_request_authn_context.xml"/>
<xi:include href="xml/lib_scoping.xml"/>
<xi:include href="xml/lib_status_response.xml"/>
<xi:include href="xml/lib_subject.xml"/>
<xi:include href="xml/saml_advice.xml"/>
<xi:include href="xml/saml_assertion.xml"/>
<xi:include href="xml/saml_attribute_designator.xml"/>
<xi:include href="xml/saml_attribute_statement.xml"/>
<xi:include href="xml/saml_attribute_value.xml"/>
<xi:include href="xml/saml_attribute.xml"/>
<xi:include href="xml/saml_audience_restriction_condition.xml"/>
<xi:include href="xml/saml_authentication_statement.xml"/>
<xi:include href="xml/saml_authority_binding.xml"/>
<xi:include href="xml/saml_condition_abstract.xml"/>
<xi:include href="xml/saml_conditions.xml"/>
<xi:include href="xml/saml_name_identifier.xml"/>
<xi:include href="xml/samlp_request_abstract.xml"/>
<xi:include href="xml/samlp_request.xml"/>
<xi:include href="xml/samlp_response_abstract.xml"/>
<xi:include href="xml/samlp_response.xml"/>
<xi:include href="xml/samlp_status_code.xml"/>
<xi:include href="xml/samlp_status.xml"/>
<xi:include href="xml/saml_statement_abstract.xml"/>
<xi:include href="xml/saml_subject_confirmation.xml"/>
<xi:include href="xml/saml_subject_locality.xml"/>
<xi:include href="xml/saml_subject_statement_abstract.xml"/>
<xi:include href="xml/saml_subject_statement.xml"/>
<xi:include href="xml/saml_subject.xml"/>
</chapter>
<chapter id="saml2">
<title>SAML 2.0 Single Sign On profiles</title>
<para>
The profile <link linkend="lasso-LassoLogin">LassoLogin</link> and <link linkend="lasso-LassoLogout">LassoLogout</link> are shared between SAML
2.0 and ID-FF 1.2, depending on the declared protocol support,
Lasso will create request respecting the chosen standard. Beware
that initialization of the <link linkend="lasso-LassoLogin">LassoLogin</link> object, after construction,
differ between the two stacks of profiles. The
<link linkend="lasso-LassoNameIdManagement">LassoNameIdManagement</link> profile replace the nearly equivalent
<link linkend="lasso-LassoDefederation">LassoDefederation</link> profile from ID-FF 1.2.
</para>
<xi:include href="xml/assertion_query.xml"/>
<xi:include href="xml/name_id_management.xml"/>
<xi:include href="xml/ecp.xml"/>
<xi:include href="xml/saml2_utils.xml"/>
</chapter>
<chapter id="xml-samlv2">
<title>Objects from SAML 2.0 schemas</title>
<xi:include href="xml/saml2_strings.xml"/>
<xi:include href="xml/saml2_action.xml"/>
<xi:include href="xml/saml2_advice.xml"/>
<xi:include href="xml/saml2_assertion.xml"/>
<xi:include href="xml/saml2_attribute_statement.xml"/>
<xi:include href="xml/saml2_attribute_value.xml"/>
<xi:include href="xml/saml2_attribute.xml"/>
<xi:include href="xml/saml2_audience_restriction.xml"/>
<xi:include href="xml/saml2_authn_context.xml"/>
<xi:include href="xml/saml2_authn_statement.xml"/>
<xi:include href="xml/saml2_authz_decision_statement.xml"/>
<xi:include href="xml/saml2_base_idabstract.xml"/>
<xi:include href="xml/saml2_condition_abstract.xml"/>
<xi:include href="xml/saml2_conditions.xml"/>
<xi:include href="xml/saml2_encrypted_element.xml"/>
<xi:include href="xml/saml2_evidence.xml"/>
<xi:include href="xml/saml2_key_info_confirmation_data.xml"/>
<xi:include href="xml/saml2_name_id.xml"/>
<xi:include href="xml/saml2_one_time_use.xml"/>
<xi:include href="xml/saml2_proxy_restriction.xml"/>
<xi:include href="xml/saml2_statement_abstract.xml"/>
<xi:include href="xml/saml2_subject_confirmation_data.xml"/>
<xi:include href="xml/saml2_subject_confirmation.xml"/>
<xi:include href="xml/saml2_subject_locality.xml"/>
<xi:include href="xml/saml2_subject.xml"/>
<xi:include href="xml/samlp2_artifact_resolve.xml"/>
<xi:include href="xml/samlp2_artifact_response.xml"/>
<xi:include href="xml/samlp2_assertion_id_request.xml"/>
<xi:include href="xml/samlp2_attribute_query.xml"/>
<xi:include href="xml/samlp2_authn_query.xml"/>
<xi:include href="xml/samlp2_authn_request.xml"/>
<xi:include href="xml/samlp2_authz_decision_query.xml"/>
<xi:include href="xml/samlp2_extensions.xml"/>
<xi:include href="xml/samlp2_idp_entry.xml"/>
<xi:include href="xml/samlp2_idp_list.xml"/>
<xi:include href="xml/samlp2_logout_request.xml"/>
<xi:include href="xml/samlp2_logout_response.xml"/>
<xi:include href="xml/samlp2_manage_name_id_request.xml"/>
<xi:include href="xml/samlp2_manage_name_id_response.xml"/>
<xi:include href="xml/samlp2_name_id_mapping_request.xml"/>
<xi:include href="xml/samlp2_name_id_mapping_response.xml"/>
<xi:include href="xml/samlp2_name_id_policy.xml"/>
<xi:include href="xml/samlp2_request_abstract.xml"/>
<xi:include href="xml/samlp2_requested_authn_context.xml"/>
<xi:include href="xml/samlp2_response.xml"/>
<xi:include href="xml/samlp2_scoping.xml"/>
<xi:include href="xml/samlp2_status_code.xml"/>
<xi:include href="xml/samlp2_status_detail.xml"/>
<xi:include href="xml/samlp2_status_response.xml"/>
<xi:include href="xml/samlp2_status.xml"/>
<xi:include href="xml/samlp2_subject_query_abstract.xml"/>
<xi:include href="xml/samlp2_terminate.xml"/>
</chapter>
<chapter id="idwsf">
<title>Identity Web Services Framework 1.0</title>
<xi:include href="xml/discovery.xml"/>
<xi:include href="xml/data_service.xml"/>
<xi:include href="xml/personal_profile_service.xml"/>
<xi:include href="xml/authentication.xml"/>
<xi:include href="xml/wsf_profile.xml"/>
<xi:include href="xml/interaction_profile_service.xml"/>
<xi:include href="xml/id_wsf_utils.xml"/>
</chapter>
<chapter id="xml-idwsf">
<title>Objects from ID-WSF 1.0 schemas</title>
<xi:include href="xml/id_wsf_strings.xml"/>
<xi:include href="xml/disco_authenticate_requester.xml"/>
<xi:include href="xml/disco_authenticate_session_context.xml"/>
<xi:include href="xml/disco_authorize_requester.xml"/>
<xi:include href="xml/disco_credentials.xml"/>
<xi:include href="xml/disco_description.xml"/>
<xi:include href="xml/disco_encrypted_resource_id.xml"/>
<xi:include href="xml/disco_encrypt_resource_id.xml"/>
<xi:include href="xml/disco_generate_bearer_token.xml"/>
<xi:include href="xml/disco_insert_entry.xml"/>
<xi:include href="xml/disco_modify_response.xml"/>
<xi:include href="xml/disco_modify.xml"/>
<xi:include href="xml/disco_options.xml"/>
<xi:include href="xml/disco_query_response.xml"/>
<xi:include href="xml/disco_query.xml"/>
<xi:include href="xml/disco_remove_entry.xml"/>
<xi:include href="xml/disco_requested_service_type.xml"/>
<xi:include href="xml/disco_resource_id.xml"/>
<xi:include href="xml/disco_resource_offering.xml"/>
<xi:include href="xml/disco_send_single_logout.xml"/>
<xi:include href="xml/disco_service_instance.xml"/>
<xi:include href="xml/dst_data.xml"/>
<xi:include href="xml/dst_modification.xml"/>
<xi:include href="xml/dst_modify_response.xml"/>
<xi:include href="xml/dst_modify.xml"/>
<xi:include href="xml/dst_new_data.xml"/>
<xi:include href="xml/dst_query_item.xml"/>
<xi:include href="xml/dst_query_response.xml"/>
<xi:include href="xml/dst_query.xml"/>
<xi:include href="xml/is_redirect_request.xml"/>
<xi:include href="xml/is_user_interaction.xml"/>
<xi:include href="xml/sa_credentials.xml"/>
<xi:include href="xml/sa_parameter.xml"/>
<xi:include href="xml/sa_password_transforms.xml"/>
<xi:include href="xml/sa_sasl_request.xml"/>
<xi:include href="xml/sa_sasl_response.xml"/>
<xi:include href="xml/sa_transform.xml"/>
<xi:include href="xml/sec_resource_access_statement.xml"/>
<xi:include href="xml/soap_binding_consent.xml"/>
<xi:include href="xml/soap_binding_correlation.xml"/>
<xi:include href="xml/soap_binding_ext_credentials_context.xml"/>
<xi:include href="xml/soap_binding_ext_credential.xml"/>
<xi:include href="xml/soap_binding_ext_service_instance_update.xml"/>
<xi:include href="xml/soap_binding_ext_timeout.xml"/>
<xi:include href="xml/soap_binding_processing_context.xml"/>
<xi:include href="xml/soap_binding_provider.xml"/>
<xi:include href="xml/soap_binding_usage_directive.xml"/>
<xi:include href="xml/utility_status.xml"/>
</chapter>
<chapter id="idwsf2">
<title>ID-WSF 2.0</title>
<xi:include href="xml/id_wsf_2_0_discovery.xml"/>
<xi:include href="xml/id_wsf_2_0_data_service.xml"/>
<xi:include href="xml/id_wsf_2_0_profile.xml"/>
</chapter>
<chapter id="xml-idwsf2">
<title>Objects from ID-WSF 2.0 schemas</title>
<xi:include href="xml/id_wsf2_strings.xml"/>
<xi:include href="xml/disco_service_type.xml"/>
<xi:include href="xml/disco_abstract.xml"/>
<xi:include href="xml/disco_endpoint_context.xml"/>
<xi:include href="xml/disco_keys.xml"/>
<xi:include href="xml/disco_provider_id.xml"/>
<xi:include href="xml/disco_requested_service.xml"/>
<xi:include href="xml/disco_security_context.xml"/>
<xi:include href="xml/disco_service_context.xml"/>
<xi:include href="xml/disco_svc_md_association_add_response.xml"/>
<xi:include href="xml/disco_svc_md_association_add.xml"/>
<xi:include href="xml/disco_svc_md_association_delete_response.xml"/>
<xi:include href="xml/disco_svc_md_association_delete.xml"/>
<xi:include href="xml/disco_svc_md_association_query_response.xml"/>
<xi:include href="xml/disco_svc_md_association_query.xml"/>
<xi:include href="xml/disco_svc_md_delete_response.xml"/>
<xi:include href="xml/disco_svc_md_delete.xml"/>
<xi:include href="xml/disco_svc_md_query_response.xml"/>
<xi:include href="xml/disco_svc_md_query.xml"/>
<xi:include href="xml/disco_svc_md_register_response.xml"/>
<xi:include href="xml/disco_svc_md_register.xml"/>
<xi:include href="xml/disco_svc_md_replace_response.xml"/>
<xi:include href="xml/disco_svc_md_replace.xml"/>
<xi:include href="xml/disco_svc_metadata.xml"/>
<xi:include href="xml/dst_data_response_base.xml"/>
<xi:include href="xml/dst_delete_item_base.xml"/>
<xi:include href="xml/dst_delete_response.xml"/>
<xi:include href="xml/dstref_app_data.xml"/>
<xi:include href="xml/dstref_create_item.xml"/>
<xi:include href="xml/dstref_create_response.xml"/>
<xi:include href="xml/dstref_create.xml"/>
<xi:include href="xml/dstref_data_response.xml"/>
<xi:include href="xml/dstref_data.xml"/>
<xi:include href="xml/dstref_delete_item.xml"/>
<xi:include href="xml/dstref_delete_response.xml"/>
<xi:include href="xml/dstref_delete.xml"/>
<xi:include href="xml/dstref_item_data.xml"/>
<xi:include href="xml/dstref_modify_item.xml"/>
<xi:include href="xml/dstref_modify_response.xml"/>
<xi:include href="xml/dstref_modify.xml"/>
<xi:include href="xml/dstref_query_item.xml"/>
<xi:include href="xml/dstref_query_response.xml"/>
<xi:include href="xml/dstref_query.xml"/>
<xi:include href="xml/dstref_result_query.xml"/>
<xi:include href="xml/dstref_test_item.xml"/>
<xi:include href="xml/dst_request.xml"/>
<xi:include href="xml/dst_result_query_base.xml"/>
<xi:include href="xml/dst_test_item_base.xml"/>
<xi:include href="xml/ims_identity_mapping_request.xml"/>
<xi:include href="xml/ims_identity_mapping_response.xml"/>
<xi:include href="xml/ims_mapping_input.xml"/>
<xi:include href="xml/ims_mapping_output.xml"/>
<xi:include href="xml/is_help.xml"/>
<xi:include href="xml/is_inquiry_element.xml"/>
<xi:include href="xml/is_inquiry.xml"/>
<xi:include href="xml/is_interaction_request.xml"/>
<xi:include href="xml/is_interaction_response.xml"/>
<xi:include href="xml/is_interaction_statement.xml"/>
<xi:include href="xml/is_item.xml"/>
<xi:include href="xml/is_parameter.xml"/>
<xi:include href="xml/is_select.xml"/>
<xi:include href="xml/is_text.xml"/>
<xi:include href="xml/ps_add_collection_request.xml"/>
<xi:include href="xml/ps_add_collection_response.xml"/>
<xi:include href="xml/ps_add_entity_request.xml"/>
<xi:include href="xml/ps_add_entity_response.xml"/>
<xi:include href="xml/ps_add_known_entity_request.xml"/>
<xi:include href="xml/ps_add_known_entity_response.xml"/>
<xi:include href="xml/ps_add_to_collection_request.xml"/>
<xi:include href="xml/ps_get_object_info_request.xml"/>
<xi:include href="xml/ps_get_object_info_response.xml"/>
<xi:include href="xml/ps_item_data.xml"/>
<xi:include href="xml/ps_list_members_request.xml"/>
<xi:include href="xml/ps_list_members_response.xml"/>
<xi:include href="xml/ps_notification.xml"/>
<xi:include href="xml/ps_notify.xml"/>
<xi:include href="xml/ps_object.xml"/>
<xi:include href="xml/ps_query_objects_request.xml"/>
<xi:include href="xml/ps_query_objects_response.xml"/>
<xi:include href="xml/ps_remove_collection_request.xml"/>
<xi:include href="xml/ps_remove_entity_request.xml"/>
<xi:include href="xml/ps_remove_from_collection_request.xml"/>
<xi:include href="xml/ps_request_abstract.xml"/>
<xi:include href="xml/ps_resolve_identifier_request.xml"/>
<xi:include href="xml/ps_resolve_identifier_response.xml"/>
<xi:include href="xml/ps_resolve_input.xml"/>
<xi:include href="xml/ps_response_abstract.xml"/>
<xi:include href="xml/ps_set_object_info_request.xml"/>
<xi:include href="xml/ps_test_membership_request.xml"/>
<xi:include href="xml/ps_test_membership_response.xml"/>
<xi:include href="xml/sb2_consent.xml"/>
<xi:include href="xml/sb2_credentials_context.xml"/>
<xi:include href="xml/sb2_endpoint_update.xml"/>
<xi:include href="xml/sb2_redirect_request.xml"/>
<xi:include href="xml/sb2_sender.xml"/>
<xi:include href="xml/sb2_target_identity.xml"/>
<xi:include href="xml/sb2_timeout.xml"/>
<xi:include href="xml/sb2_usage_directive.xml"/>
<xi:include href="xml/sb2_user_interaction_header.xml"/>
<xi:include href="xml/sbf_framework.xml"/>
<xi:include href="xml/sec_token_policy.xml"/>
<xi:include href="xml/sec_token.xml"/>
<xi:include href="xml/sec_transited_provider_path.xml"/>
<xi:include href="xml/subs_notification.xml"/>
<xi:include href="xml/subs_notify_response.xml"/>
<xi:include href="xml/subsref_app_data.xml"/>
<xi:include href="xml/subsref_create_item.xml"/>
<xi:include href="xml/subsref_create_response.xml"/>
<xi:include href="xml/subsref_create.xml"/>
<xi:include href="xml/subsref_data_response.xml"/>
<xi:include href="xml/subsref_data.xml"/>
<xi:include href="xml/subsref_delete_item.xml"/>
<xi:include href="xml/subsref_delete_response.xml"/>
<xi:include href="xml/subsref_delete.xml"/>
<xi:include href="xml/subsref_item_data.xml"/>
<xi:include href="xml/subs_ref_item.xml"/>
<xi:include href="xml/subsref_modify_item.xml"/>
<xi:include href="xml/subsref_modify_response.xml"/>
<xi:include href="xml/subsref_modify.xml"/>
<xi:include href="xml/subsref_notification.xml"/>
<xi:include href="xml/subsref_notify_response.xml"/>
<xi:include href="xml/subsref_notify.xml"/>
<xi:include href="xml/subsref_query_item.xml"/>
<xi:include href="xml/subsref_query_response.xml"/>
<xi:include href="xml/subsref_query.xml"/>
<xi:include href="xml/subsref_result_query.xml"/>
<xi:include href="xml/subsref_subscription.xml"/>
<xi:include href="xml/subsref_test_item.xml"/>
<xi:include href="xml/subs_subscription.xml"/>
<xi:include href="xml/util_empty.xml"/>
<xi:include href="xml/util_extension.xml"/>
<xi:include href="xml/util_response.xml"/>
<xi:include href="xml/util_status.xml"/>
</chapter>
<chapter id="soap">
<title>Object from the SOAP 1.1 schemas</title>
<xi:include href="xml/soap_body.xml"/>
<xi:include href="xml/soap_detail.xml"/>
<xi:include href="xml/soap_envelope.xml"/>
<xi:include href="xml/soap_fault.xml"/>
<xi:include href="xml/soap_header.xml"/>
<xi:include href="xml/soap_strings.xml"/>
</chapter>
<chapter id="xml-dsig">
<title>Object from the XML-DSIG schemas</title>
<xi:include href="xml/ds_key_info.xml"/>
<xi:include href="xml/ds_key_value.xml"/>
<xi:include href="xml/ds_rsa_key_value.xml"/>
<xi:include href="xml/dsig_strings.xml"/>
</chapter>
<chapter id="ws-addr">
<title>Object from the WS-* schemas</title>
<xi:include href="xml/wsa_attributed_any.xml"/>
<xi:include href="xml/wsa_attributed_qname.xml"/>
<xi:include href="xml/wsa_attributed_unsigned_long.xml"/>
<xi:include href="xml/wsa_attributed_uri.xml"/>
<xi:include href="xml/wsa_endpoint_reference.xml"/>
<xi:include href="xml/wsa_metadata.xml"/>
<xi:include href="xml/wsa_problem_action.xml"/>
<xi:include href="xml/wsa_reference_parameters.xml"/>
<xi:include href="xml/wsa_relates_to.xml"/>
<xi:include href="xml/wsse_embedded.xml"/>
<xi:include href="xml/wsse_reference.xml"/>
<xi:include href="xml/wsse_security_header.xml"/>
<xi:include href="xml/wsse_security_token_reference.xml"/>
<xi:include href="xml/wsse_security.xml"/>
<xi:include href="xml/wsse_transformation_parameters.xml"/>
<xi:include href="xml/wsse_username_token.xml"/>
<xi:include href="xml/wsu_timestamp.xml"/>
<xi:include href="xml/ws_strings.xml"/>
</chapter>
</book>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,346 @@
#include <lasso/lasso.h>
#include <lasso/xml/xml_idff.h>
#include <lasso/xml/saml-2.0/xml_saml2.h>
#WSF##include <lasso/id-wsf/id_wsf.h>
#WSF##include <lasso/id-wsf-2.0/id_wsf_2.h>
#WSF##include <lasso/xml/xml_idwsf.h>
lasso_assertion_query_get_type
lasso_defederation_get_type
lasso_ds_key_info_get_type
lasso_ds_key_value_get_type
lasso_ds_rsa_key_value_get_type
lasso_ecp_get_type
lasso_federation_get_type
lasso_identity_get_type
lasso_lecp_get_type
lasso_lib_assertion_get_type
lasso_lib_authentication_statement_get_type
lasso_lib_authn_context_get_type
lasso_lib_authn_request_envelope_get_type
lasso_lib_authn_request_get_type
lasso_lib_authn_response_envelope_get_type
lasso_lib_authn_response_get_type
lasso_lib_federation_termination_notification_get_type
lasso_lib_idp_entries_get_type
lasso_lib_idp_entry_get_type
lasso_lib_idp_list_get_type
lasso_lib_logout_request_get_type
lasso_lib_logout_response_get_type
lasso_lib_name_identifier_mapping_request_get_type
lasso_lib_name_identifier_mapping_response_get_type
lasso_lib_register_name_identifier_request_get_type
lasso_lib_register_name_identifier_response_get_type
lasso_lib_request_authn_context_get_type
lasso_lib_scoping_get_type
lasso_lib_status_response_get_type
lasso_lib_subject_get_type
lasso_login_get_type
lasso_logout_get_type
lasso_misc_text_node_get_type
lasso_name_identifier_mapping_get_type
lasso_name_id_management_get_type
lasso_name_registration_get_type
lasso_node_get_type
lasso_profile_get_type
lasso_provider_get_type
lasso_saml2_action_get_type
lasso_saml2_advice_get_type
lasso_saml2_assertion_get_type
lasso_saml2_attribute_get_type
lasso_saml2_attribute_statement_get_type
lasso_saml2_attribute_value_get_type
lasso_saml2_audience_restriction_get_type
lasso_saml2_authn_context_get_type
lasso_saml2_authn_statement_get_type
lasso_saml2_authz_decision_statement_get_type
lasso_saml2_base_idabstract_get_type
lasso_saml2_condition_abstract_get_type
lasso_saml2_conditions_get_type
lasso_saml2_encrypted_element_get_type
lasso_saml2_evidence_get_type
lasso_saml2_key_info_confirmation_data_get_type
lasso_saml2_name_id_get_type
lasso_saml2_one_time_use_get_type
lasso_saml2_proxy_restriction_get_type
lasso_saml2_statement_abstract_get_type
lasso_saml2_subject_confirmation_data_get_type
lasso_saml2_subject_confirmation_get_type
lasso_saml2_subject_get_type
lasso_saml2_subject_locality_get_type
lasso_saml_advice_get_type
lasso_saml_assertion_get_type
lasso_saml_attribute_designator_get_type
lasso_saml_attribute_get_type
lasso_saml_attribute_statement_get_type
lasso_saml_attribute_value_get_type
lasso_saml_audience_restriction_condition_get_type
lasso_saml_authentication_statement_get_type
lasso_saml_authority_binding_get_type
lasso_saml_condition_abstract_get_type
lasso_saml_conditions_get_type
lasso_saml_name_identifier_get_type
lasso_samlp2_artifact_resolve_get_type
lasso_samlp2_artifact_response_get_type
lasso_samlp2_assertion_id_request_get_type
lasso_samlp2_attribute_query_get_type
lasso_samlp2_authn_query_get_type
lasso_samlp2_authn_request_get_type
lasso_samlp2_authz_decision_query_get_type
lasso_samlp2_extensions_get_type
lasso_samlp2_idp_entry_get_type
lasso_samlp2_idp_list_get_type
lasso_samlp2_logout_request_get_type
lasso_samlp2_logout_response_get_type
lasso_samlp2_manage_name_id_request_get_type
lasso_samlp2_manage_name_id_response_get_type
lasso_samlp2_name_id_mapping_request_get_type
lasso_samlp2_name_id_mapping_response_get_type
lasso_samlp2_name_id_policy_get_type
lasso_samlp2_request_abstract_get_type
lasso_samlp2_requested_authn_context_get_type
lasso_samlp2_response_get_type
lasso_samlp2_scoping_get_type
lasso_samlp2_status_code_get_type
lasso_samlp2_status_detail_get_type
lasso_samlp2_status_get_type
lasso_samlp2_status_response_get_type
lasso_samlp2_subject_query_abstract_get_type
lasso_samlp2_terminate_get_type
lasso_samlp_request_abstract_get_type
lasso_samlp_request_get_type
lasso_samlp_response_abstract_get_type
lasso_samlp_response_get_type
lasso_samlp_status_code_get_type
lasso_samlp_status_get_type
lasso_saml_statement_abstract_get_type
lasso_saml_subject_confirmation_get_type
lasso_saml_subject_get_type
lasso_saml_subject_locality_get_type
lasso_saml_subject_statement_abstract_get_type
lasso_saml_subject_statement_get_type
lasso_server_get_type
lasso_session_get_type
lasso_soap_body_get_type
lasso_soap_detail_get_type
lasso_soap_envelope_get_type
lasso_soap_fault_get_type
lasso_soap_header_get_type
#WSF#lasso_authentication_get_type
#WSF#lasso_data_service_get_type
#WSF#lasso_disco_authenticate_requester_get_type
#WSF#lasso_disco_authenticate_session_context_get_type
#WSF#lasso_disco_authorize_requester_get_type
#WSF#lasso_disco_credentials_get_type
#WSF#lasso_disco_description_get_type
#WSF#lasso_disco_encrypted_resource_id_get_type
#WSF#lasso_disco_encrypt_resource_id_get_type
#WSF#lasso_disco_generate_bearer_token_get_type
#WSF#lasso_disco_insert_entry_get_type
#WSF#lasso_disco_modify_get_type
#WSF#lasso_disco_modify_response_get_type
#WSF#lasso_disco_options_get_type
#WSF#lasso_disco_query_get_type
#WSF#lasso_disco_query_response_get_type
#WSF#lasso_disco_remove_entry_get_type
#WSF#lasso_disco_requested_service_type_get_type
#WSF#lasso_disco_resource_id_get_type
#WSF#lasso_disco_resource_offering_get_type
#WSF#lasso_disco_send_single_logout_get_type
#WSF#lasso_disco_service_instance_get_type
#WSF#lasso_discovery_get_type
#WSF#lasso_dst_data_get_type
#WSF#lasso_dst_modification_get_type
#WSF#lasso_dst_modify_get_type
#WSF#lasso_dst_modify_response_get_type
#WSF#lasso_dst_new_data_get_type
#WSF#lasso_dst_query_get_type
#WSF#lasso_dst_query_item_get_type
#WSF#lasso_dst_query_response_get_type
#WSF#lasso_idwsf2_data_service_get_type
#WSF#lasso_idwsf2_disco_abstract_get_type
#WSF#lasso_idwsf2_disco_endpoint_context_get_type
#WSF#lasso_idwsf2_disco_keys_get_type
#WSF#lasso_idwsf2_disco_options_get_type
#WSF#lasso_idwsf2_disco_provider_id_get_type
#WSF#lasso_idwsf2_disco_query_get_type
#WSF#lasso_idwsf2_disco_query_response_get_type
#WSF#lasso_idwsf2_disco_requested_service_get_type
#WSF#lasso_idwsf2_disco_security_context_get_type
#WSF#lasso_idwsf2_disco_service_context_get_type
#WSF#lasso_idwsf2_disco_service_type_get_type
#WSF#lasso_idwsf2_disco_svc_md_association_add_get_type
#WSF#lasso_idwsf2_disco_svc_md_association_add_response_get_type
#WSF#lasso_idwsf2_disco_svc_md_association_delete_get_type
#WSF#lasso_idwsf2_disco_svc_md_association_delete_response_get_type
#WSF#lasso_idwsf2_disco_svc_md_association_query_get_type
#WSF#lasso_idwsf2_disco_svc_md_association_query_response_get_type
#WSF#lasso_idwsf2_disco_svc_md_delete_get_type
#WSF#lasso_idwsf2_disco_svc_md_delete_response_get_type
#WSF#lasso_idwsf2_disco_svc_md_query_get_type
#WSF#lasso_idwsf2_disco_svc_md_query_response_get_type
#WSF#lasso_idwsf2_disco_svc_md_register_get_type
#WSF#lasso_idwsf2_disco_svc_md_register_response_get_type
#WSF#lasso_idwsf2_disco_svc_md_replace_get_type
#WSF#lasso_idwsf2_disco_svc_md_replace_response_get_type
#WSF#lasso_idwsf2_disco_svc_metadata_get_type
#WSF#lasso_idwsf2_discovery_get_type
#WSF#lasso_idwsf2_dst_data_response_base_get_type
#WSF#lasso_idwsf2_dst_delete_item_base_get_type
#WSF#lasso_idwsf2_dst_delete_response_get_type
#WSF#lasso_idwsf2_dstref_app_data_get_type
#WSF#lasso_idwsf2_dstref_create_get_type
#WSF#lasso_idwsf2_dstref_create_item_get_type
#WSF#lasso_idwsf2_dstref_create_response_get_type
#WSF#lasso_idwsf2_dstref_data_get_type
#WSF#lasso_idwsf2_dstref_data_response_get_type
#WSF#lasso_idwsf2_dstref_delete_get_type
#WSF#lasso_idwsf2_dstref_delete_item_get_type
#WSF#lasso_idwsf2_dstref_delete_response_get_type
#WSF#lasso_idwsf2_dstref_item_data_get_type
#WSF#lasso_idwsf2_dstref_modify_get_type
#WSF#lasso_idwsf2_dstref_modify_item_get_type
#WSF#lasso_idwsf2_dstref_modify_response_get_type
#WSF#lasso_idwsf2_dstref_query_get_type
#WSF#lasso_idwsf2_dstref_query_item_get_type
#WSF#lasso_idwsf2_dstref_query_response_get_type
#WSF#lasso_idwsf2_dstref_result_query_get_type
#WSF#lasso_idwsf2_dstref_test_item_get_type
#WSF#lasso_idwsf2_dst_request_get_type
#WSF#lasso_idwsf2_dst_result_query_base_get_type
#WSF#lasso_idwsf2_dst_test_item_base_get_type
#WSF#lasso_idwsf2_ims_identity_mapping_request_get_type
#WSF#lasso_idwsf2_ims_identity_mapping_response_get_type
#WSF#lasso_idwsf2_ims_mapping_input_get_type
#WSF#lasso_idwsf2_ims_mapping_output_get_type
#WSF#lasso_idwsf2_is_help_get_type
#WSF#lasso_idwsf2_is_inquiry_element_get_type
#WSF#lasso_idwsf2_is_inquiry_get_type
#WSF#lasso_idwsf2_is_interaction_request_get_type
#WSF#lasso_idwsf2_is_interaction_response_get_type
#WSF#lasso_idwsf2_is_interaction_statement_get_type
#WSF#lasso_idwsf2_is_item_get_type
#WSF#lasso_idwsf2_is_parameter_get_type
#WSF#lasso_idwsf2_is_select_get_type
#WSF#lasso_idwsf2_is_text_get_type
#WSF#lasso_idwsf2_profile_get_type
#WSF#lasso_idwsf2_ps_add_collection_request_get_type
#WSF#lasso_idwsf2_ps_add_collection_response_get_type
#WSF#lasso_idwsf2_ps_add_entity_request_get_type
#WSF#lasso_idwsf2_ps_add_entity_response_get_type
#WSF#lasso_idwsf2_ps_add_known_entity_request_get_type
#WSF#lasso_idwsf2_ps_add_known_entity_response_get_type
#WSF#lasso_idwsf2_ps_add_to_collection_request_get_type
#WSF#lasso_idwsf2_ps_get_object_info_request_get_type
#WSF#lasso_idwsf2_ps_get_object_info_response_get_type
#WSF#lasso_idwsf2_ps_item_data_get_type
#WSF#lasso_idwsf2_ps_list_members_request_get_type
#WSF#lasso_idwsf2_ps_list_members_response_get_type
#WSF#lasso_idwsf2_ps_notification_get_type
#WSF#lasso_idwsf2_ps_notify_get_type
#WSF#lasso_idwsf2_ps_object_get_type
#WSF#lasso_idwsf2_ps_query_objects_request_get_type
#WSF#lasso_idwsf2_ps_query_objects_response_get_type
#WSF#lasso_idwsf2_ps_remove_collection_request_get_type
#WSF#lasso_idwsf2_ps_remove_entity_request_get_type
#WSF#lasso_idwsf2_ps_remove_from_collection_request_get_type
#WSF#lasso_idwsf2_ps_request_abstract_get_type
#WSF#lasso_idwsf2_ps_resolve_identifier_request_get_type
#WSF#lasso_idwsf2_ps_resolve_identifier_response_get_type
#WSF#lasso_idwsf2_ps_resolve_input_get_type
#WSF#lasso_idwsf2_ps_response_abstract_get_type
#WSF#lasso_idwsf2_ps_set_object_info_request_get_type
#WSF#lasso_idwsf2_ps_test_membership_request_get_type
#WSF#lasso_idwsf2_ps_test_membership_response_get_type
#WSF#lasso_idwsf2_sb2_consent_get_type
#WSF#lasso_idwsf2_sb2_credentials_context_get_type
#WSF#lasso_idwsf2_sb2_endpoint_update_get_type
#WSF#lasso_idwsf2_sb2_redirect_request_get_type
#WSF#lasso_idwsf2_sb2_sender_get_type
#WSF#lasso_idwsf2_sb2_target_identity_get_type
#WSF#lasso_idwsf2_sb2_timeout_get_type
#WSF#lasso_idwsf2_sb2_usage_directive_get_type
#WSF#lasso_idwsf2_sb2_user_interaction_header_get_type
#WSF#lasso_idwsf2_sbf_framework_get_type
#WSF#lasso_idwsf2_sec_token_get_type
#WSF#lasso_idwsf2_sec_token_policy_get_type
#WSF#lasso_idwsf2_sec_transited_provider_path_get_type
#WSF#lasso_idwsf2_subs_notification_get_type
#WSF#lasso_idwsf2_subs_notify_response_get_type
#WSF#lasso_idwsf2_subsref_app_data_get_type
#WSF#lasso_idwsf2_subsref_create_get_type
#WSF#lasso_idwsf2_subsref_create_item_get_type
#WSF#lasso_idwsf2_subsref_create_response_get_type
#WSF#lasso_idwsf2_subsref_data_get_type
#WSF#lasso_idwsf2_subsref_data_response_get_type
#WSF#lasso_idwsf2_subsref_delete_get_type
#WSF#lasso_idwsf2_subsref_delete_item_get_type
#WSF#lasso_idwsf2_subsref_delete_response_get_type
#WSF#lasso_idwsf2_subsref_item_data_get_type
#WSF#lasso_idwsf2_subs_ref_item_get_type
#WSF#lasso_idwsf2_subsref_modify_get_type
#WSF#lasso_idwsf2_subsref_modify_item_get_type
#WSF#lasso_idwsf2_subsref_modify_response_get_type
#WSF#lasso_idwsf2_subsref_notification_get_type
#WSF#lasso_idwsf2_subsref_notify_get_type
#WSF#lasso_idwsf2_subsref_notify_response_get_type
#WSF#lasso_idwsf2_subsref_query_get_type
#WSF#lasso_idwsf2_subsref_query_item_get_type
#WSF#lasso_idwsf2_subsref_query_response_get_type
#WSF#lasso_idwsf2_subsref_result_query_get_type
#WSF#lasso_idwsf2_subsref_subscription_get_type
#WSF#lasso_idwsf2_subsref_test_item_get_type
#WSF#lasso_idwsf2_subs_subscription_get_type
#WSF#lasso_idwsf2_util_empty_get_type
#WSF#lasso_idwsf2_util_extension_get_type
#WSF#lasso_idwsf2_util_response_get_type
#WSF#lasso_idwsf2_util_status_get_type
#WSF#lasso_interaction_profile_service_get_type
#WSF#lasso_is_help_get_type
#WSF#lasso_is_inquiry_element_get_type
#WSF#lasso_is_inquiry_get_type
#WSF#lasso_is_interaction_request_get_type
#WSF#lasso_is_interaction_response_get_type
#WSF#lasso_is_interaction_statement_get_type
#WSF#lasso_is_item_get_type
#WSF#lasso_is_parameter_get_type
#WSF#lasso_is_redirect_request_get_type
#WSF#lasso_is_select_get_type
#WSF#lasso_is_text_get_type
#WSF#lasso_is_user_interaction_get_type
#WSF#lasso_personal_profile_service_get_type
#WSF#lasso_sa_credentials_get_type
#WSF#lasso_sa_parameter_get_type
#WSF#lasso_sa_password_transforms_get_type
#WSF#lasso_sa_sasl_request_get_type
#WSF#lasso_sa_sasl_response_get_type
#WSF#lasso_sa_transform_get_type
#WSF#lasso_sec_resource_access_statement_get_type
#WSF#lasso_soap_binding_consent_get_type
#WSF#lasso_soap_binding_correlation_get_type
#WSF#lasso_soap_binding_ext_credential_get_type
#WSF#lasso_soap_binding_ext_credentials_context_get_type
#WSF#lasso_soap_binding_ext_service_instance_update_get_type
#WSF#lasso_soap_binding_ext_timeout_get_type
#WSF#lasso_soap_binding_processing_context_get_type
#WSF#lasso_soap_binding_provider_get_type
#WSF#lasso_soap_binding_usage_directive_get_type
#WSF#lasso_utility_status_get_type
#WSF#lasso_wsa_attributed_any_get_type
#WSF#lasso_wsa_attributed_qname_get_type
#WSF#lasso_wsa_attributed_unsigned_long_get_type
#WSF#lasso_wsa_attributed_uri_get_type
#WSF#lasso_wsa_endpoint_reference_get_type
#WSF#lasso_wsa_metadata_get_type
#WSF#lasso_wsa_problem_action_get_type
#WSF#lasso_wsa_reference_parameters_get_type
#WSF#lasso_wsa_relates_to_get_type
#WSF#lasso_wsf_profile_get_type
#WSF#lasso_wsse_embedded_get_type
#WSF#lasso_wsse_reference_get_type
#WSF#lasso_wsse_security_get_type
#WSF#lasso_wsse_security_header_get_type
#WSF#lasso_wsse_security_token_reference_get_type
#WSF#lasso_wsse_transformation_parameters_get_type
#WSF#lasso_wsse_username_token_get_type
#WSF#lasso_wsu_timestamp_get_type

View File

@ -1,99 +0,0 @@
Snippet Types
=============
{ name, type, value }; assumes Name as name and Value as value in examples.
SNIPPET_NODE
<Parent>
<Value/>
</Parent>
SNIPPET_CONTENT
<Parent>
<Name>Value</Name>
</Parent>
SNIPPET_TEXT_CHILD
<Parent>
Value
</Parent>
SNIPPET_NAME_IDENTIFIER
(same result as SNIPPET_NODE (with Value forced as a LassoSamlNameIdentifier))
SNIPPET_ATTRIBUTE
<Parent Name="Value"/>
SNIPPET_NODE_IN_CHILD
<Parent>
<Name>
<Value/>
</Name>
</Parent>
SNIPPET_LIST_NODES
<Parent>
<Value-1/>
<Value-2/>
<Value-n/>
</Parent>
[note: if there are no other nodes; it is possible to leave snippet name as
the empty string; nodes will then be constructed looking at their names and
namespaces (this is useful for xs:any)]
SNIPPET_LIST_CONTENT
<Parent>
<Name>Value-1</Name>
<Name>Value-2</Name>
<Name>Value-n</Name>
</Parent>
[note: Name will be in the same namespace as Parent by default but it is
possible to set 4th and 5th members of snippet to get a different namespace
(name, uri).]
SNIPPET_LIST_XMLNODES
<Parent>
<Value-1/>
<Value-2/>
<Value-3/>
</Parent>
[note: if there are no other nodes; it is possible to leave snippet name as
the empty string; nodes will then be constructed looking at their names and
namespaces (this is useful for xs:any)]
SNIPPET_XMLNODE
<Parent>
<Value/>
</Parent>
SNIPPET_EXTENSION
(for <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>)
SNIPPET_SIGNATURE
(for XMLDSig)

View File

@ -43,7 +43,7 @@ clean-local:
-rm -f types.c symbols.sym errors.c
EXTRA_DIST = utils.h extract_types.py extract_symbols.py build_strerror.py \
registry-private.h errors.c.in backward_comp.h
registry-private.h errors.c.in backward_comp.h extract_sections.py
if WSF_ENABLED
WSF_LIB_FILE = $(top_builddir)/lasso/id-wsf/liblasso-id-wsf.la

View File

@ -10,11 +10,16 @@ srcdir = sys.argv[1]
hlines = file('%s/errors.h' % srcdir,'r').readlines()
messages = dict()
description = None
for line in hlines:
m = re.match(r'#define (LASSO_\w+).*\/\*\s*(.*?)\s*\*\/', line)
m = re.match(r'^ \* (.*[^:])$', line)
if m:
messages[m.group(1)] = m.group(2)
description = m.group(1)
m = re.match(r'#define (LASSO_\w+)', line)
if m and description:
messages[m.group(1)] = description
description = None
else:
m = re.match(r'#define (LASSO_\w+)',line)
if m:
@ -25,6 +30,6 @@ for line in clines:
if '@ERROR_CASES@' in line:
for k in messages:
print """ case %s:
return "%s";""" % (k,messages[k])
return "%s";""" % (k,messages[k].rstrip('\n'))
else:
print line,

View File

@ -42,11 +42,11 @@ lasso_strerror(int error_code)
{
switch (error_code) {
case LASSO_LOGIN_ERROR_REQUEST_DENIED:
return "Request denied";
return "Request denied.";
case LASSO_DISCOVERY_ERROR_MISSING_REQUESTED_SERVICE:
return "Missing requested service";
case LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ:
return "An object type provided as parameter";
return "An object type provided as parameter is invalid or object is NULL.";
case LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS:
return "Status code is not success";
case LASSO_LOGOUT_ERROR_REQUEST_DENIED:
@ -112,7 +112,7 @@ lasso_strerror(int error_code)
case LASSO_PROFILE_ERROR_MISSING_SERVICE_TYPE:
return "Missing service type";
case LASSO_PROFILE_ERROR_CANNOT_FIND_A_PROVIDER:
return "Profile was called without a specific provider and we cannot find one";
return "Profile was called without a specific provider and we cannot find one.";
case LASSO_DS_ERROR_INVALID_REFERENCE_FOR_SAML:
return "SAML signature reference must be to a Request, a Reponse or an Assertion ID attribute";
case LASSO_PROFILE_ERROR_MISSING_ARTIFACT:
@ -128,7 +128,7 @@ lasso_strerror(int error_code)
case LASSO_LOGIN_ERROR_NO_DEFAULT_ENDPOINT:
return "No default endpoint";
case LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST:
return "LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST";
return "An unsigned authn request was received but the metadata specify that they must be signed.";
case LASSO_WSF_PROFILE_ERROR_UNSUPPORTED_SECURITY_MECHANISM:
return "The specified security mechanism is not supported by lasso ID-WSF library";
case LASSO_WSF_PROFILE_ERROR_MISSING_SECURITY:
@ -172,9 +172,9 @@ lasso_strerror(int error_code)
case LASSO_DISCOVERY_ERROR_FAILED_TO_BUILD_ENDPOINT_REFERENCE:
return "Failed to build Endpoint Reference";
case LASSO_ERROR_UNDEFINED:
return "Undefined error case";
return "Undefined error.";
case LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED:
return "LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED";
return "Consent of the principal was not obtained.";
case LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_IDENTIFIER:
return "LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_IDENTIFIER";
case LASSO_DEFEDERATION_ERROR_MISSING_NAME_IDENTIFIER:
@ -202,7 +202,7 @@ lasso_strerror(int error_code)
case LASSO_LOGIN_ERROR_UNKNOWN_PRINCIPAL:
return "Unknown principal";
case LASSO_LOGIN_ERROR_INVALID_SIGNATURE:
return "LASSO_LOGIN_ERROR_INVALID_SIGNATURE";
return "unknown key.";
case LASSO_LOGIN_ERROR_INVALID_NAMEIDPOLICY:
return "Invalid NameIDPolicy in lib:AuthnRequest";
case LASSO_DISCOVERY_ERROR_SVC_METADATA_ASSOCIATION_ADD_FAILED:
@ -214,7 +214,7 @@ lasso_strerror(int error_code)
case LASSO_LOGIN_ERROR_ASSERTION_REPLAY:
return "Assertion replay";
case LASSO_PARAM_ERROR_CHECK_FAILED:
return "The error return location should be";
return "The error return location should be either NULL or contains a NULL error.";
case LASSO_SOAP_ERROR_MISSING_BODY:
return "Missing SOAP body";
case LASSO_XML_ERROR_INVALID_FILE:
@ -226,7 +226,7 @@ lasso_strerror(int error_code)
case LASSO_XML_ERROR_NODE_NOT_FOUND:
return "Unable to get child of element.";
case LASSO_ERROR_UNIMPLEMENTED:
return "Unimplemented part of Lasso";
return "Unimplemented part of Lasso.";
case LASSO_SOAP_FAULT_REDIRECT_REQUEST:
return "Redirect request from Attribute Provider";
case LASSO_PROFILE_ERROR_INVALID_MSG:
@ -242,7 +242,7 @@ lasso_strerror(int error_code)
case LASSO_DST_ERROR_QUERY_NOT_FOUND:
return "Looked query is not found";
case LASSO_DS_ERROR_DIGEST_COMPUTE_FAILED:
return "LASSO_DS_ERROR_DIGEST_COMPUTE_FAILED";
return "Computation of an SHA1 digest failed.";
case LASSO_ERROR_CAST_FAILED:
return "Expected GObject class was not found, cast failed";
case LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION:
@ -250,7 +250,7 @@ lasso_strerror(int error_code)
case LASSO_DST_ERROR_NEW_DATA_MISSING:
return "Missing new data";
case LASSO_PARAM_ERROR_NON_INITIALIZED_OBJECT:
return "LASSO_PARAM_ERROR_NON_INITIALIZED_OBJECT";
return "The call failed because an argument is a partially-initialized object.";
case LASSO_PROFILE_ERROR_MISSING_SUBJECT:
return "Missing subject";
case LASSO_DST_ERROR_MODIFY_FAILED:
@ -274,7 +274,7 @@ lasso_strerror(int error_code)
case LASSO_NAME_IDENTIFIER_MAPPING_ERROR_FORBIDDEN_CALL_ON_THIS_SIDE:
return "LASSO_NAME_IDENTIFIER_MAPPING_ERROR_FORBIDDEN_CALL_ON_THIS_SIDE";
case LASSO_XML_ERROR_OBJECT_CONSTRUCTION_FAILED:
return "LASSO_XML_ERROR_OBJECT_CONSTRUCTION_FAILED";
return "Construction of an object from an XML document failed.";
case LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED:
return "Failed to verify signature.";
case LASSO_PROFILE_ERROR_BUILDING_RESPONSE_FAILED:

View File

@ -22,132 +22,633 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* Negative errors : programming or runtime recoverable errors */
/* Positive errors : Liberty Alliance recoverable errors */
/**
* SECTION:errors
* @short_description: Error codes returned by lasso functions
* @include: lasso/errors.h
*
* Most functions in lasso return signed integer error codes. The convention is to give:
* <itemizedlist>
* <listitem><para>a negative error code for programming or runtime recoverable errors,</para></listitem>
* <listitem><para>a positive error code for Liberty Alliance recoverable errors.</para></listitem>
* </itemizedlist>
*
* <para><emphasis>Beware that this convention is not always well followed.</emphasis></para>
*/
/* undefined */
#define LASSO_ERROR_UNDEFINED -1 /* Undefined error case */
#define LASSO_ERROR_UNIMPLEMENTED -2 /* Unimplemented part of Lasso */
#define LASSO_ERROR_OUT_OF_MEMORY -3 /* Out of memory */
#define LASSO_ERROR_CAST_FAILED -4 /* Expected GObject class was not found, cast failed */
/**
* LASSO_ERROR_UNDEFINED:
*
* Undefined error.
*/
#define LASSO_ERROR_UNDEFINED -1
/**
* LASSO_ERROR_UNIMPLEMENTED:
*
* Unimplemented part of Lasso.
*/
#define LASSO_ERROR_UNIMPLEMENTED -2
/**
* LASSO_ERROR_OUT_OF_MEMORY:
*
* Out of memory
*/
#define LASSO_ERROR_OUT_OF_MEMORY -3
/**
* LASSO_ERROR_CAST_FAILED:
*
* Expected GObject class was not found, cast failed
*/
#define LASSO_ERROR_CAST_FAILED -4
/* generic XML */
#define LASSO_XML_ERROR_NODE_NOT_FOUND -10 /* Unable to get child of element. */
#define LASSO_XML_ERROR_NODE_CONTENT_NOT_FOUND -11 /* Unable to get content of element. */
#define LASSO_XML_ERROR_ATTR_NOT_FOUND -12 /* Unable to get attribute of element. */
#define LASSO_XML_ERROR_ATTR_VALUE_NOT_FOUND -13 /* Unable to get attribute value of element. */
#define LASSO_XML_ERROR_INVALID_FILE -14 /* Invalid XML file */
/**
* LASSO_XML_ERROR_NODE_NOT_FOUND:
*
* Unable to get child of element.
*/
#define LASSO_XML_ERROR_NODE_NOT_FOUND -10
/**
* LASSO_XML_ERROR_NODE_CONTENT_NOT_FOUND:
*
* Unable to get content of element.
*/
#define LASSO_XML_ERROR_NODE_CONTENT_NOT_FOUND -11
/**
* LASSO_XML_ERROR_ATTR_NOT_FOUND:
*
* Unable to get attribute of element.
*/
#define LASSO_XML_ERROR_ATTR_NOT_FOUND -12
/**
* LASSO_XML_ERROR_ATTR_VALUE_NOT_FOUND:
*
* Unable to get attribute value of element.
*/
#define LASSO_XML_ERROR_ATTR_VALUE_NOT_FOUND -13
/**
* LASSO_XML_ERROR_INVALID_FILE:
*
* Invalid XML file
*/
#define LASSO_XML_ERROR_INVALID_FILE -14
/**
* LASSO_XML_ERROR_OBJECT_CONSTRUCTION_FAILED:
*
* Construction of an object from an XML document failed.
*/
#define LASSO_XML_ERROR_OBJECT_CONSTRUCTION_FAILED -15
#define LASSO_XML_ERROR_MISSING_NAMESPACE -16
/* XMLDSig */
#define LASSO_DS_ERROR_SIGNATURE_NOT_FOUND 101 /* Signature element not found. */
#define LASSO_DS_ERROR_INVALID_SIGNATURE 102 /* Invalid signature. */
/**
* LASSO_DS_ERROR_SIGNATURE_NOT_FOUND:
*
* Signature element not found.
*/
#define LASSO_DS_ERROR_SIGNATURE_NOT_FOUND 101
/**
* LASSO_DS_ERROR_INVALID_SIGNATURE:
*
* Invalid signature.
*/
#define LASSO_DS_ERROR_INVALID_SIGNATURE 102
#define LASSO_DS_ERROR_SIGNATURE_TMPL_CREATION_FAILED -103
#define LASSO_DS_ERROR_CONTEXT_CREATION_FAILED -104 /* Failed to create signature context. */
#define LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED -105 /* Failed to load public key. */
#define LASSO_DS_ERROR_PRIVATE_KEY_LOAD_FAILED -106 /* Failed to load private key. */
#define LASSO_DS_ERROR_CERTIFICATE_LOAD_FAILED -107 /* Failed to load certificate. */
#define LASSO_DS_ERROR_SIGNATURE_FAILED -108 /* Failed to sign the node. */
#define LASSO_DS_ERROR_KEYS_MNGR_CREATION_FAILED -109 /* Failed to create keys manager. */
#define LASSO_DS_ERROR_KEYS_MNGR_INIT_FAILED -110 /* Failed to initialize keys manager. */
#define LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED -111 /* Failed to verify signature. */
/**
* LASSO_DS_ERROR_CONTEXT_CREATION_FAILED:
*
* Failed to create signature context.
*/
#define LASSO_DS_ERROR_CONTEXT_CREATION_FAILED -104
/**
* LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED:
*
* Failed to load public key.
*/
#define LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED -105
/**
* LASSO_DS_ERROR_PRIVATE_KEY_LOAD_FAILED:
*
* Failed to load private key.
*/
#define LASSO_DS_ERROR_PRIVATE_KEY_LOAD_FAILED -106
/**
* LASSO_DS_ERROR_CERTIFICATE_LOAD_FAILED:
*
* Failed to load certificate.
*/
#define LASSO_DS_ERROR_CERTIFICATE_LOAD_FAILED -107
/**
* LASSO_DS_ERROR_SIGNATURE_FAILED:
*
* Failed to sign the node.
*/
#define LASSO_DS_ERROR_SIGNATURE_FAILED -108
/**
* LASSO_DS_ERROR_KEYS_MNGR_CREATION_FAILED:
*
* Failed to create keys manager.
*/
#define LASSO_DS_ERROR_KEYS_MNGR_CREATION_FAILED -109
/**
* LASSO_DS_ERROR_KEYS_MNGR_INIT_FAILED:
*
* Failed to initialize keys manager.
*/
#define LASSO_DS_ERROR_KEYS_MNGR_INIT_FAILED -110
/**
* LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED:
*
* Failed to verify signature.
*/
#define LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED -111
#define LASSO_DS_ERROR_CA_CERT_CHAIN_LOAD_FAILED -112
#define LASSO_DS_ERROR_INVALID_SIGALG -113 /* Invalid signature algorithm. */
/**
* LASSO_DS_ERROR_INVALID_SIGALG:
*
* Invalid signature algorithm.
*/
#define LASSO_DS_ERROR_INVALID_SIGALG -113
/**
* LASSO_DS_ERROR_DIGEST_COMPUTE_FAILED:
*
* Computation of an SHA1 digest failed.
*/
#define LASSO_DS_ERROR_DIGEST_COMPUTE_FAILED -114
#define LASSO_DS_ERROR_SIGNATURE_TEMPLATE_NOT_FOUND -115 /* Signature template has not been found. */
#define LASSO_DS_ERROR_TOO_MUCH_REFERENCES -116 /* SAML signature must contain only one reference */
#define LASSO_DS_ERROR_INVALID_REFERENCE_FOR_SAML -117 /* SAML signature reference must be to a Request, a Reponse or an Assertion ID attribute */
#define LASSO_DS_ERROR_DECRYPTION_FAILED -118 /* Decryption of an encrypted node failed */
/**
* LASSO_DS_ERROR_SIGNATURE_TEMPLATE_NOT_FOUND:
*
* Signature template has not been found.
*/
#define LASSO_DS_ERROR_SIGNATURE_TEMPLATE_NOT_FOUND -115
/**
* LASSO_DS_ERROR_TOO_MUCH_REFERENCES:
*
* SAML signature must contain only one reference
*/
#define LASSO_DS_ERROR_TOO_MUCH_REFERENCES -116
/**
* LASSO_DS_ERROR_INVALID_REFERENCE_FOR_SAML:
*
* SAML signature reference must be to a Request, a Reponse or an Assertion ID attribute
*/
#define LASSO_DS_ERROR_INVALID_REFERENCE_FOR_SAML -117
/**
* LASSO_DS_ERROR_DECRYPTION_FAILED:
*
* Decryption of an encrypted node failed
*/
#define LASSO_DS_ERROR_DECRYPTION_FAILED -118
/* Server */
#define LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND -201 /* ProviderID unknown to LassoServer. */
#define LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED -202 /* Failed to add new provider. */
#define LASSO_SERVER_ERROR_ADD_PROVIDER_PROTOCOL_MISMATCH -203 /* Failed to add new provider (protocol mismatch). */
#define LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED 204 /* Failed to load encryption private key. */
/**
* LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND:
*
* ProviderID unknown to LassoServer.
*/
#define LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND -201
/**
* LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED:
*
* Failed to add new provider.
*/
#define LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED -202
/**
* LASSO_SERVER_ERROR_ADD_PROVIDER_PROTOCOL_MISMATCH:
*
* Failed to add new provider (protocol mismatch).
*/
#define LASSO_SERVER_ERROR_ADD_PROVIDER_PROTOCOL_MISMATCH -203
/**
* LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED:
*
* Failed to load encryption private key.
*/
#define LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED 204
/* Single Logout */
#define LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE -301 /* Unsupported protocol profile */
#define LASSO_LOGOUT_ERROR_REQUEST_DENIED 302 /* Request denied by identity provider */
#define LASSO_LOGOUT_ERROR_FEDERATION_NOT_FOUND 303 /* Federation not found on logout */
#define LASSO_LOGOUT_ERROR_UNKNOWN_PRINCIPAL 304 /* Unknown principal on logout */
/**
* LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE:
*
* Unsupported protocol profile
*/
#define LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE -301
/**
* LASSO_LOGOUT_ERROR_REQUEST_DENIED:
*
* Request denied by identity provider
*/
#define LASSO_LOGOUT_ERROR_REQUEST_DENIED 302
/**
* LASSO_LOGOUT_ERROR_FEDERATION_NOT_FOUND:
*
* Federation not found on logout
*/
#define LASSO_LOGOUT_ERROR_FEDERATION_NOT_FOUND 303
/**
* LASSO_LOGOUT_ERROR_UNKNOWN_PRINCIPAL:
*
* Unknown principal on logout
*/
#define LASSO_LOGOUT_ERROR_UNKNOWN_PRINCIPAL 304
/* Profile */
#define LASSO_PROFILE_ERROR_INVALID_QUERY -401 /* Invalid URL query */
#define LASSO_PROFILE_ERROR_INVALID_POST_MSG -402 /* Invalid POST message */
#define LASSO_PROFILE_ERROR_INVALID_SOAP_MSG -403 /* Invalid SOAP message */
#define LASSO_PROFILE_ERROR_MISSING_REQUEST -404 /* Missing request */
#define LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD -405 /* Invalid HTTP method */
#define LASSO_PROFILE_ERROR_INVALID_PROTOCOLPROFILE -406 /* Invalid protocol profile */
#define LASSO_PROFILE_ERROR_INVALID_MSG -407 /* Invalid message */
#define LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID -408 /* ProviderID not found */
#define LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE -409 /* Unsupported protocol profile */
#define LASSO_PROFILE_ERROR_UNKNOWN_PROFILE_URL -410 /* Unable to find Profile URL in metadata */
#define LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND -411 /* Identity not found */
#define LASSO_PROFILE_ERROR_FEDERATION_NOT_FOUND -412 /* Federation not found */
#define LASSO_PROFILE_ERROR_NAME_IDENTIFIER_NOT_FOUND -413 /* Name identifier not found */
#define LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED -414 /* Error building request QUERY url */
#define LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED -415 /* Error building request object */
#define LASSO_PROFILE_ERROR_BUILDING_MESSAGE_FAILED -416 /* Error building request message */
#define LASSO_PROFILE_ERROR_BUILDING_RESPONSE_FAILED -417 /* Error building response object */
#define LASSO_PROFILE_ERROR_SESSION_NOT_FOUND -418 /* Session not found */
#define LASSO_PROFILE_ERROR_BAD_IDENTITY_DUMP -419 /* Failed to create identity from dump */
#define LASSO_PROFILE_ERROR_BAD_SESSION_DUMP -420 /* Failed to create session from dump */
#define LASSO_PROFILE_ERROR_MISSING_RESPONSE -421 /* Missing response */
#define LASSO_PROFILE_ERROR_MISSING_STATUS_CODE -422 /* Missing status code */
#define LASSO_PROFILE_ERROR_MISSING_ARTIFACT -423 /* Missing SAML artifact */
#define LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING 424 /* Missing ressource offering */
#define LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION 425 /* Missing service description */
#define LASSO_PROFILE_ERROR_MISSING_SERVICE_TYPE 426 /* Missing service type */
#define LASSO_PROFILE_ERROR_MISSING_ASSERTION -427 /* Missing assertion */
#define LASSO_PROFILE_ERROR_MISSING_SUBJECT -428 /* Missing subject */
#define LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER -429 /* Missing name identifier */
#define LASSO_PROFILE_ERROR_INVALID_ARTIFACT -430 /* Invalid artifact */
#define LASSO_PROFILE_ERROR_MISSING_ENCRYPTION_PRIVATE_KEY -431 /* Found an encrypted element but encryption private key is not set */
#define LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS -432 /* Status code is not success */
#define LASSO_PROFILE_ERROR_MISSING_ISSUER -433 /* Missing issuer */
#define LASSO_PROFILE_ERROR_MISSING_SERVICE_INSTANCE -434 /* Missing service instance */
#define LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE -435 /* Missing endpoint reference */
#define LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE_ADDRESS -436 /* Missing endpoint reference address */
#define LASSO_PROFILE_ERROR_INVALID_ISSUER -437 /* Assertion issuer is not the same as the requested issuer */
#define LASSO_PROFILE_ERROR_MISSING_SERVER -438 /* No server object set in the profile */
#define LASSO_PROFILE_ERROR_UNKNOWN_PROVIDER 439 /* The issuer of the message is unknown to us */
#define LASSO_PROFILE_ERROR_CANNOT_VERIFY_SIGNATURE 440 /* The profile cannot verify a signature on the message */
#define LASSO_PROFILE_ERROR_CANNOT_FIND_A_PROVIDER -441 /* Profile was called without a specific provider and we cannot find one */
#define LASSO_PROFILE_ERROR_RESPONSE_DOES_NOT_MATCH_REQUEST -442 /* Received response does not refer to the request sent */
/**
* LASSO_PROFILE_ERROR_INVALID_QUERY:
*
* Invalid URL query
*/
#define LASSO_PROFILE_ERROR_INVALID_QUERY -401
/**
* LASSO_PROFILE_ERROR_INVALID_POST_MSG:
*
* Invalid POST message
*/
#define LASSO_PROFILE_ERROR_INVALID_POST_MSG -402
/**
* LASSO_PROFILE_ERROR_INVALID_SOAP_MSG:
*
* Invalid SOAP message
*/
#define LASSO_PROFILE_ERROR_INVALID_SOAP_MSG -403
/**
* LASSO_PROFILE_ERROR_MISSING_REQUEST:
*
* Missing request
*/
#define LASSO_PROFILE_ERROR_MISSING_REQUEST -404
/**
* LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD:
*
* Invalid HTTP method
*/
#define LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD -405
/**
* LASSO_PROFILE_ERROR_INVALID_PROTOCOLPROFILE:
*
* Invalid protocol profile
*/
#define LASSO_PROFILE_ERROR_INVALID_PROTOCOLPROFILE -406
/**
* LASSO_PROFILE_ERROR_INVALID_MSG:
*
* Invalid message
*/
#define LASSO_PROFILE_ERROR_INVALID_MSG -407
/**
* LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID:
*
* ProviderID not found
*/
#define LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID -408
/**
* LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE:
*
* Unsupported protocol profile
*/
#define LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE -409
/**
* LASSO_PROFILE_ERROR_UNKNOWN_PROFILE_URL:
*
* Unable to find Profile URL in metadata
*/
#define LASSO_PROFILE_ERROR_UNKNOWN_PROFILE_URL -410
/**
* LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND:
*
* Identity not found
*/
#define LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND -411
/**
* LASSO_PROFILE_ERROR_FEDERATION_NOT_FOUND:
*
* Federation not found
*/
#define LASSO_PROFILE_ERROR_FEDERATION_NOT_FOUND -412
/**
* LASSO_PROFILE_ERROR_NAME_IDENTIFIER_NOT_FOUND:
*
* Name identifier not found
*/
#define LASSO_PROFILE_ERROR_NAME_IDENTIFIER_NOT_FOUND -413
/**
* LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED:
*
* Error building request QUERY url
*/
#define LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED -414
/**
* LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED:
*
* Error building request object
*/
#define LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED -415
/**
* LASSO_PROFILE_ERROR_BUILDING_MESSAGE_FAILED:
*
* Error building request message
*/
#define LASSO_PROFILE_ERROR_BUILDING_MESSAGE_FAILED -416
/**
* LASSO_PROFILE_ERROR_BUILDING_RESPONSE_FAILED:
*
* Error building response object
*/
#define LASSO_PROFILE_ERROR_BUILDING_RESPONSE_FAILED -417
/**
* LASSO_PROFILE_ERROR_SESSION_NOT_FOUND:
*
* Session not found
*/
#define LASSO_PROFILE_ERROR_SESSION_NOT_FOUND -418
/**
* LASSO_PROFILE_ERROR_BAD_IDENTITY_DUMP:
*
* Failed to create identity from dump
*/
#define LASSO_PROFILE_ERROR_BAD_IDENTITY_DUMP -419
/**
* LASSO_PROFILE_ERROR_BAD_SESSION_DUMP:
*
* Failed to create session from dump
*/
#define LASSO_PROFILE_ERROR_BAD_SESSION_DUMP -420
/**
* LASSO_PROFILE_ERROR_MISSING_RESPONSE:
*
* Missing response
*/
#define LASSO_PROFILE_ERROR_MISSING_RESPONSE -421
/**
* LASSO_PROFILE_ERROR_MISSING_STATUS_CODE:
*
* Missing status code
*/
#define LASSO_PROFILE_ERROR_MISSING_STATUS_CODE -422
/**
* LASSO_PROFILE_ERROR_MISSING_ARTIFACT:
*
* Missing SAML artifact
*/
#define LASSO_PROFILE_ERROR_MISSING_ARTIFACT -423
/**
* LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING:
*
* Missing ressource offering
*/
#define LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING 424
/**
* LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION:
*
* Missing service description
*/
#define LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION 425
/**
* LASSO_PROFILE_ERROR_MISSING_SERVICE_TYPE:
*
* Missing service type
*/
#define LASSO_PROFILE_ERROR_MISSING_SERVICE_TYPE 426
/**
* LASSO_PROFILE_ERROR_MISSING_ASSERTION:
*
* Missing assertion
*/
#define LASSO_PROFILE_ERROR_MISSING_ASSERTION -427
/**
* LASSO_PROFILE_ERROR_MISSING_SUBJECT:
*
* Missing subject
*/
#define LASSO_PROFILE_ERROR_MISSING_SUBJECT -428
/**
* LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER:
*
* Missing name identifier
*/
#define LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER -429
/**
* LASSO_PROFILE_ERROR_INVALID_ARTIFACT:
*
* Invalid artifact
*/
#define LASSO_PROFILE_ERROR_INVALID_ARTIFACT -430
/**
* LASSO_PROFILE_ERROR_MISSING_ENCRYPTION_PRIVATE_KEY:
*
* Found an encrypted element but encryption private key is not set
*/
#define LASSO_PROFILE_ERROR_MISSING_ENCRYPTION_PRIVATE_KEY -431
/**
* LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS:
*
* Status code is not success
*/
#define LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS -432
/**
* LASSO_PROFILE_ERROR_MISSING_ISSUER:
*
* Missing issuer
*/
#define LASSO_PROFILE_ERROR_MISSING_ISSUER -433
/**
* LASSO_PROFILE_ERROR_MISSING_SERVICE_INSTANCE:
*
* Missing service instance
*/
#define LASSO_PROFILE_ERROR_MISSING_SERVICE_INSTANCE -434
/**
* LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE:
*
* Missing endpoint reference
*/
#define LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE -435
/**
* LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE_ADDRESS:
*
* Missing endpoint reference address
*/
#define LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE_ADDRESS -436
/**
* LASSO_PROFILE_ERROR_INVALID_ISSUER:
*
* Assertion issuer is not the same as the requested issuer
*/
#define LASSO_PROFILE_ERROR_INVALID_ISSUER -437
/**
* LASSO_PROFILE_ERROR_MISSING_SERVER:
*
* No server object set in the profile
*/
#define LASSO_PROFILE_ERROR_MISSING_SERVER -438
/**
* LASSO_PROFILE_ERROR_UNKNOWN_PROVIDER:
*
* The issuer of the message is unknown to us
*/
#define LASSO_PROFILE_ERROR_UNKNOWN_PROVIDER 439
/**
* LASSO_PROFILE_ERROR_CANNOT_VERIFY_SIGNATURE:
*
* The profile cannot verify a signature on the message
*/
#define LASSO_PROFILE_ERROR_CANNOT_VERIFY_SIGNATURE 440
/**
* LASSO_PROFILE_ERROR_CANNOT_FIND_A_PROVIDER:
*
* Profile was called without a specific provider and we cannot find one.
*/
#define LASSO_PROFILE_ERROR_CANNOT_FIND_A_PROVIDER -441
/**
* LASSO_PROFILE_ERROR_RESPONSE_DOES_NOT_MATCH_REQUEST:
*
* Received response does not refer to the request sent
*/
#define LASSO_PROFILE_ERROR_RESPONSE_DOES_NOT_MATCH_REQUEST -442
/* functions/methods parameters checking */
#define LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ -501 /* An object type provided as parameter */
#define LASSO_PARAM_ERROR_INVALID_VALUE -502 /* A parameter value is invalid. */
#define LASSO_PARAM_ERROR_CHECK_FAILED -503 /* The error return location should be */
/**
* LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ:
*
* An object type provided as parameter is invalid or object is NULL.
*/
#define LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ -501
/**
* LASSO_PARAM_ERROR_INVALID_VALUE:
*
* A parameter value is invalid.
*/
#define LASSO_PARAM_ERROR_INVALID_VALUE -502
/**
* LASSO_PARAM_ERROR_CHECK_FAILED:
*
* The error return location should be either NULL or contains a NULL error.
*/
#define LASSO_PARAM_ERROR_CHECK_FAILED -503
/**
* LASSO_PARAM_ERROR_NON_INITIALIZED_OBJECT:
*
* The call failed because an argument is a partially-initialized object.
*/
#define LASSO_PARAM_ERROR_NON_INITIALIZED_OBJECT -504
/* Single Sign-On */
#define LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND 601 /* Federation not found on login */
/**
* LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND:
*
* Federation not found on login
*/
#define LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND 601
/**
* LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED:
*
* Consent of the principal was not obtained.
*/
#define LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED 602
#define LASSO_LOGIN_ERROR_INVALID_NAMEIDPOLICY -603 /* Invalid NameIDPolicy in lib:AuthnRequest */
#define LASSO_LOGIN_ERROR_REQUEST_DENIED 604 /* Request denied */
/**
* LASSO_LOGIN_ERROR_INVALID_NAMEIDPOLICY:
*
* Invalid NameIDPolicy in lib:AuthnRequest
*/
#define LASSO_LOGIN_ERROR_INVALID_NAMEIDPOLICY -603
/**
* LASSO_LOGIN_ERROR_REQUEST_DENIED:
*
* Request denied.
*/
#define LASSO_LOGIN_ERROR_REQUEST_DENIED 604
/**
* LASSO_LOGIN_ERROR_INVALID_SIGNATURE:
*
* The signature of a message or of an assertion is invalid. That is badly computed or with an
* unknown key.
*/
#define LASSO_LOGIN_ERROR_INVALID_SIGNATURE 605
/**
* LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST:
*
* An unsigned authn request was received but the metadata specify that they must be signed.
*/
#define LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST 606
#define LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS 607 /* Status code is not success */
#define LASSO_LOGIN_ERROR_UNKNOWN_PRINCIPAL 608 /* Unknown principal */
#define LASSO_LOGIN_ERROR_NO_DEFAULT_ENDPOINT 609 /* No default endpoint */
#define LASSO_LOGIN_ERROR_ASSERTION_REPLAY 610 /* Assertion replay */
#define LASSO_LOGIN_ERROR_ASSERTION_DOES_NOT_MATCH_REQUEST_ID 611 /* If inResponseTo attribute is present, a matching request must be present too in the LassoLogin object */
/**
* LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS:
*
* Status code is not success
*/
#define LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS 607
/**
* LASSO_LOGIN_ERROR_UNKNOWN_PRINCIPAL:
*
* Unknown principal
*/
#define LASSO_LOGIN_ERROR_UNKNOWN_PRINCIPAL 608
/**
* LASSO_LOGIN_ERROR_NO_DEFAULT_ENDPOINT:
*
* No default endpoint
*/
#define LASSO_LOGIN_ERROR_NO_DEFAULT_ENDPOINT 609
/**
* LASSO_LOGIN_ERROR_ASSERTION_REPLAY:
*
* Assertion replay
*/
#define LASSO_LOGIN_ERROR_ASSERTION_REPLAY 610
/**
* LASSO_LOGIN_ERROR_ASSERTION_DOES_NOT_MATCH_REQUEST_ID:
*
* If inResponseTo attribute is present, a matching request must be present too in the LassoLogin object
*/
#define LASSO_LOGIN_ERROR_ASSERTION_DOES_NOT_MATCH_REQUEST_ID 611
;
/* Federation Termination Notification */
#define LASSO_DEFEDERATION_ERROR_MISSING_NAME_IDENTIFIER -700 /* Name identifier not found in request */
/**
* LASSO_DEFEDERATION_ERROR_MISSING_NAME_IDENTIFIER:
*
* Name identifier not found in request
*/
#define LASSO_DEFEDERATION_ERROR_MISSING_NAME_IDENTIFIER -700
/* Soap */
#define LASSO_SOAP_FAULT_REDIRECT_REQUEST 800 /* Redirect request from Attribute Provider */
#define LASSO_SOAP_ERROR_MISSING_ENVELOPE -801 /* Missing SOAP envelope */
#define LASSO_SOAP_ERROR_MISSING_HEADER -802 /* Missing SOAP header */
#define LASSO_SOAP_ERROR_MISSING_BODY -803 /* Missing SOAP body */
#define LASSO_SOAP_ERROR_MISSING_SOAP_FAULT_DETAIL -804 /* Missing SOAP fault detail */
/**
* LASSO_SOAP_FAULT_REDIRECT_REQUEST:
*
* Redirect request from Attribute Provider
*/
#define LASSO_SOAP_FAULT_REDIRECT_REQUEST 800
/**
* LASSO_SOAP_ERROR_MISSING_ENVELOPE:
*
* Missing SOAP envelope
*/
#define LASSO_SOAP_ERROR_MISSING_ENVELOPE -801
/**
* LASSO_SOAP_ERROR_MISSING_HEADER:
*
* Missing SOAP header
*/
#define LASSO_SOAP_ERROR_MISSING_HEADER -802
/**
* LASSO_SOAP_ERROR_MISSING_BODY:
*
* Missing SOAP body
*/
#define LASSO_SOAP_ERROR_MISSING_BODY -803
/**
* LASSO_SOAP_ERROR_MISSING_SOAP_FAULT_DETAIL:
*
* Missing SOAP fault detail
*/
#define LASSO_SOAP_ERROR_MISSING_SOAP_FAULT_DETAIL -804
/* Name Identifier Mapping */
#define LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_NAMESPACE -900 /* Target name space not found */
/**
* LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_NAMESPACE:
*
* Target name space not found
*/
#define LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_NAMESPACE -900
#define LASSO_NAME_IDENTIFIER_MAPPING_ERROR_FORBIDDEN_CALL_ON_THIS_SIDE -901
#define LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_IDENTIFIER -902
@ -156,36 +657,161 @@
#define LASSO_DATA_SERVICE_CANNOT_ADD_ITEM -1001
/* WSF Profile */
#define LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION -1100 /* Correlation SOAP Header is missing */
#define LASSO_WSF_PROFILE_ERROR_MISSING_SECURITY -1101 /* Security SOAP Header is missing */
#define LASSO_WSF_PROFILE_ERROR_MISSING_ASSERTION_ID -1102 /* AssertionID attribute is missing */
#define LASSO_WSF_PROFILE_ERROR_MISSING_ENDPOINT -1103 /* Cannot find an WSP endpoint for the ID-WSF service */
#define LASSO_WSF_PROFILE_ERROR_SOAP_FAULT 1104 /* SOAP ID-WSF binding returned a SOAP fault */
#define LASSO_WSF_PROFILE_ERROR_UNSUPPORTED_SECURITY_MECHANISM 1105 /* The specified security mechanism is not supported by lasso ID-WSF library */
#define LASSO_WSF_PROFILE_ERROR_MISSING_DESCRIPTION -1106 /* No ID-WSF web Service description could be found for the current security mechanism */
#define LASSO_WSF_PROFILE_ERROR_MISSING_RESOURCE_ID -1107 /* The necessary ResourceID or EncryptedResourceID for calling an ID-WSF service is missing. */
#define LASSO_WSF_PROFILE_ERROR_MISSING_CREDENTIAL_REF -1108 /* WS-Security SAML Token secmech needs a CredentialRef */
#define LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID -1109 /* refToMessageID attribute of the Corrrelation header does not match the SOAP request */
/**
* LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION:
*
* Correlation SOAP Header is missing
*/
#define LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION -1100
/**
* LASSO_WSF_PROFILE_ERROR_MISSING_SECURITY:
*
* Security SOAP Header is missing
*/
#define LASSO_WSF_PROFILE_ERROR_MISSING_SECURITY -1101
/**
* LASSO_WSF_PROFILE_ERROR_MISSING_ASSERTION_ID:
*
* AssertionID attribute is missing
*/
#define LASSO_WSF_PROFILE_ERROR_MISSING_ASSERTION_ID -1102
/**
* LASSO_WSF_PROFILE_ERROR_MISSING_ENDPOINT:
*
* Cannot find an WSP endpoint for the ID-WSF service
*/
#define LASSO_WSF_PROFILE_ERROR_MISSING_ENDPOINT -1103
/**
* LASSO_WSF_PROFILE_ERROR_SOAP_FAULT:
*
* SOAP ID-WSF binding returned a SOAP fault
*/
#define LASSO_WSF_PROFILE_ERROR_SOAP_FAULT 1104
/**
* LASSO_WSF_PROFILE_ERROR_UNSUPPORTED_SECURITY_MECHANISM:
*
* The specified security mechanism is not supported by lasso ID-WSF library
*/
#define LASSO_WSF_PROFILE_ERROR_UNSUPPORTED_SECURITY_MECHANISM 1105
/**
* LASSO_WSF_PROFILE_ERROR_MISSING_DESCRIPTION:
*
* No ID-WSF web Service description could be found for the current security mechanism
*/
#define LASSO_WSF_PROFILE_ERROR_MISSING_DESCRIPTION -1106
/**
* LASSO_WSF_PROFILE_ERROR_MISSING_RESOURCE_ID:
*
* The necessary ResourceID or EncryptedResourceID for calling an ID-WSF service is missing.
*/
#define LASSO_WSF_PROFILE_ERROR_MISSING_RESOURCE_ID -1107
/**
* LASSO_WSF_PROFILE_ERROR_MISSING_CREDENTIAL_REF:
*
* WS-Security SAML Token secmech needs a CredentialRef
*/
#define LASSO_WSF_PROFILE_ERROR_MISSING_CREDENTIAL_REF -1108
/**
* LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID:
*
* refToMessageID attribute of the Corrrelation header does not match the SOAP request
*/
#define LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID -1109
/* ID-WSF 2 Discovery */
#define LASSO_DISCOVERY_ERROR_SVC_METADATA_REGISTER_FAILED -1200 /* Service metadata registration failed */
#define LASSO_DISCOVERY_ERROR_SVC_METADATA_ASSOCIATION_ADD_FAILED -1201 /* Service metadata association failed */
#define LASSO_DISCOVERY_ERROR_MISSING_REQUESTED_SERVICE -1202 /* Missing requested service */
#define LASSO_DISCOVERY_ERROR_FAILED_TO_BUILD_ENDPOINT_REFERENCE -1203 /* Failed to build Endpoint Reference */
/**
* LASSO_DISCOVERY_ERROR_SVC_METADATA_REGISTER_FAILED:
*
* Service metadata registration failed
*/
#define LASSO_DISCOVERY_ERROR_SVC_METADATA_REGISTER_FAILED -1200
/**
* LASSO_DISCOVERY_ERROR_SVC_METADATA_ASSOCIATION_ADD_FAILED:
*
* Service metadata association failed
*/
#define LASSO_DISCOVERY_ERROR_SVC_METADATA_ASSOCIATION_ADD_FAILED -1201
/**
* LASSO_DISCOVERY_ERROR_MISSING_REQUESTED_SERVICE:
*
* Missing requested service
*/
#define LASSO_DISCOVERY_ERROR_MISSING_REQUESTED_SERVICE -1202
/**
* LASSO_DISCOVERY_ERROR_FAILED_TO_BUILD_ENDPOINT_REFERENCE:
*
* Failed to build Endpoint Reference
*/
#define LASSO_DISCOVERY_ERROR_FAILED_TO_BUILD_ENDPOINT_REFERENCE -1203
/* ID-WSF 2 Data Service */
#define LASSO_DST_ERROR_MISSING_SERVICE_DATA -1300 /* Missing service data */
#define LASSO_DST_ERROR_QUERY_FAILED -1301 /* Query failed */
#define LASSO_DST_ERROR_QUERY_PARTIALLY_FAILED -1302 /* Query partially failed : some items were correctly processed */
#define LASSO_DST_ERROR_MODIFY_FAILED -1303 /* Modify failed */
#define LASSO_DST_ERROR_MODIFY_PARTIALLY_FAILED -1304 /* Modify partially failed : some items were correctly processed */
#define LASSO_DST_ERROR_NEW_DATA_MISSING -1305 /* Missing new data */
#define LASSO_DST_ERROR_QUERY_NOT_FOUND -1306 /* Looked query is not found */
#define LASSO_DST_ERROR_NO_DATA -1307 /* No data or no data for the designated query item in the query response */
#define LASSO_DST_ERROR_MALFORMED_QUERY -1308 /* QueryObject is malformed */
/**
* LASSO_DST_ERROR_MISSING_SERVICE_DATA:
*
* Missing service data
*/
#define LASSO_DST_ERROR_MISSING_SERVICE_DATA -1300
/**
* LASSO_DST_ERROR_QUERY_FAILED:
*
* Query failed
*/
#define LASSO_DST_ERROR_QUERY_FAILED -1301
/**
* LASSO_DST_ERROR_QUERY_PARTIALLY_FAILED:
*
* Query partially failed : some items were correctly processed
*/
#define LASSO_DST_ERROR_QUERY_PARTIALLY_FAILED -1302
/**
* LASSO_DST_ERROR_MODIFY_FAILED:
*
* Modify failed
*/
#define LASSO_DST_ERROR_MODIFY_FAILED -1303
/**
* LASSO_DST_ERROR_MODIFY_PARTIALLY_FAILED:
*
* Modify partially failed : some items were correctly processed
*/
#define LASSO_DST_ERROR_MODIFY_PARTIALLY_FAILED -1304
/**
* LASSO_DST_ERROR_NEW_DATA_MISSING:
*
* Missing new data
*/
#define LASSO_DST_ERROR_NEW_DATA_MISSING -1305
/**
* LASSO_DST_ERROR_QUERY_NOT_FOUND:
*
* Looked query is not found
*/
#define LASSO_DST_ERROR_QUERY_NOT_FOUND -1306
/**
* LASSO_DST_ERROR_NO_DATA:
*
* No data or no data for the designated query item in the query response
*/
#define LASSO_DST_ERROR_NO_DATA -1307
/**
* LASSO_DST_ERROR_MALFORMED_QUERY:
*
* QueryObject is malformed
*/
#define LASSO_DST_ERROR_MALFORMED_QUERY -1308
/* Lasso registry */
#define LASSO_REGISTRY_ERROR_KEY_EXISTS -1400 /* Key alreadys exists in the registry */
/**
* LASSO_REGISTRY_ERROR_KEY_EXISTS:
*
* Key alreadys exists in the registry
*/
#define LASSO_REGISTRY_ERROR_KEY_EXISTS -1400
/* Lasso provider */
#define LASSO_PROVIDER_ERROR_MISSING_PUBLIC_KEY -1500 /* The provider has no known public key */
/**
* LASSO_PROVIDER_ERROR_MISSING_PUBLIC_KEY:
*
* The provider has no known public key
*/
#define LASSO_PROVIDER_ERROR_MISSING_PUBLIC_KEY -1500

61
lasso/extract_sections.py Normal file
View File

@ -0,0 +1,61 @@
#! /usr/bin/env python
import glob
import re
import sys
import os
import os.path
enable_wsf = False
if '-wsf' in sys.argv:
enable_wsf = True
if len(sys.argv) == 2+enable_wsf:
srcdir = sys.argv[1]
else:
srcdir = '.'
for root, dirs, files in os.walk(srcdir):
prefixes = list()
for file in files:
if file.endswith('.c'):
prefixes.append(os.path.splitext(file)[0])
for prefix in prefixes:
try:
header = open(os.path.join(root, prefix + '.h')).read()
implementation = open(os.path.join(root, prefix + '.c')).read()
exported_functions = re.findall('LASSO_EXPORT.*(lasso_\w*)', header)
normal_functions = sorted ([ x for x in exported_functions if not x.endswith('get_type') ])
get_type = [ x for x in exported_functions if x.endswith('get_type') ][0]
file_name = re.findall('lasso_(.*)_get_type', get_type)[0]
try:
macro_type = re.findall('LASSO_(\w*)_CLASS\(', header)[0]
except:
macro_type = None
try:
type = re.findall(r'^struct _(Lasso\w*)', header, re.MULTILINE)[0]
except:
type = None
types = re.findall('^} (Lasso\w*);', header)
def convert(x):
if '%s' in x:
return x % macro_type
else:
return x
if type and macro_type:
standard_decl = [ convert(x) for x in [ 'LASSO_%s', 'LASSO_IS_%s', 'LASSO_TYPE_%s', get_type, 'LASSO_%s_CLASS', 'LASSO_IS_%s_CLASS', 'LASSO_%s_GET_CLASS' ] ]
print
print '<SECTION>'
print '<FILE>%s</FILE>' % file_name
print '<TITLE>%s</TITLE>' % type
print type
for x in types + normal_functions:
print x
print '<SUBSECTION Standard>'
for x in standard_decl:
print x
print '</SECTION>'
except:
continue

View File

@ -26,6 +26,10 @@
* SECTION:defederation
* @short_description: Federation Termination Notification Profile (ID-FF)
*
* The Federation Termination Notification Profiles serves to suppress federations between identity
* providers and services providers. It can be initiated by any of the partners using Redirect
* or SOAP binding.
*
**/
#include "../xml/private.h"

View File

@ -26,6 +26,8 @@
* SECTION:federation
* @short_description: Principal federation between two providers
*
* A #LassoFederation represents the an identifier shared by two provider, usually an identity
* provider and a service provider. Instance of this class are usually never accessed directly.
**/
#include "../xml/private.h"

View File

@ -26,6 +26,9 @@
* SECTION:identity
* @short_description: Principal identity
*
* A #LassoIdentity object records the identifers that a principal use two federate pairs of
* providers.
*
**/
#include "../xml/private.h"

View File

@ -53,12 +53,15 @@ typedef struct _LassoLoginPrivate LassoLoginPrivate;
/**
* LassoLoginProtocolProfile:
* @LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART:
* @LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_POST:
* @LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP:
* @LASSO_LOGIN_PROTOCOL_PROFILE_REDIRECT:
* @LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART: response is transmitted through a redirect request with
* an artifact, followed by an artifact resolution request by the service provider.
* @LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_POST: response is transmitted through a POST.
* @LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP: response is transmitted in a PAOS response (see
* #LassoLecp).
* @LASSO_LOGIN_PROTOCOL_PROFILE_REDIRECT: response is transmitted through a redirect.
*
* Identifies the two possible profiles for Single Sign-On and Federation.
* Identifies the four possible profiles for Single Sign-On and Federation. It defined how the
* response to authentication request will transmitted to the service provider.
*/
typedef enum {
LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART = 1,
@ -69,9 +72,10 @@ typedef enum {
/**
* LassoLogin:
* @protocolProfile:
* @assertionArtifact:
* @assertion:
* @protocolProfile: the kind of binding used for this authentication request.
* @assertionArtifact: a string representing the artifact received through an artifact resolution.
* request
* @assertion: after calling lasso_login_build_assertion, the assertion is stored here.
*
* Single sign-on profile for the current transaction; possibly an
* assertionArtifact to be used by the service provider in its

View File

@ -1,6 +1,4 @@
/* $Id$
*
* Lasso - A free implementation of the Liberty Alliance specifications.
/* $Id$ * * Lasso - A free implementation of the Liberty Alliance specifications.
*
* Copyright (C) 2004-2007 Entr'ouvert
* http://lasso.entrouvert.org
@ -26,6 +24,11 @@
* SECTION:logout
* @short_description: Single Logout Profile
*
* This profile Send logout notifications between providers. Any receiving provider must retransmit
* the notification to any other providers with which it shares the current identity by any means
* supported by the two, that is any provider federated with the current provider. There can be
* partial failures if no binding can be found to notify a federating partner.
*
*/
#include "../xml/private.h"

View File

@ -31,11 +31,11 @@ extern "C" {
/**
* LassoPublicKeyType:
* LASSO_PUBLIC_KEY_SIGNING: Signing public key
* LASSO_PUBLIC_KEY_ENCRYPTION: Encryption public key
* @LASSO_PUBLIC_KEY_SIGNING: Signing public key
* @LASSO_PUBLIC_KEY_ENCRYPTION: Encryption public key
*
* Public key type.
**/
*/
typedef enum {
LASSO_PUBLIC_KEY_SIGNING,
LASSO_PUBLIC_KEY_ENCRYPTION

View File

@ -209,8 +209,7 @@ add_assertion_to_list(G_GNUC_UNUSED gchar *key, LassoLibAssertion *value, GList
*
* Gets the assertions for the given @provider_id.
*
* Return value: a GList* of #LassoSamlAssertion. Caller must free the GList
* but NOT the assertions it contains.
* Return value: (transfer container) (element-type LassoSamlAssertion): a list of #LassoSamlAssertion.
**/
GList*
lasso_session_get_assertions(LassoSession *session, const char *provider_id)

View File

@ -31,10 +31,6 @@ extern "C" {
#include "../xml/xml.h"
#ifndef OFTYPE
#define OFTYPE(x)
#endif
#define LASSO_TYPE_SESSION (lasso_session_get_type())
#define LASSO_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_SESSION, LassoSession))
#define LASSO_SESSION_CLASS(klass) \
@ -71,7 +67,7 @@ LASSO_EXPORT LassoSession* lasso_session_new_from_dump(const gchar *dump);
LASSO_EXPORT gchar* lasso_session_dump(LassoSession *session);
LASSO_EXPORT void lasso_session_destroy(LassoSession *session);
LASSO_EXPORT GList* OFTYPE(LassoNode) lasso_session_get_assertions(
LASSO_EXPORT GList* lasso_session_get_assertions(
LassoSession *session, const char* provider_id);
LASSO_EXPORT gchar* lasso_session_get_provider_index(LassoSession *session, gint index);
LASSO_EXPORT gboolean lasso_session_is_empty(LassoSession *session);

View File

@ -44,6 +44,12 @@ lasso_server_add_svc_metadata(LassoServer *server, LassoIdWsf2DiscoSvcMetadata *
}
/**
* lasso_server_get_svc_metadatas:
* @server: a #LassoServer object
*
* Return value: (element-type LassoIdWsf2DiscoSvcMetadata) (transfer none): a list of #LassoIdWsf2DiscoSvcMetadata
*/
const GList *
lasso_server_get_svc_metadatas(LassoServer *server)
{
@ -53,6 +59,14 @@ lasso_server_get_svc_metadatas(LassoServer *server)
}
/**
* lasso_server_get_svc_metadatas_with_id_and_type:
* @server: a #LassoServer object
* @svcMDIDS: a list of service metadata IDs
* @service_type: a service type identifier
*
* Return value: (element-type LassoIdWsf2DiscoSvcMetadata) (transfer none): a list of #LassoIdWsf2DiscoSvcMetadata
*/
GList *
lasso_server_get_svc_metadatas_with_id_and_type(LassoServer *server, GList *svcMDIDs,
const gchar *service_type)

View File

@ -29,6 +29,15 @@
#include "../xml/soap_binding_correlation.h"
#include <xmlsec/base64.h>
/**
* SECTION:idwsf_authentication
* @short_description: ID-WSF 1.0 Authentication service
* @stability: Unstable
*
* The authentication service allows to authenticate uniformly using a SOAP encapsulated SASL
* service. Ideally you can use any SASL profile.
*/
/* SASL client callbacks (for secret, login, password, ... ) */
static sasl_callback_t lasso_sasl_callbacks[5];

View File

@ -401,7 +401,7 @@ cleanup:
* lasso_data_service_get_answers_by_select:
* @service: a #LassoDataService
* @select: resource selection string (typically a XPath query)
* @output: a GList** to store a GList* containing the result, it must be freed.
* @output: (allow-none) (element-type xmlNode): a GList** to store a GList* containing the result, it must be freed.
*
* Returns the answers for the specified @select request.
*
@ -493,7 +493,7 @@ cleanup:
* lasso_data_service_get_answer_for_item_id:
* @service: a #LassoDataService
* @item_id: query item identifier
* @output: a GList** to store a GList* containing the result, it must be freed.
* @output: (allow-none) (element-type xmlNode): a GList** to store a GList* containing the result, it must be freed.
*
* Returns the answers for the specified @itemID request.
*

View File

@ -97,10 +97,10 @@ LASSO_EXPORT gint lasso_data_service_get_answer(LassoDataService *service,
LASSO_EXPORT gint lasso_data_service_get_answers(LassoDataService *service, GList **output);
LASSO_EXPORT gint lasso_data_service_get_answers_by_select(LassoDataService *service,
const char *select, GList OFTYPE(xmlNode) **output);
const char *select, GList **output);
LASSO_EXPORT gint lasso_data_service_get_answers_by_item_id(LassoDataService *service,
const char *item_id, GList OFTYPE(xmlNode) **output);
const char *item_id, GList **output);
LASSO_EXPORT gint lasso_data_service_init_modify(LassoDataService *service);

View File

@ -40,6 +40,13 @@
#include "../xml/saml_attribute_statement.h"
#include "../id-wsf-2.0/server.h"
/**
*
* Those functions are called from ID-FF part of lasso when ID-WSF support is enabled. They enable
* the boot-straping of the ID-WSF services, notably the access to the Discovery service (see
* #LassoDiscovery).
*/
/**
* lasso_login_assertion_add_discovery:
* @login: a #LassoLogin

View File

@ -27,9 +27,16 @@
#include "../xml/soap_detail.h"
#include "../xml/soap_fault.h"
#include "../xml/is_redirect_request.h"
//#include "../xml/private.h"
#include "../utils.h"
/**
* SECTION:interaction_profile_service
* @short_description: A service to request user interaction from a principal
* @stability: Unstable
*
*/
struct _LassoInteractionProfileServicePrivate
{
gboolean dispose_has_run;

View File

@ -29,6 +29,12 @@
#include "./discovery.h"
#include "../utils.h"
/**
* SECTION:personal_profile_service
* @short_description: a subclass of LassoDataService to access Personal Profile datas
* @stability: Unstable
*/
/*****************************************************************************/
/* public methods */
/*****************************************************************************/

View File

@ -22,6 +22,13 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
* SECTION:id_wsf_utils
* @short_description: Misc functions used in the implementation of ID-WSF 1.0
* @stability: Internal
*/
/**
* lasso_security_mech_is_saml_authentication:
* @security_mech_id: the URI of an authentication mechanism

View File

@ -61,6 +61,14 @@
#include "../id-ff/sessionprivate.h"
#include "../xml/misc_text_node.h"
/**
* SECTION:wsf_profile
* @short_description: Base class for ID-WSF 1.0 services
* @stability: Unstable
*
* Use this class to base your ID-WSF 1.0 services.
*/
/*****************************************************************************/
/* private methods */
/*****************************************************************************/

View File

@ -148,7 +148,7 @@ lasso_assertion_query_init_request(LassoAssertionQuery *assertion_query,
* lasso_assertion_query_build_request_msg:
* @assertion_query: a #LassoAssertionQuery
*
* Builds the Name Id Management request message.
* Build an Assertion Query profile request message.
*
* Return value: 0 on success; or a negative value otherwise.
**/

View File

@ -53,13 +53,16 @@ typedef struct _LassoAssertionQueryPrivate LassoAssertionQueryPrivate;
/**
* LassoAssertionQueryRequestType::
* @LASSO_ASSERTION_QUERY_REQUEST_TYPE_UNSET:
* @LASSO_ASSERTION_QUERY_REQUEST_TYPE_ASSERTION_ID:
* @LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHN:
* @LASSO_ASSERTION_QUERY_REQUEST_TYPE_ATTRIBUTE:
* @LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHZ_DECISION:
* @LASSO_ASSERTION_QUERY_REQUEST_TYPE_UNSET: the unknown value
* @LASSO_ASSERTION_QUERY_REQUEST_TYPE_ASSERTION_ID: an AssertionID request, to retrieve an
* assertion by its ID.
* @LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHN: an AuthnQuery request, which is used to request existing authentication assertions about a given subject from an Authentication Authority
* @LASSO_ASSERTION_QUERY_REQUEST_TYPE_ATTRIBUTE: an AttributeQuery, which is used to retrieve
* attribute an a principal.
* @LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHZ_DECISION: an AuthzDecisionQuery, which is used to
* request authorisation to let a principal access a certain resource.
*
* Assertion Query or Request Type.
* Enumerate the existing kind of AssertionQuery requests.
**/
typedef enum {
LASSO_ASSERTION_QUERY_REQUEST_TYPE_UNSET = 0,

View File

@ -674,7 +674,7 @@ lasso_saml20_login_build_assertion(LassoLogin *login,
lasso_assign_string(assertion->Subject->SubjectConfirmation->SubjectConfirmationData->InResponseTo,
request_abstract->ID);
if (request_abstract->ID) {
/**
/*
* It MUST NOT contain a NotBefore attribute. If
* the containing message is in response to an <AuthnRequest>,
* then the InResponseTo attribute MUST match the request's ID.

View File

@ -28,6 +28,13 @@
#include <glib.h>
#include "./utils.h"
/**
* SECTION:utilities
* @short_description: Misc functions used internally in Lasso
* @stability: Internal
* @include: utils.h
*/
gchar*
lasso_safe_prefix_string(const gchar *str, gsize length)
{

View File

@ -25,7 +25,9 @@
#include "private.h"
#include "ds_key_info.h"
/*
/**
* SECTION:ds_key_info
* @short_description: object mapping for an XML DSIG KeyInfo element
*
*/

View File

@ -25,7 +25,9 @@
#include "private.h"
#include "ds_key_value.h"
/*
/**
* SECTION:ds_key_value
* @short_description: object mapping for an XML DSIG KeyValue element
*
*/

View File

@ -26,6 +26,8 @@
#include "ds_rsa_key_value.h"
/*
* SECTION:ds_rsa_key_value
* @short_description: Object representation of an XML DSIG element to hold an RSA key
*
*/

View File

@ -117,7 +117,7 @@ lasso_saml2_action_new()
/**
* lasso_saml2_action_new_with_string:
* @content:
* @content: content of the new element
*
* Creates a new #LassoSaml2Action object and initializes it
* with @content.

View File

@ -26,8 +26,13 @@
#include "saml_attribute.h"
/*
* The schema fragment (oasis-sstc-saml-schema-assertion-1.1.xsd):
* SECTION:saml_attribute
* @short_description: Mapping of the SAML element containing an attribute
* @stability: Stable
*
* The schema fragment (oasis-sstc-saml-schema-assertion-1.1.xsd):
* <figure><title>Schema fragment for saml:Attribute</title>
* <programlisting><![CDATA[
* <element name="Attribute" type="saml:AttributeType"/>
* <complexType name="AttributeType">
* <complexContent>
@ -58,6 +63,8 @@
* <attribute name="AttributeName" type="string" use="required"/>
* <attribute name="AttributeNamespace" type="anyURI" use="required"/>
* </complexType>
* ]]></programlisting>
* </figure>
*
*/

View File

@ -25,14 +25,24 @@
#include "private.h"
#include "saml_attribute_designator.h"
/*
* The schema fragment (oasis-sstc-saml-schema-assertion-1.1.xsd):
/**
* SECTION:saml_attribute_designator
* @short_description: object mapping for a saml:AttributeDesignator
*
* The schema fragment (oasis-sstc-saml-schema-assertion-1.1.xsd) is:
*
* <figure>
* <title>Schema fragment for saml:AttributeDesignator</title>
* <programlisting>
* <![CDATA[
* <element name="AttributeDesignator" type="saml:AttributeDesignatorType"/>
* <complexType name="AttributeDesignatorType">
* <attribute name="AttributeName" type="string" use="required"/>
* <attribute name="AttributeNamespace" type="anyURI" use="required"/>
* </complexType>
* ]]>
* </programlisting>
* </figure>
*/
/*****************************************************************************/

View File

@ -25,9 +25,15 @@
#include "private.h"
#include "saml_attribute_statement.h"
/*
* The schema fragment (oasis-sstc-saml-schema-assertion-1.1.xsd):
/**
* SECTION:saml_attribute_statement
* @short_description: object mapping for a saml:AttributeStatement
*
* The schema fragment (oasis-sstc-saml-schema-assertion-1.1.xsd):
* <figure>
* <title>Schema fragment for saml:AttributeStatement</title>
* <programlisting>
* <![CDATA[
* <element name="AttributeStatement" type="saml:AttributeStatementType"/>
* <complexType name="AttributeStatementType">
* <complexContent>
@ -38,6 +44,9 @@
* </extension>
* </complexContent>
* </complexType>
* ]]>
* </programlisting>
* </figure>
*/
/*****************************************************************************/

View File

@ -25,8 +25,15 @@
#include "private.h"
#include "soap_fault.h"
/*
/**
* SECTION:soap_fault
* @short_description: object mapping for a soap11:Fault
* @stability: Stable
*
* <figure>
* <title>Schema fragment for soap11:Fault</title>
* <programlisting>
* <![CDATA[
* <xs: element name="Fault" type="tns: Fault"/>
* <xs: complexType name="Fault" final="extension">
* <xs: annotation>
@ -48,7 +55,9 @@
* </xs: sequence>
* <xs: anyAttribute namespace="##any" processContents="lax"/>
* </xs: complexType>
*
* ]]>
* </programlisting>
* </figure>
*/
/*****************************************************************************/

File diff suppressed because it is too large Load Diff

View File

@ -56,6 +56,12 @@
#include "../debug.h"
#include "../utils.h"
/**
* SECTION:tools
* @short_description: Misc functions used inside Lasso
* @stability: Internal
*/
LassoNode* lasso_assertion_encrypt(LassoSaml2Assertion *assertion);
static xmlSecKeyPtr lasso_get_public_key_from_private_key_file(const char *private_key_file);
static gboolean is_base64(const char *message);

View File

@ -75,8 +75,9 @@ typedef enum {
/**
* LassoSignatureType::
* @LASSO_SIGNATURE_TYPE_NONE: no signature
* @LASSO_SIGNATURE_TYPE_SIMPLE:
* @LASSO_SIGNATURE_TYPE_WITHX509:
* @LASSO_SIGNATURE_TYPE_SIMPLE: sign with the private key, copy the public part in the signature.
* @LASSO_SIGNATURE_TYPE_WITHX509: sign with the private key, copy the associated certificat in the
* signature.
*
* Signature type.
**/
@ -89,8 +90,8 @@ typedef enum {
/**
* LassoSignatureMethod::
* @LASSO_SIGNATURE_METHOD_RSA_SHA1:
* @LASSO_SIGNATURE_METHOD_DSA_SHA1:
* @LASSO_SIGNATURE_METHOD_RSA_SHA1: sign using a RSA private key
* @LASSO_SIGNATURE_METHOD_DSA_SHA1: sign using a DSA private key
*
* Signature method.
**/

View File

@ -1,39 +0,0 @@
dnl -*- mode: autoconf -*-
# serial 1
dnl Usage:
dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
AC_DEFUN([GTK_DOC_CHECK],
[
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
dnl for overriding the documentation installation directory
AC_ARG_WITH([html-dir],
AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
[with_html_dir='${datadir}/gtk-doc/html'])
HTML_DIR="$with_html_dir"
AC_SUBST([HTML_DIR])
dnl enable/disable documentation building
AC_ARG_ENABLE([gtk-doc],
AS_HELP_STRING([--enable-gtk-doc],
[use gtk-doc to build documentation [[default=no]]]),,
[enable_gtk_doc=no])
if test x$enable_gtk_doc = xyes; then
ifelse([$1],[],
[PKG_CHECK_EXISTS([gtk-doc],,
AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
[PKG_CHECK_EXISTS([gtk-doc >= $1],,
AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build gtk-doc]))])
fi
AC_MSG_CHECKING([whether to build gtk-doc documentation])
AC_MSG_RESULT($enable_gtk_doc)
AC_PATH_PROGS(GTKDOC_CHECK,gtkdoc-check,)
AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
])