xref: /illumos-gate/usr/src/lib/libsasl/README (revision 7c478bd9)
1*7c478bd9Sstevel@tonic-gate#
2*7c478bd9Sstevel@tonic-gate# Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
3*7c478bd9Sstevel@tonic-gate# Use is subject to license terms.
4*7c478bd9Sstevel@tonic-gate#
5*7c478bd9Sstevel@tonic-gate# ident	"%Z%%M%	%I%	%E% SMI"
6*7c478bd9Sstevel@tonic-gate#
7*7c478bd9Sstevel@tonic-gate# lib/libsasl/README
8*7c478bd9Sstevel@tonic-gate#
9*7c478bd9Sstevel@tonic-gate
10*7c478bd9Sstevel@tonic-gatelibsasl and its plugins is based on the Project Cyrus open source libsasl
11*7c478bd9Sstevel@tonic-gate	http://asg.web.cmu.edu/sasl
12*7c478bd9Sstevel@tonic-gate
13*7c478bd9Sstevel@tonic-gateAdditionally, the SunONE consolidation maintains libsasl also based on
14*7c478bd9Sstevel@tonic-gatethe Project Cyrus open source libsasl. Inevitibly, these code bases will
15*7c478bd9Sstevel@tonic-gatego their separate ways. In order to assist with resynchronization, some
16*7c478bd9Sstevel@tonic-gateconventions are used. The version of the Cyrus libsasl code base that
17*7c478bd9Sstevel@tonic-gatehas most recently been synched with can be found in <sasl/sasl.h> -
18*7c478bd9Sstevel@tonic-gate<SASL_VERSION_MAJOR>.<SASL_VERSION_MINOR>.<SASL_VERSION_STEP>.
19*7c478bd9Sstevel@tonic-gate
20*7c478bd9Sstevel@tonic-gateFor changes that are particular to the Solaris code base, the
21*7c478bd9Sstevel@tonic-gateconditional _INTEGRATED_SOLARIS_ is used.  For other Sun generated
22*7c478bd9Sstevel@tonic-gatechange from the Project Cyrus code base common to both SunONE and
23*7c478bd9Sstevel@tonic-gateSolaris, the conditional _SUN_SDK_ is used.  Both of these are defined
24*7c478bd9Sstevel@tonic-gatein include/config.h.  Additionally, the Cyrus code base is not cstyle or
25*7c478bd9Sstevel@tonic-gatelint-clean except where noted.
26*7c478bd9Sstevel@tonic-gate
27*7c478bd9Sstevel@tonic-gateThe public header files <sasl/sasl.h>, <sasl/saslplug.h>, <sasl/saslutil.h>
28*7c478bd9Sstevel@tonic-gateand <sasl/prop.h> are the exception. These are both hdrchk and cstyle clean
29*7c478bd9Sstevel@tonic-gateand do not use the above conditional lablels.
30*7c478bd9Sstevel@tonic-gate
31*7c478bd9Sstevel@tonic-gateAny changes in this code base are additive. This will ease merging changes
32*7c478bd9Sstevel@tonic-gateto and from other code bases. One unfortunate side effect is that this
33*7c478bd9Sstevel@tonic-gateintroduces many conditional compile blocks.
34*7c478bd9Sstevel@tonic-gate
35*7c478bd9Sstevel@tonic-gateYou will notice that there will be reference to other platforms that Solaris
36*7c478bd9Sstevel@tonic-gatein this code. This is due to the open source roots of the code. This is
37*7c478bd9Sstevel@tonic-gatealso retained to ease merges.
38*7c478bd9Sstevel@tonic-gate
39*7c478bd9Sstevel@tonic-gateFor globalization, it should be noted that there are three classes of strings
40*7c478bd9Sstevel@tonic-gatethat need to be i18n'ed. The first are the error strings returned by
41*7c478bd9Sstevel@tonic-gatesasl_errstring(), the second are the strings returned by sasl_errdetail(),
42*7c478bd9Sstevel@tonic-gateand third are the prompts returned to the client in sasl_interact_t or
43*7c478bd9Sstevel@tonic-gatein sasl_chalprompt_t. The error strings returned by sasl_errdetail() are
44*7c478bd9Sstevel@tonic-gategenerated by calls to sasl_seterror() or the sasl_utils_t seterror().
45*7c478bd9Sstevel@tonic-gateIt should be noted that libsasl requires better support from Solaris to
46*7c478bd9Sstevel@tonic-gatebe able to support multiple different locales on different threads.
47*7c478bd9Sstevel@tonic-gate
48*7c478bd9Sstevel@tonic-gateOn the other hand, the logged messages should not be i18n'ed.
49*7c478bd9Sstevel@tonic-gate
50*7c478bd9Sstevel@tonic-gateNote that some public functions in the Cyrus distribution are not included
51*7c478bd9Sstevel@tonic-gatein the Solaris libsasl API: sasl_mkchal(), sasl_randcreate(), sasl_randfree(),
52*7c478bd9Sstevel@tonic-gatesasl_randseed(), sasl_rand(), and sasl_churn(). These functions are used
53*7c478bd9Sstevel@tonic-gatein sasl_util_t as part of the SPI.
54*7c478bd9Sstevel@tonic-gate
55*7c478bd9Sstevel@tonic-gateinclude/config.h was originally generated by autoconfiguration tools, but
56*7c478bd9Sstevel@tonic-gatehas customized to contain both autoconfiguration information and additional
57*7c478bd9Sstevel@tonic-gatelibrary specific defines such as _INTEGRATE_SOLARIS_ and _SUN_SDK_.
58