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