New upstream version 2.1.27~rc8
Ondřej Surý
5 years ago
65 | 65 | endif |
66 | 66 | if MACOSX |
67 | 67 | INSTALLOSX = install-exec-local-osx |
68 | else | |
69 | INSTALLOSX = | |
68 | else | |
69 | INSTALLOSX = | |
70 | 70 | endif |
71 | 71 | |
72 | 72 | SUBDIRS=include sasldb common lib plugins utils $(PWC) $(SAM) $(JAV) $(SAD) |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
0 | # generated automatically by aclocal 1.15 -*- Autoconf -*- | |
1 | ||
2 | # Copyright (C) 1996-2014 Free Software Foundation, Inc. | |
0 | # generated automatically by aclocal 1.15.1 -*- Autoconf -*- | |
1 | ||
2 | # Copyright (C) 1996-2017 Free Software Foundation, Inc. | |
3 | 3 | |
4 | 4 | # This file is free software; the Free Software Foundation |
5 | 5 | # gives unlimited permission to copy and/or distribute it, |
19 | 19 | If you have problems, you may need to regenerate the build system entirely. |
20 | 20 | To do so, use the procedure documented by the package, typically 'autoreconf'.])]) |
21 | 21 | |
22 | # Copyright (C) 2002-2014 Free Software Foundation, Inc. | |
22 | # Copyright (C) 2002-2017 Free Software Foundation, Inc. | |
23 | 23 | # |
24 | 24 | # This file is free software; the Free Software Foundation |
25 | 25 | # gives unlimited permission to copy and/or distribute it, |
34 | 34 | [am__api_version='1.15' |
35 | 35 | dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to |
36 | 36 | dnl require some minimum version. Point them to the right macro. |
37 | m4_if([$1], [1.15], [], | |
37 | m4_if([$1], [1.15.1], [], | |
38 | 38 | [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl |
39 | 39 | ]) |
40 | 40 | |
50 | 50 | # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. |
51 | 51 | # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. |
52 | 52 | AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], |
53 | [AM_AUTOMAKE_VERSION([1.15])dnl | |
53 | [AM_AUTOMAKE_VERSION([1.15.1])dnl | |
54 | 54 | m4_ifndef([AC_AUTOCONF_VERSION], |
55 | 55 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
56 | 56 | _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) |
57 | 57 | |
58 | 58 | # AM_AUX_DIR_EXPAND -*- Autoconf -*- |
59 | 59 | |
60 | # Copyright (C) 2001-2014 Free Software Foundation, Inc. | |
60 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
61 | 61 | # |
62 | 62 | # This file is free software; the Free Software Foundation |
63 | 63 | # gives unlimited permission to copy and/or distribute it, |
109 | 109 | |
110 | 110 | # AM_CONDITIONAL -*- Autoconf -*- |
111 | 111 | |
112 | # Copyright (C) 1997-2014 Free Software Foundation, Inc. | |
112 | # Copyright (C) 1997-2017 Free Software Foundation, Inc. | |
113 | 113 | # |
114 | 114 | # This file is free software; the Free Software Foundation |
115 | 115 | # gives unlimited permission to copy and/or distribute it, |
140 | 140 | Usually this means the macro was only invoked conditionally.]]) |
141 | 141 | fi])]) |
142 | 142 | |
143 | # Copyright (C) 1999-2014 Free Software Foundation, Inc. | |
143 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
144 | 144 | # |
145 | 145 | # This file is free software; the Free Software Foundation |
146 | 146 | # gives unlimited permission to copy and/or distribute it, |
331 | 331 | |
332 | 332 | # Generate code to set up dependency tracking. -*- Autoconf -*- |
333 | 333 | |
334 | # Copyright (C) 1999-2014 Free Software Foundation, Inc. | |
334 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
335 | 335 | # |
336 | 336 | # This file is free software; the Free Software Foundation |
337 | 337 | # gives unlimited permission to copy and/or distribute it, |
407 | 407 | |
408 | 408 | # Do all the work for Automake. -*- Autoconf -*- |
409 | 409 | |
410 | # Copyright (C) 1996-2014 Free Software Foundation, Inc. | |
410 | # Copyright (C) 1996-2017 Free Software Foundation, Inc. | |
411 | 411 | # |
412 | 412 | # This file is free software; the Free Software Foundation |
413 | 413 | # gives unlimited permission to copy and/or distribute it, |
604 | 604 | done |
605 | 605 | echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) |
606 | 606 | |
607 | # Copyright (C) 2001-2014 Free Software Foundation, Inc. | |
607 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
608 | 608 | # |
609 | 609 | # This file is free software; the Free Software Foundation |
610 | 610 | # gives unlimited permission to copy and/or distribute it, |
625 | 625 | fi |
626 | 626 | AC_SUBST([install_sh])]) |
627 | 627 | |
628 | # Copyright (C) 2003-2014 Free Software Foundation, Inc. | |
628 | # Copyright (C) 2003-2017 Free Software Foundation, Inc. | |
629 | 629 | # |
630 | 630 | # This file is free software; the Free Software Foundation |
631 | 631 | # gives unlimited permission to copy and/or distribute it, |
646 | 646 | |
647 | 647 | # Check to see how 'make' treats includes. -*- Autoconf -*- |
648 | 648 | |
649 | # Copyright (C) 2001-2014 Free Software Foundation, Inc. | |
649 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
650 | 650 | # |
651 | 651 | # This file is free software; the Free Software Foundation |
652 | 652 | # gives unlimited permission to copy and/or distribute it, |
696 | 696 | |
697 | 697 | # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- |
698 | 698 | |
699 | # Copyright (C) 1997-2014 Free Software Foundation, Inc. | |
699 | # Copyright (C) 1997-2017 Free Software Foundation, Inc. | |
700 | 700 | # |
701 | 701 | # This file is free software; the Free Software Foundation |
702 | 702 | # gives unlimited permission to copy and/or distribute it, |
735 | 735 | |
736 | 736 | # Helper functions for option handling. -*- Autoconf -*- |
737 | 737 | |
738 | # Copyright (C) 2001-2014 Free Software Foundation, Inc. | |
738 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
739 | 739 | # |
740 | 740 | # This file is free software; the Free Software Foundation |
741 | 741 | # gives unlimited permission to copy and/or distribute it, |
764 | 764 | AC_DEFUN([_AM_IF_OPTION], |
765 | 765 | [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) |
766 | 766 | |
767 | # Copyright (C) 1999-2014 Free Software Foundation, Inc. | |
767 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | |
768 | 768 | # |
769 | 769 | # This file is free software; the Free Software Foundation |
770 | 770 | # gives unlimited permission to copy and/or distribute it, |
811 | 811 | # For backward compatibility. |
812 | 812 | AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) |
813 | 813 | |
814 | # Copyright (C) 2001-2014 Free Software Foundation, Inc. | |
814 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
815 | 815 | # |
816 | 816 | # This file is free software; the Free Software Foundation |
817 | 817 | # gives unlimited permission to copy and/or distribute it, |
830 | 830 | |
831 | 831 | # Check to make sure that the build environment is sane. -*- Autoconf -*- |
832 | 832 | |
833 | # Copyright (C) 1996-2014 Free Software Foundation, Inc. | |
833 | # Copyright (C) 1996-2017 Free Software Foundation, Inc. | |
834 | 834 | # |
835 | 835 | # This file is free software; the Free Software Foundation |
836 | 836 | # gives unlimited permission to copy and/or distribute it, |
911 | 911 | rm -f conftest.file |
912 | 912 | ]) |
913 | 913 | |
914 | # Copyright (C) 2009-2014 Free Software Foundation, Inc. | |
914 | # Copyright (C) 2009-2017 Free Software Foundation, Inc. | |
915 | 915 | # |
916 | 916 | # This file is free software; the Free Software Foundation |
917 | 917 | # gives unlimited permission to copy and/or distribute it, |
971 | 971 | _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl |
972 | 972 | ]) |
973 | 973 | |
974 | # Copyright (C) 2001-2014 Free Software Foundation, Inc. | |
974 | # Copyright (C) 2001-2017 Free Software Foundation, Inc. | |
975 | 975 | # |
976 | 976 | # This file is free software; the Free Software Foundation |
977 | 977 | # gives unlimited permission to copy and/or distribute it, |
999 | 999 | INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" |
1000 | 1000 | AC_SUBST([INSTALL_STRIP_PROGRAM])]) |
1001 | 1001 | |
1002 | # Copyright (C) 2006-2014 Free Software Foundation, Inc. | |
1002 | # Copyright (C) 2006-2017 Free Software Foundation, Inc. | |
1003 | 1003 | # |
1004 | 1004 | # This file is free software; the Free Software Foundation |
1005 | 1005 | # gives unlimited permission to copy and/or distribute it, |
1018 | 1018 | |
1019 | 1019 | # Check how to create a tarball. -*- Autoconf -*- |
1020 | 1020 | |
1021 | # Copyright (C) 2004-2014 Free Software Foundation, Inc. | |
1021 | # Copyright (C) 2004-2017 Free Software Foundation, Inc. | |
1022 | 1022 | # |
1023 | 1023 | # This file is free software; the Free Software Foundation |
1024 | 1024 | # gives unlimited permission to copy and/or distribute it, |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
638 | 638 | SPHINX_BUILD |
639 | 639 | DIRS |
640 | 640 | LTLIBOBJS |
641 | BUILD_LIBOBJ_FALSE | |
642 | BUILD_LIBOBJ_TRUE | |
641 | 643 | LTGETNAMEINFOOBJS |
642 | 644 | GETNAMEINFOOBJS |
643 | 645 | LTGETADDRINFOOBJS |
672 | 674 | NTLM_LIBS |
673 | 675 | PLAIN_LIBS |
674 | 676 | LIB_PAM |
677 | AUTH_SASLDB_FALSE | |
678 | AUTH_SASLDB_TRUE | |
675 | 679 | LIB_SIA |
676 | 680 | GSSAPIBASE_LIBS |
677 | 681 | LIB_CRYPT |
878 | 882 | enable_digest |
879 | 883 | enable_scram |
880 | 884 | enable_otp |
881 | with_with_opie | |
885 | with_opie | |
882 | 886 | enable_srp |
883 | 887 | enable_srp_setpass |
884 | 888 | enable_krb4 |
1613 | 1617 | --with-lib-subdir=DIR Find libraries in DIR instead of lib |
1614 | 1618 | --with-openssl=DIR use OpenSSL from DIR |
1615 | 1619 | --with-des=DIR with DES (look in DIR) yes |
1616 | --with-opie=PATH use OPIE (One Time Passwords in Everything) from PATH | |
1620 | --with-opie=PATH use OPIE (One Time Passwords in Everything) from | |
1621 | PATH | |
1617 | 1622 | --with-gss_impl={heimdal|mit|cybersafe|seam|auto} |
1618 | 1623 | choose specific GSSAPI implementation [[auto]] |
1619 | 1624 | --with-pam=DIR use PAM (rooted in DIR) yes |
14183 | 14188 | done |
14184 | 14189 | fi |
14185 | 14190 | |
14186 | sasl_cv_java_includes="${sasl_cv_java_includes} -I$java_base/include" | |
14191 | sasl_cv_java_includes="${sasl_cv_java_includes} -I$javapath/include" | |
14187 | 14192 | fi |
14188 | 14193 | |
14189 | 14194 | |
15312 | 15317 | $as_echo_n "(cached) " >&6 |
15313 | 15318 | else |
15314 | 15319 | |
15315 | echo "void main(){int i=1;} | |
15320 | echo "int main(){int i=1; return 0;} | |
15316 | 15321 | void foo(){int i=6;}" > conftest.c |
15317 | 15322 | ${CC} -o a.out conftest.c > /dev/null |
15318 | 15323 | if (${NM} a.out | grep _foo) > /dev/null; then |
15345 | 15350 | #include <dlfcn.h> |
15346 | 15351 | #include <stdio.h> |
15347 | 15352 | void foo() { int i=0;} |
15348 | void main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY); | |
15353 | int main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY); | |
15349 | 15354 | if(self) { ptr1=dlsym(self,"foo"); ptr2=dlsym(self,"_foo"); |
15350 | 15355 | if(ptr1 && !ptr2) exit(0); } exit(1); } |
15351 | 15356 | |
15732 | 15737 | no) |
15733 | 15738 | with_openssl="no";; |
15734 | 15739 | *) |
15740 | with_openssl="yes" | |
15735 | 15741 | LIB_RSAREF="" |
15736 | 15742 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RSAPublicEncrypt in -lrsaref" >&5 |
15737 | 15743 | $as_echo_n "checking for RSAPublicEncrypt in -lrsaref... " >&6; } |
15858 | 15864 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_EVP_DigestInit" >&5 |
15859 | 15865 | $as_echo "$ac_cv_lib_crypto_EVP_DigestInit" >&6; } |
15860 | 15866 | if test "x$ac_cv_lib_crypto_EVP_DigestInit" = xyes; then : |
15861 | with_openssl="yes", | |
15862 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SHA256 in -lcrypto" >&5 | |
15867 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SHA256 in -lcrypto" >&5 | |
15863 | 15868 | $as_echo_n "checking for SHA256 in -lcrypto... " >&6; } |
15864 | 15869 | if ${ac_cv_lib_crypto_SHA256+:} false; then : |
15865 | 15870 | $as_echo_n "(cached) " >&6 |
15906 | 15911 | fi |
15907 | 15912 | |
15908 | 15913 | else |
15909 | with_openssl=no | |
15914 | with_openssl="no" | |
15910 | 15915 | fi |
15911 | 15916 | |
15912 | 15917 | |
16056 | 16061 | fi |
16057 | 16062 | |
16058 | 16063 | fi |
16064 | else | |
16065 | with_des=no | |
16059 | 16066 | fi |
16060 | 16067 | |
16061 | 16068 | if test "$with_des" = no; then |
16415 | 16422 | fi |
16416 | 16423 | |
16417 | 16424 | |
16418 | # Check whether --with-with-opie was given. | |
16419 | if test "${with_with_opie+set}" = set; then : | |
16420 | withval=$with_with_opie; with_opie="${withval}" | |
16425 | # Check whether --with-opie was given. | |
16426 | if test "${with_opie+set}" = set; then : | |
16427 | withval=$with_opie; | |
16421 | 16428 | fi |
16422 | 16429 | |
16423 | 16430 | |
16940 | 16947 | fi |
16941 | 16948 | |
16942 | 16949 | |
16950 | gs2="no" | |
16943 | 16951 | if test "$gssapi" != no; then |
16944 | 16952 | platform= |
16945 | 16953 | case "${host}" in |
16959 | 16967 | *-*-aix*) |
16960 | 16968 | ###_AIX |
16961 | 16969 | platform=__aix |
16970 | ;; | |
16971 | *-*-darwin*) | |
16972 | platform=__darwin | |
16962 | 16973 | ;; |
16963 | 16974 | *) |
16964 | 16975 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The system type is not recognized. If you believe that CyberSafe GSSAPI works on this platform, please update the configure script" >&5 |
17596 | 17607 | SASL_STATIC_OBJS="$SASL_STATIC_OBJS gssapi.o" |
17597 | 17608 | SASL_STATIC_SRCS="$SASL_STATIC_SRCS \$(top_srcdir)/plugins/gssapi.c" |
17598 | 17609 | if test "$rfc5587" = "yes" -a "$rfc5801" = "yes"; then |
17610 | gs2="yes" | |
17599 | 17611 | SASL_MECHS="$SASL_MECHS libgs2.la" |
17600 | 17612 | SASL_STATIC_OBJS="$SASL_STATIC_OBJS gs2.o" |
17601 | 17613 | SASL_STATIC_SRCS="$SASL_STATIC_SRCS \$(top_srcdir)/plugins/gs2.c" |
18631 | 18643 | |
18632 | 18644 | |
18633 | 18645 | fi |
18646 | if test "$authsasldb" != no; then | |
18647 | AUTH_SASLDB_TRUE= | |
18648 | AUTH_SASLDB_FALSE='#' | |
18649 | else | |
18650 | AUTH_SASLDB_TRUE='#' | |
18651 | AUTH_SASLDB_FALSE= | |
18652 | fi | |
18653 | ||
18634 | 18654 | |
18635 | 18655 | # Check whether --enable-httpform was given. |
18636 | 18656 | if test "${enable_httpform+set}" = set; then : |
19412 | 19432 | $as_echo "$as_me: WARNING: SQLite Library not found" >&2;}; true;; |
19413 | 19433 | *) |
19414 | 19434 | if test -d ${with_sqlite}/lib; then |
19415 | LIB_SQLITE="-L${with_sqlite}/lib -R${with_sqlite}/lib" | |
19435 | ||
19436 | # this is CMU ADD LIBPATH TO | |
19437 | if test "$andrew_cv_runpath_switch" = "none" ; then | |
19438 | LIB_SQLITE="-L${with_sqlite}/lib ${LIB_SQLITE}" | |
19439 | else | |
19440 | LIB_SQLITE="-L${with_sqlite}/lib ${LIB_SQLITE} $andrew_cv_runpath_switch${with_sqlite}/lib" | |
19441 | fi | |
19442 | ||
19416 | 19443 | else |
19417 | LIB_SQLITE="-L${with_sqlite} -R${with_sqlite}" | |
19444 | ||
19445 | # this is CMU ADD LIBPATH TO | |
19446 | if test "$andrew_cv_runpath_switch" = "none" ; then | |
19447 | LIB_SQLITE="-L${with_sqlite} ${LIB_SQLITE}" | |
19448 | else | |
19449 | LIB_SQLITE="-L${with_sqlite} ${LIB_SQLITE} $andrew_cv_runpath_switch${with_sqlite}" | |
19450 | fi | |
19451 | ||
19418 | 19452 | fi |
19419 | 19453 | |
19420 | 19454 | LIB_SQLITE_DIR=$LIB_SQLITE |
19511 | 19545 | $as_echo "$as_me: WARNING: SQLite3 Library not found" >&2;}; true;; |
19512 | 19546 | *) |
19513 | 19547 | if test -d ${with_sqlite3}/lib; then |
19514 | LIB_SQLITE3="-L${with_sqlite3}/lib -R${with_sqlite3}/lib" | |
19548 | ||
19549 | # this is CMU ADD LIBPATH TO | |
19550 | if test "$andrew_cv_runpath_switch" = "none" ; then | |
19551 | LIB_SQLITE3="-L${with_sqlite3}/lib ${LIB_SQLITE3}" | |
19552 | else | |
19553 | LIB_SQLITE3="-L${with_sqlite3}/lib ${LIB_SQLITE3} $andrew_cv_runpath_switch${with_sqlite3}/lib" | |
19554 | fi | |
19555 | ||
19515 | 19556 | else |
19516 | LIB_SQLITE3="-L${with_sqlite3} -R${with_sqlite3}" | |
19557 | ||
19558 | # this is CMU ADD LIBPATH TO | |
19559 | if test "$andrew_cv_runpath_switch" = "none" ; then | |
19560 | LIB_SQLITE3="-L${with_sqlite3} ${LIB_SQLITE3}" | |
19561 | else | |
19562 | LIB_SQLITE3="-L${with_sqlite3} ${LIB_SQLITE3} $andrew_cv_runpath_switch${with_sqlite3}" | |
19563 | fi | |
19564 | ||
19517 | 19565 | fi |
19518 | 19566 | |
19519 | 19567 | LIB_SQLITE3_DIR=$LIB_SQLITE3 |
19990 | 20038 | fi |
19991 | 20039 | |
19992 | 20040 | |
19993 | sasl_cv_snprintf=yes | |
20041 | sasl_cv_snprintf=no | |
19994 | 20042 | SNPRINTFOBJS="" |
20043 | LTSNPRINTFOBJS="" | |
19995 | 20044 | ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" |
19996 | 20045 | if test "x$ac_cv_func_snprintf" = xyes; then : |
19997 | 20046 | |
20578 | 20627 | |
20579 | 20628 | |
20580 | 20629 | LTLIBOBJS=`echo "$LIBOBJS" | sed 's,\.[^.]* ,.lo ,g;s,\.[^.]*$,.lo,'` |
20630 | if test "$LTLIBOBJS" != ""; then | |
20631 | BUILD_LIBOBJ_TRUE= | |
20632 | BUILD_LIBOBJ_FALSE='#' | |
20633 | else | |
20634 | BUILD_LIBOBJ_TRUE='#' | |
20635 | BUILD_LIBOBJ_FALSE= | |
20636 | fi | |
20637 | ||
20581 | 20638 | |
20582 | 20639 | |
20583 | 20640 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 |
21663 | 21720 | as_fn_error $? "conditional \"PWCHECK\" was never defined. |
21664 | 21721 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
21665 | 21722 | fi |
21723 | if test -z "${AUTH_SASLDB_TRUE}" && test -z "${AUTH_SASLDB_FALSE}"; then | |
21724 | as_fn_error $? "conditional \"AUTH_SASLDB\" was never defined. | |
21725 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | |
21726 | fi | |
21666 | 21727 | if test -z "${MACOSX_TRUE}" && test -z "${MACOSX_FALSE}"; then |
21667 | 21728 | as_fn_error $? "conditional \"MACOSX\" was never defined. |
21668 | 21729 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
21669 | 21730 | fi |
21670 | 21731 | if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then |
21671 | 21732 | as_fn_error $? "conditional \"WINDOWS\" was never defined. |
21733 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | |
21734 | fi | |
21735 | if test -z "${BUILD_LIBOBJ_TRUE}" && test -z "${BUILD_LIBOBJ_FALSE}"; then | |
21736 | as_fn_error $? "conditional \"BUILD_LIBOBJ\" was never defined. | |
21672 | 21737 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
21673 | 21738 | fi |
21674 | 21739 | if test -z "${HAVE_SPHINX_BUILD_TRUE}" && test -z "${HAVE_SPHINX_BUILD_FALSE}"; then |
23842 | 23907 | fi |
23843 | 23908 | |
23844 | 23909 | |
23845 | echo | |
23846 | echo "$PACKAGE - $VERSION" | |
23847 | echo | |
23848 | echo "Prefix....................: $prefix" | |
23849 | echo "Plugins...................: $SASL_MECHS" | |
23850 | echo "saslauthd support.........: $with_saslauthd" | |
23851 | echo "Java Support:.............: $enable_java" | |
23852 | if test "$enable_java" = yes; then | |
23853 | echo "Java Base.................: $JAVA_INCLUDES" | |
23854 | fi | |
23855 | echo "OpenSSL...................: $with_openssl" | |
23856 | echo "CRAM-MD5 Authentication...: $cram" | |
23857 | echo "SCRAM Authentication......: $scram" | |
23858 | echo "OTP Authentication........: $otp" | |
23859 | echo "OPIE......................: $with_opie" | |
23860 | echo "SRP Authentication........: $srp" | |
23861 | echo "GSSAPI....................: $gssapi" | |
23862 | echo "SIA Authentication........: $sia" | |
23863 | echo "HTTP Form Authentication..: $httpform" | |
23864 | echo "PAM.......................: $with_pam" | |
23865 | echo "Anonymous.................: $anon" | |
23866 | echo "LOGIN (Unsupported).......: $login" | |
23867 | echo "NTLM (Unsupported)........: $ntlm" | |
23868 | echo "passdss (Experimental)....: $passdss" | |
23869 | echo "LDAP......................: $with_ldap" | |
23870 | echo "MySQL.....................: $with_mysql" | |
23871 | echo "PgSQL.....................: $with_pgsql" | |
23872 | echo "SQLite....................: $with_sqlite" | |
23873 | echo "SQLite 3..................: $with_sqlite3" | |
23874 | echo | |
23875 | echo "Now type 'make' to build $PACKAGE" | |
23876 | echo | |
23910 | { $as_echo "$as_me:${as_lineno-$LINENO}: | |
23911 | ||
23912 | cyrus-sasl - $VERSION | |
23913 | ||
23914 | • Prefix: $prefix | |
23915 | • Plugins: $SASL_MECHS | |
23916 | ||
23917 | Now type 'make' to build $PACKAGE | |
23918 | " >&5 | |
23919 | $as_echo "$as_me: | |
23920 | ||
23921 | cyrus-sasl - $VERSION | |
23922 | ||
23923 | • Prefix: $prefix | |
23924 | • Plugins: $SASL_MECHS | |
23925 | ||
23926 | Now type 'make' to build $PACKAGE | |
23927 | " >&6;} |
66 | 66 | AC_CANONICAL_HOST |
67 | 67 | AC_CANONICAL_TARGET |
68 | 68 | |
69 | AM_INIT_AUTOMAKE([1.11 tar-ustar dist-bzip2 -Wno-portability subdir-objects foreign]) | |
69 | AM_INIT_AUTOMAKE([1.11 tar-ustar dist-bzip2 foreign -Wno-portability subdir-objects]) | |
70 | 70 | |
71 | 71 | DIRS="" |
72 | 72 | |
155 | 155 | if test "$enable_java" = yes; then |
156 | 156 | AC_PATH_PROG(JAVAC, javac, no) |
157 | 157 | AC_PATH_PROGS(JAVAH, javah kaffeh, no) |
158 | AC_CHECK_PROGS(JAVADOC, javadoc, :) | |
158 | AC_CHECK_PROGS(JAVADOC, javadoc, :) | |
159 | 159 | if test "$JAVAC" = "no" -o "$JAVAH" = "no"; then |
160 | 160 | AC_WARN([Disabling Java support]) |
161 | 161 | enable_java=no |
178 | 178 | |
179 | 179 | AC_ARG_WITH(javabase, [ --with-javabase=PATH set path to find jni.h in [/usr/java/include] ], |
180 | 180 | java_base=$withval,) |
181 | ||
181 | ||
182 | 182 | |
183 | 183 | sasl_cv_java_includes='' |
184 | 184 | for dir in `find ${java_base}/include -follow -type d -print | grep -v green_threads`; do |
186 | 186 | done |
187 | 187 | fi |
188 | 188 | |
189 | sasl_cv_java_includes="${sasl_cv_java_includes} -I$java_base/include"]) | |
189 | sasl_cv_java_includes="${sasl_cv_java_includes} -I$javapath/include"]) | |
190 | 190 | |
191 | 191 | JAVA_INCLUDES=$sasl_cv_java_includes |
192 | 192 | AC_SUBST(JAVA_INCLUDES) |
243 | 243 | |
244 | 244 | AC_MSG_CHECKING(for underscore before symbols) |
245 | 245 | AC_CACHE_VAL(sasl_cv_uscore,[ |
246 | echo "void main(){int i=1;} | |
246 | echo "int main(){int i=1; return 0;} | |
247 | 247 | void foo(){int i=6;}" > conftest.c |
248 | 248 | ${CC} -o a.out conftest.c > /dev/null |
249 | 249 | if (${NM} a.out | grep _foo) > /dev/null; then |
263 | 263 | #include <dlfcn.h> |
264 | 264 | #include <stdio.h> |
265 | 265 | void foo() { int i=0;} |
266 | void main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY); | |
266 | int main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY); | |
267 | 267 | if(self) { ptr1=dlsym(self,"foo"); ptr2=dlsym(self,"_foo"); |
268 | 268 | if(ptr1 && !ptr2) exit(0); } exit(1); } |
269 | 269 | ], [sasl_cv_dlsym_adds_uscore=yes], sasl_cv_dlsym_adds_uscore=no |
498 | 498 | fi |
499 | 499 | |
500 | 500 | dnl Test for OPIE |
501 | AC_ARG_WITH(with-opie,[ --with-opie=PATH use OPIE (One Time Passwords in Everything) from PATH], | |
502 | with_opie="${withval}") | |
501 | AC_ARG_WITH(opie, AC_HELP_STRING([--with-opie=PATH], [use OPIE (One Time Passwords in Everything) from PATH])) | |
503 | 502 | |
504 | 503 | case "$with_opie" in |
505 | 504 | ""|yes) |
621 | 620 | SASL_DB_PATH_CHECK() |
622 | 621 | SASL_DB_CHECK() |
623 | 622 | fi |
623 | AM_CONDITIONAL(AUTH_SASLDB, test "$authsasldb" != no) | |
624 | 624 | |
625 | 625 | AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ], |
626 | 626 | httpform=$enableval, |
978 | 978 | notfound) AC_WARN([SQLite Library not found]); true;; |
979 | 979 | *) |
980 | 980 | if test -d ${with_sqlite}/lib; then |
981 | LIB_SQLITE="-L${with_sqlite}/lib -R${with_sqlite}/lib" | |
981 | CMU_ADD_LIBPATH_TO(${with_sqlite}/lib, LIB_SQLITE) | |
982 | 982 | else |
983 | LIB_SQLITE="-L${with_sqlite} -R${with_sqlite}" | |
983 | CMU_ADD_LIBPATH_TO(${with_sqlite}, LIB_SQLITE) | |
984 | 984 | fi |
985 | 985 | |
986 | 986 | LIB_SQLITE_DIR=$LIB_SQLITE |
1030 | 1030 | notfound) AC_WARN([SQLite3 Library not found]); true;; |
1031 | 1031 | *) |
1032 | 1032 | if test -d ${with_sqlite3}/lib; then |
1033 | LIB_SQLITE3="-L${with_sqlite3}/lib -R${with_sqlite3}/lib" | |
1033 | CMU_ADD_LIBPATH_TO(${with_sqlite3}/lib, LIB_SQLITE3) | |
1034 | 1034 | else |
1035 | LIB_SQLITE3="-L${with_sqlite3} -R${with_sqlite3}" | |
1035 | CMU_ADD_LIBPATH_TO(${with_sqlite3}, LIB_SQLITE3) | |
1036 | 1036 | fi |
1037 | 1037 | |
1038 | 1038 | LIB_SQLITE3_DIR=$LIB_SQLITE3 |
1258 | 1258 | AC_SUBST(GETSUBOPT) |
1259 | 1259 | |
1260 | 1260 | dnl Check for snprintf |
1261 | sasl_cv_snprintf=yes | |
1261 | sasl_cv_snprintf=no | |
1262 | 1262 | SNPRINTFOBJS="" |
1263 | LTSNPRINTFOBJS="" | |
1263 | 1264 | AC_CHECK_FUNC(snprintf, [AC_DEFINE(HAVE_SNPRINTF,[],[Does the system have snprintf()?])], [sasl_cv_snprintf=yes]) |
1264 | 1265 | AC_CHECK_FUNC(vsnprintf, [AC_DEFINE(HAVE_VSNPRINTF,[],[Does the system have vsnprintf()?])], [sasl_cv_snprintf=yes]) |
1265 | 1266 | if test $sasl_cv_snprintf = no; then |
1301 | 1302 | AC_SUBST(LTGETNAMEINFOOBJS) |
1302 | 1303 | |
1303 | 1304 | LTLIBOBJS=`echo "$LIB@&t@OBJS" | sed 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'` |
1305 | AM_CONDITIONAL(BUILD_LIBOBJ, test "$LTLIBOBJS" != "") | |
1304 | 1306 | AC_SUBST(LTLIBOBJS) |
1305 | 1307 | |
1306 | 1308 | AC_C_CONST |
1605 | 1607 | java/javax/security/auth/callback/Makefile |
1606 | 1608 | pwcheck/Makefile) |
1607 | 1609 | |
1608 | echo | |
1609 | echo "$PACKAGE - $VERSION" | |
1610 | echo | |
1611 | echo "Prefix....................: $prefix" | |
1612 | echo "Plugins...................: $SASL_MECHS" | |
1613 | echo "saslauthd support.........: $with_saslauthd" | |
1614 | echo "Java Support:.............: $enable_java" | |
1615 | if test "$enable_java" = yes; then | |
1616 | echo "Java Base.................: $JAVA_INCLUDES" | |
1617 | fi | |
1618 | echo "OpenSSL...................: $with_openssl" | |
1619 | echo "CRAM-MD5 Authentication...: $cram" | |
1620 | echo "SCRAM Authentication......: $scram" | |
1621 | echo "OTP Authentication........: $otp" | |
1622 | echo "OPIE......................: $with_opie" | |
1623 | echo "SRP Authentication........: $srp" | |
1624 | echo "GSSAPI....................: $gssapi" | |
1625 | echo "SIA Authentication........: $sia" | |
1626 | echo "HTTP Form Authentication..: $httpform" | |
1627 | echo "PAM.......................: $with_pam" | |
1628 | echo "Anonymous.................: $anon" | |
1629 | echo "LOGIN (Unsupported).......: $login" | |
1630 | echo "NTLM (Unsupported)........: $ntlm" | |
1631 | echo "passdss (Experimental)....: $passdss" | |
1632 | echo "LDAP......................: $with_ldap" | |
1633 | echo "MySQL.....................: $with_mysql" | |
1634 | echo "PgSQL.....................: $with_pgsql" | |
1635 | echo "SQLite....................: $with_sqlite" | |
1636 | echo "SQLite 3..................: $with_sqlite3" | |
1637 | echo | |
1638 | echo "Now type 'make' to build $PACKAGE" | |
1639 | echo | |
1610 | AC_MSG_NOTICE([ | |
1611 | ||
1612 | cyrus-sasl - $VERSION | |
1613 | ||
1614 | • Prefix: $prefix | |
1615 | • Plugins: $SASL_MECHS | |
1616 | ||
1617 | Now type 'make' to build $PACKAGE | |
1618 | ]) |
16 | 16 | int sasl_server_start(sasl_conn_t * conn, |
17 | 17 | const char * mech, |
18 | 18 | const char * clientin, |
19 | unsigned * clientinlen, | |
19 | unsigned clientinlen, | |
20 | 20 | const char ** serverout, |
21 | 21 | unsigned * serveroutlen); |
22 | 22 |
3 | 3 | * |
4 | 4 | * Sphinx stylesheet -- basic theme. |
5 | 5 | * |
6 | * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. | |
6 | * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. | |
7 | 7 | * :license: BSD, see LICENSE for details. |
8 | 8 | * |
9 | 9 | */ |
444 | 444 | margin-left: 30px; |
445 | 445 | } |
446 | 446 | |
447 | dt:target, .highlighted { | |
447 | dt:target, span.highlighted { | |
448 | 448 | background-color: #fbe54e; |
449 | } | |
450 | ||
451 | rect.highlighted { | |
452 | fill: #fbe54e; | |
449 | 453 | } |
450 | 454 | |
451 | 455 | dl.glossary dt { |
3 | 3 | * |
4 | 4 | * Sphinx JavaScript utilities for all documentation. |
5 | 5 | * |
6 | * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. | |
6 | * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. | |
7 | 7 | * :license: BSD, see LICENSE for details. |
8 | 8 | * |
9 | 9 | */ |
44 | 44 | * it will always return arrays of strings for the value parts. |
45 | 45 | */ |
46 | 46 | jQuery.getQueryParameters = function(s) { |
47 | if (typeof s == 'undefined') | |
47 | if (typeof s === 'undefined') | |
48 | 48 | s = document.location.search; |
49 | 49 | var parts = s.substr(s.indexOf('?') + 1).split('&'); |
50 | 50 | var result = {}; |
65 | 65 | * span elements with the given class name. |
66 | 66 | */ |
67 | 67 | jQuery.fn.highlightText = function(text, className) { |
68 | function highlight(node) { | |
69 | if (node.nodeType == 3) { | |
68 | function highlight(node, addItems) { | |
69 | if (node.nodeType === 3) { | |
70 | 70 | var val = node.nodeValue; |
71 | 71 | var pos = val.toLowerCase().indexOf(text); |
72 | 72 | if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { |
73 | var span = document.createElement("span"); | |
74 | span.className = className; | |
73 | var span; | |
74 | var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); | |
75 | if (isInSVG) { | |
76 | span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | |
77 | } else { | |
78 | span = document.createElement("span"); | |
79 | span.className = className; | |
80 | } | |
75 | 81 | span.appendChild(document.createTextNode(val.substr(pos, text.length))); |
76 | 82 | node.parentNode.insertBefore(span, node.parentNode.insertBefore( |
77 | 83 | document.createTextNode(val.substr(pos + text.length)), |
78 | 84 | node.nextSibling)); |
79 | 85 | node.nodeValue = val.substr(0, pos); |
86 | if (isInSVG) { | |
87 | var bbox = span.getBBox(); | |
88 | var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); | |
89 | rect.x.baseVal.value = bbox.x; | |
90 | rect.y.baseVal.value = bbox.y; | |
91 | rect.width.baseVal.value = bbox.width; | |
92 | rect.height.baseVal.value = bbox.height; | |
93 | rect.setAttribute('class', className); | |
94 | var parentOfText = node.parentNode.parentNode; | |
95 | addItems.push({ | |
96 | "parent": node.parentNode, | |
97 | "target": rect}); | |
98 | } | |
80 | 99 | } |
81 | 100 | } |
82 | 101 | else if (!jQuery(node).is("button, select, textarea")) { |
83 | 102 | jQuery.each(node.childNodes, function() { |
84 | highlight(this); | |
103 | highlight(this, addItems); | |
85 | 104 | }); |
86 | 105 | } |
87 | 106 | } |
88 | return this.each(function() { | |
89 | highlight(this); | |
107 | var addItems = []; | |
108 | var result = this.each(function() { | |
109 | highlight(this, addItems); | |
90 | 110 | }); |
111 | for (var i = 0; i < addItems.length; ++i) { | |
112 | jQuery(addItems[i].parent).before(addItems[i].target); | |
113 | } | |
114 | return result; | |
91 | 115 | }; |
92 | 116 | |
93 | 117 | /* |
130 | 154 | * i18n support |
131 | 155 | */ |
132 | 156 | TRANSLATIONS : {}, |
133 | PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, | |
157 | PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, | |
134 | 158 | LOCALE : 'unknown', |
135 | 159 | |
136 | 160 | // gettext and ngettext don't access this so that the functions |
137 | 161 | // can safely bound to a different name (_ = Documentation.gettext) |
138 | 162 | gettext : function(string) { |
139 | 163 | var translated = Documentation.TRANSLATIONS[string]; |
140 | if (typeof translated == 'undefined') | |
164 | if (typeof translated === 'undefined') | |
141 | 165 | return string; |
142 | return (typeof translated == 'string') ? translated : translated[0]; | |
166 | return (typeof translated === 'string') ? translated : translated[0]; | |
143 | 167 | }, |
144 | 168 | |
145 | 169 | ngettext : function(singular, plural, n) { |
146 | 170 | var translated = Documentation.TRANSLATIONS[singular]; |
147 | if (typeof translated == 'undefined') | |
171 | if (typeof translated === 'undefined') | |
148 | 172 | return (n == 1) ? singular : plural; |
149 | 173 | return translated[Documentation.PLURALEXPR(n)]; |
150 | 174 | }, |
179 | 203 | * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 |
180 | 204 | */ |
181 | 205 | fixFirefoxAnchorBug : function() { |
182 | if (document.location.hash) | |
206 | if (document.location.hash && $.browser.mozilla) | |
183 | 207 | window.setTimeout(function() { |
184 | 208 | document.location.href += ''; |
185 | 209 | }, 10); |
215 | 239 | var src = $(this).attr('src'); |
216 | 240 | var idnum = $(this).attr('id').substr(7); |
217 | 241 | $('tr.cg-' + idnum).toggle(); |
218 | if (src.substr(-9) == 'minus.png') | |
242 | if (src.substr(-9) === 'minus.png') | |
219 | 243 | $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); |
220 | 244 | else |
221 | 245 | $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); |
247 | 271 | var path = document.location.pathname; |
248 | 272 | var parts = path.split(/\//); |
249 | 273 | $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { |
250 | if (this == '..') | |
274 | if (this === '..') | |
251 | 275 | parts.pop(); |
252 | 276 | }); |
253 | 277 | var url = parts.join('/'); |
3 | 3 | * |
4 | 4 | * Sphinx JavaScript utilities for the full-text search. |
5 | 5 | * |
6 | * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. | |
6 | * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. | |
7 | 7 | * :license: BSD, see LICENSE for details. |
8 | 8 | * |
9 | 9 | */ |
539 | 539 | }); |
540 | 540 | } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { |
541 | 541 | var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX; |
542 | if (suffix === undefined) { | |
543 | suffix = '.txt'; | |
544 | } | |
542 | 545 | $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix), |
543 | 546 | dataType: "text", |
544 | 547 | complete: function(jqxhr, textstatus) { |
3 | 3 | * |
4 | 4 | * sphinx.websupport utilities for all documentation. |
5 | 5 | * |
6 | * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. | |
6 | * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. | |
7 | 7 | * :license: BSD, see LICENSE for details. |
8 | 8 | * |
9 | 9 | */ |
594 | 594 | © Copyright 1993-2016, The Cyrus Team. |
595 | 595 | </p> |
596 | 596 | </div> |
597 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
597 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
598 | 598 | |
599 | 599 | </footer> |
600 | 600 |
623 | 623 | © Copyright 1993-2016, The Cyrus Team. |
624 | 624 | </p> |
625 | 625 | </div> |
626 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
626 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
627 | 627 | |
628 | 628 | </footer> |
629 | 629 |
1184 | 1184 | © Copyright 1993-2016, The Cyrus Team. |
1185 | 1185 | </p> |
1186 | 1186 | </div> |
1187 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
1187 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
1188 | 1188 | |
1189 | 1189 | </footer> |
1190 | 1190 |
536 | 536 | © Copyright 1993-2016, The Cyrus Team. |
537 | 537 | </p> |
538 | 538 | </div> |
539 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
539 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
540 | 540 | |
541 | 541 | </footer> |
542 | 542 |
492 | 492 | <h2>What is Cyrus SASL?<a class="headerlink" href="#what-is-cyrus-sasl" title="Permalink to this headline">¶</a></h2> |
493 | 493 | <p>Simple Authentication and Security Layer (<a class="reference external" href="https://en.wikipedia.org/wiki/Simple_Authentication_and_Security_Layer">SASL</a>) is a specification that describes how authentication mechanisms can be plugged into an application protocol on the wire. Cyrus SASL is an implementation of SASL that makes it easy for application developers to integrate authentication mechanisms into their application in a generic way.</p> |
494 | 494 | <p>The latest stable version of Cyrus SASL is 2.1.26.</p> |
495 | <p><a class="reference external" href="https://www.cyrusimap.org/index.html#imap-index" title="(in Cyrus IMAP v3.0.4)"><span class="xref std std-ref">Cyrus IMAP</span></a> uses Cyrus SASL to provide authentication support to the mail server, however it is just one project using Cyrus SASL.</p> | |
495 | <p><a class="reference external" href="https://www.cyrusimap.org/index.html#imap-index" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">Cyrus IMAP</span></a> uses Cyrus SASL to provide authentication support to the mail server, however it is just one project using Cyrus SASL.</p> | |
496 | 496 | <div class="section" id="features"> |
497 | 497 | <h3>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h3> |
498 | 498 | <p>Cyrus SASL provides a number of authentication plugins out of the box.</p> |
697 | 697 | © Copyright 1993-2016, The Cyrus Team. |
698 | 698 | </p> |
699 | 699 | </div> |
700 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
700 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
701 | 701 | |
702 | 702 | </footer> |
703 | 703 |
654 | 654 | © Copyright 1993-2016, The Cyrus Team. |
655 | 655 | </p> |
656 | 656 | </div> |
657 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
657 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
658 | 658 | |
659 | 659 | </footer> |
660 | 660 |
518 | 518 | © Copyright 1993-2016, The Cyrus Team. |
519 | 519 | </p> |
520 | 520 | </div> |
521 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
521 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
522 | 522 | |
523 | 523 | </footer> |
524 | 524 |
540 | 540 | © Copyright 1993-2016, The Cyrus Team. |
541 | 541 | </p> |
542 | 542 | </div> |
543 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
543 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
544 | 544 | |
545 | 545 | </footer> |
546 | 546 |
604 | 604 | © Copyright 1993-2016, The Cyrus Team. |
605 | 605 | </p> |
606 | 606 | </div> |
607 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
607 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
608 | 608 | |
609 | 609 | </footer> |
610 | 610 |
889 | 889 | © Copyright 1993-2016, The Cyrus Team. |
890 | 890 | </p> |
891 | 891 | </div> |
892 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
892 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
893 | 893 | |
894 | 894 | </footer> |
895 | 895 |
532 | 532 | © Copyright 1993-2016, The Cyrus Team. |
533 | 533 | </p> |
534 | 534 | </div> |
535 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
535 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
536 | 536 | |
537 | 537 | </footer> |
538 | 538 |
675 | 675 | © Copyright 1993-2016, The Cyrus Team. |
676 | 676 | </p> |
677 | 677 | </div> |
678 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
678 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
679 | 679 | |
680 | 680 | </footer> |
681 | 681 |
546 | 546 | © Copyright 1993-2016, The Cyrus Team. |
547 | 547 | </p> |
548 | 548 | </div> |
549 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
549 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
550 | 550 | |
551 | 551 | </footer> |
552 | 552 |
501 | 501 | <h3>Fetch the source<a class="headerlink" href="#fetch-the-source" title="Permalink to this headline">¶</a></h3> |
502 | 502 | <div class="section" id="fetch-from-git"> |
503 | 503 | <h4>Fetch from git<a class="headerlink" href="#fetch-from-git" title="Permalink to this headline">¶</a></h4> |
504 | <p>If you’re not familiar with Git, there are detailed instructions in the <a class="reference external" href="https://www.cyrusimap.org/imap/developer/github-guide.html#github-guide" title="(in Cyrus IMAP v3.0.4)"><span class="xref std std-ref">Cyrus IMAPd GitHub guide</span></a>.</p> | |
504 | <p>If you’re not familiar with Git, there are detailed instructions in the <a class="reference external" href="https://www.cyrusimap.org/imap/developer/github-guide.html#github-guide" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">Cyrus IMAPd GitHub guide</span></a>.</p> | |
505 | 505 | <p>Cyrus SASL is at <a class="reference external" href="https://github.com/cyrusimap/cyrus-sasl">https://github.com/cyrusimap/cyrus-sasl</a></p> |
506 | 506 | <p>To contribute, we recommend <a class="reference external" href="https://help.github.com/articles/fork-a-repo/">forking the code</a> then issuing a pull request when you’re ready.</p> |
507 | 507 | <p>Once forked on GitHub, you can obtain a copy by:</p> |
578 | 578 | © Copyright 1993-2016, The Cyrus Team. |
579 | 579 | </p> |
580 | 580 | </div> |
581 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
581 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
582 | 582 | |
583 | 583 | </footer> |
584 | 584 |
526 | 526 | Cyrus SASLv2). Note that this page is a brief overview |
527 | 527 | and that the authoritative documentation are the header files |
528 | 528 | included in the SASL distribution. If you have any questions, please |
529 | feel free to contact the <a class="reference external" href="https://www.cyrusimap.org/contribute.html#contribute" title="(in Cyrus IMAP v3.0.4)"><span class="xref std std-ref">Cyrus development team</span></a>.</p> | |
529 | feel free to contact the <a class="reference external" href="https://www.cyrusimap.org/contribute.html#contribute" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">Cyrus development team</span></a>.</p> | |
530 | 530 | <p>Please note that this guide is only intended for developers looking |
531 | 531 | to write mechanisms for the SASLv2 API, and that application programmers |
532 | 532 | should be reading the <a class="reference internal" href="programming.html#programming"><span class="std std-ref">Application Programming Guide</span></a> instead.</p> |
839 | 839 | © Copyright 1993-2016, The Cyrus Team. |
840 | 840 | </p> |
841 | 841 | </div> |
842 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
842 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
843 | 843 | |
844 | 844 | </footer> |
845 | 845 |
1217 | 1217 | </div> |
1218 | 1218 | <div class="section" id="imtest-from-cyrus-2-1-0-or-later"> |
1219 | 1219 | <h3><a class="toc-backref" href="#id32"><cite>imtest</cite>, from Cyrus 2.1.0 or later</a><a class="headerlink" href="#imtest-from-cyrus-2-1-0-or-later" title="Permalink to this headline">¶</a></h3> |
1220 | <p><a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/imtest.html#imap-reference-manpages-usercommands-imtest" title="(in Cyrus IMAP v3.0.4)"><span class="xref std std-ref">imtest(3)</span></a> | |
1220 | <p><a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/imtest.html#imap-reference-manpages-usercommands-imtest" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">imtest(3)</span></a> | |
1221 | 1221 | is an application included with Cyrus IMAPd. It is |
1222 | 1222 | a very simple IMAP client, but should be of interest to those |
1223 | 1223 | writing applications. It also uses the prot layer, but it is easy |
1224 | 1224 | to incorporate similar support without using the prot layer. |
1225 | 1225 | Likewise, there are other sample client applications that you can |
1226 | 1226 | look at including |
1227 | <a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/smtptest.html#imap-reference-manpages-usercommands-smtptest" title="(in Cyrus IMAP v3.0.4)"><span class="xref std std-ref">smtptest(3)</span></a> | |
1228 | and <a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/pop3test.html#imap-reference-manpages-usercommands-pop3test" title="(in Cyrus IMAP v3.0.4)"><span class="xref std std-ref">pop3test(3)</span></a> | |
1227 | <a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/smtptest.html#imap-reference-manpages-usercommands-smtptest" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">smtptest(3)</span></a> | |
1228 | and <a class="reference external" href="https://www.cyrusimap.org/imap/reference/manpages/usercommands/pop3test.html#imap-reference-manpages-usercommands-pop3test" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">pop3test(3)</span></a> | |
1229 | 1229 | in the Cyrus IMAPd distribution, respectively.</p> |
1230 | 1230 | </div> |
1231 | 1231 | </div> |
1274 | 1274 | © Copyright 1993-2016, The Cyrus Team. |
1275 | 1275 | </p> |
1276 | 1276 | </div> |
1277 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
1277 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
1278 | 1278 | |
1279 | 1279 | </footer> |
1280 | 1280 |
594 | 594 | © Copyright 1993-2016, The Cyrus Team. |
595 | 595 | </p> |
596 | 596 | </div> |
597 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
597 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
598 | 598 | |
599 | 599 | </footer> |
600 | 600 |
501 | 501 | <li class="toctree-l1"><a class="reference internal" href="faqs/upgrade-saslv2.html">Why am I having a problem running dbconverter-2 to upgrade from SASLv1 to SASLv2?</a></li> |
502 | 502 | </ul> |
503 | 503 | </div> |
504 | <p>Looking for the <a class="reference external" href="https://www.cyrusimap.org/imap/reference/faq.html#imap-faq" title="(in Cyrus IMAP v3.0.4)"><span class="xref std std-ref">Cyrus IMAP FAQ</span></a>?</p> | |
504 | <p>Looking for the <a class="reference external" href="https://www.cyrusimap.org/imap/reference/faq.html#imap-faq" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">Cyrus IMAP FAQ</span></a>?</p> | |
505 | 505 | </div> |
506 | 506 | |
507 | 507 | |
525 | 525 | © Copyright 1993-2016, The Cyrus Team. |
526 | 526 | </p> |
527 | 527 | </div> |
528 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
528 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
529 | 529 | |
530 | 530 | </footer> |
531 | 531 |
545 | 545 | © Copyright 1993-2016, The Cyrus Team. |
546 | 546 | </p> |
547 | 547 | </div> |
548 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
548 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
549 | 549 | |
550 | 550 | </footer> |
551 | 551 |
524 | 524 | © Copyright 1993-2016, The Cyrus Team. |
525 | 525 | </p> |
526 | 526 | </div> |
527 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
527 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
528 | 528 | |
529 | 529 | </footer> |
530 | 530 |
584 | 584 | © Copyright 1993-2016, The Cyrus Team. |
585 | 585 | </p> |
586 | 586 | </div> |
587 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
587 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
588 | 588 | |
589 | 589 | </footer> |
590 | 590 |
530 | 530 | © Copyright 1993-2016, The Cyrus Team. |
531 | 531 | </p> |
532 | 532 | </div> |
533 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
533 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
534 | 534 | |
535 | 535 | </footer> |
536 | 536 |
536 | 536 | © Copyright 1993-2016, The Cyrus Team. |
537 | 537 | </p> |
538 | 538 | </div> |
539 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
539 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
540 | 540 | |
541 | 541 | </footer> |
542 | 542 |
532 | 532 | © Copyright 1993-2016, The Cyrus Team. |
533 | 533 | </p> |
534 | 534 | </div> |
535 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
535 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
536 | 536 | |
537 | 537 | </footer> |
538 | 538 |
686 | 686 | © Copyright 1993-2016, The Cyrus Team. |
687 | 687 | </p> |
688 | 688 | </div> |
689 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
689 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
690 | 690 | |
691 | 691 | </footer> |
692 | 692 |
699 | 699 | © Copyright 1993-2016, The Cyrus Team. |
700 | 700 | </p> |
701 | 701 | </div> |
702 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
702 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
703 | 703 | |
704 | 704 | </footer> |
705 | 705 |
718 | 718 | © Copyright 1993-2016, The Cyrus Team. |
719 | 719 | </p> |
720 | 720 | </div> |
721 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
721 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
722 | 722 | |
723 | 723 | </footer> |
724 | 724 |
581 | 581 | © Copyright 1993-2016, The Cyrus Team. |
582 | 582 | </p> |
583 | 583 | </div> |
584 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
584 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
585 | 585 | |
586 | 586 | </footer> |
587 | 587 |
954 | 954 | © Copyright 1993-2016, The Cyrus Team. |
955 | 955 | </p> |
956 | 956 | </div> |
957 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
957 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
958 | 958 | |
959 | 959 | </footer> |
960 | 960 |
564 | 564 | © Copyright 1993-2016, The Cyrus Team. |
565 | 565 | </p> |
566 | 566 | </div> |
567 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
567 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
568 | 568 | |
569 | 569 | </footer> |
570 | 570 |
632 | 632 | © Copyright 1993-2016, The Cyrus Team. |
633 | 633 | </p> |
634 | 634 | </div> |
635 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
635 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
636 | 636 | |
637 | 637 | </footer> |
638 | 638 |
584 | 584 | © Copyright 1993-2016, The Cyrus Team. |
585 | 585 | </p> |
586 | 586 | </div> |
587 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
587 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
588 | 588 | |
589 | 589 | </footer> |
590 | 590 |
544 | 544 | © Copyright 1993-2016, The Cyrus Team. |
545 | 545 | </p> |
546 | 546 | </div> |
547 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
547 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
548 | 548 | |
549 | 549 | </footer> |
550 | 550 |
548 | 548 | © Copyright 1993-2016, The Cyrus Team. |
549 | 549 | </p> |
550 | 550 | </div> |
551 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
551 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
552 | 552 | |
553 | 553 | </footer> |
554 | 554 |
855 | 855 | © Copyright 1993-2016, The Cyrus Team. |
856 | 856 | </p> |
857 | 857 | </div> |
858 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
858 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
859 | 859 | |
860 | 860 | </footer> |
861 | 861 |
570 | 570 | © Copyright 1993-2016, The Cyrus Team. |
571 | 571 | </p> |
572 | 572 | </div> |
573 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
573 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
574 | 574 | |
575 | 575 | </footer> |
576 | 576 |
562 | 562 | © Copyright 1993-2016, The Cyrus Team. |
563 | 563 | </p> |
564 | 564 | </div> |
565 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
565 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
566 | 566 | |
567 | 567 | </footer> |
568 | 568 |
566 | 566 | © Copyright 1993-2016, The Cyrus Team. |
567 | 567 | </p> |
568 | 568 | </div> |
569 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
569 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
570 | 570 | |
571 | 571 | </footer> |
572 | 572 |
602 | 602 | © Copyright 1993-2016, The Cyrus Team. |
603 | 603 | </p> |
604 | 604 | </div> |
605 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
605 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
606 | 606 | |
607 | 607 | </footer> |
608 | 608 |
584 | 584 | © Copyright 1993-2016, The Cyrus Team. |
585 | 585 | </p> |
586 | 586 | </div> |
587 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
587 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
588 | 588 | |
589 | 589 | </footer> |
590 | 590 |
571 | 571 | © Copyright 1993-2016, The Cyrus Team. |
572 | 572 | </p> |
573 | 573 | </div> |
574 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
574 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
575 | 575 | |
576 | 576 | </footer> |
577 | 577 |
575 | 575 | © Copyright 1993-2016, The Cyrus Team. |
576 | 576 | </p> |
577 | 577 | </div> |
578 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
578 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
579 | 579 | |
580 | 580 | </footer> |
581 | 581 |
567 | 567 | © Copyright 1993-2016, The Cyrus Team. |
568 | 568 | </p> |
569 | 569 | </div> |
570 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
570 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
571 | 571 | |
572 | 572 | </footer> |
573 | 573 |
566 | 566 | © Copyright 1993-2016, The Cyrus Team. |
567 | 567 | </p> |
568 | 568 | </div> |
569 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
569 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
570 | 570 | |
571 | 571 | </footer> |
572 | 572 |
571 | 571 | © Copyright 1993-2016, The Cyrus Team. |
572 | 572 | </p> |
573 | 573 | </div> |
574 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
574 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
575 | 575 | |
576 | 576 | </footer> |
577 | 577 |
545 | 545 | © Copyright 1993-2016, The Cyrus Team. |
546 | 546 | </p> |
547 | 547 | </div> |
548 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
548 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
549 | 549 | |
550 | 550 | </footer> |
551 | 551 |
551 | 551 | © Copyright 1993-2016, The Cyrus Team. |
552 | 552 | </p> |
553 | 553 | </div> |
554 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
554 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
555 | 555 | |
556 | 556 | </footer> |
557 | 557 |
611 | 611 | © Copyright 1993-2016, The Cyrus Team. |
612 | 612 | </p> |
613 | 613 | </div> |
614 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
614 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
615 | 615 | |
616 | 616 | </footer> |
617 | 617 |
578 | 578 | © Copyright 1993-2016, The Cyrus Team. |
579 | 579 | </p> |
580 | 580 | </div> |
581 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
581 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
582 | 582 | |
583 | 583 | </footer> |
584 | 584 |
601 | 601 | © Copyright 1993-2016, The Cyrus Team. |
602 | 602 | </p> |
603 | 603 | </div> |
604 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
604 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
605 | 605 | |
606 | 606 | </footer> |
607 | 607 |
597 | 597 | © Copyright 1993-2016, The Cyrus Team. |
598 | 598 | </p> |
599 | 599 | </div> |
600 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
600 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
601 | 601 | |
602 | 602 | </footer> |
603 | 603 |
578 | 578 | © Copyright 1993-2016, The Cyrus Team. |
579 | 579 | </p> |
580 | 580 | </div> |
581 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
581 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
582 | 582 | |
583 | 583 | </footer> |
584 | 584 |
572 | 572 | © Copyright 1993-2016, The Cyrus Team. |
573 | 573 | </p> |
574 | 574 | </div> |
575 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
575 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
576 | 576 | |
577 | 577 | </footer> |
578 | 578 |
566 | 566 | © Copyright 1993-2016, The Cyrus Team. |
567 | 567 | </p> |
568 | 568 | </div> |
569 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
569 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
570 | 570 | |
571 | 571 | </footer> |
572 | 572 |
543 | 543 | © Copyright 1993-2016, The Cyrus Team. |
544 | 544 | </p> |
545 | 545 | </div> |
546 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
546 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
547 | 547 | |
548 | 548 | </footer> |
549 | 549 |
609 | 609 | © Copyright 1993-2016, The Cyrus Team. |
610 | 610 | </p> |
611 | 611 | </div> |
612 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
612 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
613 | 613 | |
614 | 614 | </footer> |
615 | 615 |
575 | 575 | © Copyright 1993-2016, The Cyrus Team. |
576 | 576 | </p> |
577 | 577 | </div> |
578 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
578 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
579 | 579 | |
580 | 580 | </footer> |
581 | 581 |
609 | 609 | © Copyright 1993-2016, The Cyrus Team. |
610 | 610 | </p> |
611 | 611 | </div> |
612 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
612 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
613 | 613 | |
614 | 614 | </footer> |
615 | 615 |
551 | 551 | © Copyright 1993-2016, The Cyrus Team. |
552 | 552 | </p> |
553 | 553 | </div> |
554 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
554 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
555 | 555 | |
556 | 556 | </footer> |
557 | 557 |
555 | 555 | © Copyright 1993-2016, The Cyrus Team. |
556 | 556 | </p> |
557 | 557 | </div> |
558 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
558 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
559 | 559 | |
560 | 560 | </footer> |
561 | 561 |
724 | 724 | © Copyright 1993-2016, The Cyrus Team. |
725 | 725 | </p> |
726 | 726 | </div> |
727 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
727 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
728 | 728 | |
729 | 729 | </footer> |
730 | 730 |
570 | 570 | © Copyright 1993-2016, The Cyrus Team. |
571 | 571 | </p> |
572 | 572 | </div> |
573 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
573 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
574 | 574 | |
575 | 575 | </footer> |
576 | 576 |
576 | 576 | © Copyright 1993-2016, The Cyrus Team. |
577 | 577 | </p> |
578 | 578 | </div> |
579 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
579 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
580 | 580 | |
581 | 581 | </footer> |
582 | 582 |
547 | 547 | © Copyright 1993-2016, The Cyrus Team. |
548 | 548 | </p> |
549 | 549 | </div> |
550 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
550 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
551 | 551 | |
552 | 552 | </footer> |
553 | 553 |
581 | 581 | © Copyright 1993-2016, The Cyrus Team. |
582 | 582 | </p> |
583 | 583 | </div> |
584 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
584 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
585 | 585 | |
586 | 586 | </footer> |
587 | 587 |
548 | 548 | © Copyright 1993-2016, The Cyrus Team. |
549 | 549 | </p> |
550 | 550 | </div> |
551 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
551 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
552 | 552 | |
553 | 553 | </footer> |
554 | 554 |
590 | 590 | © Copyright 1993-2016, The Cyrus Team. |
591 | 591 | </p> |
592 | 592 | </div> |
593 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
593 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
594 | 594 | |
595 | 595 | </footer> |
596 | 596 |
573 | 573 | © Copyright 1993-2016, The Cyrus Team. |
574 | 574 | </p> |
575 | 575 | </div> |
576 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
576 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
577 | 577 | |
578 | 578 | </footer> |
579 | 579 |
568 | 568 | © Copyright 1993-2016, The Cyrus Team. |
569 | 569 | </p> |
570 | 570 | </div> |
571 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
571 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
572 | 572 | |
573 | 573 | </footer> |
574 | 574 |
576 | 576 | © Copyright 1993-2016, The Cyrus Team. |
577 | 577 | </p> |
578 | 578 | </div> |
579 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
579 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
580 | 580 | |
581 | 581 | </footer> |
582 | 582 |
545 | 545 | © Copyright 1993-2016, The Cyrus Team. |
546 | 546 | </p> |
547 | 547 | </div> |
548 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
548 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
549 | 549 | |
550 | 550 | </footer> |
551 | 551 |
555 | 555 | © Copyright 1993-2016, The Cyrus Team. |
556 | 556 | </p> |
557 | 557 | </div> |
558 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
558 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
559 | 559 | |
560 | 560 | </footer> |
561 | 561 |
599 | 599 | © Copyright 1993-2016, The Cyrus Team. |
600 | 600 | </p> |
601 | 601 | </div> |
602 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
602 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
603 | 603 | |
604 | 604 | </footer> |
605 | 605 |
552 | 552 | © Copyright 1993-2016, The Cyrus Team. |
553 | 553 | </p> |
554 | 554 | </div> |
555 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
555 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
556 | 556 | |
557 | 557 | </footer> |
558 | 558 |
571 | 571 | © Copyright 1993-2016, The Cyrus Team. |
572 | 572 | </p> |
573 | 573 | </div> |
574 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
574 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
575 | 575 | |
576 | 576 | </footer> |
577 | 577 |
546 | 546 | © Copyright 1993-2016, The Cyrus Team. |
547 | 547 | </p> |
548 | 548 | </div> |
549 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
549 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
550 | 550 | |
551 | 551 | </footer> |
552 | 552 |
569 | 569 | © Copyright 1993-2016, The Cyrus Team. |
570 | 570 | </p> |
571 | 571 | </div> |
572 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
572 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
573 | 573 | |
574 | 574 | </footer> |
575 | 575 |
613 | 613 | © Copyright 1993-2016, The Cyrus Team. |
614 | 614 | </p> |
615 | 615 | </div> |
616 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
616 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
617 | 617 | |
618 | 618 | </footer> |
619 | 619 |
578 | 578 | © Copyright 1993-2016, The Cyrus Team. |
579 | 579 | </p> |
580 | 580 | </div> |
581 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
581 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
582 | 582 | |
583 | 583 | </footer> |
584 | 584 |
500 | 500 | <span class="kt">int</span> <span class="nf">sasl_server_start</span><span class="p">(</span><span class="n">sasl_conn_t</span> <span class="o">*</span> <span class="n">conn</span><span class="p">,</span> |
501 | 501 | <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">mech</span><span class="p">,</span> |
502 | 502 | <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">clientin</span><span class="p">,</span> |
503 | <span class="kt">unsigned</span> <span class="o">*</span> <span class="n">clientinlen</span><span class="p">,</span> | |
503 | <span class="kt">unsigned</span> <span class="n">clientinlen</span><span class="p">,</span> | |
504 | 504 | <span class="k">const</span> <span class="kt">char</span> <span class="o">**</span> <span class="n">serverout</span><span class="p">,</span> |
505 | 505 | <span class="kt">unsigned</span> <span class="o">*</span> <span class="n">serveroutlen</span><span class="p">);</span> |
506 | 506 | </pre></div> |
590 | 590 | © Copyright 1993-2016, The Cyrus Team. |
591 | 591 | </p> |
592 | 592 | </div> |
593 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
593 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
594 | 594 | |
595 | 595 | </footer> |
596 | 596 |
579 | 579 | © Copyright 1993-2016, The Cyrus Team. |
580 | 580 | </p> |
581 | 581 | </div> |
582 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
582 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
583 | 583 | |
584 | 584 | </footer> |
585 | 585 |
577 | 577 | © Copyright 1993-2016, The Cyrus Team. |
578 | 578 | </p> |
579 | 579 | </div> |
580 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
580 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
581 | 581 | |
582 | 582 | </footer> |
583 | 583 |
582 | 582 | © Copyright 1993-2016, The Cyrus Team. |
583 | 583 | </p> |
584 | 584 | </div> |
585 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
585 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
586 | 586 | |
587 | 587 | </footer> |
588 | 588 |
566 | 566 | © Copyright 1993-2016, The Cyrus Team. |
567 | 567 | </p> |
568 | 568 | </div> |
569 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
569 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
570 | 570 | |
571 | 571 | </footer> |
572 | 572 |
561 | 561 | © Copyright 1993-2016, The Cyrus Team. |
562 | 562 | </p> |
563 | 563 | </div> |
564 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
564 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
565 | 565 | |
566 | 566 | </footer> |
567 | 567 |
577 | 577 | © Copyright 1993-2016, The Cyrus Team. |
578 | 578 | </p> |
579 | 579 | </div> |
580 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
580 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
581 | 581 | |
582 | 582 | </footer> |
583 | 583 |
579 | 579 | © Copyright 1993-2016, The Cyrus Team. |
580 | 580 | </p> |
581 | 581 | </div> |
582 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
582 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
583 | 583 | |
584 | 584 | </footer> |
585 | 585 |
583 | 583 | © Copyright 1993-2016, The Cyrus Team. |
584 | 584 | </p> |
585 | 585 | </div> |
586 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
586 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
587 | 587 | |
588 | 588 | </footer> |
589 | 589 |
566 | 566 | © Copyright 1993-2016, The Cyrus Team. |
567 | 567 | </p> |
568 | 568 | </div> |
569 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
569 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
570 | 570 | |
571 | 571 | </footer> |
572 | 572 |
557 | 557 | © Copyright 1993-2016, The Cyrus Team. |
558 | 558 | </p> |
559 | 559 | </div> |
560 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
560 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
561 | 561 | |
562 | 562 | </footer> |
563 | 563 |
563 | 563 | © Copyright 1993-2016, The Cyrus Team. |
564 | 564 | </p> |
565 | 565 | </div> |
566 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
566 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
567 | 567 | |
568 | 568 | </footer> |
569 | 569 |
575 | 575 | © Copyright 1993-2016, The Cyrus Team. |
576 | 576 | </p> |
577 | 577 | </div> |
578 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
578 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
579 | 579 | |
580 | 580 | </footer> |
581 | 581 |
531 | 531 | © Copyright 1993-2016, The Cyrus Team. |
532 | 532 | </p> |
533 | 533 | </div> |
534 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
534 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
535 | 535 | |
536 | 536 | </footer> |
537 | 537 |
745 | 745 | © Copyright 1993-2016, The Cyrus Team. |
746 | 746 | </p> |
747 | 747 | </div> |
748 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
748 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
749 | 749 | |
750 | 750 | </footer> |
751 | 751 |
653 | 653 | © Copyright 1993-2016, The Cyrus Team. |
654 | 654 | </p> |
655 | 655 | </div> |
656 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
656 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
657 | 657 | |
658 | 658 | </footer> |
659 | 659 |
1068 | 1068 | © Copyright 1993-2016, The Cyrus Team. |
1069 | 1069 | </p> |
1070 | 1070 | </div> |
1071 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
1071 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
1072 | 1072 | |
1073 | 1073 | </footer> |
1074 | 1074 |
545 | 545 | © Copyright 1993-2016, The Cyrus Team. |
546 | 546 | </p> |
547 | 547 | </div> |
548 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
548 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
549 | 549 | |
550 | 550 | </footer> |
551 | 551 |
524 | 524 | © Copyright 1993-2016, The Cyrus Team. |
525 | 525 | </p> |
526 | 526 | </div> |
527 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
527 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
528 | 528 | |
529 | 529 | </footer> |
530 | 530 |
878 | 878 | information.</p> |
879 | 879 | </dd> |
880 | 880 | <dt>Is there a mailing list to discuss the Cyrus SASL library?</dt> |
881 | <dd>Check out our <a class="reference external" href="https://www.cyrusimap.org/contribute.html#contribute" title="(in Cyrus IMAP v3.0.4)"><span class="xref std std-ref">contribution</span></a> page for ways to get in touch | |
881 | <dd>Check out our <a class="reference external" href="https://www.cyrusimap.org/contribute.html#contribute" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">contribution</span></a> page for ways to get in touch | |
882 | 882 | with us, including mailing lists and IRC.</dd> |
883 | 883 | </dl> |
884 | 884 | </div> |
905 | 905 | © Copyright 1993-2016, The Cyrus Team. |
906 | 906 | </p> |
907 | 907 | </div> |
908 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
908 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
909 | 909 | |
910 | 910 | </footer> |
911 | 911 |
616 | 616 | © Copyright 1993-2016, The Cyrus Team. |
617 | 617 | </p> |
618 | 618 | </div> |
619 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
619 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
620 | 620 | |
621 | 621 | </footer> |
622 | 622 |
666 | 666 | © Copyright 1993-2016, The Cyrus Team. |
667 | 667 | </p> |
668 | 668 | </div> |
669 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
669 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
670 | 670 | |
671 | 671 | </footer> |
672 | 672 |
505 | 505 | © Copyright 1993-2016, The Cyrus Team. |
506 | 506 | </p> |
507 | 507 | </div> |
508 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
508 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
509 | 509 | |
510 | 510 | </footer> |
511 | 511 |
585 | 585 | © Copyright 1993-2016, The Cyrus Team. |
586 | 586 | </p> |
587 | 587 | </div> |
588 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
588 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
589 | 589 | |
590 | 590 | </footer> |
591 | 591 |
487 | 487 | |
488 | 488 | <div class="section" id="support-community"> |
489 | 489 | <h1>Support/Community<a class="headerlink" href="#support-community" title="Permalink to this headline">¶</a></h1> |
490 | <p>Please read our support and bug reporting guidelines in the <a class="reference external" href="https://www.cyrusimap.org/support.html#support" title="(in Cyrus IMAP v3.0.4)"><span class="xref std std-ref">Cyrus IMAP project</span></a>.</p> | |
490 | <p>Please read our support and bug reporting guidelines in the <a class="reference external" href="https://www.cyrusimap.org/support.html#support" title="(in Cyrus IMAP v3.0.6)"><span class="xref std std-ref">Cyrus IMAP project</span></a>.</p> | |
491 | 491 | </div> |
492 | 492 | |
493 | 493 | |
509 | 509 | © Copyright 1993-2016, The Cyrus Team. |
510 | 510 | </p> |
511 | 511 | </div> |
512 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.3 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
512 | Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>. | |
513 | 513 | |
514 | 514 | </footer> |
515 | 515 |
51 | 51 | macosx.html \ |
52 | 52 | mechanisms.html \ |
53 | 53 | NTMakefile \ |
54 | ONEWS \ | |
54 | 55 | options.html \ |
55 | 56 | os390.html \ |
56 | 57 | plugprog.html \ |
16 | 16 | int sasl_server_start(sasl_conn_t * conn, |
17 | 17 | const char * mech, |
18 | 18 | const char * clientin, |
19 | unsigned * clientinlen, | |
19 | unsigned clientinlen, | |
20 | 20 | const char ** serverout, |
21 | 21 | unsigned * serveroutlen); |
22 | 22 |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
639 | 639 | #define SASL_CU_AUTHZID 0x02 |
640 | 640 | |
641 | 641 | /* Combine the following with SASL_CU_AUTHID, if you don't want |
642 | to fail if auxprop returned SASL_NOUSER/SASL_NOMECH. | |
643 | This flag has no effect on SASL_CU_AUTHZID. */ | |
642 | to fail if auxprop returned SASL_NOUSER/SASL_NOMECH. */ | |
644 | 643 | #define SASL_CU_EXTERNALLY_VERIFIED 0x04 |
645 | 644 | |
646 | 645 | #define SASL_CU_OVERRIDE 0x08 /* mapped to SASL_AUXPROP_OVERRIDE */ |
126 | 126 | * |
127 | 127 | * level is a SASL_LOG_* level (see sasl.h) |
128 | 128 | */ |
129 | void (*log)(sasl_conn_t *conn, int level, const char *fmt, ...); | |
129 | void (*log)(sasl_conn_t *conn, int level, const char *fmt, ...) __attribute__((format(printf, 3, 4))); | |
130 | 130 | |
131 | 131 | /* callback to sasl_seterror() */ |
132 | void (*seterror)(sasl_conn_t *conn, unsigned flags, const char *fmt, ...); | |
132 | void (*seterror)(sasl_conn_t *conn, unsigned flags, const char *fmt, ...) __attribute__((format(printf, 3, 4))); | |
133 | 133 | |
134 | 134 | /* spare function pointer */ |
135 | 135 | int *(*spare_fptr)(void); |
484 | 484 | ********************/ |
485 | 485 | |
486 | 486 | /* log message formatting routine */ |
487 | typedef void sasl_logmsg_p(sasl_conn_t *conn, const char *fmt, ...); | |
487 | typedef void sasl_logmsg_p(sasl_conn_t *conn, const char *fmt, ...) __attribute__((format(printf, 2, 3))); | |
488 | 488 | |
489 | 489 | /* |
490 | 490 | * input parameters to server SASL plugin |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
69 | 69 | LIB_DOOR= @LIB_DOOR@ |
70 | 70 | |
71 | 71 | lib_LTLIBRARIES = libsasl2.la |
72 | if BUILD_LIBOBJ | |
72 | 73 | noinst_LTLIBRARIES = libobj.la |
74 | else | |
75 | noinst_LTLIBRARIES = | |
76 | endif | |
73 | 77 | |
74 | 78 | libobj_la_SOURCES = |
75 | 79 | libobj_la_LIBADD = $(LTLIBOBJS) |
76 | 80 | |
77 | 81 | libsasl2_la_SOURCES = $(common_sources) $(common_headers) |
78 | 82 | libsasl2_la_LDFLAGS = -version-info $(sasl_version) -no-undefined |
79 | libsasl2_la_LIBADD = libobj.la $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(PLUGIN_COMMON_OBJS) | |
83 | ||
84 | libsasl2_la_LIBADD = $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(PLUGIN_COMMON_OBJS) | |
85 | if BUILD_LIBOBJ | |
86 | libsasl2_la_LIBADD += libobj.la | |
87 | endif | |
80 | 88 | |
81 | 89 | if MACOSX |
82 | 90 | framedir = /Library/Frameworks/SASL2.framework |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
131 | 131 | build_triplet = @build@ |
132 | 132 | host_triplet = @host@ |
133 | 133 | target_triplet = @target@ |
134 | @BUILD_LIBOBJ_TRUE@am__append_1 = libobj.la | |
134 | 135 | subdir = lib |
135 | 136 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
136 | 137 | am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
197 | 198 | am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
198 | 199 | am__v_lt_0 = --silent |
199 | 200 | am__v_lt_1 = |
201 | @BUILD_LIBOBJ_TRUE@am_libobj_la_rpath = | |
200 | 202 | am__DEPENDENCIES_1 = |
201 | libsasl2_la_DEPENDENCIES = libobj.la $(am__DEPENDENCIES_1) \ | |
202 | $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ | |
203 | $(PLUGIN_COMMON_OBJS) | |
203 | libsasl2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ | |
204 | $(am__DEPENDENCIES_1) $(PLUGIN_COMMON_OBJS) $(am__append_1) | |
204 | 205 | am__libsasl2_la_SOURCES_DIST = auxprop.c canonusr.c checkpw.c client.c \ |
205 | 206 | common.c config.c external.c md5.c saslutil.c server.c \ |
206 | 207 | seterror.c dlopen.c windlopen.c saslint.h |
485 | 486 | common_headers = saslint.h |
486 | 487 | common_sources = auxprop.c canonusr.c checkpw.c client.c common.c config.c external.c md5.c saslutil.c server.c seterror.c $(DLOPEN_C) |
487 | 488 | lib_LTLIBRARIES = libsasl2.la |
488 | noinst_LTLIBRARIES = libobj.la | |
489 | @BUILD_LIBOBJ_FALSE@noinst_LTLIBRARIES = | |
490 | @BUILD_LIBOBJ_TRUE@noinst_LTLIBRARIES = libobj.la | |
489 | 491 | libobj_la_SOURCES = |
490 | 492 | libobj_la_LIBADD = $(LTLIBOBJS) |
491 | 493 | libsasl2_la_SOURCES = $(common_sources) $(common_headers) |
492 | 494 | libsasl2_la_LDFLAGS = -version-info $(sasl_version) -no-undefined |
493 | libsasl2_la_LIBADD = libobj.la $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(PLUGIN_COMMON_OBJS) | |
495 | libsasl2_la_LIBADD = $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) \ | |
496 | $(PLUGIN_COMMON_OBJS) $(am__append_1) | |
494 | 497 | @MACOSX_TRUE@framedir = /Library/Frameworks/SASL2.framework |
495 | 498 | all: $(BUILT_SOURCES) |
496 | 499 | $(MAKE) $(AM_MAKEFLAGS) all-am |
577 | 580 | } |
578 | 581 | |
579 | 582 | libobj.la: $(libobj_la_OBJECTS) $(libobj_la_DEPENDENCIES) $(EXTRA_libobj_la_DEPENDENCIES) |
580 | $(AM_V_CCLD)$(LINK) $(libobj_la_OBJECTS) $(libobj_la_LIBADD) $(LIBS) | |
583 | $(AM_V_CCLD)$(LINK) $(am_libobj_la_rpath) $(libobj_la_OBJECTS) $(libobj_la_LIBADD) $(LIBS) | |
581 | 584 | |
582 | 585 | libsasl2.la: $(libsasl2_la_OBJECTS) $(libsasl2_la_DEPENDENCIES) $(EXTRA_libsasl2_la_DEPENDENCIES) |
583 | 586 | $(AM_V_CCLD)$(libsasl2_la_LINK) -rpath $(libdir) $(libsasl2_la_OBJECTS) $(libsasl2_la_LIBADD) $(LIBS) |
98 | 98 | VALUE "FileDescription", "CMU SASL API v2\0" |
99 | 99 | VALUE "FileVersion", "$(SASL_VERSION_MAJOR).$(SASL_VERSION_MINOR).$(SASL_VERSION_STEP).0\0" |
100 | 100 | VALUE "InternalName", "libsasl\0" |
101 | VALUE "LegalCopyright", "Copyright (c) Carnegie Mellon University 2002-2012\0" | |
101 | VALUE "LegalCopyright", "Copyright (c) Carnegie Mellon University 2002-2017\0" | |
102 | 102 | VALUE "OriginalFilename", "libsasl.dll\0" |
103 | 103 | VALUE "ProductName", "Carnegie Mellon University SASL\0" |
104 | 104 | VALUE "ProductVersion", "$(SASL_VERSION_MAJOR).$(SASL_VERSION_MINOR).$(SASL_VERSION_STEP)-0" |
149 | 149 | /* XXX the following is fairly arbitrary, but its independent |
150 | 150 | of the order in which the plugins are loaded |
151 | 151 | */ |
152 | #ifdef PREFER_MECH | |
153 | if (!strcasecmp(a->mech_name, PREFER_MECH)) return 1; | |
154 | if (!strcasecmp(b->mech_name, PREFER_MECH)) return -1; | |
155 | #endif | |
156 | ||
152 | 157 | sec_diff = a->security_flags ^ b->security_flags; |
153 | 158 | if (sec_diff & a->security_flags & SASL_SEC_NOANONYMOUS) return 1; |
154 | 159 | if (sec_diff & b->security_flags & SASL_SEC_NOANONYMOUS) return -1; |
657 | 662 | return SASL_OK; |
658 | 663 | } |
659 | 664 | |
660 | static int | |
661 | _sasl_are_current_security_flags_worse_then_best(unsigned best_security_flags, | |
662 | unsigned current_security_flags) | |
663 | { | |
664 | /* We don't qualify SASL_SEC_PASS_CREDENTIALS as "secure" flag */ | |
665 | best_security_flags &= ~SASL_SEC_PASS_CREDENTIALS; | |
666 | ||
667 | if ((current_security_flags ^ best_security_flags) & best_security_flags) { | |
668 | return 1; | |
669 | } else { | |
670 | return 0; | |
671 | } | |
672 | } | |
673 | ||
674 | 665 | /* select a mechanism for a connection |
675 | 666 | * mechlist -- mechanisms server has available (punctuation ignored) |
676 | 667 | * secret -- optional secret from previous session |
707 | 698 | char *ordered_mechs = NULL, *name; |
708 | 699 | cmechanism_t *m = NULL, *bestm = NULL; |
709 | 700 | size_t i, list_len, name_len; |
710 | sasl_ssf_t bestssf = 0, minssf = 0; | |
701 | sasl_ssf_t minssf = 0; | |
711 | 702 | int result, server_can_cb = 0; |
712 | 703 | sasl_cbinding_disp_t cbindingdisp; |
713 | 704 | sasl_cbinding_disp_t cur_cbindingdisp; |
760 | 751 | goto done; |
761 | 752 | |
762 | 753 | /* for each mechanism in client's list */ |
763 | for (m = c_conn->mech_list; m != NULL; m = m->next) { | |
754 | for (m = c_conn->mech_list; !bestm && m != NULL; m = m->next) { | |
764 | 755 | |
765 | 756 | for (i = 0, name = ordered_mechs; i < list_len; i++, name += name_len + 1) { |
766 | 757 | unsigned myflags; |
817 | 808 | break; |
818 | 809 | } |
819 | 810 | |
820 | /* compare security flags, only take new mechanism if it has | |
821 | * all the security flags of the previous one. | |
822 | * | |
823 | * From the mechanisms we ship with, this yields the order: | |
824 | * | |
825 | * SRP | |
826 | * GSSAPI + KERBEROS_V4 | |
827 | * DIGEST + OTP | |
828 | * CRAM + EXTERNAL | |
829 | * PLAIN + LOGIN + ANONYMOUS | |
830 | * | |
831 | * This might be improved on by comparing the numeric value of | |
832 | * the bitwise-or'd security flags, which splits DIGEST/OTP, | |
833 | * CRAM/EXTERNAL, and PLAIN/LOGIN from ANONYMOUS, but then we | |
834 | * are depending on the numeric values of the flags (which may | |
835 | * change, and their ordering could be considered dumb luck. | |
836 | */ | |
837 | ||
838 | if (bestm && | |
839 | _sasl_are_current_security_flags_worse_then_best( | |
840 | bestm->m.plug->security_flags, | |
841 | m->m.plug->security_flags)) { | |
842 | break; | |
843 | } | |
844 | ||
845 | 811 | if (SASL_CB_PRESENT(c_conn->cparams) && plus) { |
846 | 812 | cur_cbindingdisp = SASL_CB_DISP_USED; |
847 | 813 | } else { |
848 | 814 | cur_cbindingdisp = cbindingdisp; |
849 | 815 | } |
850 | 816 | |
851 | if (bestm && (best_cbindingdisp > cur_cbindingdisp)) { | |
852 | break; | |
853 | } | |
854 | ||
855 | #ifdef PREFER_MECH | |
856 | if (strcasecmp(m->m.plug->mech_name, PREFER_MECH) && | |
857 | bestm && m->m.plug->max_ssf <= bestssf) { | |
858 | /* this mechanism isn't our favorite, and it's no better | |
859 | than what we already have! */ | |
860 | break; | |
861 | } | |
862 | #else | |
863 | if (bestm && m->m.plug->max_ssf <= bestssf) { | |
864 | /* this mechanism is no better than what we already have! */ | |
865 | break; | |
866 | } | |
867 | #endif | |
868 | ||
869 | 817 | if (mech) { |
870 | 818 | *mech = m->m.plug->mech_name; |
871 | 819 | } |
872 | 820 | |
821 | /* Since the list of client mechs is ordered by preference/strength, | |
822 | the first mech in our list that is available on the server and | |
823 | meets our security properties and features is the "best" */ | |
873 | 824 | best_cbindingdisp = cur_cbindingdisp; |
874 | bestssf = m->m.plug->max_ssf; | |
875 | 825 | bestm = m; |
876 | 826 | break; |
877 | 827 | } |
1382 | 1382 | sasl_usererr(conn->error_code), errstr); |
1383 | 1383 | |
1384 | 1384 | need_len = (unsigned) (strlen(leader) + strlen(conn->error_buf) + 12); |
1385 | _buf_alloc(&conn->errdetail_buf, &conn->errdetail_buf_len, need_len); | |
1385 | if (_buf_alloc(&conn->errdetail_buf, &conn->errdetail_buf_len, need_len) != SASL_OK) { | |
1386 | return NULL; | |
1387 | } | |
1386 | 1388 | |
1387 | 1389 | snprintf(conn->errdetail_buf, need_len, "%s%s", leader, conn->error_buf); |
1388 | 1390 |
302 | 302 | if(line[strlen(line) - 1] != '\n') { |
303 | 303 | _sasl_log(NULL, SASL_LOG_WARN, |
304 | 304 | "LA file has too long of a line: %s", in); |
305 | fclose(file); | |
305 | 306 | return SASL_BUFOVER; |
306 | 307 | } |
307 | 308 | if(line[0] == '\n' || line[0] == '#') continue; |
321 | 322 | if(ntmp == end) { |
322 | 323 | _sasl_log(NULL, SASL_LOG_DEBUG, |
323 | 324 | "dlname is empty in .la file: %s", in); |
325 | fclose(file); | |
324 | 326 | return SASL_FAIL; |
325 | 327 | } |
326 | 328 | strcpy(out, prefix); |
29 | 29 | with_des=no)], |
30 | 30 | with_des=no, $LIB_RSAREF) |
31 | 31 | fi |
32 | else | |
33 | with_des=no | |
32 | 34 | fi |
33 | 35 | |
34 | 36 | if test "$with_des" = no; then |
19 | 19 | no) |
20 | 20 | with_openssl="no";; |
21 | 21 | *) |
22 | with_openssl="yes" | |
22 | 23 | dnl if openssl has been compiled with the rsaref2 libraries, |
23 | 24 | dnl we need to include the rsaref libraries in the crypto check |
24 | 25 | LIB_RSAREF="" |
31 | 32 | |
32 | 33 | AC_CHECK_HEADER(openssl/evp.h, [ |
33 | 34 | AC_CHECK_LIB(crypto, EVP_DigestInit, |
34 | [with_openssl="yes", | |
35 | AC_CHECK_LIB(crypto, SHA256, | |
35 | [AC_CHECK_LIB(crypto, SHA256, | |
36 | 36 | AC_DEFINE(HAVE_SHA256,[], |
37 | 37 | [Do we have SHA256?]))], |
38 | 38 | with_openssl="no", $LIB_RSAREF)], |
39 | with_openssl=no) | |
39 | with_openssl="no") | |
40 | 40 | ;; |
41 | 41 | esac |
42 | 42 |
16 | 16 | [gss_impl=$withval], |
17 | 17 | [gss_impl=auto]) |
18 | 18 | |
19 | gs2="no" | |
19 | 20 | if test "$gssapi" != no; then |
20 | 21 | platform= |
21 | 22 | case "${host}" in |
35 | 36 | *-*-aix*) |
36 | 37 | ###_AIX |
37 | 38 | platform=__aix |
39 | ;; | |
40 | *-*-darwin*) | |
41 | platform=__darwin | |
38 | 42 | ;; |
39 | 43 | *) |
40 | 44 | AC_WARN([The system type is not recognized. If you believe that CyberSafe GSSAPI works on this platform, please update the configure script]) |
256 | 260 | SASL_STATIC_OBJS="$SASL_STATIC_OBJS gssapi.o" |
257 | 261 | SASL_STATIC_SRCS="$SASL_STATIC_SRCS \$(top_srcdir)/plugins/gssapi.c" |
258 | 262 | if test "$rfc5587" = "yes" -a "$rfc5801" = "yes"; then |
263 | gs2="yes" | |
259 | 264 | SASL_MECHS="$SASL_MECHS libgs2.la" |
260 | 265 | SASL_STATIC_OBJS="$SASL_STATIC_OBJS gs2.o" |
261 | 266 | SASL_STATIC_SRCS="$SASL_STATIC_SRCS \$(top_srcdir)/plugins/gs2.c" |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_AUTHORIZE_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_AUTHORIZE_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_authorize_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_AUXPROP" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_AUXPROP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_auxprop \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_AUXPROP_GETCTX" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_AUXPROP_GETCTX" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_auxprop_getctx \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_AUXPROP_REQUEST" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_AUXPROP_REQUEST" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_auxprop_request \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_CALLBACKS" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_CALLBACKS" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_callbacks \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_CANON_USER_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_CANON_USER_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_canon_user_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_CHALPROMPT_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_CHALPROMPT_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_chalprompt_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_CHECKAPOP" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_CHECKAPOP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_checkapop \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_CHECKPASS" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_CHECKPASS" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_checkpass \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_CLIENT_INIT" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_CLIENT_INIT" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_client_init \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_CLIENT_NEW" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_CLIENT_NEW" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_client_new \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_CLIENT_START" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_CLIENT_START" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_client_start \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_CLIENT_STEP" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_CLIENT_STEP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_client_step \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_DECODE" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_DECODE" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_decode \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_DISPOSE" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_DISPOSE" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_dispose \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_DONE" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_DONE" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_done \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_ENCODE" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_ENCODE" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_encode \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_ENCODEV" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_ENCODEV" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_encodev \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_ERRDETAIL" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_ERRDETAIL" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_errdetail \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_ERRORS" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_ERRORS" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_errors \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_ERRSTRING" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_ERRSTRING" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_errstring \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_GETCONFPATH_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_GETCONFPATH_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getconfpath_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_GETOPT_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_GETOPT_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getopt_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_GETPATH_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_GETPATH_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getpath_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_GETPROP" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_GETPROP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getprop \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_GETREALM_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_GETREALM_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getrealm_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_GETSECRET_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_GETSECRET_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getsecret_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_GETSIMPLE_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_GETSIMPLE_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_getsimple_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_GLOBAL_LISTMECH" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_GLOBAL_LISTMECH" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_global_listmech \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_IDLE" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_IDLE" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_idle \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_LISTMECH" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_LISTMECH" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_listmech \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_LOG_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_LOG_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_log_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_SERVER_INIT" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_SERVER_INIT" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_init \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_SERVER_NEW" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_SERVER_NEW" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_new \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_SERVER_START" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_SERVER_START" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_start \- Cyrus SASL documentation |
5 | 5 | . |
64 | 64 | int sasl_server_start(sasl_conn_t * conn, |
65 | 65 | const char * mech, |
66 | 66 | const char * clientin, |
67 | unsigned * clientinlen, | |
67 | unsigned clientinlen, | |
68 | 68 | const char ** serverout, |
69 | 69 | unsigned * serveroutlen); |
70 | 70 | .fi |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_SERVER_STEP" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_SERVER_STEP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_step \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_SERVER_USERDB_CHECKPASS_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_SERVER_USERDB_CHECKPASS_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_userdb_checkpass_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_SERVER_USERDB_SETPASS_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_SERVER_USERDB_SETPASS_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_server_userdb_setpass_t \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_SETPASS" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_SETPASS" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_setpass \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_SETPROP" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_SETPROP" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_setprop \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_USER_EXISTS" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_USER_EXISTS" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_user_exists \- Cyrus SASL documentation |
5 | 5 | . |
0 | 0 | .\" Man page generated from reStructuredText. |
1 | 1 | . |
2 | .TH "SASL_VERIFYFILE_T" "3" "September 08, 2017" "2.1.27" "Cyrus SASL" | |
2 | .TH "SASL_VERIFYFILE_T" "3" "May 10, 2018" "2.1.27" "Cyrus SASL" | |
3 | 3 | .SH NAME |
4 | 4 | sasl_verifyfile_t \- Cyrus SASL documentation |
5 | 5 | . |
51 | 51 | AM_CPPFLAGS=-I$(top_srcdir)/include -I$(top_srcdir)/lib -I$(top_srcdir)/sasldb -I$(top_srcdir)/common -I$(top_builddir)/include |
52 | 52 | AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir) -version-info $(plugin_version) -no-undefined |
53 | 53 | |
54 | if BUILD_LIBOBJ | |
54 | 55 | COMPAT_OBJS = $(top_builddir)/lib/libobj.la |
56 | endif | |
55 | 57 | PLUGIN_COMMON_OBJS = $(top_builddir)/common/libplugin_common.la |
56 | 58 | CRYPTO_COMPAT_OBJS = $(top_builddir)/common/libcrypto_compat.la |
57 | 59 |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
494 | 494 | plugin_version = 3:0:0 |
495 | 495 | AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/lib -I$(top_srcdir)/sasldb -I$(top_srcdir)/common -I$(top_builddir)/include |
496 | 496 | AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir) -version-info $(plugin_version) -no-undefined |
497 | COMPAT_OBJS = $(top_builddir)/lib/libobj.la | |
497 | @BUILD_LIBOBJ_TRUE@COMPAT_OBJS = $(top_builddir)/lib/libobj.la | |
498 | 498 | PLUGIN_COMMON_OBJS = $(top_builddir)/common/libplugin_common.la |
499 | 499 | CRYPTO_COMPAT_OBJS = $(top_builddir)/common/libcrypto_compat.la |
500 | 500 | EXTRA_DIST = makeinit.sh NTMakefile |
144 | 144 | |
145 | 145 | DIGEST_FLAGS=/D "WITH_RC4" /DOBSOLETE_DIGEST_ATTR=1 |
146 | 146 | |
147 | SCRAM_FLAGS=/DHAVE_SHA256=1 | |
148 | ||
147 | 149 | saslSASLDB_sources = sasldb.c sasldb_init.c $(libsasldb_sources) $(common_sources) |
148 | 150 | saslSASLDB_objs = sasldb.obj sasldb_init.obj $(libsasldb_objs) $(common_objs) |
149 | 151 | saslSASLDB_out = saslSASLDB.dll saslSASLDB.exp saslSASLDB.lib |
158 | 160 | EXTRA_FLAGS = /D TARGET_WIN_SYSTEM=$(TARGET_WIN_SYSTEM) $(EXTRA_FLAGS) |
159 | 161 | !ENDIF |
160 | 162 | |
161 | EXTRA_FLAGS=$(EXTRA_FLAGS) $(DB_FLAGS) $(OPENSSL_FLAGS) $(GSS_FLAGS) $(SRP_FLAGS) $(SQL_FLAGS) $(DIGEST_FLAGS) $(CRAM_FLAGS) $(LDAP_FLAGS) | |
163 | EXTRA_FLAGS=$(EXTRA_FLAGS) $(DB_FLAGS) $(OPENSSL_FLAGS) $(GSS_FLAGS) $(SRP_FLAGS) $(SQL_FLAGS) $(DIGEST_FLAGS) $(CRAM_FLAGS) $(SCRAM_FLAGS) $(LDAP_FLAGS) | |
162 | 164 | CPPFLAGS = /I "..\win32\include" /I "." /I "..\include" $(EXTRA_FLAGS) /D "WIN32" /D "_WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" |
163 | 165 | |
164 | 166 | OPENSSL_LIBS=/libpath:$(OPENSSL_LIBPATH) libeay32.lib ssleay32.lib |
331 | 333 | VALUE "FileDescription", "CMU SASL $(@B) plugin\0" |
332 | 334 | VALUE "FileVersion", "$(SASL_VERSION_MAJOR).$(SASL_VERSION_MINOR).$(SASL_VERSION_STEP).0\0" |
333 | 335 | VALUE "InternalName", "$(@B)\0" |
334 | VALUE "LegalCopyright", "Copyright (c) Carnegie Mellon University 2002-2012\0" | |
336 | VALUE "LegalCopyright", "Copyright (c) Carnegie Mellon University 2002-2017\0" | |
335 | 337 | VALUE "OriginalFilename", "$(@B).dll\0" |
336 | 338 | VALUE "ProductName", "Carnegie Mellon University SASL\0" |
337 | 339 | VALUE "ProductVersion", "$(SASL_VERSION_MAJOR).$(SASL_VERSION_MINOR).$(SASL_VERSION_STEP)-0" |
549 | 549 | /* Check if the value needs quoting */ |
550 | 550 | if (strpbrk ((char *)value, NEED_ESCAPING) != NULL) { |
551 | 551 | char * quoted = quote ((char *) value); |
552 | if (quoted == NULL) | |
553 | MEMERROR(utils); | |
552 | 554 | valuesize = strlen(quoted); |
553 | 555 | /* As the quoted string is bigger, make sure we have enough |
554 | 556 | space now */ |
755 | 757 | } |
756 | 758 | |
757 | 759 | result = malloc (strlen(str) + num_to_escape + 1); |
760 | if (result == NULL) { | |
761 | return NULL; | |
762 | } | |
758 | 763 | for (p = str, outp = result; *p; p++) { |
759 | 764 | if (*p == '"' || *p == '\\') { |
760 | 765 | *outp = '\\'; |
1841 | 1841 | strcat(out, ")"); |
1842 | 1842 | |
1843 | 1843 | if (logonly) { |
1844 | utils->log(utils->conn, SASL_LOG_FAIL, out); | |
1844 | utils->log(utils->conn, SASL_LOG_FAIL, "%s", out); | |
1845 | 1845 | } else { |
1846 | utils->seterror(utils->conn, 0, out); | |
1846 | utils->seterror(utils->conn, 0, "%s", out); | |
1847 | 1847 | } |
1848 | 1848 | utils->free(out); |
1849 | 1849 |
334 | 334 | strcat(out, ")"); |
335 | 335 | |
336 | 336 | if (logonly) { |
337 | utils->log(utils->conn, SASL_LOG_FAIL, out); | |
337 | utils->log(utils->conn, SASL_LOG_FAIL, "%s", out); | |
338 | 338 | } else { |
339 | utils->seterror(utils->conn, 0, out); | |
339 | utils->seterror(utils->conn, 0, "%s", out); | |
340 | 340 | } |
341 | 341 | utils->free(out); |
342 | 342 | |
701 | 701 | case GSS_S_UNAVAILABLE: |
702 | 702 | /* Not supported by the library, fallback to default */ |
703 | 703 | goto fallback; |
704 | ||
704 | 705 | case GSS_S_COMPLETE: |
705 | 706 | if ((bufset->count != 1) || (bufset->elements[0].length != 4)) { |
706 | 707 | /* Malformed bufset, fail */ |
711 | 712 | (void)gss_release_buffer_set(&min_stat, &bufset); |
712 | 713 | *mech_ssf = ntohl(ssf); |
713 | 714 | return SASL_OK; |
715 | ||
716 | case GSS_S_FAILURE: | |
717 | /* Not supported by Heimdal, fallback to default */ | |
718 | if (min_stat == 0) { | |
719 | goto fallback; | |
720 | } | |
721 | ||
722 | GCC_FALLTHROUGH | |
723 | ||
714 | 724 | default: |
725 | if (GSS_ERROR(maj_stat)) { | |
726 | sasl_gss_seterror(text->utils,maj_stat,min_stat); | |
727 | } | |
715 | 728 | return SASL_FAIL; |
716 | 729 | } |
717 | 730 | |
1359 | 1372 | ret = params->canon_user(params->utils->conn, |
1360 | 1373 | ((char *) output_token->value) + 4, |
1361 | 1374 | (output_token->length - 4) * sizeof(char), |
1362 | SASL_CU_AUTHZID, oparams); | |
1363 | ||
1375 | SASL_CU_AUTHZID | SASL_CU_EXTERNALLY_VERIFIED, | |
1376 | oparams); | |
1377 | ||
1364 | 1378 | if (ret != SASL_OK) { |
1365 | 1379 | sasl_gss_free_context_contents(text); |
1366 | 1380 | return ret; |
1560 | 1574 | if (keytab != NULL) { |
1561 | 1575 | if (access(keytab, R_OK) != 0) { |
1562 | 1576 | utils->log(NULL, SASL_LOG_ERR, |
1563 | "Could not find keytab file: %s: %m", | |
1564 | keytab, errno); | |
1577 | "Could not find keytab file: %s: %m", keytab); | |
1565 | 1578 | return SASL_FAIL; |
1566 | 1579 | } |
1567 | 1580 | |
1745 | 1758 | } |
1746 | 1759 | |
1747 | 1760 | /* Setup req_flags properly */ |
1748 | req_flags = GSS_C_INTEG_FLAG; | |
1761 | req_flags = GSS_C_MUTUAL_FLAG | GSS_C_SEQUENCE_FLAG; | |
1749 | 1762 | if (params->props.max_ssf > params->external_ssf) { |
1750 | 1763 | /* We are requesting a security layer */ |
1751 | req_flags |= GSS_C_MUTUAL_FLAG | GSS_C_SEQUENCE_FLAG; | |
1764 | req_flags |= GSS_C_INTEG_FLAG; | |
1752 | 1765 | /* Any SSF bigger than 1 is confidentiality. */ |
1753 | 1766 | /* Let's check if the client of the API requires confidentiality, |
1754 | 1767 | and it wasn't already provided by an external layer */ |
80 | 80 | static int ldapdb_connect(ldapctx *ctx, sasl_server_params_t *sparams, |
81 | 81 | const char *user, unsigned ulen, connparm *cp) |
82 | 82 | { |
83 | int i; | |
83 | int i, rc; | |
84 | 84 | char *authzid; |
85 | 85 | |
86 | 86 | if((i=ldap_initialize(&cp->ld, ctx->uri))) { |
99 | 99 | cp->c.ldctl_iscritical = 1; |
100 | 100 | |
101 | 101 | i = LDAP_VERSION3; |
102 | ldap_set_option(cp->ld, LDAP_OPT_PROTOCOL_VERSION, &i); | |
102 | rc = ldap_set_option(cp->ld, LDAP_OPT_PROTOCOL_VERSION, &i); | |
103 | if (rc != 0) { | |
104 | sparams->utils->free(authzid); | |
105 | return rc; | |
106 | } | |
103 | 107 | |
104 | 108 | /* If TLS is set and it fails, continue or bail out as requested */ |
105 | 109 | if (ctx->use_tls && (i=ldap_start_tls_s(cp->ld, NULL, NULL)) != LDAP_SUCCESS |
315 | 319 | sparams->utils->free(mods); |
316 | 320 | |
317 | 321 | if (i) { |
318 | sparams->utils->seterror(sparams->utils->conn, 0, | |
322 | sparams->utils->seterror(sparams->utils->conn, 0, "%s", | |
319 | 323 | ldap_err2string(i)); |
320 | 324 | if (i == LDAP_NO_MEMORY) i = SASL_NOMEM; |
321 | 325 | else i = SASL_FAIL; |
415 | 419 | done: |
416 | 420 | if(cp.ld) ldap_unbind_ext(cp.ld, NULL, NULL); |
417 | 421 | if (ret) { |
418 | sparams->utils->seterror(sparams->utils->conn, 0, | |
422 | sparams->utils->seterror(sparams->utils->conn, 0, "%s", | |
419 | 423 | ldap_err2string(ret)); |
420 | 424 | if (ret == LDAP_NO_MEMORY) ret = SASL_NOMEM; |
421 | 425 | else ret = SASL_FAIL; |
1081 | 1081 | || hdr.status /* no errors */ |
1082 | 1082 | || !(hdr.flags & SMB_FLAGS_SERVER_TO_REDIR)) { /* response */ |
1083 | 1083 | utils->log(NULL, SASL_LOG_ERR, |
1084 | "NTLM: error in NEGPROT response header: %ld", | |
1084 | "NTLM: error in NEGPROT response header: %u", | |
1085 | 1085 | hdr.status); |
1086 | 1086 | return SASL_FAIL; |
1087 | 1087 | } |
1310 | 1310 | /* check auth success */ |
1311 | 1311 | if (hdr.status) { |
1312 | 1312 | utils->log(NULL, SASL_LOG_ERR, |
1313 | "NTLM: auth failure: %ld", hdr.status); | |
1313 | "NTLM: auth failure: %u", hdr.status); | |
1314 | 1314 | return SASL_BADAUTH; |
1315 | 1315 | } |
1316 | 1316 | |
1397 | 1397 | unsigned int len; |
1398 | 1398 | SOCKET sock = (SOCKET) -1; |
1399 | 1399 | |
1400 | /* holds state are in: allocate early */ | |
1401 | text = sparams->utils->malloc(sizeof(server_context_t)); | |
1402 | if (text == NULL) { | |
1403 | MEMERROR( sparams->utils ); | |
1404 | return SASL_NOMEM; | |
1405 | } | |
1406 | ||
1400 | 1407 | sparams->utils->getopt(sparams->utils->getopt_context, |
1401 | 1408 | "NTLM", "ntlm_server", &serv, &len); |
1402 | 1409 | if (serv) { |
1425 | 1432 | |
1426 | 1433 | sparams->utils->free(tmp); |
1427 | 1434 | if (sock == (SOCKET) -1) return SASL_UNAVAIL; |
1428 | } | |
1429 | ||
1430 | /* holds state are in */ | |
1431 | text = sparams->utils->malloc(sizeof(server_context_t)); | |
1432 | if (text == NULL) { | |
1433 | MEMERROR( sparams->utils ); | |
1434 | return SASL_NOMEM; | |
1435 | 1435 | } |
1436 | 1436 | |
1437 | 1437 | memset(text, 0, sizeof(server_context_t)); |
856 | 856 | &error_text); |
857 | 857 | if (result != SASL_OK) { |
858 | 858 | if (error_text != NULL) { |
859 | sparams->utils->seterror(sparams->utils->conn, 0, error_text); | |
859 | sparams->utils->seterror(sparams->utils->conn, 0, "%s", | |
860 | error_text); | |
860 | 861 | } |
861 | 862 | goto cleanup; |
862 | 863 | } |
1273 | 1274 | if (binary_channel_binding_len != sparams->cbinding->len) { |
1274 | 1275 | sparams->utils->seterror (sparams->utils->conn, |
1275 | 1276 | 0, |
1276 | "Unsupported channel bindings length received in %s. Expected lenght: %d, received: %d", | |
1277 | "Unsupported channel bindings length received in %s. Expected length: %lu, received: %d", | |
1277 | 1278 | scram_sasl_mech, |
1278 | 1279 | sparams->cbinding->len, |
1279 | 1280 | binary_channel_binding_len); |
1700 | 1701 | &error_text); |
1701 | 1702 | if (r != SASL_OK) { |
1702 | 1703 | if (error_text != NULL) { |
1703 | SETERROR(sparams->utils, error_text); | |
1704 | sparams->utils->seterror(sparams->utils->conn, 0, "%s", | |
1705 | error_text); | |
1704 | 1706 | } |
1705 | 1707 | goto cleanup; |
1706 | 1708 | } |
1837 | 1839 | |
1838 | 1840 | static sasl_server_plug_t scram_server_plugins[] = |
1839 | 1841 | { |
1842 | #ifdef HAVE_SHA256 | |
1843 | { | |
1844 | "SCRAM-SHA-256", /* mech_name */ | |
1845 | 0, /* max_ssf */ | |
1846 | SASL_SEC_NOPLAINTEXT | |
1847 | | SASL_SEC_NOACTIVE | |
1848 | | SASL_SEC_NOANONYMOUS | |
1849 | | SASL_SEC_MUTUAL_AUTH, /* security_flags */ | |
1850 | SASL_FEAT_ALLOWS_PROXY | |
1851 | | SASL_FEAT_SUPPORTS_HTTP | |
1852 | | SASL_FEAT_CHANNEL_BINDING, /* features */ | |
1853 | "SHA256", /* glob_context */ | |
1854 | &scram_server_mech_new, /* mech_new */ | |
1855 | &scram_server_mech_step, /* mech_step */ | |
1856 | &scram_server_mech_dispose, /* mech_dispose */ | |
1857 | NULL, /* mech_free */ | |
1858 | &scram_setpass, /* setpass */ | |
1859 | NULL, /* user_query */ | |
1860 | NULL, /* idle */ | |
1861 | NULL, /* mech avail */ | |
1862 | NULL /* spare */ | |
1863 | }, | |
1864 | #endif | |
1840 | 1865 | { |
1841 | 1866 | "SCRAM-SHA-1", /* mech_name */ |
1842 | 1867 | 0, /* max_ssf */ |
1845 | 1870 | | SASL_SEC_NOANONYMOUS |
1846 | 1871 | | SASL_SEC_MUTUAL_AUTH, /* security_flags */ |
1847 | 1872 | SASL_FEAT_ALLOWS_PROXY |
1873 | | SASL_FEAT_SUPPORTS_HTTP | |
1848 | 1874 | | SASL_FEAT_CHANNEL_BINDING, /* features */ |
1849 | 1875 | "SHA1", /* glob_context */ |
1850 | 1876 | &scram_server_mech_new, /* mech_new */ |
1856 | 1882 | NULL, /* idle */ |
1857 | 1883 | NULL, /* mech avail */ |
1858 | 1884 | NULL /* spare */ |
1859 | #ifdef HAVE_SHA256 | |
1860 | }, | |
1861 | { | |
1862 | "SCRAM-SHA-256", /* mech_name */ | |
1863 | 0, /* max_ssf */ | |
1864 | SASL_SEC_NOPLAINTEXT | |
1865 | | SASL_SEC_NOACTIVE | |
1866 | | SASL_SEC_NOANONYMOUS | |
1867 | | SASL_SEC_MUTUAL_AUTH, /* security_flags */ | |
1868 | SASL_FEAT_ALLOWS_PROXY | |
1869 | | SASL_FEAT_CHANNEL_BINDING, /* features */ | |
1870 | "SHA256", /* glob_context */ | |
1871 | &scram_server_mech_new, /* mech_new */ | |
1872 | &scram_server_mech_step, /* mech_step */ | |
1873 | &scram_server_mech_dispose, /* mech_dispose */ | |
1874 | NULL, /* mech_free */ | |
1875 | &scram_setpass, /* setpass */ | |
1876 | NULL, /* user_query */ | |
1877 | NULL, /* idle */ | |
1878 | NULL, /* mech avail */ | |
1879 | NULL /* spare */ | |
1880 | #endif | |
1881 | 1885 | } |
1882 | 1886 | }; |
1883 | 1887 | |
2569 | 2573 | (unsigned char *)ClientSignature, |
2570 | 2574 | &hash_len) == NULL) { |
2571 | 2575 | params->utils->seterror(params->utils->conn,0, |
2572 | "HMAC-% call failed", scram_sasl_mech+6); | |
2576 | "HMAC-%s call failed", scram_sasl_mech+6); | |
2573 | 2577 | result = SASL_SCRAM_INTERNAL; |
2574 | 2578 | goto cleanup; |
2575 | 2579 | } |
2856 | 2860 | |
2857 | 2861 | static sasl_client_plug_t scram_client_plugins[] = |
2858 | 2862 | { |
2863 | #ifdef HAVE_SHA256 | |
2864 | { | |
2865 | "SCRAM-SHA-256", /* mech_name */ | |
2866 | 0, /* max_ssf */ | |
2867 | SASL_SEC_NOPLAINTEXT | |
2868 | | SASL_SEC_NOANONYMOUS | |
2869 | | SASL_SEC_NOACTIVE | |
2870 | | SASL_SEC_MUTUAL_AUTH, /* security_flags */ | |
2871 | SASL_FEAT_ALLOWS_PROXY | |
2872 | | SASL_FEAT_SUPPORTS_HTTP | |
2873 | | SASL_FEAT_CHANNEL_BINDING, /* features */ | |
2874 | NULL, /* required_prompts */ | |
2875 | "SHA256", /* glob_context */ | |
2876 | &scram_client_mech_new, /* mech_new */ | |
2877 | &scram_client_mech_step, /* mech_step */ | |
2878 | &scram_client_mech_dispose, /* mech_dispose */ | |
2879 | NULL, /* mech_free */ | |
2880 | NULL, /* idle */ | |
2881 | NULL, /* spare */ | |
2882 | NULL /* spare */ | |
2883 | }, | |
2884 | #endif | |
2859 | 2885 | { |
2860 | 2886 | "SCRAM-SHA-1", /* mech_name */ |
2861 | 2887 | 0, /* max_ssf */ |
2864 | 2890 | | SASL_SEC_NOACTIVE |
2865 | 2891 | | SASL_SEC_MUTUAL_AUTH, /* security_flags */ |
2866 | 2892 | SASL_FEAT_ALLOWS_PROXY |
2893 | | SASL_FEAT_SUPPORTS_HTTP | |
2867 | 2894 | | SASL_FEAT_CHANNEL_BINDING, /* features */ |
2868 | 2895 | NULL, /* required_prompts */ |
2869 | 2896 | "SHA1", /* glob_context */ |
2874 | 2901 | NULL, /* idle */ |
2875 | 2902 | NULL, /* spare */ |
2876 | 2903 | NULL /* spare */ |
2877 | #ifdef HAVE_SHA256 | |
2878 | }, | |
2879 | { | |
2880 | "SCRAM-SHA-256", /* mech_name */ | |
2881 | 0, /* max_ssf */ | |
2882 | SASL_SEC_NOPLAINTEXT | |
2883 | | SASL_SEC_NOANONYMOUS | |
2884 | | SASL_SEC_NOACTIVE | |
2885 | | SASL_SEC_MUTUAL_AUTH, /* security_flags */ | |
2886 | SASL_FEAT_ALLOWS_PROXY | |
2887 | | SASL_FEAT_CHANNEL_BINDING, /* features */ | |
2888 | NULL, /* required_prompts */ | |
2889 | "SHA256", /* glob_context */ | |
2890 | &scram_client_mech_new, /* mech_new */ | |
2891 | &scram_client_mech_step, /* mech_step */ | |
2892 | &scram_client_mech_dispose, /* mech_dispose */ | |
2893 | NULL, /* mech_free */ | |
2894 | NULL, /* idle */ | |
2895 | NULL, /* spare */ | |
2896 | NULL /* spare */ | |
2897 | #endif | |
2898 | 2904 | } |
2899 | 2905 | }; |
2900 | 2906 |
106 | 106 | /* Size limit of cipher block size */ |
107 | 107 | #define SRP_MAXBLOCKSIZE 16 |
108 | 108 | /* Size limit of SRP buffer */ |
109 | #define SRP_MAXBUFFERSIZE 2147483643 | |
109 | #define SRP_MAXBUFFERSIZE 2147483643UL | |
110 | 110 | |
111 | 111 | #define DEFAULT_MDA "SHA-1" |
112 | 112 |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
17 | 17 | #include <arpa/inet.h> |
18 | 18 | #include <netdb.h> |
19 | 19 | |
20 | #include <sasl/sasl.h> | |
21 | ||
20 | #include <sasl.h> | |
21 | ||
22 | 22 | #define SUCCESS 0 |
23 | 23 | #define ERROR 1 |
24 | 24 |
4 | 4 | LTLIBOBJS = @LTLIBOBJS@ |
5 | 5 | LTLIBOBJS_FULL = $(addprefix ${top_srcdir}/lib/,${LTLIBOBJS}) |
6 | 6 | CRYPTO_COMPAT_OBJS = $(top_builddir)/common/libcrypto_compat.la |
7 | if AUTH_SASLDB | |
7 | 8 | LIBSASLDB_OBJS = $(top_builddir)/sasldb/libsasldb.la |
9 | else | |
10 | LIBSASLDB_OBJS = | |
11 | endif | |
8 | 12 | |
9 | 13 | saslauthd_SOURCES = mechanisms.c globals.h \ |
10 | 14 | mechanisms.h auth_dce.c auth_dce.h auth_getpwent.c \ |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
121 | 121 | krbtf.$(OBJEXT) utils.$(OBJEXT) ipc_unix.$(OBJEXT) \ |
122 | 122 | ipc_doors.$(OBJEXT) saslauthd-main.$(OBJEXT) md5.$(OBJEXT) |
123 | 123 | saslauthd_OBJECTS = $(am_saslauthd_OBJECTS) |
124 | @AUTH_SASLDB_TRUE@am__DEPENDENCIES_1 = \ | |
125 | @AUTH_SASLDB_TRUE@ $(top_builddir)/sasldb/libsasldb.la | |
124 | 126 | AM_V_lt = $(am__v_lt_@AM_V@) |
125 | 127 | am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
126 | 128 | am__v_lt_0 = --silent |
385 | 387 | AUTOMAKE_OPTIONS = 1.7 |
386 | 388 | LTLIBOBJS_FULL = $(addprefix ${top_srcdir}/lib/,${LTLIBOBJS}) |
387 | 389 | CRYPTO_COMPAT_OBJS = $(top_builddir)/common/libcrypto_compat.la |
388 | LIBSASLDB_OBJS = $(top_builddir)/sasldb/libsasldb.la | |
390 | @AUTH_SASLDB_FALSE@LIBSASLDB_OBJS = | |
391 | @AUTH_SASLDB_TRUE@LIBSASLDB_OBJS = $(top_builddir)/sasldb/libsasldb.la | |
389 | 392 | saslauthd_SOURCES = mechanisms.c globals.h \ |
390 | 393 | mechanisms.h auth_dce.c auth_dce.h auth_getpwent.c \ |
391 | 394 | auth_getpwent.h auth_krb5.c auth_krb5.h auth_krb4.c \ |
380 | 380 | char *do_auth(const char *_login, const char *password, const char *service, const char *realm) { |
381 | 381 | |
382 | 382 | struct cache_result lkup_result; |
383 | char *response; | |
383 | char *response = NULL; | |
384 | 384 | int cached = 0; |
385 | 385 | char login_buff[MAX_LOGIN_REALM_LEN]; |
386 | 386 | char *login; |
437 | 437 | } |
438 | 438 | |
439 | 439 | logger(L_ERR, L_FUNC, "mechanism returned unknown response: %s", auth_mech->name); |
440 | free(response); | |
440 | 441 | response = strdup("NO internal mechanism failure"); |
441 | 442 | |
442 | 443 | return response; |
17 | 17 | |
18 | 18 | [1msaslauthd [22mshould be started from the system boot scripts when going to |
19 | 19 | multi-user mode. When running against a protected authentication database |
20 | (e.g. the shadow mechanism), it must be run as the superuser. | |
20 | (e.g. the shadow mechanism), it must be run as the superuser. Otherwise | |
21 | it is recommended to run daemon unprivileged as saslauth:saslauth, | |
22 | requiring the runtime directory to have root:saslauthd owner. You can do | |
23 | so by following these steps in machines using systemd(1) : | |
24 | ||
25 | 1. create directory [4m/etc/systemd/system/saslauthd.service.d/[0m | |
26 | 2. create file [4m/etc/systemd/system/saslauthd.service.d/user.conf[24m with | |
27 | content | |
28 | ||
29 | [Service] | |
30 | User=saslauth | |
31 | Group=saslauth | |
32 | ||
33 | 3. Reload systemd service file: run “systemctl daemon-reload” | |
21 | 34 | |
22 | 35 | [1mOptions[0m |
23 | 36 | Options named by lower-case letters configure the server itself. |
43 | 43 | database (e.g. the |
44 | 44 | .Li shadow |
45 | 45 | mechanism), |
46 | it must be run as the superuser. | |
46 | it must be run as the superuser. Otherwise it is recommended to run | |
47 | daemon unprivileged as saslauth:saslauth, requiring the runtime directory | |
48 | to have root:saslauthd owner. You can do so by following | |
49 | these steps in machines using | |
50 | .Xr systemd 1 | |
51 | : | |
52 | ||
53 | .Bl -enum -compact | |
54 | .It | |
55 | create directory | |
56 | .Pa /etc/systemd/system/saslauthd.service.d/ | |
57 | .It | |
58 | create file | |
59 | .Pa /etc/systemd/system/saslauthd.service.d/user.conf | |
60 | with content | |
61 | .Bd -literal | |
62 | [Service] | |
63 | User=saslauth | |
64 | Group=saslauth | |
65 | ||
66 | .Ed | |
67 | .It | |
68 | Reload systemd service file: run | |
69 | .Dq systemctl daemon-reload | |
70 | .El | |
47 | 71 | .Ss Options |
48 | 72 | Options named by lower\-case letters configure the server itself. |
49 | 73 | Upper\-case options control the behavior of specific authentication |
80 | 80 | int dump_stat_info = 0; |
81 | 81 | char *file = NULL; |
82 | 82 | int file_fd; |
83 | int shmid = 0; | |
84 | char shmid_buff[256]; | |
85 | 83 | char cache_magic[64]; |
86 | 84 | struct stat stat_buff; |
87 | 85 | |
136 | 134 | } |
137 | 135 | |
138 | 136 | table_stats = shm_base + 64; |
139 | (char *)table = (char *)table_stats + 128; | |
137 | table = (void *)((char *)table_stats + 128); | |
140 | 138 | |
141 | 139 | if (dump_stat_info == 0 && dump_user_info == 0) |
142 | 140 | dump_stat_info = 1; |
190 | 190 | |
191 | 191 | r = connect(s, (struct sockaddr *) &srvaddr, sizeof(srvaddr)); |
192 | 192 | if (r == -1) { |
193 | close(s); | |
193 | 194 | perror("connect() "); |
194 | 195 | return -1; |
195 | 196 | } |
201 | 202 | iov[0].iov_base = query; |
202 | 203 | |
203 | 204 | if (retry_writev(s, iov, 1) == -1) { |
204 | fprintf(stderr,"write failed\n"); | |
205 | return -1; | |
206 | } | |
205 | close(s); | |
206 | fprintf(stderr,"write failed\n"); | |
207 | return -1; | |
208 | } | |
207 | 209 | } |
208 | 210 | |
209 | 211 | /* |
212 | 214 | * count result |
213 | 215 | */ |
214 | 216 | if (retry_read(s, &count, sizeof(count)) < (int) sizeof(count)) { |
217 | close(s); | |
215 | 218 | fprintf(stderr,"size read failed\n"); |
216 | return -1; | |
219 | return -1; | |
217 | 220 | } |
218 | 221 | |
219 | 222 | count = ntohs(count); |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
111 | 111 | dvalue = dbm_fetch(db, dkey); |
112 | 112 | if (! dvalue.dptr) { |
113 | 113 | utils->seterror(cntxt, SASL_NOLOG, |
114 | "user: %s@%s property: %s not found in sasldb", | |
115 | authid, realm, propName); | |
114 | "user: %s@%s property: %s not found in sasldb %s", | |
115 | authid, realm, propName, path); | |
116 | 116 | result = SASL_NOUSER; |
117 | 117 | goto cleanup; |
118 | 118 | } |
202 | 202 | dvalue.dsize = data_len; |
203 | 203 | if (dbm_store(db, dkey, dvalue, DBM_REPLACE)) { |
204 | 204 | utils->seterror(conn, 0, |
205 | "Couldn't update db"); | |
205 | "Couldn't update record for %s@%s property %s " | |
206 | "in db %s: %s", authid, realm, propName, path, | |
207 | strerror(errno)); | |
206 | 208 | result = SASL_FAIL; |
207 | 209 | } |
208 | 210 | } else { |
209 | 211 | if (dbm_delete(db, dkey)) { |
210 | 212 | utils->seterror(conn, 0, |
211 | "Couldn't update db"); | |
213 | "Couldn't delete record for %s@%s property %s " | |
214 | "in db %s: %s", authid, realm, propName, path, | |
215 | strerror(errno)); | |
212 | 216 | result = SASL_NOUSER; |
213 | 217 | } |
214 | 218 | } |
0 | # Makefile.in generated by automake 1.15 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.15.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | # Copyright (C) 1994-2014 Free Software Foundation, Inc. | |
3 | # Copyright (C) 1994-2017 Free Software Foundation, Inc. | |
4 | 4 | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
286 | 286 | } else { |
287 | 287 | /* This is suboptimal, but works */ |
288 | 288 | new_list = malloc (strlen(*list_of_mechs) + strlen(m->plug->mech_name) + 2); |
289 | if (new_list == NULL) { | |
290 | return; | |
291 | } | |
289 | 292 | sprintf (new_list, "%s %s", *list_of_mechs, m->plug->mech_name); |
290 | 293 | free (*list_of_mechs); |
291 | 294 | *list_of_mechs = new_list; |
314 | 317 | } else { |
315 | 318 | /* This is suboptimal, but works */ |
316 | 319 | new_list = malloc (strlen(*list_of_mechs) + strlen(m->plug->mech_name) + 2); |
320 | if (new_list == NULL) { | |
321 | return; | |
322 | } | |
317 | 323 | sprintf (new_list, "%s %s", *list_of_mechs, m->plug->mech_name); |
318 | 324 | free (*list_of_mechs); |
319 | 325 | *list_of_mechs = new_list; |
341 | 347 | } else { |
342 | 348 | /* This is suboptimal, but works */ |
343 | 349 | new_list = malloc (strlen(*list_of_mechs) + strlen(m->name) + 2); |
350 | if (new_list == NULL) { | |
351 | return; | |
352 | } | |
344 | 353 | sprintf (new_list, "%s %s", *list_of_mechs, m->name); |
345 | 354 | free (*list_of_mechs); |
346 | 355 | *list_of_mechs = new_list; |
264 | 264 | int c; |
265 | 265 | char *userid; |
266 | 266 | char *password = NULL; |
267 | char *verify; | |
267 | char *verify = NULL; | |
268 | 268 | unsigned passlen = 0; |
269 | 269 | unsigned verifylen; |
270 | 270 | const char *errstr = NULL; |
405 | 405 | &verifylen); |
406 | 406 | if (passlen != verifylen |
407 | 407 | || memcmp(password, verify, verifylen)) { |
408 | free(verify); | |
409 | free(password); | |
408 | 410 | fprintf(stderr, "%s: passwords don't match; aborting\n", |
409 | 411 | progname); |
410 | 412 | exit(-(SASL_BADPARAM)); |
411 | 413 | } |
414 | free(verify); | |
412 | 415 | } |
413 | 416 | } |
414 | 417 |