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