summaryrefslogtreecommitdiff
path: root/usr/src/common/openssl/README.SUNW
blob: e7246baf588f091e316abe048e73453c57a2532b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#
# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident	"%Z%%M%	%I%	%E% SMI"

The version of OpenSSL found in this directory was created by taking the
stock version of OpenSSL 0.9.8a from www.openssl.org and modifying some of
the files to conform to Sun standards.  

This work is based on previous work done on stock version of OpenSSL 0.9.7d
shipped with Solaris 10.

===================
Configure options
===================

Below are the options and the targets given to the Configure script.

To build shared objects,

    ./Configure \
	no-ec \
	no-ecdh \
	no-ecdsa \
	no-rc3 \
	no-rc5 \
	no-mdc2 \
	no-idea \
	no-hw_cswift \
	no-hw_ncipher \
	no-hw_atalla \
	no-hw_nuron \
	no-hw_ubsec \
	no-hw_aep \
	no-hw_sureware \
	no-hw_4758-cca \
	no-hw_chil \
	no-hw_gmp \
	threads \
	shared \
	$TARGET

, where TARGET is one of the three, depending on the target architecture:

    solaris-sparcv8-cc (sparc)
    solaris64-sparcv9-cc (sparcv9)
    solaris-x86-cc (i386)


For libcrypto.a and libssl.a used by wanboot,

    ./Configure \
	no-aes \
	no-cast \
	no-dso \
	no-ec \
	no-ecdh \
	no-ecdsa \
	no-mdc2 \
	no-rc3 \
	no-rc4 \
	no-rc5 \
	no-ripemd \
	no-idea \
	no-hw \
	no-threads \
	solaris64-sparcv9-cc


===============================================
The files differ from the original distribution
===============================================

The following files are different from the OpenSSL 0.9.8a release.

1. This header file is generated by Configure.  We combined four versions of 
   this file generated by four runs of Configure.

	crypto/opensslconf.h

2. Due to import restrictions of several countries we limit the use of
   symetric keys over 128 bits. The user needs to add SUNWcry to take advantage
   of full key length. The following files are modified for this purpose.
   Added code is surrounded by "#ifdef CRYPTO_UNLIMITED".

	crypto/bf/bf_skey.c
	crypto/evp/c_allc.c
	crypto/evp/e_aes.c
	crypto/evp/e_bf.c
	crypto/evp/e_old.c
	crypto/evp/e_rc4.c
	crypto/rc4/rc4_skey.c
	crypto/aes/aes_core.c
	ssl/ssl_ciph.c
	ssl/ssl_algs.c
	ssl/ssl.h

3. Solaris OpenSSL supports PKCS#11 engine.
   This code may go back to the open-source community in the future.

   The following files were created.

	crypto/engine/hw_pk11_err.h
	crypto/engine/hw_pk11.c
	crypto/engine/hw_pk11_err.c
	crypto/engine/hw_pk11_pub.c

   The following files were modified.

	crypto/engine/engine.h


4. The openssl command was modified to let the user know the needs of 
   a package SUNWcry when it is not installed.
   Added code is surrounded by "#ifdef SOLARIS_OPENSSL".

	apps/gendsa.c
	apps/genrsa.c
	apps/pkcs12.c
	apps/smime.c
	apps/speed.c

   Also, a new file was added.
	crypto/sunw.c


5. These files were modified to load the PKCS#11 engine.
   Added code is surrounded by "#ifdef SOLARIS_OPENSSL".

	crypto/engine/eng_cnf.c
	crypto/engine/hw_pk11.c


6. We have a special case where OpenSSL is used by the "wanboot" binary
   program, that is run to boot the wanboot client.
   The following files are modified for this purpose.  Added code is 
   surrounded by "#ifdef _BOOT".

	crypto/opensslconf.h
	crypto/err/err_all.c
	crypto/evp/evp_key.c
	crypto/rand/rand_unix.c
	crypto/rand/randfile.c
	crypto/x509v3/v3_utl.c
	e_os.h


7. The configuration file was modified to ship with Solaris defaults.

	$SRC/cmd/openssl/openssl.cnf
	(Note: apps/openssl.cnf is unused.)


8. Two files were added for a clean ON build even though the OpenSSL
   code itself is not subject to lint checks.

	crypto/llib-lcrypto
	ssl/llib-lssl

9. And, finally, this file was added.

	README.SUNW