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