--- /dev/null
+ SecureTransport notes
+ 14 Feb 2002 dmitch
+
+-- Server-side cert usage and configuration is highly application dependent.
+
+ -- Although the use of server-initiated key exchange is optional under
+ the SSL3 spec, Netscape browsers (4.61 through 4.75) will not tolerate
+ this operation unless an exportable cipher is selected. The current
+ configuration of the library will attempt to perform server-initiated
+ key exchange if and only if the app has specified an encryption
+ certificate via SSLSetEncryptionCertificate(). Thus, in a config
+ which is required to work with Netscape browsers, if non-export
+ (i.e., strong) ciphers are to be supported, encryption certs
+ must NOT be specified, and the server cert specified in SSLSetCertificate()
+ must be capable of both signing and encryption. This applies to the underlying
+ keys as well.
+
+ -- On top of that, even in a situation where Netscape will allow a server-
+ initiated key exchange (export cipher, app specifies both kinds of certs),
+ Netscape will abort if the *signing-only* cert (specified in
+ SSLSetCertificate()) is not capable of encryption! In this case that cert
+ is never even used for encryption. But that is the real world.
+
+ Thus, to work with Netscape browsers with export-grade ciphers, the main
+ signing cert still has to be capable of encryption, even if the app specifies
+ a separate encryption cert.
+
+ -- The SSL_SERVER_KEYEXCH_HACK flag, in sslBuildFlags.h, was previously used
+ to work around the above-mentioned Netscape bug; when this flag is true,
+ server-initiated key exchange is only performed if an encrypting cert is
+ specified AND an export-grade cipher is selected. The current config has
+ this flag set false.
+
+ -- SSL2 server-side operation requires the presence of a cert and key which is
+ capable of encryption (not signing). One cert, specified in SSLSetCertificate(),
+ can support both SSL2 and SSL3 if and only if it is capable of both signing
+ and encryption.
+
+-- Server mode operation with IE is fully functional and reliable. There is a
+ bug in IE which is worked around in SSLEncodeServerHello(), in hdskhelo.c.
+ See comments there. Tested with IE 5.0 on OS 9 and 5.1.3 on OS X.
+
+-- Server untested with Windows clients.
+
+