Compare commits
358 Commits
SSLeay_0_9
...
OpenSSL_0_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8af354d449 | ||
|
|
36108adbb8 | ||
|
|
f5904406d0 | ||
|
|
6e9f108dd7 | ||
|
|
72e442a3a6 | ||
|
|
74355a3554 | ||
|
|
eee591a466 | ||
|
|
738769ff43 | ||
|
|
4109b97c4b | ||
|
|
e42263c226 | ||
|
|
8b8839ba88 | ||
|
|
4f0a2bce80 | ||
|
|
e98b5b58a0 | ||
|
|
d56128f014 | ||
|
|
5ea177cfbc | ||
|
|
b4cadc6e13 | ||
|
|
0f423567a7 | ||
|
|
f4f2fe40e8 | ||
|
|
afb2306346 | ||
|
|
e2e044faa1 | ||
|
|
0b415fb0ed | ||
|
|
199d59e5a1 | ||
|
|
b29524c15b | ||
|
|
b4899bb1fa | ||
|
|
2a04d1e453 | ||
|
|
999e5715f2 | ||
|
|
29c0fccba8 | ||
|
|
463dc742ff | ||
|
|
cadf126b99 | ||
|
|
bc420ac592 | ||
|
|
abd4c91527 | ||
|
|
47c389e7cc | ||
|
|
7e37e72a3d | ||
|
|
637691e6b4 | ||
|
|
381380206b | ||
|
|
035eb85d2f | ||
|
|
f11f8d580e | ||
|
|
defba77f39 | ||
|
|
83ec54b40d | ||
|
|
e476f4256a | ||
|
|
047f1a4466 | ||
|
|
38ef9a0c70 | ||
|
|
15542b2847 | ||
|
|
b241fefd98 | ||
|
|
cbb7792613 | ||
|
|
5d11adc8af | ||
|
|
d4d2f98c59 | ||
|
|
0cc395796b | ||
|
|
6420b77fec | ||
|
|
6e0642407d | ||
|
|
86fd166eeb | ||
|
|
cdb8115660 | ||
|
|
6b50354041 | ||
|
|
d10f052be5 | ||
|
|
5a0611297b | ||
|
|
54d9976c79 | ||
|
|
c0e538e117 | ||
|
|
84107e6ca8 | ||
|
|
9ea0e64de7 | ||
|
|
a5e035b54a | ||
|
|
1f0f37b0a4 | ||
|
|
dd56626ecc | ||
|
|
efadf60f9c | ||
|
|
26a0846fc1 | ||
|
|
05dc84b82b | ||
|
|
7d3ce7ba37 | ||
|
|
cba5068d10 | ||
|
|
f2595f5402 | ||
|
|
1756d405cc | ||
|
|
116e315303 | ||
|
|
bc3482442a | ||
|
|
a49034aba9 | ||
|
|
03e20a1a44 | ||
|
|
3eb0ed6d91 | ||
|
|
6242bb9c63 | ||
|
|
63493c7b06 | ||
|
|
f415fa3243 | ||
|
|
dfca822f79 | ||
|
|
2c6ccde1f7 | ||
|
|
3b52c2e715 | ||
|
|
1c308226fe | ||
|
|
0b903ec018 | ||
|
|
0de6fd7361 | ||
|
|
bb8f3c5879 | ||
|
|
988788f697 | ||
|
|
f9b2e53052 | ||
|
|
79a474e8f2 | ||
|
|
924acc5451 | ||
|
|
d00b7aad5a | ||
|
|
9985bed331 | ||
|
|
789285aa96 | ||
|
|
a06c602e6f | ||
|
|
8d697db1d0 | ||
|
|
06c6849124 | ||
|
|
726bae3f0f | ||
|
|
eb90a483ad | ||
|
|
49bc262459 | ||
|
|
b4f10a7e92 | ||
|
|
4f43d0e71f | ||
|
|
1efa9c33c0 | ||
|
|
74d7abc2ab | ||
|
|
c707fb2741 | ||
|
|
aa2b6baf4f | ||
|
|
7283ecea22 | ||
|
|
754048577b | ||
|
|
090db4f475 | ||
|
|
15d21c2df4 | ||
|
|
ea14a91f64 | ||
|
|
4b8f2ce648 | ||
|
|
90a52cecaf | ||
|
|
def9f43151 | ||
|
|
8aef252bf4 | ||
|
|
4f9b306ca7 | ||
|
|
74cc3698bd | ||
|
|
a4ed5532a8 | ||
|
|
1b3b0a54d1 | ||
|
|
7be304acdb | ||
|
|
6b313a7365 | ||
|
|
1745a3fb9f | ||
|
|
55ab3bf7f9 | ||
|
|
15799403ad | ||
|
|
3a1daca9ef | ||
|
|
f2f351ce9c | ||
|
|
04fa4cb721 | ||
|
|
a43aa73e3b | ||
|
|
0849d13811 | ||
|
|
e527ba09a6 | ||
|
|
60e31c3a4b | ||
|
|
a040ea8251 | ||
|
|
06ab81f9f7 | ||
|
|
abf87f79f7 | ||
|
|
deff75b634 | ||
|
|
0c8a1281d0 | ||
|
|
189b6a6062 | ||
|
|
aa066b9e6e | ||
|
|
a67a9694f7 | ||
|
|
57c86f79bb | ||
|
|
4004dbb7f6 | ||
|
|
c74f1eb9bd | ||
|
|
ee5425d97d | ||
|
|
0ca5f8b15c | ||
|
|
6b056c414d | ||
|
|
0be9747b39 | ||
|
|
3d8accc3ae | ||
|
|
a49498969e | ||
|
|
d08d8da432 | ||
|
|
413c4f45ed | ||
|
|
a8236c8c32 | ||
|
|
1750ebcba9 | ||
|
|
5236efdbf5 | ||
|
|
388ff0b076 | ||
|
|
6013fa8395 | ||
|
|
e3577ba07b | ||
|
|
5c00879ef0 | ||
|
|
9becf66621 | ||
|
|
e2d795cb96 | ||
|
|
08853ba82d | ||
|
|
c09c3c4b2f | ||
|
|
4e31df2cd7 | ||
|
|
e4119b9311 | ||
|
|
4a71b90deb | ||
|
|
436d318c80 | ||
|
|
be560e7b67 | ||
|
|
9151d39645 | ||
|
|
0628728556 | ||
|
|
65b8ca07a5 | ||
|
|
55a9cc6e47 | ||
|
|
3773d138ce | ||
|
|
4a16967b45 | ||
|
|
c91531d9fe | ||
|
|
d5083e0142 | ||
|
|
8073036dd6 | ||
|
|
0517335e3c | ||
|
|
483fdf1883 | ||
|
|
155d7a0e1d | ||
|
|
2c2cba0d13 | ||
|
|
df16c60842 | ||
|
|
175b0942ec | ||
|
|
c45beb91b3 | ||
|
|
bf5dcd135f | ||
|
|
119f62881a | ||
|
|
bceacf938f | ||
|
|
068197a70c | ||
|
|
6457ad15a8 | ||
|
|
643aaa1979 | ||
|
|
142fcca8ca | ||
|
|
ebbfd76c69 | ||
|
|
547ff5e6a9 | ||
|
|
7ec218eb4a | ||
|
|
9f7646da25 | ||
|
|
29d2824788 | ||
|
|
c106c6132c | ||
|
|
a83d7d1491 | ||
|
|
6ccec43933 | ||
|
|
72b35c4a26 | ||
|
|
f614496cfb | ||
|
|
df0af1a7d8 | ||
|
|
9b3086fe38 | ||
|
|
d433f9014e | ||
|
|
351d899878 | ||
|
|
5810a5f4c7 | ||
|
|
058bf5596b | ||
|
|
b621d77258 | ||
|
|
d1f4c83ce5 | ||
|
|
bc2646ef11 | ||
|
|
a96e7810e2 | ||
|
|
679ab7c39e | ||
|
|
f33fbc2e1e | ||
|
|
59ff713462 | ||
|
|
ae3d365f99 | ||
|
|
31df0990a1 | ||
|
|
5f0451daa2 | ||
|
|
4c441f30bb | ||
|
|
fc8c1a5c67 | ||
|
|
154adc8963 | ||
|
|
e04a6c2b35 | ||
|
|
0172f988c7 | ||
|
|
79dfa97555 | ||
|
|
9fe84296a4 | ||
|
|
288cb84fb4 | ||
|
|
7ae01d4adc | ||
|
|
b6cff93dcf | ||
|
|
a0a5407901 | ||
|
|
8938272b32 | ||
|
|
92c046cac0 | ||
|
|
a27598bf7e | ||
|
|
b2347661ce | ||
|
|
fd9d35f56e | ||
|
|
f3d2e56bb3 | ||
|
|
8a5222113b | ||
|
|
a224de3f5d | ||
|
|
f317aa4c9c | ||
|
|
d0cc3d3460 | ||
|
|
9535d20282 | ||
|
|
41c62a8e56 | ||
|
|
834eeef995 | ||
|
|
9aeaf1b4a7 | ||
|
|
69d1dfba24 | ||
|
|
1bbd21eec5 | ||
|
|
9b5cc156f3 | ||
|
|
6f93539970 | ||
|
|
8039257dbc | ||
|
|
b13a155492 | ||
|
|
fdc71eccec | ||
|
|
6c8abdd744 | ||
|
|
4a66b7e0b2 | ||
|
|
690ad20a0f | ||
|
|
649cdb7be9 | ||
|
|
fdd3b64215 | ||
|
|
dabba1104b | ||
|
|
f9e6fac357 | ||
|
|
512d222830 | ||
|
|
2c1ef383ae | ||
|
|
f6aed2cda6 | ||
|
|
c3ae9a4851 | ||
|
|
f06b01eb62 | ||
|
|
da10692aa2 | ||
|
|
f7ba298480 | ||
|
|
207ccf628d | ||
|
|
cd3916c40f | ||
|
|
ee13f9b165 | ||
|
|
27eb622b78 | ||
|
|
2d723902a0 | ||
|
|
a6801a91cd | ||
|
|
1933485b60 | ||
|
|
50acf46b92 | ||
|
|
7f9b7b074d | ||
|
|
cf6dcfec97 | ||
|
|
e03ddfae7e | ||
|
|
6fa89f94c4 | ||
|
|
c13d4799dd | ||
|
|
bc4deee07a | ||
|
|
5b00115ab0 | ||
|
|
f8c3c05db9 | ||
|
|
384c479c85 | ||
|
|
ad65ce755e | ||
|
|
e416ad9772 | ||
|
|
4a18cddd16 | ||
|
|
bb65e20b1c | ||
|
|
b5e406f755 | ||
|
|
888007108b | ||
|
|
10061c7c47 | ||
|
|
cb0f35d716 | ||
|
|
8a8d8ededd | ||
|
|
4c7b481b4c | ||
|
|
098fc2c0d8 | ||
|
|
cfcf645356 | ||
|
|
cdbb8c2f26 | ||
|
|
c2245b68f5 | ||
|
|
288370ea26 | ||
|
|
2ec077d87e | ||
|
|
c142bdf725 | ||
|
|
c9f06e7f9f | ||
|
|
724e095e76 | ||
|
|
794b9c8f50 | ||
|
|
251f25e0b5 | ||
|
|
e170a5c050 | ||
|
|
06d5b16225 | ||
|
|
0491b70983 | ||
|
|
c35f549e8b | ||
|
|
ebc828cad9 | ||
|
|
96e479e360 | ||
|
|
a472dde430 | ||
|
|
68a8a41bef | ||
|
|
79e259e3ce | ||
|
|
56ee3117a5 | ||
|
|
8f3e97bac3 | ||
|
|
f7ceceb518 | ||
|
|
6063b27bb6 | ||
|
|
c77f1b37fd | ||
|
|
c54b4ee16a | ||
|
|
c1374a7dc0 | ||
|
|
a6f20a1e01 | ||
|
|
9f28c57cea | ||
|
|
fcc6c7199b | ||
|
|
9cb0969f65 | ||
|
|
792a90020f | ||
|
|
e9b8eb3155 | ||
|
|
88fce97953 | ||
|
|
ce72df1c6a | ||
|
|
db1842132f | ||
|
|
0c106d75e3 | ||
|
|
d97b4dd866 | ||
|
|
75b8dfc068 | ||
|
|
1b4559977e | ||
|
|
9b21f59103 | ||
|
|
4098e89cbf | ||
|
|
03f8b04277 | ||
|
|
cb496082f8 | ||
|
|
f2d4be3b84 | ||
|
|
8d7ed6ff90 | ||
|
|
29c7896f13 | ||
|
|
448cb8b56f | ||
|
|
11ee069b91 | ||
|
|
9228157c07 | ||
|
|
5dcdcd475c | ||
|
|
1641cb6043 | ||
|
|
bb258c1c5e | ||
|
|
ae82b46ffb | ||
|
|
320a14cb5b | ||
|
|
f10a5c2a96 | ||
|
|
9ce5db45be | ||
|
|
457c8a3965 | ||
|
|
5f32680329 | ||
|
|
9acc2aa6d1 | ||
|
|
f1c236f849 | ||
|
|
f92e687e17 | ||
|
|
305f402e75 | ||
|
|
c537fb08cd | ||
|
|
13e91dd365 | ||
|
|
8c6c8d80b7 | ||
|
|
651d0aff98 | ||
|
|
31b8d86844 | ||
|
|
7dfb0b774e | ||
|
|
78414a6a89 | ||
|
|
eda1f21f1a | ||
|
|
b7896b3cb8 | ||
|
|
90718ac527 |
1
.cvsignore
Normal file
1
.cvsignore
Normal file
@@ -0,0 +1 @@
|
||||
Makefile.ssl
|
||||
833
CHANGES
Normal file
833
CHANGES
Normal file
@@ -0,0 +1,833 @@
|
||||
|
||||
OpenSSL CHANGES
|
||||
_______________
|
||||
|
||||
|
||||
Changes between 0.9.1c and 0.9.2b
|
||||
|
||||
*) Make SSL_get_peer_cert_chain() work in servers. Unfortunately, it still
|
||||
doesn't work when the session is reused. Coming soon!
|
||||
[Ben Laurie]
|
||||
|
||||
*) Fix a security hole, that allows sessions to be reused in the wrong
|
||||
context thus bypassing client cert protection! All software that uses
|
||||
client certs and session caches in multiple contexts NEEDS PATCHING to
|
||||
allow session reuse! A fuller solution is in the works.
|
||||
[Ben Laurie, problem pointed out by Holger Reif, Bodo Moeller (and ???)]
|
||||
|
||||
*) Some more source tree cleanups (removed obsolete files
|
||||
crypto/bf/asm/bf586.pl, test/test.txt and crypto/sha/asm/f.s; changed
|
||||
permission on "config" script to be executable) and a fix for the INSTALL
|
||||
document.
|
||||
[Ulf Moeller <ulf@fitug.de>]
|
||||
|
||||
*) Remove some legacy and erroneous uses of malloc, free instead of
|
||||
Malloc, Free.
|
||||
[Lennart Bang <lob@netstream.se>, with minor changes by Steve]
|
||||
|
||||
*) Make rsa_oaep_test return non-zero on error.
|
||||
[Ulf Moeller <ulf@fitug.de>]
|
||||
|
||||
*) Add support for native Solaris shared libraries. Configure
|
||||
solaris-sparc-sc4-pic, make, then run shlib/solaris-sc4.sh. It'd be nice
|
||||
if someone would make that last step automatic.
|
||||
[Matthias Loepfe <Matthias.Loepfe@AdNovum.CH>]
|
||||
|
||||
*) ctx_size was not built with the right compiler during "make links". Fixed.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Change the meaning of 'ALL' in the cipher list. It now means "everything
|
||||
except NULL ciphers". This means the default cipher list will no longer
|
||||
enable NULL ciphers. They need to be specifically enabled e.g. with
|
||||
the string "DEFAULT:eNULL".
|
||||
[Steve Henson]
|
||||
|
||||
*) Fix to RSA private encryption routines: if p < q then it would
|
||||
occasionally produce an invalid result. This will only happen with
|
||||
externally generated keys because OpenSSL (and SSLeay) ensure p > q.
|
||||
[Steve Henson]
|
||||
|
||||
*) Be less restrictive and allow also `perl util/perlpath.pl
|
||||
/path/to/bin/perl' in addition to `perl util/perlpath.pl /path/to/bin',
|
||||
because this way one can also use an interpreter named `perl5' (which is
|
||||
usually the name of Perl 5.xxx on platforms where an Perl 4.x is still
|
||||
installed as `perl').
|
||||
[Matthias Loepfe <Matthias.Loepfe@adnovum.ch>]
|
||||
|
||||
*) Let util/clean-depend.pl work also with older Perl 5.00x versions.
|
||||
[Matthias Loepfe <Matthias.Loepfe@adnovum.ch>]
|
||||
|
||||
*) Fix Makefile.org so CC,CFLAG etc are passed to 'make links' add
|
||||
advapi32.lib to Win32 build and change the pem test comparision
|
||||
to fc.exe (thanks to Ulrich Kroener <kroneru@yahoo.com> for the
|
||||
suggestion). Fix misplaced ASNI prototypes and declarations in evp.h
|
||||
and crypto/des/ede_cbcm_enc.c.
|
||||
[Steve Henson]
|
||||
|
||||
*) DES quad checksum was broken on big-endian architectures. Fixed.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Comment out two functions in bio.h that aren't implemented. Fix up the
|
||||
Win32 test batch file so it (might) work again. The Win32 test batch file
|
||||
is horrible: I feel ill....
|
||||
[Steve Henson]
|
||||
|
||||
*) Move various #ifdefs around so NO_SYSLOG, NO_DIRENT etc are now selected
|
||||
in e_os.h. Audit of header files to check ANSI and non ANSI
|
||||
sections: 10 functions were absent from non ANSI section and not exported
|
||||
from Windows DLLs. Fixed up libeay.num for new functions.
|
||||
[Steve Henson]
|
||||
|
||||
*) Make `openssl version' output lines consistent.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Fix Win32 symbol export lists for BIO functions: Added
|
||||
BIO_get_ex_new_index, BIO_get_ex_num, BIO_get_ex_data and BIO_set_ex_data
|
||||
to ms/libeay{16,32}.def.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Second round of fixing the OpenSSL perl/ stuff. It now at least compiled
|
||||
fine under Unix and passes some trivial tests I've now added. But the
|
||||
whole stuff is horribly incomplete, so a README.1ST with a disclaimer was
|
||||
added to make sure no one expects that this stuff really works in the
|
||||
OpenSSL 0.9.2 release. Additionally I've started to clean the XS sources
|
||||
up and fixed a few little bugs and inconsistencies in OpenSSL.{pm,xs} and
|
||||
openssl_bio.xs.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Fix the generation of two part addresses in perl.
|
||||
[Kenji Miyake <kenji@miyake.org>, integrated by Ben Laurie]
|
||||
|
||||
*) Add config entry for Linux on MIPS.
|
||||
[John Tobey <jtobey@channel1.com>]
|
||||
|
||||
*) Make links whenever Configure is run, unless we are on Windoze.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Permit extensions to be added to CRLs using crl_section in openssl.cnf.
|
||||
Currently only issuerAltName and AuthorityKeyIdentifier make any sense
|
||||
in CRLs.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add a useful kludge to allow package maintainers to specify compiler and
|
||||
other platforms details on the command line without having to patch the
|
||||
Configure script everytime: One now can use ``perl Configure
|
||||
<id>:<details>'', i.e. platform ids are allowed to have details appended
|
||||
to them (seperated by colons). This is treated as there would be a static
|
||||
pre-configured entry in Configure's %table under key <id> with value
|
||||
<details> and ``perl Configure <id>'' is called. So, when you want to
|
||||
perform a quick test-compile under FreeBSD 3.1 with pgcc and without
|
||||
assembler stuff you can use ``perl Configure "FreeBSD-elf:pgcc:-O6:::"''
|
||||
now, which overrides the FreeBSD-elf entry on-the-fly.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Disable new TLS1 ciphersuites by default: they aren't official yet.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Allow DSO flags like -fpic, -fPIC, -KPIC etc. to be specified
|
||||
on the `perl Configure ...' command line. This way one can compile
|
||||
OpenSSL libraries with Position Independent Code (PIC) which is needed
|
||||
for linking it into DSOs.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Remarkably, export ciphers were totally broken and no-one had noticed!
|
||||
Fixed.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Cleaned up the LICENSE document: The official contact for any license
|
||||
questions now is the OpenSSL core team under openssl-core@openssl.org.
|
||||
And add a paragraph about the dual-license situation to make sure people
|
||||
recognize that _BOTH_ the OpenSSL license _AND_ the SSLeay license apply
|
||||
to the OpenSSL toolkit.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) General source tree makefile cleanups: Made `making xxx in yyy...'
|
||||
display consistent in the source tree and replaced `/bin/rm' by `rm'.
|
||||
Additonally cleaned up the `make links' target: Remove unnecessary
|
||||
semicolons, subsequent redundant removes, inline point.sh into mklink.sh
|
||||
to speed processing and no longer clutter the display with confusing
|
||||
stuff. Instead only the actually done links are displayed.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Permit null encryption ciphersuites, used for authentication only. It used
|
||||
to be necessary to set the preprocessor define SSL_ALLOW_ENULL to do this.
|
||||
It is now necessary to set SSL_FORBID_ENULL to prevent the use of null
|
||||
encryption.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Add a bunch of fixes to the PKCS#7 stuff. It used to sometimes reorder
|
||||
signed attributes when verifying signatures (this would break them),
|
||||
the detached data encoding was wrong and public keys obtained using
|
||||
X509_get_pubkey() weren't freed.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add text documentation for the BUFFER functions. Also added a work around
|
||||
to a Win95 console bug. This was triggered by the password read stuff: the
|
||||
last character typed gets carried over to the next fread(). If you were
|
||||
generating a new cert request using 'req' for example then the last
|
||||
character of the passphrase would be CR which would then enter the first
|
||||
field as blank.
|
||||
[Steve Henson]
|
||||
|
||||
*) Added the new `Includes OpenSSL Cryptography Software' button as
|
||||
doc/openssl_button.{gif,html} which is similar in style to the old SSLeay
|
||||
button and can be used by applications based on OpenSSL to show the
|
||||
relationship to the OpenSSL project.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Remove confusing variables in function signatures in files
|
||||
ssl/ssl_lib.c and ssl/ssl.h.
|
||||
[Lennart Bong <lob@kulthea.stacken.kth.se>]
|
||||
|
||||
*) Don't install bss_file.c under PREFIX/include/
|
||||
[Lennart Bong <lob@kulthea.stacken.kth.se>]
|
||||
|
||||
*) Get the Win32 compile working again. Modify mkdef.pl so it can handle
|
||||
functions that return function pointers and has support for NT specific
|
||||
stuff. Fix mk1mf.pl and VC-32.pl to support NT differences also. Various
|
||||
#ifdef WIN32 and WINNTs sprinkled about the place and some changes from
|
||||
unsigned to signed types: this was killing the Win32 compile.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add new certificate file to stack functions,
|
||||
SSL_add_dir_cert_subjects_to_stack() and
|
||||
SSL_add_file_cert_subjects_to_stack(). These largely supplant
|
||||
SSL_load_client_CA_file(), and can be used to add multiple certs easily
|
||||
to a stack (usually this is then handed to SSL_CTX_set_client_CA_list()).
|
||||
This means that Apache-SSL and similar packages don't have to mess around
|
||||
to add as many CAs as they want to the preferred list.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Experiment with doxygen documentation. Currently only partially applied to
|
||||
ssl/ssl_lib.c.
|
||||
See http://www.stack.nl/~dimitri/doxygen/index.html, and run doxygen with
|
||||
openssl.doxy as the configuration file.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Get rid of remaining C++-style comments which strict C compilers hate.
|
||||
[Ralf S. Engelschall, pointed out by Carlos Amengual]
|
||||
|
||||
*) Changed BN_RECURSION in bn_mont.c to BN_RECURSION_MONT so it is not
|
||||
compiled in by default: it has problems with large keys.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add a bunch of SSL_xxx() functions for configuring the temporary RSA and
|
||||
DH private keys and/or callback functions which directly correspond to
|
||||
their SSL_CTX_xxx() counterparts but work on a per-connection basis. This
|
||||
is needed for applications which have to configure certificates on a
|
||||
per-connection basis (e.g. Apache+mod_ssl) instead of a per-context basis
|
||||
(e.g. s_server).
|
||||
For the RSA certificate situation is makes no difference, but
|
||||
for the DSA certificate situation this fixes the "no shared cipher"
|
||||
problem where the OpenSSL cipher selection procedure failed because the
|
||||
temporary keys were not overtaken from the context and the API provided
|
||||
no way to reconfigure them.
|
||||
The new functions now let applications reconfigure the stuff and they
|
||||
are in detail: SSL_need_tmp_RSA, SSL_set_tmp_rsa, SSL_set_tmp_dh,
|
||||
SSL_set_tmp_rsa_callback and SSL_set_tmp_dh_callback. Additionally a new
|
||||
non-public-API function ssl_cert_instantiate() is used as a helper
|
||||
function and also to reduce code redundancy inside ssl_rsa.c.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Move s_server -dcert and -dkey options out of the undocumented feature
|
||||
area because they are useful for the DSA situation and should be
|
||||
recognized by the users.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Fix the cipher decision scheme for export ciphers: the export bits are
|
||||
*not* within SSL_MKEY_MASK or SSL_AUTH_MASK, they are within
|
||||
SSL_EXP_MASK. So, the original variable has to be used instead of the
|
||||
already masked variable.
|
||||
[Richard Levitte <levitte@stacken.kth.se>]
|
||||
|
||||
*) Fix 'port' variable from `int' to `unsigned int' in crypto/bio/b_sock.c
|
||||
[Richard Levitte <levitte@stacken.kth.se>]
|
||||
|
||||
*) Change type of another md_len variable in pk7_doit.c:PKCS7_dataFinal()
|
||||
from `int' to `unsigned int' because it's a length and initialized by
|
||||
EVP_DigestFinal() which expects an `unsigned int *'.
|
||||
[Richard Levitte <levitte@stacken.kth.se>]
|
||||
|
||||
*) Don't hard-code path to Perl interpreter on shebang line of Configure
|
||||
script. Instead use the usual Shell->Perl transition trick.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Make `openssl x509 -noout -modulus' functional also for DSA certificates
|
||||
(in addition to RSA certificates) to match the behaviour of `openssl dsa
|
||||
-noout -modulus' as it's already the case for `openssl rsa -noout
|
||||
-modulus'. For RSA the -modulus is the real "modulus" while for DSA
|
||||
currently the public key is printed (a decision which was already done by
|
||||
`openssl dsa -modulus' in the past) which serves a similar purpose.
|
||||
Additionally the NO_RSA no longer completely removes the whole -modulus
|
||||
option; it now only avoids using the RSA stuff. Same applies to NO_DSA
|
||||
now, too.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Add Arne Ansper's reliable BIO - this is an encrypted, block-digested
|
||||
BIO. See the source (crypto/evp/bio_ok.c) for more info.
|
||||
[Arne Ansper <arne@ats.cyber.ee>]
|
||||
|
||||
*) Dump the old yucky req code that tried (and failed) to allow raw OIDs
|
||||
to be added. Now both 'req' and 'ca' can use new objects defined in the
|
||||
config file.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add cool BIO that does syslog (or event log on NT).
|
||||
[Arne Ansper <arne@ats.cyber.ee>, integrated by Ben Laurie]
|
||||
|
||||
*) Add support for new TLS ciphersuites, TLS_RSA_EXPORT56_WITH_RC4_56_MD5,
|
||||
TLS_RSA_EXPORT56_WITH_RC2_CBC_56_MD5 and
|
||||
TLS_RSA_EXPORT56_WITH_DES_CBC_SHA, as specified in "56-bit Export Cipher
|
||||
Suites For TLS", draft-ietf-tls-56-bit-ciphersuites-00.txt.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Add preliminary config info for new extension code.
|
||||
[Steve Henson]
|
||||
|
||||
*) Make RSA_NO_PADDING really use no padding.
|
||||
[Ulf Moeller <ulf@fitug.de>]
|
||||
|
||||
*) Generate errors when private/public key check is done.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Overhaul for 'crl' utility. New function X509_CRL_print. Partial support
|
||||
for some CRL extensions and new objects added.
|
||||
[Steve Henson]
|
||||
|
||||
*) Really fix the ASN1 IMPLICIT bug this time... Partial support for private
|
||||
key usage extension and fuller support for authority key id.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add OAEP encryption for the OpenSSL crypto library. OAEP is the improved
|
||||
padding method for RSA, which is recommended for new applications in PKCS
|
||||
#1 v2.0 (RFC 2437, October 1998).
|
||||
OAEP (Optimal Asymmetric Encryption Padding) has better theoretical
|
||||
foundations than the ad-hoc padding used in PKCS #1 v1.5. It is secure
|
||||
against Bleichbacher's attack on RSA.
|
||||
[Ulf Moeller <ulf@fitug.de>, reformatted, corrected and integrated by
|
||||
Ben Laurie]
|
||||
|
||||
*) Updates to the new SSL compression code
|
||||
[Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]
|
||||
|
||||
*) Fix so that the version number in the master secret, when passed
|
||||
via RSA, checks that if TLS was proposed, but we roll back to SSLv3
|
||||
(because the server will not accept higher), that the version number
|
||||
is 0x03,0x01, not 0x03,0x00
|
||||
[Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]
|
||||
|
||||
*) Run extensive memory leak checks on SSL apps. Fixed *lots* of memory
|
||||
leaks in ssl/ relating to new X509_get_pubkey() behaviour. Also fixes
|
||||
in apps/ and an unrelated leak in crypto/dsa/dsa_vrf.c
|
||||
[Steve Henson]
|
||||
|
||||
*) Support for RAW extensions where an arbitrary extension can be
|
||||
created by including its DER encoding. See apps/openssl.cnf for
|
||||
an example.
|
||||
[Steve Henson]
|
||||
|
||||
*) Make sure latest Perl versions don't interpret some generated C array
|
||||
code as Perl array code in the crypto/err/err_genc.pl script.
|
||||
[Lars Weber <3weber@informatik.uni-hamburg.de>]
|
||||
|
||||
*) Modify ms/do_ms.bat to not generate assembly language makefiles since
|
||||
not many people have the assembler. Various Win32 compilation fixes and
|
||||
update to the INSTALL.W32 file with (hopefully) more accurate Win32
|
||||
build instructions.
|
||||
[Steve Henson]
|
||||
|
||||
*) Modify configure script 'Configure' to automatically create crypto/date.h
|
||||
file under Win32 and also build pem.h from pem.org. New script
|
||||
util/mkfiles.pl to create the MINFO file on environments that can't do a
|
||||
'make files': perl util/mkfiles.pl >MINFO should work.
|
||||
[Steve Henson]
|
||||
|
||||
*) Major rework of DES function declarations, in the pursuit of correctness
|
||||
and purity. As a result, many evil casts evaporated, and some weirdness,
|
||||
too. You may find this causes warnings in your code. Zapping your evil
|
||||
casts will probably fix them. Mostly.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Fix for a typo in asn1.h. Bug fix to object creation script
|
||||
obj_dat.pl. It considered a zero in an object definition to mean
|
||||
"end of object": none of the objects in objects.h have any zeros
|
||||
so it wasn't spotted.
|
||||
[Steve Henson, reported by Erwann ABALEA <eabalea@certplus.com>]
|
||||
|
||||
*) Add support for Triple DES Cipher Block Chaining with Output Feedback
|
||||
Masking (CBCM). In the absence of test vectors, the best I have been able
|
||||
to do is check that the decrypt undoes the encrypt, so far. Send me test
|
||||
vectors if you have them.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Correct calculation of key length for export ciphers (too much space was
|
||||
allocated for null ciphers). This has not been tested!
|
||||
[Ben Laurie]
|
||||
|
||||
*) Modifications to the mkdef.pl for Win32 DEF file creation. The usage
|
||||
message is now correct (it understands "crypto" and "ssl" on its
|
||||
command line). There is also now an "update" option. This will update
|
||||
the util/ssleay.num and util/libeay.num files with any new functions.
|
||||
If you do a:
|
||||
perl util/mkdef.pl crypto ssl update
|
||||
it will update them.
|
||||
[Steve Henson]
|
||||
|
||||
*) Overhauled the Perl interface (perl/*):
|
||||
- ported BN stuff to OpenSSL's different BN library
|
||||
- made the perl/ source tree CVS-aware
|
||||
- renamed the package from SSLeay to OpenSSL (the files still contain
|
||||
their history because I've copied them in the repository)
|
||||
- removed obsolete files (the test scripts will be replaced
|
||||
by better Test::Harness variants in the future)
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) First cut for a very conservative source tree cleanup:
|
||||
1. merge various obsolete readme texts into doc/ssleay.txt
|
||||
where we collect the old documents and readme texts.
|
||||
2. remove the first part of files where I'm already sure that we no
|
||||
longer need them because of three reasons: either they are just temporary
|
||||
files which were left by Eric or they are preserved original files where
|
||||
I've verified that the diff is also available in the CVS via "cvs diff
|
||||
-rSSLeay_0_8_1b" or they were renamed (as it was definitely the case for
|
||||
the crypto/md/ stuff).
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) More extension code. Incomplete support for subject and issuer alt
|
||||
name, issuer and authority key id. Change the i2v function parameters
|
||||
and add an extra 'crl' parameter in the X509V3_CTX structure: guess
|
||||
what that's for :-) Fix to ASN1 macro which messed up
|
||||
IMPLICIT tag and add f_enum.c which adds a2i, i2a for ENUMERATED.
|
||||
[Steve Henson]
|
||||
|
||||
*) Preliminary support for ENUMERATED type. This is largely copied from the
|
||||
INTEGER code.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add new function, EVP_MD_CTX_copy() to replace frequent use of memcpy.
|
||||
[Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]
|
||||
|
||||
*) Make sure `make rehash' target really finds the `openssl' program.
|
||||
[Ralf S. Engelschall, Matthias Loepfe <Matthias.Loepfe@adnovum.ch>]
|
||||
|
||||
*) Squeeze another 7% of speed out of MD5 assembler, at least on a P2. I'd
|
||||
like to hear about it if this slows down other processors.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Add CygWin32 platform information to Configure script.
|
||||
[Alan Batie <batie@aahz.jf.intel.com>]
|
||||
|
||||
*) Fixed ms/32all.bat script: `no_asm' -> `no-asm'
|
||||
[Rainer W. Gerling <gerling@mpg-gv.mpg.de>]
|
||||
|
||||
*) New program nseq to manipulate netscape certificate sequences
|
||||
[Steve Henson]
|
||||
|
||||
*) Modify crl2pkcs7 so it supports multiple -certfile arguments. Fix a
|
||||
few typos.
|
||||
[Steve Henson]
|
||||
|
||||
*) Fixes to BN code. Previously the default was to define BN_RECURSION
|
||||
but the BN code had some problems that would cause failures when
|
||||
doing certificate verification and some other functions.
|
||||
[Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]
|
||||
|
||||
*) Add ASN1 and PEM code to support netscape certificate sequences.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add ASN1 and PEM code to support netscape certificate sequences.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add several PKIX and private extended key usage OIDs.
|
||||
[Steve Henson]
|
||||
|
||||
*) Modify the 'ca' program to handle the new extension code. Modify
|
||||
openssl.cnf for new extension format, add comments.
|
||||
[Steve Henson]
|
||||
|
||||
*) More X509 V3 changes. Fix typo in v3_bitstr.c. Add support to 'req'
|
||||
and add a sample to openssl.cnf so req -x509 now adds appropriate
|
||||
CA extensions.
|
||||
[Steve Henson]
|
||||
|
||||
*) Continued X509 V3 changes. Add to other makefiles, integrate with the
|
||||
error code, add initial support to X509_print() and x509 application.
|
||||
[Steve Henson]
|
||||
|
||||
*) Takes a deep breath and start addding X509 V3 extension support code. Add
|
||||
files in crypto/x509v3. Move original stuff to crypto/x509v3/old. All this
|
||||
stuff is currently isolated and isn't even compiled yet.
|
||||
[Steve Henson]
|
||||
|
||||
*) Continuing patches for GeneralizedTime. Fix up certificate and CRL
|
||||
ASN1 to use ASN1_TIME and modify print routines to use ASN1_TIME_print.
|
||||
Removed the versions check from X509 routines when loading extensions:
|
||||
this allows certain broken certificates that don't set the version
|
||||
properly to be processed.
|
||||
[Steve Henson]
|
||||
|
||||
*) Deal with irritating shit to do with dependencies, in YAAHW (Yet Another
|
||||
Ad Hoc Way) - Makefile.ssls now all contain local dependencies, which
|
||||
can still be regenerated with "make depend".
|
||||
[Ben Laurie]
|
||||
|
||||
*) Spelling mistake in C version of CAST-128.
|
||||
[Ben Laurie, reported by Jeremy Hylton <jeremy@cnri.reston.va.us>]
|
||||
|
||||
*) Changes to the error generation code. The perl script err-code.pl
|
||||
now reads in the old error codes and retains the old numbers, only
|
||||
adding new ones if necessary. It also only changes the .err files if new
|
||||
codes are added. The makefiles have been modified to only insert errors
|
||||
when needed (to avoid needlessly modifying header files). This is done
|
||||
by only inserting errors if the .err file is newer than the auto generated
|
||||
C file. To rebuild all the error codes from scratch (the old behaviour)
|
||||
either modify crypto/Makefile.ssl to pass the -regen flag to err_code.pl
|
||||
or delete all the .err files.
|
||||
[Steve Henson]
|
||||
|
||||
*) CAST-128 was incorrectly implemented for short keys. The C version has
|
||||
been fixed, but is untested. The assembler versions are also fixed, but
|
||||
new assembler HAS NOT BEEN GENERATED FOR WIN32 - the Makefile needs fixing
|
||||
to regenerate it if needed.
|
||||
[Ben Laurie, reported (with fix for C version) by Jun-ichiro itojun
|
||||
Hagino <itojun@kame.net>]
|
||||
|
||||
*) File was opened incorrectly in randfile.c.
|
||||
[Ulf M<>ller <ulf@fitug.de>]
|
||||
|
||||
*) Beginning of support for GeneralizedTime. d2i, i2d, check and print
|
||||
functions. Also ASN1_TIME suite which is a CHOICE of UTCTime or
|
||||
GeneralizedTime. ASN1_TIME is the proper type used in certificates et
|
||||
al: it's just almost always a UTCTime. Note this patch adds new error
|
||||
codes so do a "make errors" if there are problems.
|
||||
[Steve Henson]
|
||||
|
||||
*) Correct Linux 1 recognition in config.
|
||||
[Ulf M<>ller <ulf@fitug.de>]
|
||||
|
||||
*) Remove pointless MD5 hash when using DSA keys in ca.
|
||||
[Anonymous <nobody@replay.com>]
|
||||
|
||||
*) Generate an error if given an empty string as a cert directory. Also
|
||||
generate an error if handed NULL (previously returned 0 to indicate an
|
||||
error, but didn't set one).
|
||||
[Ben Laurie, reported by Anonymous <nobody@replay.com>]
|
||||
|
||||
*) Add prototypes to SSL methods. Make SSL_write's buffer const, at last.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Fix the dummy function BN_ref_mod_exp() in rsaref.c to have the correct
|
||||
parameters. This was causing a warning which killed off the Win32 compile.
|
||||
[Steve Henson]
|
||||
|
||||
*) Remove C++ style comments from crypto/bn/bn_local.h.
|
||||
[Neil Costigan <neil.costigan@celocom.com>]
|
||||
|
||||
*) The function OBJ_txt2nid was broken. It was supposed to return a nid
|
||||
based on a text string, looking up short and long names and finally
|
||||
"dot" format. The "dot" format stuff didn't work. Added new function
|
||||
OBJ_txt2obj to do the same but return an ASN1_OBJECT and rewrote
|
||||
OBJ_txt2nid to use it. OBJ_txt2obj can also return objects even if the
|
||||
OID is not part of the table.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add prototypes to X509 lookup/verify methods, fixing a bug in
|
||||
X509_LOOKUP_by_alias().
|
||||
[Ben Laurie]
|
||||
|
||||
*) Sort openssl functions by name.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Get the gendsa program working (hopefully) and add it to app list. Remove
|
||||
encryption from sample DSA keys (in case anyone is interested the password
|
||||
was "1234").
|
||||
[Steve Henson]
|
||||
|
||||
*) Make _all_ *_free functions accept a NULL pointer.
|
||||
[Frans Heymans <fheymans@isaserver.be>]
|
||||
|
||||
*) If a DH key is generated in s3_srvr.c, don't blow it by trying to use
|
||||
NULL pointers.
|
||||
[Anonymous <nobody@replay.com>]
|
||||
|
||||
*) s_server should send the CAfile as acceptable CAs, not its own cert.
|
||||
[Bodo Moeller <3moeller@informatik.uni-hamburg.de>]
|
||||
|
||||
*) Don't blow it for numeric -newkey arguments to apps/req.
|
||||
[Bodo Moeller <3moeller@informatik.uni-hamburg.de>]
|
||||
|
||||
*) Temp key "for export" tests were wrong in s3_srvr.c.
|
||||
[Anonymous <nobody@replay.com>]
|
||||
|
||||
*) Add prototype for temp key callback functions
|
||||
SSL_CTX_set_tmp_{rsa,dh}_callback().
|
||||
[Ben Laurie]
|
||||
|
||||
*) Make DH_free() tolerate being passed a NULL pointer (like RSA_free() and
|
||||
DSA_free()). Make X509_PUBKEY_set() check for errors in d2i_PublicKey().
|
||||
[Steve Henson]
|
||||
|
||||
*) X509_name_add_entry() freed the wrong thing after an error.
|
||||
[Arne Ansper <arne@ats.cyber.ee>]
|
||||
|
||||
*) rsa_eay.c would attempt to free a NULL context.
|
||||
[Arne Ansper <arne@ats.cyber.ee>]
|
||||
|
||||
*) BIO_s_socket() had a broken should_retry() on Windoze.
|
||||
[Arne Ansper <arne@ats.cyber.ee>]
|
||||
|
||||
*) BIO_f_buffer() didn't pass on BIO_CTRL_FLUSH.
|
||||
[Arne Ansper <arne@ats.cyber.ee>]
|
||||
|
||||
*) Make sure the already existing X509_STORE->depth variable is initialized
|
||||
in X509_STORE_new(), but document the fact that this variable is still
|
||||
unused in the certificate verification process.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Fix the various library and apps files to free up pkeys obtained from
|
||||
X509_PUBKEY_get() et al. Also allow x509.c to handle netscape extensions.
|
||||
[Steve Henson]
|
||||
|
||||
*) Fix reference counting in X509_PUBKEY_get(). This makes
|
||||
demos/maurice/example2.c work, amongst others, probably.
|
||||
[Steve Henson and Ben Laurie]
|
||||
|
||||
*) First cut of a cleanup for apps/. First the `ssleay' program is now named
|
||||
`openssl' and second, the shortcut symlinks for the `openssl <command>'
|
||||
are no longer created. This way we have a single and consistent command
|
||||
line interface `openssl <command>', similar to `cvs <command>'.
|
||||
[Ralf S. Engelschall, Paul Sutton and Ben Laurie]
|
||||
|
||||
*) ca.c: move test for DSA keys inside #ifndef NO_DSA. Make pubkey
|
||||
BIT STRING wrapper always have zero unused bits.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add CA.pl, perl version of CA.sh, add extended key usage OID.
|
||||
[Steve Henson]
|
||||
|
||||
*) Make the top-level INSTALL documentation easier to understand.
|
||||
[Paul Sutton]
|
||||
|
||||
*) Makefiles updated to exit if an error occurs in a sub-directory
|
||||
make (including if user presses ^C) [Paul Sutton]
|
||||
|
||||
*) Make Montgomery context stuff explicit in RSA data structure.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Fix build order of pem and err to allow for generated pem.h.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Fix renumbering bug in X509_NAME_delete_entry().
|
||||
[Ben Laurie]
|
||||
|
||||
*) Enhanced the err-ins.pl script so it makes the error library number
|
||||
global and can add a library name. This is needed for external ASN1 and
|
||||
other error libraries.
|
||||
[Steve Henson]
|
||||
|
||||
*) Fixed sk_insert which never worked properly.
|
||||
[Steve Henson]
|
||||
|
||||
*) Fix ASN1 macros so they can handle indefinite length construted
|
||||
EXPLICIT tags. Some non standard certificates use these: they can now
|
||||
be read in.
|
||||
[Steve Henson]
|
||||
|
||||
*) Merged the various old/obsolete SSLeay documentation files (doc/xxx.doc)
|
||||
into a single doc/ssleay.txt bundle. This way the information is still
|
||||
preserved but no longer messes up this directory. Now it's new room for
|
||||
the new set of documenation files.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) SETs were incorrectly DER encoded. This was a major pain, because they
|
||||
shared code with SEQUENCEs, which aren't coded the same. This means that
|
||||
almost everything to do with SETs or SEQUENCEs has either changed name or
|
||||
number of arguments.
|
||||
[Ben Laurie, based on a partial fix by GP Jayan <gp@nsj.co.jp>]
|
||||
|
||||
*) Fix test data to work with the above.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Fix the RSA header declarations that hid a bug I fixed in 0.9.0b but
|
||||
was already fixed by Eric for 0.9.1 it seems.
|
||||
[Ben Laurie - pointed out by Ulf M<>ller <ulf@fitug.de>]
|
||||
|
||||
*) Autodetect FreeBSD3.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Fix various bugs in Configure. This affects the following platforms:
|
||||
nextstep
|
||||
ncr-scde
|
||||
unixware-2.0
|
||||
unixware-2.0-pentium
|
||||
sco5-cc.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Eliminate generated files from CVS. Reorder tests to regenerate files
|
||||
before they are needed.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Generate Makefile.ssl from Makefile.org (to keep CVS happy).
|
||||
[Ben Laurie]
|
||||
|
||||
Changes between 0.9.1b and 0.9.1c
|
||||
|
||||
*) Added OPENSSL_VERSION_NUMBER to crypto/crypto.h and
|
||||
changed SSLeay to OpenSSL in version strings.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Some fixups to the top-level documents.
|
||||
[Paul Sutton]
|
||||
|
||||
*) Fixed the nasty bug where rsaref.h was not found under compile-time
|
||||
because the symlink to include/ was missing.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Incorporated the popular no-RSA/DSA-only patches
|
||||
which allow to compile a RSA-free SSLeay.
|
||||
[Andrew Cooke / Interrader Ldt., Ralf S. Engelschall]
|
||||
|
||||
*) Fixed nasty rehash problem under `make -f Makefile.ssl links'
|
||||
when "ssleay" is still not found.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Added more platforms to Configure: Cray T3E, HPUX 11,
|
||||
[Ralf S. Engelschall, Beckmann <beckman@acl.lanl.gov>]
|
||||
|
||||
*) Updated the README file.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Added various .cvsignore files in the CVS repository subdirs
|
||||
to make a "cvs update" really silent.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Recompiled the error-definition header files and added
|
||||
missing symbols to the Win32 linker tables.
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Cleaned up the top-level documents;
|
||||
o new files: CHANGES and LICENSE
|
||||
o merged VERSION, HISTORY* and README* files a CHANGES.SSLeay
|
||||
o merged COPYRIGHT into LICENSE
|
||||
o removed obsolete TODO file
|
||||
o renamed MICROSOFT to INSTALL.W32
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Removed dummy files from the 0.9.1b source tree:
|
||||
crypto/asn1/x crypto/bio/cd crypto/bio/fg crypto/bio/grep crypto/bio/vi
|
||||
crypto/bn/asm/......add.c crypto/bn/asm/a.out crypto/dsa/f crypto/md5/f
|
||||
crypto/pem/gmon.out crypto/perlasm/f crypto/pkcs7/build crypto/rsa/f
|
||||
crypto/sha/asm/f crypto/threads/f ms/zzz ssl/f ssl/f.mak test/f
|
||||
util/f.mak util/pl/f util/pl/f.mak crypto/bf/bf_locl.old apps/f
|
||||
[Ralf S. Engelschall]
|
||||
|
||||
*) Added various platform portability fixes.
|
||||
[Mark J. Cox]
|
||||
|
||||
*) The Genesis of the OpenSSL rpject:
|
||||
We start with the latest (unreleased) SSLeay version 0.9.1b which Eric A.
|
||||
Young and Tim J. Hudson created while they were working for C2Net until
|
||||
summer 1998.
|
||||
[The OpenSSL Project]
|
||||
|
||||
Changes between 0.9.0b and 0.9.1b
|
||||
|
||||
*) Updated a few CA certificates under certs/
|
||||
[Eric A. Young]
|
||||
|
||||
*) Changed some BIGNUM api stuff.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Various platform ports: OpenBSD, Ultrix, IRIX 64bit, NetBSD,
|
||||
DGUX x86, Linux Alpha, etc.
|
||||
[Eric A. Young]
|
||||
|
||||
*) New COMP library [crypto/comp/] for SSL Record Layer Compression:
|
||||
RLE (dummy implemented) and ZLIB (really implemented when ZLIB is
|
||||
available).
|
||||
[Eric A. Young]
|
||||
|
||||
*) Add -strparse option to asn1pars program which parses nested
|
||||
binary structures
|
||||
[Dr Stephen Henson <shenson@bigfoot.com>]
|
||||
|
||||
*) Added "oid_file" to ssleay.cnf for "ca" and "req" programs.
|
||||
[Eric A. Young]
|
||||
|
||||
*) DSA fix for "ca" program.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added "-genkey" option to "dsaparam" program.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added RIPE MD160 (rmd160) message digest.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added -a (all) option to "ssleay version" command.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added PLATFORM define which is the id given to Configure.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added MemCheck_XXXX functions to crypto/mem.c for memory checking.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Extended the ASN.1 parser routines.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Extended BIO routines to support REUSEADDR, seek, tell, etc.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added a BN_CTX to the BN library.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Fixed the weak key values in DES library
|
||||
[Eric A. Young]
|
||||
|
||||
*) Changed API in EVP library for cipher aliases.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added support for RC2/64bit cipher.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Converted the lhash library to the crypto/mem.c functions.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added more recognized ASN.1 object ids.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added more RSA padding checks for SSL/TLS.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added BIO proxy/filter functionality.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added extra_certs to SSL_CTX which can be used
|
||||
send extra CA certificates to the client in the CA cert chain sending
|
||||
process. It can be configured with SSL_CTX_add_extra_chain_cert().
|
||||
[Eric A. Young]
|
||||
|
||||
*) Now Fortezza is denied in the authentication phase because
|
||||
this is key exchange mechanism is not supported by SSLeay at all.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Additional PKCS1 checks.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Support the string "TLSv1" for all TLS v1 ciphers.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Added function SSL_get_ex_data_X509_STORE_CTX_idx() which gives the
|
||||
ex_data index of the SSL context in the X509_STORE_CTX ex_data.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Fixed a few memory leaks.
|
||||
[Eric A. Young]
|
||||
|
||||
*) Fixed various code and comment typos.
|
||||
[Eric A. Young]
|
||||
|
||||
*) A minor bug in ssl/s3_clnt.c where there would always be 4 0
|
||||
bytes sent in the client random.
|
||||
[Edward Bishop <ebishop@spyglass.com>]
|
||||
|
||||
@@ -1,4 +1,529 @@
|
||||
SSLeay 0.6.5
|
||||
This file contains the changes for the SSLeay library up to version
|
||||
0.9.0b. For later changes, see the file "CHANGES".
|
||||
|
||||
SSLeay CHANGES
|
||||
______________
|
||||
|
||||
Changes between 0.8.x and 0.9.0b
|
||||
|
||||
10-Apr-1998
|
||||
|
||||
I said the next version would go out at easter, and so it shall.
|
||||
I expect a 0.9.1 will follow with portability fixes in the next few weeks.
|
||||
|
||||
This is a quick, meet the deadline. Look to ssl-users for comments on what
|
||||
is new etc.
|
||||
|
||||
eric (about to go bushwalking for the 4 day easter break :-)
|
||||
|
||||
16-Mar-98
|
||||
- Patch for Cray T90 from Wayne Schroeder <schroede@SDSC.EDU>
|
||||
- Lots and lots of changes
|
||||
|
||||
29-Jan-98
|
||||
- ASN1_BIT_STRING_set_bit()/ASN1_BIT_STRING_get_bit() from
|
||||
Goetz Babin-Ebell <babinebell@trustcenter.de>.
|
||||
- SSL_version() now returns SSL2_VERSION, SSL3_VERSION or
|
||||
TLS1_VERSION.
|
||||
|
||||
7-Jan-98
|
||||
- Finally reworked the cipher string to ciphers again, so it
|
||||
works correctly
|
||||
- All the app_data stuff is now ex_data with funcion calls to access.
|
||||
The index is supplied by a function and 'methods' can be setup
|
||||
for the types that are called on XXX_new/XXX_free. This lets
|
||||
applications get notified on creation and destruction. Some of
|
||||
the RSA methods could be implemented this way and I may do so.
|
||||
- Oh yes, SSL under perl5 is working at the basic level.
|
||||
|
||||
15-Dec-97
|
||||
- Warning - the gethostbyname cache is not fully thread safe,
|
||||
but it should work well enough.
|
||||
- Major internal reworking of the app_data stuff. More functions
|
||||
but if you were accessing ->app_data directly, things will
|
||||
stop working.
|
||||
- The perlv5 stuff is working. Currently on message digests,
|
||||
ciphers and the bignum library.
|
||||
|
||||
9-Dec-97
|
||||
- Modified re-negotiation so that server initated re-neg
|
||||
will cause a SSL_read() to return -1 should retry.
|
||||
The danger otherwise was that the server and the
|
||||
client could end up both trying to read when using non-blocking
|
||||
sockets.
|
||||
|
||||
4-Dec-97
|
||||
- Lots of small changes
|
||||
- Fix for binaray mode in Windows for the FILE BIO, thanks to
|
||||
Bob Denny <rdenny@dc3.com>
|
||||
|
||||
17-Nov-97
|
||||
- Quite a few internal cleanups, (removal of errno, and using macros
|
||||
defined in e_os.h).
|
||||
- A bug in ca.c, pointed out by yasuyuki-ito@d-cruise.co.jp, where
|
||||
the automactic naming out output files was being stuffed up.
|
||||
|
||||
29-Oct-97
|
||||
- The Cast5 cipher has been added. MD5 and SHA-1 are now in assember
|
||||
for x86.
|
||||
|
||||
21-Oct-97
|
||||
- Fixed a bug in the BIO_gethostbyname() cache.
|
||||
|
||||
15-Oct-97
|
||||
- cbc mode for blowfish/des/3des is now in assember. Blowfish asm
|
||||
has also been improved. At this point in time, on the pentium,
|
||||
md5 is %80 faster, the unoptimesed sha-1 is %79 faster,
|
||||
des-cbc is %28 faster, des-ede3-cbc is %9 faster and blowfish-cbc
|
||||
is %62 faster.
|
||||
|
||||
12-Oct-97
|
||||
- MEM_BUF_grow() has been fixed so that it always sets the buf->length
|
||||
to the value we are 'growing' to. Think of MEM_BUF_grow() as the
|
||||
way to set the length value correctly.
|
||||
|
||||
10-Oct-97
|
||||
- I now hash for certificate lookup on the raw DER encoded RDN (md5).
|
||||
This breaks things again :-(. This is efficent since I cache
|
||||
the DER encoding of the RDN.
|
||||
- The text DN now puts in the numeric OID instead of UNKNOWN.
|
||||
- req can now process arbitary OIDs in the config file.
|
||||
- I've been implementing md5 in x86 asm, much faster :-).
|
||||
- Started sha1 in x86 asm, needs more work.
|
||||
- Quite a few speedups in the BN stuff. RSA public operation
|
||||
has been made faster by caching the BN_MONT_CTX structure.
|
||||
The calulating of the Ai where A*Ai === 1 mod m was rather
|
||||
expensive. Basically a 40-50% speedup on public operations.
|
||||
The RSA speedup is now 15% on pentiums and %20 on pentium
|
||||
pro.
|
||||
|
||||
30-Sep-97
|
||||
- After doing some profiling, I added x86 adm for bn_add_words(),
|
||||
which just adds 2 arrays of longs together. A %10 speedup
|
||||
for 512 and 1024 bit RSA on the pentium pro.
|
||||
|
||||
29-Sep-97
|
||||
- Converted the x86 bignum assembler to us the perl scripts
|
||||
for generation.
|
||||
|
||||
23-Sep-97
|
||||
- If SSL_set_session() is passed a NULL session, it now clears the
|
||||
current session-id.
|
||||
|
||||
22-Sep-97
|
||||
- Added a '-ss_cert file' to apps/ca.c. This will sign selfsigned
|
||||
certificates.
|
||||
- Bug in crypto/evp/encode.c where by decoding of 65 base64
|
||||
encoded lines, one line at a time (via a memory BIO) would report
|
||||
EOF after the first line was decoded.
|
||||
- Fix in X509_find_by_issuer_and_serial() from
|
||||
Dr Stephen Henson <shenson@bigfoot.com>
|
||||
|
||||
19-Sep-97
|
||||
- NO_FP_API and NO_STDIO added.
|
||||
- Put in sh config command. It auto runs Configure with the correct
|
||||
parameters.
|
||||
|
||||
18-Sep-97
|
||||
- Fix x509.c so if a DSA cert has different parameters to its parent,
|
||||
they are left in place. Not tested yet.
|
||||
|
||||
16-Sep-97
|
||||
- ssl_create_cipher_list() had some bugs, fixes from
|
||||
Patrick Eisenacher <eisenach@stud.uni-frankfurt.de>
|
||||
- Fixed a bug in the Base64 BIO, where it would return 1 instead
|
||||
of -1 when end of input was encountered but should retry.
|
||||
Basically a Base64/Memory BIO interaction problem.
|
||||
- Added a HMAC set of functions in preporarion for TLS work.
|
||||
|
||||
15-Sep-97
|
||||
- Top level makefile tweak - Cameron Simpson <cs@zip.com.au>
|
||||
- Prime generation spead up %25 (512 bit prime, pentium pro linux)
|
||||
by using montgomery multiplication in the prime number test.
|
||||
|
||||
11-Sep-97
|
||||
- Ugly bug in ssl3_write_bytes(). Basically if application land
|
||||
does a SSL_write(ssl,buf,len) where len > 16k, the SSLv3 write code
|
||||
did not check the size and tried to copy the entire buffer.
|
||||
This would tend to cause memory overwrites since SSLv3 has
|
||||
a maximum packet size of 16k. If your program uses
|
||||
buffers <= 16k, you would probably never see this problem.
|
||||
- Fixed a new errors that were cause by malloc() not returning
|
||||
0 initialised memory..
|
||||
- SSL_OP_NETSCAPE_CA_DN_BUG was being switched on when using
|
||||
SSL_CTX_set_options(ssl_ctx,SSL_OP_ALL); which was a bad thing
|
||||
since this flags stops SSLeay being able to handle client
|
||||
cert requests correctly.
|
||||
|
||||
08-Sep-97
|
||||
- SSL_SESS_CACHE_NO_INTERNAL_LOOKUP option added. When switched
|
||||
on, the SSL server routines will not use a SSL_SESSION that is
|
||||
held in it's cache. This in intended to be used with the session-id
|
||||
callbacks so that while the session-ids are still stored in the
|
||||
cache, the decision to use them and how to look them up can be
|
||||
done by the callbacks. The are the 'new', 'get' and 'remove'
|
||||
callbacks. This can be used to determine the session-id
|
||||
to use depending on information like which port/host the connection
|
||||
is coming from. Since the are also SSL_SESSION_set_app_data() and
|
||||
SSL_SESSION_get_app_data() functions, the application can hold
|
||||
information against the session-id as well.
|
||||
|
||||
03-Sep-97
|
||||
- Added lookup of CRLs to the by_dir method,
|
||||
X509_load_crl_file() also added. Basically it means you can
|
||||
lookup CRLs via the same system used to lookup certificates.
|
||||
- Changed things so that the X509_NAME structure can contain
|
||||
ASN.1 BIT_STRINGS which is required for the unique
|
||||
identifier OID.
|
||||
- Fixed some problems with the auto flushing of the session-id
|
||||
cache. It was not occuring on the server side.
|
||||
|
||||
02-Sep-97
|
||||
- Added SSL_CTX_sess_cache_size(SSL_CTX *ctx,unsigned long size)
|
||||
which is the maximum number of entries allowed in the
|
||||
session-id cache. This is enforced with a simple FIFO list.
|
||||
The default size is 20*1024 entries which is rather large :-).
|
||||
The Timeout code is still always operating.
|
||||
|
||||
01-Sep-97
|
||||
- Added an argument to all the 'generate private key/prime`
|
||||
callbacks. It is the last parameter so this should not
|
||||
break existing code but it is needed for C++.
|
||||
- Added the BIO_FLAGS_BASE64_NO_NL flag for the BIO_f_base64()
|
||||
BIO. This lets the BIO read and write base64 encoded data
|
||||
without inserting or looking for '\n' characters. The '-A'
|
||||
flag turns this on when using apps/enc.c.
|
||||
- RSA_NO_PADDING added to help BSAFE functionality. This is a
|
||||
very dangerous thing to use, since RSA private key
|
||||
operations without random padding bytes (as PKCS#1 adds) can
|
||||
be attacked such that the private key can be revealed.
|
||||
- ASN.1 bug and rc2-40-cbc and rc4-40 added by
|
||||
Dr Stephen Henson <shenson@bigfoot.com>
|
||||
|
||||
31-Aug-97 (stuff added while I was away)
|
||||
- Linux pthreads by Tim Hudson (tjh@cryptsoft.com).
|
||||
- RSA_flags() added allowing bypass of pub/priv match check
|
||||
in ssl/ssl_rsa.c - Tim Hudson.
|
||||
- A few minor bugs.
|
||||
|
||||
SSLeay 0.8.1 released.
|
||||
|
||||
19-Jul-97
|
||||
- Server side initated dynamic renegotiation is broken. I will fix
|
||||
it when I get back from holidays.
|
||||
|
||||
15-Jul-97
|
||||
- Quite a few small changes.
|
||||
- INVALID_SOCKET usage cleanups from Alex Kiernan <alex@hisoft.co.uk>
|
||||
|
||||
09-Jul-97
|
||||
- Added 2 new values to the SSL info callback.
|
||||
SSL_CB_START which is passed when the SSL protocol is started
|
||||
and SSL_CB_DONE when it has finished sucsessfully.
|
||||
|
||||
08-Jul-97
|
||||
- Fixed a few bugs problems in apps/req.c and crypto/asn1/x_pkey.c
|
||||
that related to DSA public/private keys.
|
||||
- Added all the relevent PEM and normal IO functions to support
|
||||
reading and writing RSAPublic keys.
|
||||
- Changed makefiles to use ${AR} instead of 'ar r'
|
||||
|
||||
07-Jul-97
|
||||
- Error in ERR_remove_state() that would leave a dangling reference
|
||||
to a free()ed location - thanks to Alex Kiernan <alex@hisoft.co.uk>
|
||||
- s_client now prints the X509_NAMEs passed from the server
|
||||
when requesting a client cert.
|
||||
- Added a ssl->type, which is one of SSL_ST_CONNECT or
|
||||
SSL_ST_ACCEPT. I had to add it so I could tell if I was
|
||||
a connect or an accept after the handshake had finished.
|
||||
- SSL_get_client_CA_list(SSL *s) now returns the CA names
|
||||
passed by the server if called by a client side SSL.
|
||||
|
||||
05-Jul-97
|
||||
- Bug in X509_NAME_get_text_by_OBJ(), looking starting at index
|
||||
0, not -1 :-( Fix from Tim Hudson (tjh@cryptsoft.com).
|
||||
|
||||
04-Jul-97
|
||||
- Fixed some things in X509_NAME_add_entry(), thanks to
|
||||
Matthew Donald <matthew@world.net>.
|
||||
- I had a look at the cipher section and though that it was a
|
||||
bit confused, so I've changed it.
|
||||
- I was not setting up the RC4-64-MD5 cipher correctly. It is
|
||||
a MS special that appears in exported MS Money.
|
||||
- Error in all my DH ciphers. Section 7.6.7.3 of the SSLv3
|
||||
spec. I was missing the two byte length header for the
|
||||
ClientDiffieHellmanPublic value. This is a packet sent from
|
||||
the client to the server. The SSL_OP_SSLEAY_080_CLIENT_DH_BUG
|
||||
option will enable SSLeay server side SSLv3 accept either
|
||||
the correct or my 080 packet format.
|
||||
- Fixed a few typos in crypto/pem.org.
|
||||
|
||||
02-Jul-97
|
||||
- Alias mapping for EVP_get_(digest|cipher)byname is now
|
||||
performed before a lookup for actual cipher. This means
|
||||
that an alias can be used to 're-direct' a cipher or a
|
||||
digest.
|
||||
- ASN1_read_bio() had a bug that only showed up when using a
|
||||
memory BIO. When EOF is reached in the memory BIO, it is
|
||||
reported as a -1 with BIO_should_retry() set to true.
|
||||
|
||||
01-Jul-97
|
||||
- Fixed an error in X509_verify_cert() caused by my
|
||||
miss-understanding how 'do { contine } while(0);' works.
|
||||
Thanks to Emil Sit <sit@mit.edu> for educating me :-)
|
||||
|
||||
30-Jun-97
|
||||
- Base64 decoding error. If the last data line did not end with
|
||||
a '=', sometimes extra data would be returned.
|
||||
- Another 'cut and paste' bug in x509.c related to setting up the
|
||||
STDout BIO.
|
||||
|
||||
27-Jun-97
|
||||
- apps/ciphers.c was not printing due to an editing error.
|
||||
- Alex Kiernan <alex@hisoft.co.uk> send in a nice fix for
|
||||
a library build error in util/mk1mf.pl
|
||||
|
||||
26-Jun-97
|
||||
- Still did not have the auto 'experimental' code removal
|
||||
script correct.
|
||||
- A few header tweaks for Watcom 11.0 under Win32 from
|
||||
Rolf Lindemann <Lindemann@maz-hh.de>
|
||||
- 0 length OCTET_STRING bug in asn1_parse
|
||||
- A minor fix with an non-existent function in the MS .def files.
|
||||
- A few changes to the PKCS7 stuff.
|
||||
|
||||
25-Jun-97
|
||||
SSLeay 0.8.0 finally it gets released.
|
||||
|
||||
24-Jun-97
|
||||
Added a SSL_OP_EPHEMERAL_RSA option which causes all SSLv3 RSA keys to
|
||||
use a temporary RSA key. This is experimental and needs some more work.
|
||||
Fixed a few Win16 build problems.
|
||||
|
||||
23-Jun-97
|
||||
SSLv3 bug. I was not doing the 'lookup' of the CERT structure
|
||||
correctly. I was taking the SSL->ctx->default_cert when I should
|
||||
have been using SSL->cert. The bug was in ssl/s3_srvr.c
|
||||
|
||||
20-Jun-97
|
||||
X509_ATTRIBUTES were being encoded wrongly by apps/reg.c and the
|
||||
rest of the library. Even though I had the code required to do
|
||||
it correctly, apps/req.c was doing the wrong thing. I have fixed
|
||||
and tested everything.
|
||||
|
||||
Missing a few #ifdef FIONBIO sections in crypto/bio/bss_acpt.c.
|
||||
|
||||
19-Jun-97
|
||||
Fixed a bug in the SSLv2 server side first packet handling. When
|
||||
using the non-blocking test BIO, the ssl->s2->first_packet flag
|
||||
was being reset when a would-block failure occurred when reading
|
||||
the first 5 bytes of the first packet. This caused the checking
|
||||
logic to run at the wrong time and cause an error.
|
||||
|
||||
Fixed a problem with specifying cipher. If RC4-MD5 were used,
|
||||
only the SSLv3 version would be picked up. Now this will pick
|
||||
up both SSLv2 and SSLv3 versions. This required changing the
|
||||
SSL_CIPHER->mask values so that they only mask the ciphers,
|
||||
digests, authentication, export type and key-exchange algorithms.
|
||||
|
||||
I found that when a SSLv23 session is established, a reused
|
||||
session, of type SSLv3 was attempting to write the SSLv2
|
||||
ciphers, which were invalid. The SSL_METHOD->put_cipher_by_char
|
||||
method has been modified so it will only write out cipher which
|
||||
that method knows about.
|
||||
|
||||
|
||||
Changes between 0.8.0 and 0.8.1
|
||||
|
||||
*) Mostly bug fixes.
|
||||
There is an Ephemeral DH cipher problem which is fixed.
|
||||
|
||||
SSLeay 0.8.0
|
||||
|
||||
This version of SSLeay has quite a lot of things different from the
|
||||
previous version.
|
||||
|
||||
Basically check all callback parameters, I will be producing documentation
|
||||
about how to use things in th future. Currently I'm just getting 080 out
|
||||
the door. Please not that there are several ways to do everything, and
|
||||
most of the applications in the apps directory are hybrids, some using old
|
||||
methods and some using new methods.
|
||||
|
||||
Have a look in demos/bio for some very simple programs and
|
||||
apps/s_client.c and apps/s_server.c for some more advanced versions.
|
||||
Notes are definitly needed but they are a week or so away.
|
||||
|
||||
Anyway, some quick nots from Tim Hudson (tjh@cryptsoft.com)
|
||||
---
|
||||
Quick porting notes for moving from SSLeay-0.6.x to SSLeay-0.8.x to
|
||||
get those people that want to move to using the new code base off to
|
||||
a quick start.
|
||||
|
||||
Note that Eric has tidied up a lot of the areas of the API that were
|
||||
less than desirable and renamed quite a few things (as he had to break
|
||||
the API in lots of places anyrate). There are a whole pile of additional
|
||||
functions for making dealing with (and creating) certificates a lot
|
||||
cleaner.
|
||||
|
||||
01-Jul-97
|
||||
Tim Hudson
|
||||
tjh@cryptsoft.com
|
||||
|
||||
---8<---
|
||||
|
||||
To maintain code that uses both SSLeay-0.6.x and SSLeay-0.8.x you could
|
||||
use something like the following (assuming you #include "crypto.h" which
|
||||
is something that you really should be doing).
|
||||
|
||||
#if SSLEAY_VERSION_NUMBER >= 0x0800
|
||||
#define SSLEAY8
|
||||
#endif
|
||||
|
||||
buffer.h -> splits into buffer.h and bio.h so you need to include bio.h
|
||||
too if you are working with BIO internal stuff (as distinct
|
||||
from simply using the interface in an opaque manner)
|
||||
|
||||
#include "bio.h" - required along with "buffer.h" if you write
|
||||
your own BIO routines as the buffer and bio
|
||||
stuff that was intermixed has been separated
|
||||
out
|
||||
|
||||
envelope.h -> evp.h (which should have been done ages ago)
|
||||
|
||||
Initialisation ... don't forget these or you end up with code that
|
||||
is missing the bits required to do useful things (like ciphers):
|
||||
|
||||
SSLeay_add_ssl_algorithms()
|
||||
(probably also want SSL_load_error_strings() too but you should have
|
||||
already had that call in place)
|
||||
|
||||
SSL_CTX_new() - requires an extra method parameter
|
||||
SSL_CTX_new(SSLv23_method())
|
||||
SSL_CTX_new(SSLv2_method())
|
||||
SSL_CTX_new(SSLv3_method())
|
||||
|
||||
OR to only have the server or the client code
|
||||
SSL_CTX_new(SSLv23_server_method())
|
||||
SSL_CTX_new(SSLv2_server_method())
|
||||
SSL_CTX_new(SSLv3_server_method())
|
||||
or
|
||||
SSL_CTX_new(SSLv23_client_method())
|
||||
SSL_CTX_new(SSLv2_client_method())
|
||||
SSL_CTX_new(SSLv3_client_method())
|
||||
|
||||
SSL_set_default_verify_paths() ... renamed to the more appropriate
|
||||
SSL_CTX_set_default_verify_paths()
|
||||
|
||||
If you want to use client certificates then you have to add in a bit
|
||||
of extra stuff in that a SSLv3 server sends a list of those CAs that
|
||||
it will accept certificates from ... so you have to provide a list to
|
||||
SSLeay otherwise certain browsers will not send client certs.
|
||||
|
||||
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(s_cert_file));
|
||||
|
||||
|
||||
X509_NAME_oneline(X) -> X509_NAME_oneline(X,NULL,0)
|
||||
or provide a buffer and size to copy the
|
||||
result into
|
||||
|
||||
X509_add_cert -> X509_STORE_add_cert (and you might want to read the
|
||||
notes on X509_NAME structure changes too)
|
||||
|
||||
|
||||
VERIFICATION CODE
|
||||
=================
|
||||
|
||||
The codes have all be renamed from VERIFY_ERR_* to X509_V_ERR_* to
|
||||
more accurately reflect things.
|
||||
|
||||
The verification callback args are now packaged differently so that
|
||||
extra fields for verification can be added easily in future without
|
||||
having to break things by adding extra parameters each release :-)
|
||||
|
||||
X509_cert_verify_error_string -> X509_verify_cert_error_string
|
||||
|
||||
|
||||
BIO INTERNALS
|
||||
=============
|
||||
|
||||
Eric has fixed things so that extra flags can be introduced in
|
||||
the BIO layer in future without having to play with all the BIO
|
||||
modules by adding in some macros.
|
||||
|
||||
The ugly stuff using
|
||||
b->flags ~= (BIO_FLAGS_RW|BIO_FLAGS_SHOULD_RETRY)
|
||||
becomes
|
||||
BIO_clear_retry_flags(b)
|
||||
|
||||
b->flags |= (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)
|
||||
becomes
|
||||
BIO_set_retry_read(b)
|
||||
|
||||
Also ... BIO_get_retry_flags(b), BIO_set_flags(b)
|
||||
|
||||
|
||||
|
||||
OTHER THINGS
|
||||
============
|
||||
|
||||
X509_NAME has been altered so that it isn't just a STACK ... the STACK
|
||||
is now in the "entries" field ... and there are a pile of nice functions
|
||||
for getting at the details in a much cleaner manner.
|
||||
|
||||
SSL_CTX has been altered ... "cert" is no longer a direct member of this
|
||||
structure ... things are now down under "cert_store" (see x509_vfy.h) and
|
||||
things are no longer in a CERTIFICATE_CTX but instead in a X509_STORE.
|
||||
If your code "knows" about this level of detail then it will need some
|
||||
surgery.
|
||||
|
||||
If you depending on the incorrect spelling of a number of the error codes
|
||||
then you will have to change your code as these have been fixed.
|
||||
|
||||
ENV_CIPHER "type" got renamed to "nid" and as that is what it actually
|
||||
has been all along so this makes things clearer.
|
||||
ify_cert_error_string(ctx->error));
|
||||
|
||||
SSL_R_NO_CIPHER_WE_TRUST -> SSL_R_NO_CIPHER_LIST
|
||||
and SSL_R_REUSE_CIPHER_LIST_NOT_ZERO
|
||||
|
||||
|
||||
|
||||
Changes between 0.7.x and 0.8.0
|
||||
|
||||
*) There have been lots of changes, mostly the addition of SSLv3.
|
||||
There have been many additions from people and amongst
|
||||
others, C2Net has assisted greatly.
|
||||
|
||||
Changes between 0.7.x and 0.7.x
|
||||
|
||||
*) Internal development version only
|
||||
|
||||
SSLeay 0.6.6 13-Jan-1997
|
||||
|
||||
The main additions are
|
||||
|
||||
- assember for x86 DES improvments.
|
||||
From 191,000 per second on a pentium 100, I now get 281,000. The inner
|
||||
loop and the IP/FP modifications are from
|
||||
Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>. Many thanks for his
|
||||
contribution.
|
||||
- The 'DES macros' introduced in 0.6.5 now have 3 types.
|
||||
DES_PTR1, DES_PTR2 and 'normal'. As per before, des_opts reports which
|
||||
is best and there is a summery of mine in crypto/des/options.txt
|
||||
- A few bug fixes.
|
||||
- Added blowfish. It is not used by SSL but all the other stuff that
|
||||
deals with ciphers can use it in either ecb, cbc, cfb64 or ofb64 modes.
|
||||
There are 3 options for optimising Blowfish. BF_PTR, BF_PTR2 and 'normal'.
|
||||
BF_PTR2 is pentium/x86 specific. The correct option is setup in
|
||||
the 'Configure' script.
|
||||
- There is now a 'get client certificate' callback which can be
|
||||
'non-blocking'. If more details are required, let me know. It will
|
||||
documented more in SSLv3 when I finish it.
|
||||
- Bug fixes from 0.6.5 including the infamous 'ca' bug. The 'make test'
|
||||
now tests the ca program.
|
||||
- Lots of little things modified and tweaked.
|
||||
|
||||
SSLeay 0.6.5
|
||||
|
||||
After quite some time (3 months), the new release. I have been very busy
|
||||
for the last few months and so this is mostly bug fixes and improvments.
|
||||
@@ -57,7 +582,7 @@ The main changes in this release
|
||||
- 'ssleay ciphers' added, lists the default cipher list for SSLeay.
|
||||
- RC2 key setup is now compatable with Netscape.
|
||||
- Modifed server side of SSL implementation, big performance difference when
|
||||
using session-id reuse.
|
||||
using session-id reuse.
|
||||
|
||||
0.6.3
|
||||
|
||||
@@ -186,16 +711,16 @@ The wrappers are easy to write
|
||||
|
||||
function_fp(fp,x)
|
||||
FILE *fp;
|
||||
{
|
||||
BIO *b;
|
||||
int ret;
|
||||
{
|
||||
BIO *b;
|
||||
int ret;
|
||||
|
||||
if ((b=BIO_new(BIO_s_file())) == NULL) error.....
|
||||
BIO_set_fp(b,fp,BIO_NOCLOSE);
|
||||
ret=function_bio(b,x);
|
||||
BIO_free(b);
|
||||
return(ret);
|
||||
}
|
||||
if ((b=BIO_new(BIO_s_file())) == NULL) error.....
|
||||
BIO_set_fp(b,fp,BIO_NOCLOSE);
|
||||
ret=function_bio(b,x);
|
||||
BIO_free(b);
|
||||
return(ret);
|
||||
}
|
||||
Remember, there are no functions that take FILE * in SSLeay when
|
||||
compiled for Windows 3.1 DLL's.
|
||||
|
||||
@@ -236,8 +761,8 @@ The list of things to read and do
|
||||
|
||||
dgst -d
|
||||
s_client -state (this uses a callback placed in the SSL state loop and
|
||||
will be used else-where to help debug/monitor what
|
||||
is happening.)
|
||||
will be used else-where to help debug/monitor what
|
||||
is happening.)
|
||||
|
||||
doc/why.doc
|
||||
doc/bio.doc <- hmmm, needs lots of work.
|
||||
65
COPYRIGHT
65
COPYRIGHT
@@ -1,65 +0,0 @@
|
||||
Copyright (C) 1997 Eric Young (eay@cryptsoft.com)
|
||||
All rights reserved.
|
||||
|
||||
This package is an SSL implementation written by Eric Young (eay@cryptsoft.com).
|
||||
The implementation was written so as to conform with Netscapes SSL.
|
||||
|
||||
This library is free for commercial and non-commercial use as long as
|
||||
the following conditions are aheared to. The following conditions
|
||||
apply to all code found in this distribution, be it the RC4, RSA,
|
||||
lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
included with this distribution is covered by the same copyright terms
|
||||
except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
|
||||
Please note that MD2, MD5 and IDEA are publically available standards
|
||||
that contain sample implementations, I have re-coded them in my own
|
||||
way but there is nothing special about those implementations. The DES
|
||||
library is another mater :-).
|
||||
|
||||
Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
the code are not to be removed.
|
||||
If this package is used in a product, Eric Young should be given attribution
|
||||
as the author of the parts of the library used.
|
||||
This can be in the form of a textual message at program startup or
|
||||
in documentation (online or textual) provided with the package.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. All advertising materials mentioning features or use of this software
|
||||
must display the following acknowledgement:
|
||||
"This product includes cryptographic software written by
|
||||
Eric Young (eay@cryptsoft.com)"
|
||||
The word 'cryptographic' can be left out if the rouines from the library
|
||||
being used are not cryptographic related :-).
|
||||
4. If you include any Windows specific code (or a derivative thereof) from
|
||||
the apps directory (application code) you must include an acknowledgement:
|
||||
"This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
The licence and distribution terms for any publically available version or
|
||||
derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
copied and put under another distribution licence
|
||||
[including the GNU Public Licence.]
|
||||
|
||||
The reason behind this being stated in this direct manner is past
|
||||
experience in code simply being copied and the attribution removed
|
||||
from it and then being distributed as part of other packages. This
|
||||
implementation was a non-trivial and unpaid effort.
|
||||
|
||||
281
Configure
281
Configure
@@ -1,4 +1,13 @@
|
||||
#!/usr/local/bin/perl
|
||||
:
|
||||
eval 'exec perl -S $0 ${1+"$@"}'
|
||||
if $running_under_some_shell;
|
||||
##
|
||||
## Configure -- OpenSSL source tree configuration script
|
||||
##
|
||||
|
||||
require 5.000;
|
||||
use strict;
|
||||
|
||||
#
|
||||
# see PROBLEMS for instructions on what sort of things to do when
|
||||
# tracking a bug --tjh
|
||||
@@ -37,34 +46,34 @@
|
||||
# SHA1_ASM use some extra sha1 assember, must define L_ENDIAN for x86
|
||||
# RMD160_ASM use some extra ripemd160 assember,
|
||||
|
||||
$x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
|
||||
my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
|
||||
|
||||
# MD2_CHAR slags pentium pros
|
||||
$x86_gcc_opts="RC4_INDEX MD2_INT BF_PTR2";
|
||||
my $x86_gcc_opts="RC4_INDEX MD2_INT BF_PTR2";
|
||||
|
||||
# MODIFY THESE PARAMETERS IF YOU ARE GOING TO USE THE 'util/speed.sh SCRIPT
|
||||
# Don't worry about these normally
|
||||
|
||||
$tcc="cc";
|
||||
$tflags="-fast -Xa";
|
||||
$tbn_mul="";
|
||||
$tlib="-lnsl -lsocket";
|
||||
my $tcc="cc";
|
||||
my $tflags="-fast -Xa";
|
||||
my $tbn_mul="";
|
||||
my $tlib="-lnsl -lsocket";
|
||||
#$bits1="SIXTEEN_BIT ";
|
||||
#$bits2="THIRTY_TWO_BIT ";
|
||||
$bits1="THIRTY_TWO_BIT ";
|
||||
$bits2="SIXTY_FOUR_BIT ";
|
||||
my $bits1="THIRTY_TWO_BIT ";
|
||||
my $bits2="SIXTY_FOUR_BIT ";
|
||||
|
||||
$x86_sol_asm="asm/bn86-sol.o asm/co86-sol.o:asm/dx86-sol.o asm/yx86-sol.o:asm/bx86-sol.o:asm/mx86-sol.o:asm/sx86-sol.o:asm/cx86-sol.o:asm/rx86-sol.o:asm/rm86-sol.o:asm/r586-sol.o";
|
||||
$x86_elf_asm="asm/bn86-elf.o asm/co86-elf.o:asm/dx86-elf.o asm/yx86-elf.o:asm/bx86-elf.o:asm/mx86-elf.o:asm/sx86-elf.o:asm/cx86-elf.o:asm/rx86-elf.o:asm/rm86-elf.o:asm/r586-elf.o";
|
||||
$x86_out_asm="asm/bn86-out.o asm/co86-out.o:asm/dx86-out.o asm/yx86-out.o:asm/bx86-out.o:asm/mx86-out.o:asm/sx86-out.o:asm/cx86-out.o:asm/rx86-out.o:asm/rm86-out.o:asm/r586-out.o";
|
||||
$x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/mx86bsdi.o:asm/sx86bsdi.o:asm/cx86bsdi.o:asm/rx86bsdi.o:asm/rm86bsdi.o:asm/r586bsdi.o";
|
||||
my $x86_sol_asm="asm/bn86-sol.o asm/co86-sol.o:asm/dx86-sol.o asm/yx86-sol.o:asm/bx86-sol.o:asm/mx86-sol.o:asm/sx86-sol.o:asm/cx86-sol.o:asm/rx86-sol.o:asm/rm86-sol.o:asm/r586-sol.o";
|
||||
my $x86_elf_asm="asm/bn86-elf.o asm/co86-elf.o:asm/dx86-elf.o asm/yx86-elf.o:asm/bx86-elf.o:asm/mx86-elf.o:asm/sx86-elf.o:asm/cx86-elf.o:asm/rx86-elf.o:asm/rm86-elf.o:asm/r586-elf.o";
|
||||
my $x86_out_asm="asm/bn86-out.o asm/co86-out.o:asm/dx86-out.o asm/yx86-out.o:asm/bx86-out.o:asm/mx86-out.o:asm/sx86-out.o:asm/cx86-out.o:asm/rx86-out.o:asm/rm86-out.o:asm/r586-out.o";
|
||||
my $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/mx86bsdi.o:asm/sx86bsdi.o:asm/cx86bsdi.o:asm/rx86bsdi.o:asm/rm86bsdi.o:asm/r586bsdi.o";
|
||||
|
||||
# -DB_ENDIAN slows things down on a sparc for md5, but helps sha1.
|
||||
# So the md5_locl.h file has an undef B_ENDIAN if sun is defined
|
||||
|
||||
#config-string CC : CFLAGS : LDFLAGS : special header file mods:bn_asm \
|
||||
# des_asm:bf_asm
|
||||
%table=(
|
||||
my %table=(
|
||||
#"b", "$tcc:$tflags:$tlib:$bits1:$tbn_mul::",
|
||||
#"bl-4c-2c", "$tcc:$tflags:$tlib:${bits1}BN_LLONG RC4_CHAR MD2_CHAR:$tbn_mul::",
|
||||
#"bl-4c-ri", "$tcc:$tflags:$tlib:${bits1}BN_LLONG RC4_CHAR RC4_INDEX:$tbn_mul::",
|
||||
@@ -73,6 +82,8 @@ $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/b
|
||||
# A few of my development configs
|
||||
"purify", "purify gcc:-g -DPURIFY -Wall:-lsocket -lnsl::::",
|
||||
"debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:-lefence::::",
|
||||
"debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -O2 -Wall -Wshadow -Werror -pipe:::::",
|
||||
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
|
||||
"dist", "cc:-O -DNOPROTO::::",
|
||||
|
||||
# Basic configs that should work on any box
|
||||
@@ -94,6 +105,8 @@ $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/b
|
||||
"solaris-usparc-sc4","cc:-xtarget=ultra -xarch=v8plus -Xa -xO5 -DB_ENDIAN:\
|
||||
-lsocket -lnsl:\
|
||||
BN_LLONG RC4_CHAR DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparc.o::",
|
||||
"solaris-sparc-sc4-pic","cc:-xO5 -Xa -DB_ENDIAN -KPIC:-lsocket -lnsl:\
|
||||
BN_LLONG RC4_CHAR DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparc.o::",
|
||||
|
||||
# Sunos configs, assuming sparc for the gcc one.
|
||||
"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::DES_UNROLL:::",
|
||||
@@ -122,6 +135,9 @@ $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/b
|
||||
"hpux-cc", "cc:-DB_ENDIAN -D_HPUX_SOURCE -Aa -Ae +ESlit +O4 -Wl,-a,archive::DES_PTR DES_UNROLL DES_RISC1:asm/pa-risc2.o::",
|
||||
"hpux-kr-cc", "cc:-DB_ENDIAN -DNOCONST -DNOPROTO -D_HPUX_SOURCE::DES_PTR DES_UNROLL:asm/pa-risc2.o::",
|
||||
"hpux-gcc", "gcc:-DB_ENDIAN -O3::BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
|
||||
# HPUX from www.globus.org
|
||||
"hpux11-32bit-cc","cc:+DA2.0 -DB_ENDIAN -D_HPUX_SOURCE -Aa -Ae +ESlit::DES_PTR DES_UNROLL DES_RISC1:::",
|
||||
"hpux11-64bit-cc","cc:+DA2.0W -g -D_HPUX_SOURCE -Aa -Ae +ESlit::SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT :::",
|
||||
|
||||
# Dec Alpha, OSF/1 - the alpha164-cc is the flags for a 21164A with
|
||||
# the new compiler
|
||||
@@ -135,18 +151,22 @@ $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/b
|
||||
"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
|
||||
"debug-linux-elf","gcc:-DREF_CHECK -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall:-lefence:BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
|
||||
"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
|
||||
"linux-mips", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
|
||||
-Wuninitialized:::BN_LLONG:",
|
||||
"NetBSD-sparc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::",
|
||||
"NetBSD-m68", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::",
|
||||
"NetBSD-x86", "gcc:-DTERMIOS -D_ANSI_SOURCE -O3 -fomit-frame-pointer -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:",
|
||||
"FreeBSD", "gcc:-DTERMIOS -DL_ENDIAN -D_ANSI_SOURCE -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
|
||||
#"bsdi-gcc", "gcc:-O3 -ffast-math -DL_ENDIAN -DPERL5 -m486::RSA_LLONG $x86_gc_des $x86_gcc_opts:$x86_bsdi_asm",
|
||||
"nextstep", "cc:-O3 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:::",
|
||||
#"FreeBSD", "gcc:-DTERMIOS -DL_ENDIAN -D_ANSI_SOURCE -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
|
||||
"FreeBSD", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
|
||||
"FreeBSD-elf", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
|
||||
"bsdi-gcc", "gcc:-O3 -ffast-math -DL_ENDIAN -DPERL5 -m486::RSA_LLONG $x86_gcc_des $x86_gcc_opts:$x86_bsdi_asm",
|
||||
"nextstep", "cc:-O3 -Wall::BN_LLONG $x86_gcc_des ${x86_gcc_opts}:::",
|
||||
# NCR MP-RAS UNIX ver 02.03.01
|
||||
"ncr-scde","cc:-O6 -Xa -Hoff=BEHAVED -686 -Hwide -Hiw:-lsocket -lnsl:$x86_gcc_des $x86_gcc_opts:::",
|
||||
"ncr-scde","cc:-O6 -Xa -Hoff=BEHAVED -686 -Hwide -Hiw:-lsocket -lnsl:$x86_gcc_des ${x86_gcc_opts}:::",
|
||||
|
||||
# UnixWare 2.0
|
||||
"unixware-2.0","cc:-O -DFILIO_H:-lsocket -lnsl:$x86_gcc_des $x86_gcc_opts:::",
|
||||
"unixware-2.0-pentium","cc:-O -DFILIO_H -Kpentium -Kthread:-lsocket -lnsl:MD2_CHAR RC4_INDEX $x86_des_des::",
|
||||
"unixware-2.0","cc:-O -DFILIO_H:-lsocket -lnsl:$x86_gcc_des ${x86_gcc_opts}:::",
|
||||
"unixware-2.0-pentium","cc:-O -DFILIO_H -Kpentium -Kthread:-lsocket -lnsl:MD2_CHAR RC4_INDEX ${x86_gcc_des}::",
|
||||
|
||||
# IBM's AIX.
|
||||
"aix-cc", "cc:-O -DAIX -DB_ENDIAN::BN_LLONG RC4_CHAR:::",
|
||||
@@ -165,6 +185,16 @@ $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/b
|
||||
# (written by Wayne Schroeder <schroede@SDSC.EDU>)
|
||||
"cray-t90-cc", "cc: -DBIT_FIELD_LIMITS -DTERMIOS::SIXTY_FOUR_BIT_LONG DES_INT:::",
|
||||
|
||||
#
|
||||
# Cray T3E (Research Center Juelich, beckman@acl.lanl.gov)
|
||||
#
|
||||
# The BIT_FIELD_LIMITS define was written for the C90 (it seems). I added
|
||||
# another use. Basically, the problem is that the T3E uses some bit fields
|
||||
# for some st_addr stuff, and then sizeof and address-of fails
|
||||
# I could not use the ams/alpha.o option because the Cray assembler, 'cam'
|
||||
# did not like it.
|
||||
"cray-t3e", "cc: -DBIT_FIELD_LIMITS -DTERMIOS::SIXTY_FOUR_BIT_LONG DES_INT:::",
|
||||
|
||||
# DGUX, 88100.
|
||||
"dgux-R3-gcc", "gcc:-O3 -fomit-frame-pointer::RC4_INDEX DES_UNROLL:::",
|
||||
"dgux-R4-gcc", "gcc:-O3 -fomit-frame-pointer:-lnsl -lsocket:RC4_INDEX:RC4_INDEX DES_UNROLL:::",
|
||||
@@ -172,16 +202,15 @@ $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/b
|
||||
|
||||
# SCO 5 - Ben Laurie <ben@algroup.co.uk> says the -O breaks the
|
||||
# SCO cc.
|
||||
"sco5-cc", "cc::-lsocket:$x86_gcc_des $x86_gcc_opts:::", # des options?
|
||||
"sco5-cc", "cc::-lsocket:$x86_gcc_des ${x86_gcc_opts}:::", # des options?
|
||||
|
||||
# Sinix RM400
|
||||
"SINIX-N","/usr/ucb/cc:-O2 -misaligned:-lucb:RC4_INDEX RC4_CHAR:::",
|
||||
|
||||
# Windows NT, Microsoft Visual C++ 4.0
|
||||
|
||||
# hmm... bug in perl under NT, I need to concatinate :-(
|
||||
"VC-NT","cl:::BN_LLONG RC4_INDEX ".$x86_gcc_opts.":::",
|
||||
"VC-WIN32","cl:::BN_LLONG RC4_INDEX ".$x86_gcc_opts.":::",
|
||||
"VC-NT","cl:::BN_LLONG RC4_INDEX ${x86_gcc_opts}:::",
|
||||
"VC-WIN32","cl:::BN_LLONG RC4_INDEX ${x86_gcc_opts}:::",
|
||||
"VC-WIN16","cl:::MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX THIRTY_TWO_BIT:::",
|
||||
"VC-W31-16","cl:::BN_LLONG MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX SIXTEEN_BIT:::",
|
||||
"VC-W31-32","cl:::MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX THIRTY_TWO_BIT:::",
|
||||
@@ -191,6 +220,9 @@ $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/b
|
||||
"BC-32","bcc32:::DES_PTR RC4_INDEX:::",
|
||||
"BC-16","bcc:::BN_LLONG DES_PTR RC4_INDEX SIXTEEN_BIT:::",
|
||||
|
||||
# CygWin32
|
||||
"CygWin32", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:",
|
||||
|
||||
# Our old Ultrix box :-). -O2 breaks some of the bignum stuff (now fixed,
|
||||
# it is a compiler bug, look in bug/ultrixcc.c for example code.
|
||||
"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN:::asm/mips1.o:::",
|
||||
@@ -202,27 +234,44 @@ $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/b
|
||||
"OpenBSD-mips","gcc:-O2 -DL_ENDIAN:BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR::::",
|
||||
);
|
||||
|
||||
$no_asm=0;
|
||||
$postfix="org";
|
||||
$Makefile="Makefile.ssl";
|
||||
$des_locl="crypto/des/des_locl.h";
|
||||
$des ="crypto/des/des.h";
|
||||
$bn ="crypto/bn/bn.h";
|
||||
$md2 ="crypto/md2/md2.h";
|
||||
$rc4 ="crypto/rc4/rc4.h";
|
||||
$rc4_locl="crypto/rc4/rc4_locl.h";
|
||||
$idea ="crypto/idea/idea.h";
|
||||
$rc2 ="crypto/rc2/rc2.h";
|
||||
$bf ="crypto/bf/bf_locl.h";
|
||||
$bn_asm ="bn_asm.o";
|
||||
$des_enc="des_enc.o fcrypt_b.o";
|
||||
$bf_enc ="bf_enc.o";
|
||||
$cast_enc="c_enc.o";
|
||||
$rc4_enc="rc4_enc.o";
|
||||
$rc5_enc="rc5_enc.o";
|
||||
$md5_obj="";
|
||||
$sha1_obj="";
|
||||
$rmd160_obj="";
|
||||
# Miscellaneous hacks: this is designed to allow environments where the "one
|
||||
# makefile" option does not auto build all files.
|
||||
# The first six fields are the hard coded versions of the stuff generated by
|
||||
# ctx_size for pem.h: that is EVP_ENCODE_CTX_SIZE, EVP_MD_SIZE EVP_MD_CTX_SIZE,
|
||||
# EVP_CIPHER_SIZE, EVP_CIPHER_CTX_SIZE and EVP_MAX_MD_SIZE respectively.
|
||||
# If the seventh field is 1 then auto generate
|
||||
# crypto/date.h
|
||||
# Need to add Win16 and others here.
|
||||
|
||||
my %misc_table = (
|
||||
"VC-WIN32", "96:60:152:40:4212:20:1",
|
||||
"VC-NT", "96:60:152:40:4212:20:1"
|
||||
);
|
||||
|
||||
my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
|
||||
BC-16 CygWin32);
|
||||
|
||||
my $no_asm=0;
|
||||
my $postfix="org";
|
||||
my $Makefile="Makefile.ssl";
|
||||
my $des_locl="crypto/des/des_locl.h";
|
||||
my $des ="crypto/des/des.h";
|
||||
my $bn ="crypto/bn/bn.h";
|
||||
my $md2 ="crypto/md2/md2.h";
|
||||
my $rc4 ="crypto/rc4/rc4.h";
|
||||
my $rc4_locl="crypto/rc4/rc4_locl.h";
|
||||
my $idea ="crypto/idea/idea.h";
|
||||
my $rc2 ="crypto/rc2/rc2.h";
|
||||
my $bf ="crypto/bf/bf_locl.h";
|
||||
my $bn_asm ="bn_asm.o";
|
||||
my $des_enc="des_enc.o fcrypt_b.o";
|
||||
my $bf_enc ="bf_enc.o";
|
||||
my $cast_enc="c_enc.o";
|
||||
my $rc4_enc="rc4_enc.o";
|
||||
my $rc5_enc="rc5_enc.o";
|
||||
my $md5_obj="";
|
||||
my $sha1_obj="";
|
||||
my $rmd160_obj="";
|
||||
|
||||
if ($#ARGV < 0)
|
||||
{
|
||||
@@ -230,7 +279,9 @@ if ($#ARGV < 0)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$flags="";
|
||||
my $flags="";
|
||||
my $libs="";
|
||||
my $target="";
|
||||
foreach (@ARGV)
|
||||
{
|
||||
if ($_ =~ /^no-asm$/)
|
||||
@@ -245,11 +296,19 @@ foreach (@ARGV)
|
||||
{
|
||||
$flags.=$_." ";
|
||||
}
|
||||
elsif ($_ =~ /^-[fK](.*)$/)
|
||||
{
|
||||
$flags.=$_." ";
|
||||
}
|
||||
else
|
||||
{
|
||||
die "unknown options, only -Dxxx, -Lxxx -lxxx supported\n";
|
||||
die "unknown options, only -Dxxx, -Lxxx, -lxxx, -fxxx and -Kxxx are supported\n";
|
||||
}
|
||||
}
|
||||
elsif ($_ =~ /^([^:]+):(.+)$/) {
|
||||
eval "\$table{\$1} = \"$2\""; # allow $xxx constructs in the string
|
||||
$target=$1;
|
||||
}
|
||||
else
|
||||
{
|
||||
die "target already defined - $target\n" if ($target ne "");
|
||||
@@ -268,9 +327,13 @@ if (!defined($table{$target}))
|
||||
exit(1);
|
||||
}
|
||||
|
||||
($cc,$cflags,$lflags,$bn_ops,$bn_obj,$des_obj,$bf_obj,$md5_obj,$sha1_obj,
|
||||
$cast_obj,$rc4_obj,$rmd160_obj,$rc5_obj)=
|
||||
split(/\s*:\s*/,$table{$target});
|
||||
my $IsWindows=scalar grep /^$target$/,@WinTargets;
|
||||
|
||||
print "IsWindows=$IsWindows\n";
|
||||
|
||||
(my $cc,my $cflags,my $lflags,my $bn_ops,my $bn_obj,my $des_obj,my $bf_obj,
|
||||
$md5_obj,$sha1_obj,my $cast_obj,my $rc4_obj,$rmd160_obj,my $rc5_obj)=
|
||||
split(/\s*:\s*/,$table{$target} . ":" x 20 , -1);
|
||||
$cflags="$flags$cflags" if ($flags ne "");
|
||||
$lflags="$libs$lflags"if ($libs ne "");
|
||||
|
||||
@@ -280,9 +343,12 @@ if ($no_asm)
|
||||
$sha1_obj=$md5_obj=$rmd160_obj="";
|
||||
}
|
||||
|
||||
($bn1)=split(/\s+/,$bn_obj);
|
||||
$bn1=$bn_asm unless ($bn1 =~ /\.o$/);
|
||||
$bn_obj="$bn1";
|
||||
#my ($bn1)=split(/\s+/,$bn_obj);
|
||||
#$bn1 = "" unless defined $bn1;
|
||||
#$bn1=$bn_asm unless ($bn1 =~ /\.o$/);
|
||||
#$bn_obj="$bn1";
|
||||
|
||||
$bn_obj = $bn_asm unless $bn_obj ne "";
|
||||
|
||||
$des_obj=$des_enc unless ($des_obj =~ /\.o$/);
|
||||
$bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);
|
||||
@@ -305,9 +371,8 @@ if ($rmd160_obj =~ /\.o$/)
|
||||
$cflags.=" -DRMD160_ASM";
|
||||
}
|
||||
|
||||
$n=&file_new($Makefile);
|
||||
open(IN,"<".$Makefile) || die "unable to read $Makefile:$!\n";
|
||||
open(OUT,">".$n) || die "unable to read $n:$!\n";
|
||||
open(IN,'<Makefile.org') || die "unable to read Makefile.org:$!\n";
|
||||
open(OUT,">$Makefile") || die "unable to create $Makefile:$!\n";
|
||||
while (<IN>)
|
||||
{
|
||||
chop;
|
||||
@@ -315,7 +380,7 @@ while (<IN>)
|
||||
s/^CC=.*$/CC= $cc/;
|
||||
s/^CFLAG=.*$/CFLAG= $cflags/;
|
||||
s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
|
||||
s/^BN_MULW=.*$/BN_MULW= $bn_obj/;
|
||||
s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
|
||||
s/^DES_ENC=.*$/DES_ENC= $des_obj/;
|
||||
s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
|
||||
s/^CAST_ENC=.*$/CAST_ENC= $cast_obj/;
|
||||
@@ -328,12 +393,11 @@ while (<IN>)
|
||||
}
|
||||
close(IN);
|
||||
close(OUT);
|
||||
&Rename($Makefile,&file_old($Makefile));
|
||||
&Rename($n,$Makefile);
|
||||
|
||||
print "CC =$cc\n";
|
||||
print "CFLAG =$cflags\n";
|
||||
print "EX_LIBS =$lflags\n";
|
||||
print "BN_MULW =$bn_obj\n";
|
||||
print "BN_ASM =$bn_obj\n";
|
||||
print "DES_ENC =$des_obj\n";
|
||||
print "BF_ENC =$bf_obj\n";
|
||||
print "CAST_ENC =$cast_obj\n";
|
||||
@@ -343,20 +407,22 @@ print "MD5_OBJ_ASM =$md5_obj\n";
|
||||
print "SHA1_OBJ_ASM =$sha1_obj\n";
|
||||
print "RMD160_OBJ_ASM=$rmd160_obj\n";
|
||||
|
||||
$des_ptr=0;
|
||||
$des_risc1=0;
|
||||
$des_risc2=0;
|
||||
$des_unroll=0;
|
||||
$bn_ll=0;
|
||||
$def_int=2;
|
||||
$rc4_int=$def_int;
|
||||
$md2_int=$def_int;
|
||||
$idea_int=$def_int;
|
||||
$rc2_int=$def_int;
|
||||
$rc4_idx=0;
|
||||
$bf_ptr=0;
|
||||
@type=("char","short","int","long");
|
||||
($b64l,$b64,$b32,$b16,$b8)=(0,0,1,0,0);
|
||||
my $des_ptr=0;
|
||||
my $des_risc1=0;
|
||||
my $des_risc2=0;
|
||||
my $des_unroll=0;
|
||||
my $bn_ll=0;
|
||||
my $def_int=2;
|
||||
my $rc4_int=$def_int;
|
||||
my $md2_int=$def_int;
|
||||
my $idea_int=$def_int;
|
||||
my $rc2_int=$def_int;
|
||||
my $rc4_idx=0;
|
||||
my $bf_ptr=0;
|
||||
my @type=("char","short","int","long");
|
||||
my ($b64l,$b64,$b32,$b16,$b8)=(0,0,1,0,0);
|
||||
|
||||
my $des_int;
|
||||
|
||||
foreach (sort split(/\s+/,$bn_ops))
|
||||
{
|
||||
@@ -384,8 +450,8 @@ foreach (sort split(/\s+/,$bn_ops))
|
||||
($b64l,$b64,$b32,$b16,$b8)=(0,0,0,0,1) if /EIGHT_BIT/;
|
||||
}
|
||||
|
||||
(($in=$bn) =~ s/\.([^.]+)/.$postfix/);
|
||||
$n=&file_new($bn);
|
||||
((my $in=$bn) =~ s/\.([^.]+)/.$postfix/);
|
||||
my $n=&file_new($bn);
|
||||
open(IN,"<".$in) || die "unable to read $bn:$!\n";
|
||||
open(OUT,">$n") || die "unable to read $n:$!\n";
|
||||
while (<IN>)
|
||||
@@ -549,6 +615,50 @@ close(OUT);
|
||||
&Rename($bf,&file_old($bf));
|
||||
&Rename($n,$bf);
|
||||
|
||||
# Now the miscellaneous fixups
|
||||
|
||||
if(defined $misc_table{$target}) {
|
||||
my ($enc_ctx, $md_size, $md_ctx_size, $cipher_size, $cipher_ctx_size,
|
||||
$max_md_size, $date_fix) =
|
||||
split(/\s*:\s*/,$misc_table{$target} . ":", -1);
|
||||
|
||||
#print "EVP_ENCODE_CTX_SIZE $enc_ctx\n";
|
||||
#print "EVP_MD_SIZE $md_size\n";
|
||||
#print "EVP_MD_CTX_SIZE $md_ctx_size\n";
|
||||
#print "EVP_CIPHER_SIZE $cipher_size\n";
|
||||
#print "EVP_CIPHER_CTX_SIZE $cipher_ctx_size\n";
|
||||
#print "EVP_MAX_MD_SIZE $max_md_size\n";
|
||||
#printf "Date fix: %s\n", $date_fix ? "Yes" : "No";
|
||||
|
||||
# Fix the date
|
||||
|
||||
if($date_fix) {
|
||||
open (OUT,">crypto/date.h") || die "Can't open date.h";
|
||||
printf OUT "#define DATE \"%s\"\n", scalar gmtime();
|
||||
close(OUT);
|
||||
}
|
||||
|
||||
open (IN, "crypto/pem/pem.org") || die "Can't open crypto/pem/pem.org";
|
||||
open (OUT, ">crypto/pem/pem.h") || die "Can't create crypto/pem/pem.h";
|
||||
|
||||
# Now fix up pem.h
|
||||
while(<IN>) {
|
||||
chop;
|
||||
s/^(#define EVP_ENCODE_CTX_SIZE).*$/$1 $enc_ctx/;
|
||||
s/^(#define EVP_MD_SIZE).*$/$1 $md_size/;
|
||||
s/^(#define EVP_MD_CTX_SIZE).*$/$1 $md_ctx_size/;
|
||||
s/^(#define EVP_CIPHER_SIZE).*$/$1 $cipher_size/;
|
||||
s/^(#define EVP_CIPHER_CTX_SIZE).*$/$1 $cipher_ctx_size/;
|
||||
s/^(#define EVP_MAX_MD_SIZE).*$/$1 $max_md_size/;
|
||||
print OUT "$_\n";
|
||||
}
|
||||
|
||||
close (IN);
|
||||
close (OUT);
|
||||
|
||||
|
||||
}
|
||||
|
||||
print "SIXTY_FOUR_BIT_LONG mode\n" if $b64l;
|
||||
print "SIXTY_FOUR_BIT mode\n" if $b64;
|
||||
print "THIRTY_TWO_BIT mode\n" if $b32;
|
||||
@@ -567,16 +677,19 @@ print "IDEA uses u$type[$idea_int]\n" if $idea_int != $def_int;
|
||||
print "RC2 uses u$type[$rc2_int]\n" if $rc2_int != $def_int;
|
||||
print "BF_PTR used\n" if $bf_ptr == 1;
|
||||
print "BF_PTR2 used\n" if $bf_ptr == 2;
|
||||
|
||||
system 'make -f Makefile.ssl links' if !$IsWindows;
|
||||
|
||||
exit(0);
|
||||
|
||||
sub bad_target
|
||||
{
|
||||
print STDERR "Usage: Configure [-Dxxx] [-Lxxx] [-lxxx] os/compiler\n";
|
||||
print STDERR "pick os/compiler from:";
|
||||
$j=0;
|
||||
my $j=0;
|
||||
my $i;
|
||||
foreach $i (sort keys %table)
|
||||
{
|
||||
next if /^b-/;
|
||||
print STDERR "\n" if ($j++ % 4) == 0;
|
||||
printf(STDERR "%-18s ",$i);
|
||||
}
|
||||
@@ -585,11 +698,13 @@ sub bad_target
|
||||
|
||||
sub Rename
|
||||
{
|
||||
local($from,$to)=@_;
|
||||
|
||||
my($from,$to)=@_;
|
||||
unlink($to);
|
||||
rename($from,$to) || die "unable to rename $from to $to:$!\n";
|
||||
if(!rename($from,$to))
|
||||
{
|
||||
-e $from && die "unable to rename $from to $to:$!\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub file_new { local($a)=@_; $a =~ s/(\.[^.]+$|$)/.new/; $a; }
|
||||
sub file_old { local($a)=@_; $a =~ s/(\.[^.]+$|$)/.old/; $a; }
|
||||
sub file_new { my($a)=@_; $a =~ s/(\.[^.]+$|$)/.new/; $a; }
|
||||
sub file_old { my($a)=@_; $a =~ s/(\.[^.]+$|$)/.old/; $a; }
|
||||
|
||||
316
HISTORY
316
HISTORY
@@ -1,316 +0,0 @@
|
||||
16-Mar-98
|
||||
- Patch for Cray T90 from Wayne Schroeder <schroede@SDSC.EDU>
|
||||
- Lots and lots of changes
|
||||
|
||||
29-Jan-98
|
||||
- ASN1_BIT_STRING_set_bit()/ASN1_BIT_STRING_get_bit() from
|
||||
Goetz Babin-Ebell <babinebell@trustcenter.de>.
|
||||
- SSL_version() now returns SSL2_VERSION, SSL3_VERSION or
|
||||
TLS1_VERSION.
|
||||
|
||||
7-Jan-98
|
||||
- Finally reworked the cipher string to ciphers again, so it
|
||||
works correctly
|
||||
- All the app_data stuff is now ex_data with funcion calls to access.
|
||||
The index is supplied by a function and 'methods' can be setup
|
||||
for the types that are called on XXX_new/XXX_free. This lets
|
||||
applications get notified on creation and destruction. Some of
|
||||
the RSA methods could be implemented this way and I may do so.
|
||||
- Oh yes, SSL under perl5 is working at the basic level.
|
||||
|
||||
15-Dec-97
|
||||
- Warning - the gethostbyname cache is not fully thread safe,
|
||||
but it should work well enough.
|
||||
- Major internal reworking of the app_data stuff. More functions
|
||||
but if you were accessing ->app_data directly, things will
|
||||
stop working.
|
||||
- The perlv5 stuff is working. Currently on message digests,
|
||||
ciphers and the bignum library.
|
||||
|
||||
9-Dec-97
|
||||
- Modified re-negotiation so that server initated re-neg
|
||||
will cause a SSL_read() to return -1 should retry.
|
||||
The danger otherwise was that the server and the
|
||||
client could end up both trying to read when using non-blocking
|
||||
sockets.
|
||||
|
||||
4-Dec-97
|
||||
- Lots of small changes
|
||||
- Fix for binaray mode in Windows for the FILE BIO, thanks to
|
||||
Bob Denny <rdenny@dc3.com>
|
||||
|
||||
17-Nov-97
|
||||
- Quite a few internal cleanups, (removal of errno, and using macros
|
||||
defined in e_os.h).
|
||||
- A bug in ca.c, pointed out by yasuyuki-ito@d-cruise.co.jp, where
|
||||
the automactic naming out output files was being stuffed up.
|
||||
|
||||
29-Oct-97
|
||||
- The Cast5 cipher has been added. MD5 and SHA-1 are now in assember
|
||||
for x86.
|
||||
|
||||
21-Oct-97
|
||||
- Fixed a bug in the BIO_gethostbyname() cache.
|
||||
|
||||
15-Oct-97
|
||||
- cbc mode for blowfish/des/3des is now in assember. Blowfish asm
|
||||
has also been improved. At this point in time, on the pentium,
|
||||
md5 is %80 faster, the unoptimesed sha-1 is %79 faster,
|
||||
des-cbc is %28 faster, des-ede3-cbc is %9 faster and blowfish-cbc
|
||||
is %62 faster.
|
||||
|
||||
12-Oct-97
|
||||
- MEM_BUF_grow() has been fixed so that it always sets the buf->length
|
||||
to the value we are 'growing' to. Think of MEM_BUF_grow() as the
|
||||
way to set the length value correctly.
|
||||
|
||||
10-Oct-97
|
||||
- I now hash for certificate lookup on the raw DER encoded RDN (md5).
|
||||
This breaks things again :-(. This is efficent since I cache
|
||||
the DER encoding of the RDN.
|
||||
- The text DN now puts in the numeric OID instead of UNKNOWN.
|
||||
- req can now process arbitary OIDs in the config file.
|
||||
- I've been implementing md5 in x86 asm, much faster :-).
|
||||
- Started sha1 in x86 asm, needs more work.
|
||||
- Quite a few speedups in the BN stuff. RSA public operation
|
||||
has been made faster by caching the BN_MONT_CTX structure.
|
||||
The calulating of the Ai where A*Ai === 1 mod m was rather
|
||||
expensive. Basically a 40-50% speedup on public operations.
|
||||
The RSA speedup is now 15% on pentiums and %20 on pentium
|
||||
pro.
|
||||
|
||||
30-Sep-97
|
||||
- After doing some profiling, I added x86 adm for bn_add_words(),
|
||||
which just adds 2 arrays of longs together. A %10 speedup
|
||||
for 512 and 1024 bit RSA on the pentium pro.
|
||||
|
||||
29-Sep-97
|
||||
- Converted the x86 bignum assembler to us the perl scripts
|
||||
for generation.
|
||||
|
||||
23-Sep-97
|
||||
- If SSL_set_session() is passed a NULL session, it now clears the
|
||||
current session-id.
|
||||
|
||||
22-Sep-97
|
||||
- Added a '-ss_cert file' to apps/ca.c. This will sign selfsigned
|
||||
certificates.
|
||||
- Bug in crypto/evp/encode.c where by decoding of 65 base64
|
||||
encoded lines, one line at a time (via a memory BIO) would report
|
||||
EOF after the first line was decoded.
|
||||
- Fix in X509_find_by_issuer_and_serial() from
|
||||
Dr Stephen Henson <shenson@bigfoot.com>
|
||||
|
||||
19-Sep-97
|
||||
- NO_FP_API and NO_STDIO added.
|
||||
- Put in sh config command. It auto runs Configure with the correct
|
||||
parameters.
|
||||
|
||||
18-Sep-97
|
||||
- Fix x509.c so if a DSA cert has different parameters to its parent,
|
||||
they are left in place. Not tested yet.
|
||||
|
||||
16-Sep-97
|
||||
- ssl_create_cipher_list() had some bugs, fixes from
|
||||
Patrick Eisenacher <eisenach@stud.uni-frankfurt.de>
|
||||
- Fixed a bug in the Base64 BIO, where it would return 1 instead
|
||||
of -1 when end of input was encountered but should retry.
|
||||
Basically a Base64/Memory BIO interaction problem.
|
||||
- Added a HMAC set of functions in preporarion for TLS work.
|
||||
|
||||
15-Sep-97
|
||||
- Top level makefile tweak - Cameron Simpson <cs@zip.com.au>
|
||||
- Prime generation spead up %25 (512 bit prime, pentium pro linux)
|
||||
by using montgomery multiplication in the prime number test.
|
||||
|
||||
11-Sep-97
|
||||
- Ugly bug in ssl3_write_bytes(). Basically if application land
|
||||
does a SSL_write(ssl,buf,len) where len > 16k, the SSLv3 write code
|
||||
did not check the size and tried to copy the entire buffer.
|
||||
This would tend to cause memory overwrites since SSLv3 has
|
||||
a maximum packet size of 16k. If your program uses
|
||||
buffers <= 16k, you would probably never see this problem.
|
||||
- Fixed a new errors that were cause by malloc() not returning
|
||||
0 initialised memory..
|
||||
- SSL_OP_NETSCAPE_CA_DN_BUG was being switched on when using
|
||||
SSL_CTX_set_options(ssl_ctx,SSL_OP_ALL); which was a bad thing
|
||||
since this flags stops SSLeay being able to handle client
|
||||
cert requests correctly.
|
||||
|
||||
08-Sep-97
|
||||
- SSL_SESS_CACHE_NO_INTERNAL_LOOKUP option added. When switched
|
||||
on, the SSL server routines will not use a SSL_SESSION that is
|
||||
held in it's cache. This in intended to be used with the session-id
|
||||
callbacks so that while the session-ids are still stored in the
|
||||
cache, the decision to use them and how to look them up can be
|
||||
done by the callbacks. The are the 'new', 'get' and 'remove'
|
||||
callbacks. This can be used to determine the session-id
|
||||
to use depending on information like which port/host the connection
|
||||
is coming from. Since the are also SSL_SESSION_set_app_data() and
|
||||
SSL_SESSION_get_app_data() functions, the application can hold
|
||||
information against the session-id as well.
|
||||
|
||||
03-Sep-97
|
||||
- Added lookup of CRLs to the by_dir method,
|
||||
X509_load_crl_file() also added. Basically it means you can
|
||||
lookup CRLs via the same system used to lookup certificates.
|
||||
- Changed things so that the X509_NAME structure can contain
|
||||
ASN.1 BIT_STRINGS which is required for the unique
|
||||
identifier OID.
|
||||
- Fixed some problems with the auto flushing of the session-id
|
||||
cache. It was not occuring on the server side.
|
||||
|
||||
02-Sep-97
|
||||
- Added SSL_CTX_sess_cache_size(SSL_CTX *ctx,unsigned long size)
|
||||
which is the maximum number of entries allowed in the
|
||||
session-id cache. This is enforced with a simple FIFO list.
|
||||
The default size is 20*1024 entries which is rather large :-).
|
||||
The Timeout code is still always operating.
|
||||
|
||||
01-Sep-97
|
||||
- Added an argument to all the 'generate private key/prime`
|
||||
callbacks. It is the last parameter so this should not
|
||||
break existing code but it is needed for C++.
|
||||
- Added the BIO_FLAGS_BASE64_NO_NL flag for the BIO_f_base64()
|
||||
BIO. This lets the BIO read and write base64 encoded data
|
||||
without inserting or looking for '\n' characters. The '-A'
|
||||
flag turns this on when using apps/enc.c.
|
||||
- RSA_NO_PADDING added to help BSAFE functionality. This is a
|
||||
very dangerous thing to use, since RSA private key
|
||||
operations without random padding bytes (as PKCS#1 adds) can
|
||||
be attacked such that the private key can be revealed.
|
||||
- ASN.1 bug and rc2-40-cbc and rc4-40 added by
|
||||
Dr Stephen Henson <shenson@bigfoot.com>
|
||||
|
||||
31-Aug-97 (stuff added while I was away)
|
||||
- Linux pthreads by Tim Hudson (tjh@cryptsoft.com).
|
||||
- RSA_flags() added allowing bypass of pub/priv match check
|
||||
in ssl/ssl_rsa.c - Tim Hudson.
|
||||
- A few minor bugs.
|
||||
|
||||
SSLeay 0.8.1 released.
|
||||
|
||||
19-Jul-97
|
||||
- Server side initated dynamic renegotiation is broken. I will fix
|
||||
it when I get back from holidays.
|
||||
|
||||
15-Jul-97
|
||||
- Quite a few small changes.
|
||||
- INVALID_SOCKET usage cleanups from Alex Kiernan <alex@hisoft.co.uk>
|
||||
|
||||
09-Jul-97
|
||||
- Added 2 new values to the SSL info callback.
|
||||
SSL_CB_START which is passed when the SSL protocol is started
|
||||
and SSL_CB_DONE when it has finished sucsessfully.
|
||||
|
||||
08-Jul-97
|
||||
- Fixed a few bugs problems in apps/req.c and crypto/asn1/x_pkey.c
|
||||
that related to DSA public/private keys.
|
||||
- Added all the relevent PEM and normal IO functions to support
|
||||
reading and writing RSAPublic keys.
|
||||
- Changed makefiles to use ${AR} instead of 'ar r'
|
||||
|
||||
07-Jul-97
|
||||
- Error in ERR_remove_state() that would leave a dangling reference
|
||||
to a free()ed location - thanks to Alex Kiernan <alex@hisoft.co.uk>
|
||||
- s_client now prints the X509_NAMEs passed from the server
|
||||
when requesting a client cert.
|
||||
- Added a ssl->type, which is one of SSL_ST_CONNECT or
|
||||
SSL_ST_ACCEPT. I had to add it so I could tell if I was
|
||||
a connect or an accept after the handshake had finished.
|
||||
- SSL_get_client_CA_list(SSL *s) now returns the CA names
|
||||
passed by the server if called by a client side SSL.
|
||||
|
||||
05-Jul-97
|
||||
- Bug in X509_NAME_get_text_by_OBJ(), looking starting at index
|
||||
0, not -1 :-( Fix from Tim Hudson (tjh@cryptsoft.com).
|
||||
|
||||
04-Jul-97
|
||||
- Fixed some things in X509_NAME_add_entry(), thanks to
|
||||
Matthew Donald <matthew@world.net>.
|
||||
- I had a look at the cipher section and though that it was a
|
||||
bit confused, so I've changed it.
|
||||
- I was not setting up the RC4-64-MD5 cipher correctly. It is
|
||||
a MS special that appears in exported MS Money.
|
||||
- Error in all my DH ciphers. Section 7.6.7.3 of the SSLv3
|
||||
spec. I was missing the two byte length header for the
|
||||
ClientDiffieHellmanPublic value. This is a packet sent from
|
||||
the client to the server. The SSL_OP_SSLEAY_080_CLIENT_DH_BUG
|
||||
option will enable SSLeay server side SSLv3 accept either
|
||||
the correct or my 080 packet format.
|
||||
- Fixed a few typos in crypto/pem.org.
|
||||
|
||||
02-Jul-97
|
||||
- Alias mapping for EVP_get_(digest|cipher)byname is now
|
||||
performed before a lookup for actual cipher. This means
|
||||
that an alias can be used to 're-direct' a cipher or a
|
||||
digest.
|
||||
- ASN1_read_bio() had a bug that only showed up when using a
|
||||
memory BIO. When EOF is reached in the memory BIO, it is
|
||||
reported as a -1 with BIO_should_retry() set to true.
|
||||
|
||||
01-Jul-97
|
||||
- Fixed an error in X509_verify_cert() caused by my
|
||||
miss-understanding how 'do { contine } while(0);' works.
|
||||
Thanks to Emil Sit <sit@mit.edu> for educating me :-)
|
||||
|
||||
30-Jun-97
|
||||
- Base64 decoding error. If the last data line did not end with
|
||||
a '=', sometimes extra data would be returned.
|
||||
- Another 'cut and paste' bug in x509.c related to setting up the
|
||||
STDout BIO.
|
||||
|
||||
27-Jun-97
|
||||
- apps/ciphers.c was not printing due to an editing error.
|
||||
- Alex Kiernan <alex@hisoft.co.uk> send in a nice fix for
|
||||
a library build error in util/mk1mf.pl
|
||||
|
||||
26-Jun-97
|
||||
- Still did not have the auto 'experimental' code removal
|
||||
script correct.
|
||||
- A few header tweaks for Watcom 11.0 under Win32 from
|
||||
Rolf Lindemann <Lindemann@maz-hh.de>
|
||||
- 0 length OCTET_STRING bug in asn1_parse
|
||||
- A minor fix with an non-existent function in the MS .def files.
|
||||
- A few changes to the PKCS7 stuff.
|
||||
|
||||
25-Jun-97
|
||||
SSLeay 0.8.0 finally it gets released.
|
||||
|
||||
24-Jun-97
|
||||
Added a SSL_OP_EPHEMERAL_RSA option which causes all SSLv3 RSA keys to
|
||||
use a temporary RSA key. This is experimental and needs some more work.
|
||||
Fixed a few Win16 build problems.
|
||||
|
||||
23-Jun-97
|
||||
SSLv3 bug. I was not doing the 'lookup' of the CERT structure
|
||||
correctly. I was taking the SSL->ctx->default_cert when I should
|
||||
have been using SSL->cert. The bug was in ssl/s3_srvr.c
|
||||
|
||||
20-Jun-97
|
||||
X509_ATTRIBUTES were being encoded wrongly by apps/reg.c and the
|
||||
rest of the library. Even though I had the code required to do
|
||||
it correctly, apps/req.c was doing the wrong thing. I have fixed
|
||||
and tested everything.
|
||||
|
||||
Missing a few #ifdef FIONBIO sections in crypto/bio/bss_acpt.c.
|
||||
|
||||
19-Jun-97
|
||||
Fixed a bug in the SSLv2 server side first packet handling. When
|
||||
using the non-blocking test BIO, the ssl->s2->first_packet flag
|
||||
was being reset when a would-block failure occurred when reading
|
||||
the first 5 bytes of the first packet. This caused the checking
|
||||
logic to run at the wrong time and cause an error.
|
||||
|
||||
Fixed a problem with specifying cipher. If RC4-MD5 were used,
|
||||
only the SSLv3 version would be picked up. Now this will pick
|
||||
up both SSLv2 and SSLv3 versions. This required changing the
|
||||
SSL_CIPHER->mask values so that they only mask the ciphers,
|
||||
digests, authentication, export type and key-exchange algorithms.
|
||||
|
||||
I found that when a SSLv23 session is established, a reused
|
||||
session, of type SSLv3 was attempting to write the SSLv2
|
||||
ciphers, which were invalid. The SSL_METHOD->put_cipher_by_char
|
||||
method has been modified so it will only write out cipher which
|
||||
that method knows about.
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
- A minor bug in ssl/s3_clnt.c where there would always be 4 0 bytes
|
||||
sent in the client random, thanks to
|
||||
Edward Bishop <ebishop@spyglass.com>
|
||||
- Changed some BIGNUM api stuff.
|
||||
|
||||
- I Deleted the HISTORY.090 I was working on and when I found out, it was
|
||||
permanently gone :-(
|
||||
135
INSTALL
135
INSTALL
@@ -1,6 +1,135 @@
|
||||
# Installation of SSLeay.
|
||||
# It depends on perl for a few bits but those steps can be skipped and
|
||||
# the top level makefile edited by hand
|
||||
|
||||
INSTALLATION ON THE UNIX PLATFORM
|
||||
---------------------------------
|
||||
|
||||
[For instructions for compiling OpenSSL on Windows systems, see INSTALL.W32].
|
||||
|
||||
To install OpenSSL, you will need:
|
||||
|
||||
* Perl
|
||||
* C compiler
|
||||
* A supported Unix operating system
|
||||
|
||||
Quick Start
|
||||
-----------
|
||||
|
||||
If you want to just get on with it, do:
|
||||
|
||||
$ ./config [if this fails, go to step 1b below]
|
||||
$ make
|
||||
$ make rehash
|
||||
$ make test
|
||||
$ make install
|
||||
|
||||
This will build and install OpenSSL in the default location, which is (for
|
||||
historical reasons) /usr/local/ssl. If you want to install it anywhere else,
|
||||
do this after running `sh config':
|
||||
|
||||
$ perl util/ssldir.pl /new/install/path
|
||||
|
||||
If anything goes wrong, follow the detailed instructions below. If your
|
||||
operating system is not (yet) supported by OpenSSL, see the section on
|
||||
porting to a new system.
|
||||
|
||||
Installation in Detail
|
||||
----------------------
|
||||
|
||||
1a. Configure OpenSSL for your operation system automatically:
|
||||
|
||||
$ ./config
|
||||
|
||||
This guesses at your operating system (and compiler, if necessary) and
|
||||
configures OpenSSL based on this guess. Check the first line of output to
|
||||
see if it guessed correctly. If it did not get it correct or you want to
|
||||
use a different compiler then go to step 1b. Otherwise go to step 2.
|
||||
|
||||
1b. Configure OpenSSL for your operating system manually
|
||||
|
||||
OpenSSL knows about a range of different operating system, hardware and
|
||||
compiler combinations. To see the ones it knows about, run
|
||||
|
||||
$ ./Configure
|
||||
|
||||
Pick a suitable name from the list that matches your system. For most
|
||||
operating systems there is a choice between using "cc" or "gcc". When
|
||||
you have identified your system (and if necessary compiler) use this name
|
||||
as the argument to ./Configure. For example, a "linux-elf" user would
|
||||
run:
|
||||
|
||||
$ ./Configure linux-elf
|
||||
|
||||
If your system is not available, you will have to edit the Configure
|
||||
program and add the correct configuration for your system.
|
||||
|
||||
Configure configures various files by converting an existing .org file
|
||||
into the real file. If you edit any files, remember that if a
|
||||
corresponding .org file exists them the next time you run ./Configure
|
||||
your changes will be lost when the file gets re-created from the .org
|
||||
file. The files that are created from .org files are:
|
||||
|
||||
Makefile.ssl
|
||||
crypto/des/des.h
|
||||
crypto/des/des_locl.h
|
||||
crypto/md2/md2.h
|
||||
crypto/rc4/rc4.h
|
||||
crypto/rc4/rc4_enc.c
|
||||
crypto/rc2/rc2.h
|
||||
crypto/bf/bf_locl.h
|
||||
crypto/idea/idea.h
|
||||
crypto/bn/bn.h
|
||||
|
||||
2. Set the install directory
|
||||
|
||||
If the install directory will be the default of /usr/local/ssl, skip to
|
||||
the next stage. Otherwise, run
|
||||
|
||||
$ perl util/ssldir.pl /new/install/path
|
||||
|
||||
This configures the installation location into the "install" target of
|
||||
the top-level Makefile, and also updates some defines in an include file
|
||||
so that the default certificate directory is under the proper
|
||||
installation directory. It also updates a few utility files used in the
|
||||
build process.
|
||||
|
||||
3. Build OpenSSL by running:
|
||||
|
||||
$ make
|
||||
|
||||
This will build the OpenSSL libraries (libcrypto.a and libssl.a) and the
|
||||
OpenSSL binary ("openssl"). The libraries will be built in the top-level
|
||||
directory, and the binary will be in the "apps" directory.
|
||||
|
||||
4. After a successful build, the libraries should be tested. Run:
|
||||
|
||||
$ make rehash
|
||||
$ make test
|
||||
|
||||
(The first line makes the test certificates in the "certs" directory
|
||||
accessable via an hash name, which is required for some of the tests).
|
||||
|
||||
5. If everything tests ok, install OpenSSL with
|
||||
|
||||
$ make install
|
||||
|
||||
This will create the installation directory (if it does not exist) and
|
||||
then create the following subdirectories:
|
||||
|
||||
bin Contains the openssl binary and a few other
|
||||
utility programs.
|
||||
include Contains the header files needed if you want to
|
||||
compile programs with libcrypto or libssl.
|
||||
lib Contains the library files themselves and the
|
||||
OpenSSL configuration file "openssl.cnf".
|
||||
certs Initially empty, this is the default location
|
||||
for certificate files.
|
||||
private Initially empty, this is the default location
|
||||
for private key files.
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
The orignal Unix build instructions from SSLeay follow.
|
||||
Note: some of this may be out of date and no longer applicable
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# When bringing the SSLeay distribution back from the evil intel world
|
||||
# of Windows NT, do the following to make it nice again under unix :-)
|
||||
|
||||
@@ -1,3 +1,106 @@
|
||||
|
||||
INSTALLATION ON THE WIN32 PLATFORM
|
||||
----------------------------------
|
||||
|
||||
Heres a few comments about building OpenSSL in Windows environments. Most of
|
||||
this is tested on Win32 but it may also work in Win 3.1 with some
|
||||
modification. See the end of this file for Eric's original comments.
|
||||
|
||||
Note: the default Win32 environment is to leave out any Windows NT specific
|
||||
features: (currently only BIO_s_log()) if you want NT specific features see
|
||||
the "Tweaks" section later.
|
||||
|
||||
You will need perl for Win32 (which can be got from various sources) and
|
||||
Visual C++.
|
||||
|
||||
If you are compiling from a tarball or a CVS snapshot then the Win32 files
|
||||
may well be not up to date. This may mean that some "tweaking" is required to
|
||||
get it all to work. See the trouble shooting section later on for if (when?)
|
||||
it goes wrong.
|
||||
|
||||
Firstly you should run Configure:
|
||||
|
||||
> perl Configure VC-WIN32
|
||||
|
||||
Then rebuild the Win32 Makefiles and friends:
|
||||
|
||||
> ms\do_ms
|
||||
|
||||
If you get errors about things not having numbers assigned then check the
|
||||
troubleshooting section: you probably wont be able to compile it as it
|
||||
stands.
|
||||
|
||||
Then from the VC++ environment at a prompt do:
|
||||
|
||||
> nmake -f ms\ntdll.mak
|
||||
|
||||
If all is well it should compile and you will have some DLLs and executables
|
||||
in out32dll. If you want to try the tests then do:
|
||||
|
||||
> cd out32dll
|
||||
> ..\ms\test
|
||||
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
Since the Win32 build is only occasionally tested it may not always compile
|
||||
cleanly. If you get an error about functions not having numbers assigned
|
||||
when you run ms\do_ms then this means the Win32 ordinal files are not up to
|
||||
date. You can do:
|
||||
|
||||
> perl util\mkdef.pl crypto ssl update
|
||||
|
||||
then ms\do_ms should not give a warning any more. However the numbers that
|
||||
get assigned by this technique may not match those that eventually get
|
||||
assigned in the CVS tree: so anything linked against this version of the
|
||||
library may need to be recompiled.
|
||||
|
||||
If you get errors about unresolved externals then this means that either you
|
||||
didn't read the note above about functions not having numbers assigned or
|
||||
someone forgot to add a function to the header file.
|
||||
|
||||
In this latter case check out the header file to see if the function is
|
||||
defined in the header file: it should be defined twice: once with ANSI
|
||||
prototypes and once without. If its missing from the non ASNI section then
|
||||
add an entry for it: check that ms\do_ms now reports missing numbers and
|
||||
update the numbers as above.
|
||||
|
||||
If you get warnings in the code then the compilation will halt.
|
||||
|
||||
The default Makefile for Win32 halts whenever any warnings occur. Since VC++
|
||||
has its own ideas about warnings which don't always match up to other
|
||||
environments this can happen. The best fix is to edit the file with the
|
||||
warning in and fix it. Alternatively you can turn off the halt on warnings by
|
||||
editing the CFLAG line in the Makefile and deleting the /WX option.
|
||||
|
||||
You might get compilation errors. Again you will have to fix these or report
|
||||
them.
|
||||
|
||||
One final comment about compiling applications linked to the OpenSSL library.
|
||||
If you don't use the multithreaded DLL runtime library (/MD option) your
|
||||
program will almost certainly crash: see the original SSLeay description
|
||||
below for more details.
|
||||
|
||||
Tweaks
|
||||
------
|
||||
|
||||
There are various changes you can make to the Win32 compile environment. If
|
||||
you have the MASM assembler 'ml' then you can try the assembly language code.
|
||||
To do this remove the 'no-asm' part from do_ms.bat. You can also add 'debug'
|
||||
here to make a debugging version of the library.
|
||||
|
||||
If you want to enable the NT specific features of OpenSSL (currently only the
|
||||
logging BIO) follow the instructions above but call the batch file do_nt.bat
|
||||
instead of do_ms.bat.
|
||||
|
||||
You can also build a static version of the library using the Makefile
|
||||
ms\nt.mak
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
The orignal Windows build instructions from SSLeay follow.
|
||||
Note: some of this may be out of date and no longer applicable
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
The Microsoft World.
|
||||
|
||||
The good news, to build SSLeay for the Microsft World
|
||||
127
LICENSE
Normal file
127
LICENSE
Normal file
@@ -0,0 +1,127 @@
|
||||
|
||||
LICENSE ISSUES
|
||||
==============
|
||||
|
||||
The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
|
||||
the OpenSSL License and the original SSLeay license apply to the toolkit.
|
||||
See below for the actual license texts. Actually both licenses are BSD-style
|
||||
Open Source licenses. In case of any license issues related to OpenSSL
|
||||
please contact openssl-core@openssl.org.
|
||||
|
||||
OpenSSL License
|
||||
---------------
|
||||
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-1999 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
Original SSLeay License
|
||||
-----------------------
|
||||
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
255
MINFO
255
MINFO
@@ -1,11 +1,11 @@
|
||||
RELATIVE_DIRECTORY=.
|
||||
AR=ar r
|
||||
BASENAME=SSLeay
|
||||
BASENAME=openssl
|
||||
BF_ENC=bf_enc.o
|
||||
BN_ASM=bn_asm.o
|
||||
CAST_ENC=c_enc.o
|
||||
CC=cl
|
||||
CFLAG=
|
||||
CC=cc
|
||||
CFLAG=-O -DNOPROTO
|
||||
DES_ENC=des_enc.o fcrypt_b.o
|
||||
DIRS=crypto ssl rsaref apps test tools
|
||||
EDIRS=times doc bugs util include certs ms shlib mt demos perl sf dep
|
||||
@@ -20,22 +20,21 @@ MAKEFILE=Makefile.ssl
|
||||
MAN1=1
|
||||
MAN3=3
|
||||
MD5_ASM_OBJ=
|
||||
MISC=COPYRIGHT Configure HISTORY.090 HISTORY.066 INSTALL Makefile.ssl Makefile README TODO HISTORY README.066 README.080 README.090 VERSION PROBLEMS MINFO makefile.one e_os.h MICROSOFT makevms.com config PATENTS
|
||||
NAME=SSLeay-0.9.1b
|
||||
NAME=openssl-0.9.1c
|
||||
ONEDIRS=out tmp
|
||||
PEX_LIBS=-L. -L.. -L../.. -L../../..
|
||||
PLATFORM=VC-WIN32
|
||||
PLATFORM=dist
|
||||
RC4_ENC=rc4_enc.o
|
||||
RC5_ENC=rc5_enc.o
|
||||
RMD160_ASM_OBJ=
|
||||
SDIRS=md2 md5 sha mdc2 hmac ripemd des rc2 rc4 rc5 idea bf cast bn rsa dsa dh buffer bio stack lhash rand err objects evp pem asn1 x509 conf txt_db pkcs7 proxy comp
|
||||
SDIRS=md2 md5 sha mdc2 hmac ripemd des rc2 rc4 rc5 idea bf cast bn rsa dsa dh buffer bio stack lhash rand err objects evp asn1 pem x509 x509v3 conf txt_db pkcs7 comp
|
||||
SHA1_ASM_OBJ=
|
||||
SHELL=/bin/sh
|
||||
TARFILE=SSLeay-0.9.1b.tar
|
||||
TARFILE=openssl-0.9.1c.tar
|
||||
TOP=.
|
||||
VERSION=0.9.1b
|
||||
VERSION=0.9.1c
|
||||
WDIRS=windows
|
||||
WTARFILE=SSLeay-0.9.1b-win.tar
|
||||
WTARFILE=openssl-0.9.1c-win.tar
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=crypto
|
||||
ALL=Makefile README cryptlib.c mem.c cversion.c ex_data.c tmdiff.c cpt_err.c cryptlib.h date.h crypto.h cryptall.h tmdiff.h
|
||||
@@ -58,16 +57,16 @@ LIBOBJ=cryptlib.o mem.o cversion.o ex_data.o tmdiff.o cpt_err.o
|
||||
LIBS=
|
||||
LIBSRC=cryptlib.c mem.c cversion.c ex_data.c tmdiff.c cpt_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../util/domd ..
|
||||
MAKEFILE=Makefile.ssl
|
||||
PEX_LIBS=
|
||||
RM=/bin/rm -f
|
||||
SDIRS=md2 md5 sha mdc2 hmac ripemd des rc2 rc4 rc5 idea bf cast bn rsa dsa dh buffer bio stack lhash rand err objects evp pem x509 asn1 conf txt_db pkcs7 proxy comp
|
||||
SDIRS=md2 md5 sha mdc2 hmac ripemd des rc2 rc4 rc5 idea bf cast bn rsa dsa dh buffer bio stack lhash rand err objects evp asn1 pem x509 x509v3 conf txt_db pkcs7 comp
|
||||
SRC=cryptlib.c mem.c cversion.c ex_data.c tmdiff.c cpt_err.c
|
||||
TOP=..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=crypto/md2
|
||||
ALL=Makefile md2_dgst.c md5_one.c md2.h
|
||||
ALL=Makefile md2_dgst.c md2_one.c md2.h
|
||||
APPS=
|
||||
AR=ar r
|
||||
CC=cc
|
||||
@@ -81,11 +80,11 @@ INCLUDES=
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
LIB=../../libcrypto.a
|
||||
LIBOBJ=md2_dgst.o md2_one.o
|
||||
LIBSRC=md2_dgst.c md5_one.c
|
||||
LIBSRC=md2_dgst.c md2_one.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=md2_dgst.c md5_one.c
|
||||
SRC=md2_dgst.c md2_one.c
|
||||
TEST=md2test.c
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
@@ -107,7 +106,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=md5_dgst.o md5_one.o
|
||||
LIBSRC=md5_dgst.c md5_one.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
MD5_ASM_OBJ=
|
||||
SRC=md5_dgst.c md5_one.c
|
||||
@@ -131,7 +130,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=sha_dgst.o sha1dgst.o sha_one.o sha1_one.o
|
||||
LIBSRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SHA1_ASM_OBJ=
|
||||
SRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
|
||||
@@ -155,7 +154,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=mdc2dgst.o mdc2_one.o
|
||||
LIBSRC=mdc2dgst.c mdc2_one.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=mdc2dgst.c mdc2_one.c
|
||||
TEST=mdc2test.c
|
||||
@@ -178,7 +177,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=hmac.o
|
||||
LIBSRC=hmac.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=hmac.c
|
||||
TEST=hmactest.c
|
||||
@@ -202,7 +201,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=rmd_dgst.o rmd_one.o
|
||||
LIBSRC=rmd_dgst.c rmd_one.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
RIP_ASM_OBJ=
|
||||
SRC=rmd_dgst.c rmd_one.c
|
||||
@@ -228,7 +227,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=set_key.o ecb_enc.o cbc_enc.o ecb3_enc.o cfb64enc.o cfb64ede.o cfb_enc.o ofb64ede.o enc_read.o enc_writ.o ofb64enc.o ofb_enc.o str2key.o pcbc_enc.o qud_cksm.o rand_key.o des_enc.o fcrypt_b.o read2pwd.o fcrypt.o xcbc_enc.o read_pwd.o rpc_enc.o cbc_cksm.o supp.o
|
||||
LIBSRC=cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c qud_cksm.c rand_key.c read_pwd.c rpc_enc.c set_key.c des_enc.c fcrypt_b.c read2pwd.c fcrypt.c xcbc_enc.c str2key.c cfb64ede.c ofb64ede.c supp.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c qud_cksm.c rand_key.c read_pwd.c rpc_enc.c set_key.c des_enc.c fcrypt_b.c read2pwd.c fcrypt.c xcbc_enc.c str2key.c cfb64ede.c ofb64ede.c supp.c
|
||||
TEST=destest.c
|
||||
@@ -251,7 +250,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=rc2_ecb.o rc2_skey.o rc2_cbc.o rc2cfb64.o rc2ofb64.o
|
||||
LIBSRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
|
||||
TEST=rc2test.c
|
||||
@@ -274,7 +273,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=rc4_skey.o rc4_enc.o
|
||||
LIBSRC=rc4_skey.c rc4_enc.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
RC4_ENC=rc4_enc.o
|
||||
SRC=rc4_skey.c rc4_enc.c
|
||||
@@ -299,7 +298,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=rc5_skey.o rc5_ecb.o rc5_enc.o rc5cfb64.o rc5ofb64.o
|
||||
LIBSRC=rc5_skey.c rc5_ecb.c rc5_enc.c rc5cfb64.c rc5ofb64.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
RC5_ENC=rc5_enc.o
|
||||
SRC=rc5_skey.c rc5_ecb.c rc5_enc.c rc5cfb64.c rc5ofb64.c
|
||||
@@ -323,7 +322,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=i_cbc.o i_cfb64.o i_ofb64.o i_ecb.o i_skey.o
|
||||
LIBSRC=i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c
|
||||
TEST=ideatest.c
|
||||
@@ -348,7 +347,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=bf_skey.o bf_ecb.o bf_enc.o bf_cfb64.o bf_ofb64.o
|
||||
LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
|
||||
TEST=bftest.c
|
||||
@@ -373,7 +372,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=c_skey.o c_ecb.o c_enc.o c_cfb64.o c_ofb64.o
|
||||
LIBSRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c
|
||||
TEST=casttest.c
|
||||
@@ -399,7 +398,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=bn_add.o bn_div.o bn_exp.o bn_lib.o bn_mul.o bn_print.o bn_rand.o bn_shift.o bn_word.o bn_blind.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o bn_asm.o bn_recp.o bn_mont.o bn_mpi.o bn_exp2.o
|
||||
LIBSRC=bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_asm.c bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_asm.c bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c
|
||||
TEST=bntest.c exptest.c
|
||||
@@ -424,7 +423,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=rsa_eay.o rsa_gen.o rsa_lib.o rsa_sign.o rsa_saos.o rsa_err.o rsa_pk1.o rsa_ssl.o rsa_none.o
|
||||
LIBSRC=rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c rsa_pk1.c rsa_ssl.c rsa_none.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c rsa_pk1.c rsa_ssl.c rsa_none.c
|
||||
TEST=
|
||||
@@ -449,7 +448,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=dsa_gen.o dsa_key.o dsa_lib.o dsa_vrf.o dsa_sign.o dsa_err.o
|
||||
LIBSRC=dsa_gen.c dsa_key.c dsa_lib.c dsa_vrf.c dsa_sign.c dsa_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=dsa_gen.c dsa_key.c dsa_lib.c dsa_vrf.c dsa_sign.c dsa_err.c
|
||||
TEST=dsatest.c
|
||||
@@ -474,7 +473,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=dh_gen.o dh_key.o dh_lib.o dh_check.o dh_err.o
|
||||
LIBSRC=dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
|
||||
TEST=dhtest.c
|
||||
@@ -499,14 +498,14 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=buffer.o buf_err.o
|
||||
LIBSRC=buffer.c buf_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=buffer.c buf_err.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=crypto/bio
|
||||
ALL=Makefile bio_lib.c bio_cb.c bio_err.c bss_mem.c bss_null.c bss_fd.c bss_file.c bss_sock.c bss_conn.c bf_null.c bf_buff.c b_print.c b_dump.c b_sock.c bss_acpt.c bf_nbio.c bss_cs4a.c bio.h bss_file.c
|
||||
ALL=Makefile bio_lib.c bio_cb.c bio_err.c bss_mem.c bss_null.c bss_fd.c bss_file.c bss_sock.c bss_conn.c bf_null.c bf_buff.c b_print.c b_dump.c b_sock.c bss_acpt.c bf_nbio.c bio.h bss_file.c
|
||||
APPS=
|
||||
AR=ar r
|
||||
CC=cc
|
||||
@@ -521,12 +520,12 @@ HEADER=bio.h bss_file.c
|
||||
INCLUDES=-I.. -I../../include
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
LIB=../../libcrypto.a
|
||||
LIBOBJ=bio_lib.o bio_cb.o bio_err.o bss_mem.o bss_null.o bss_fd.o bss_file.o bss_sock.o bss_conn.o bf_null.o bf_buff.o b_print.o b_dump.o b_sock.o bss_acpt.o bf_nbio.o bss_cs4a.o
|
||||
LIBSRC=bio_lib.c bio_cb.c bio_err.c bss_mem.c bss_null.c bss_fd.c bss_file.c bss_sock.c bss_conn.c bf_null.c bf_buff.c b_print.c b_dump.c b_sock.c bss_acpt.c bf_nbio.c bss_cs4a.c
|
||||
LIBOBJ=bio_lib.o bio_cb.o bio_err.o bss_mem.o bss_null.o bss_fd.o bss_file.o bss_sock.o bss_conn.o bf_null.o bf_buff.o b_print.o b_dump.o b_sock.o bss_acpt.o bf_nbio.o
|
||||
LIBSRC=bio_lib.c bio_cb.c bio_err.c bss_mem.c bss_null.c bss_fd.c bss_file.c bss_sock.c bss_conn.c bf_null.c bf_buff.c b_print.c b_dump.c b_sock.c bss_acpt.c bf_nbio.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=bio_lib.c bio_cb.c bio_err.c bss_mem.c bss_null.c bss_fd.c bss_file.c bss_sock.c bss_conn.c bf_null.c bf_buff.c b_print.c b_dump.c b_sock.c bss_acpt.c bf_nbio.c bss_cs4a.c
|
||||
SRC=bio_lib.c bio_cb.c bio_err.c bss_mem.c bss_null.c bss_fd.c bss_file.c bss_sock.c bss_conn.c bf_null.c bf_buff.c b_print.c b_dump.c b_sock.c bss_acpt.c bf_nbio.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
@@ -547,7 +546,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=stack.o
|
||||
LIBSRC=stack.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=stack.c
|
||||
TEST=
|
||||
@@ -570,7 +569,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=lhash.o lh_stats.o
|
||||
LIBSRC=lhash.c lh_stats.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=lhash.c lh_stats.c
|
||||
TEST=
|
||||
@@ -593,7 +592,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=md_rand.o randfile.o rand_lib.o
|
||||
LIBSRC=md_rand.c randfile.c rand_lib.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=md_rand.c randfile.c rand_lib.c
|
||||
TEST=randtest.c
|
||||
@@ -616,7 +615,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=err.o err_all.o err_prn.o
|
||||
LIBSRC=err.c err_all.c err_prn.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=err.c err_all.c err_prn.c
|
||||
TEST=
|
||||
@@ -641,7 +640,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=o_names.o obj_dat.o obj_lib.o obj_err.o
|
||||
LIBSRC=o_names.c obj_dat.c obj_lib.c obj_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=o_names.c obj_dat.c obj_lib.c obj_err.c
|
||||
TEST=
|
||||
@@ -666,40 +665,14 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=encode.o digest.o evp_enc.o evp_key.o e_ecb_d.o e_cbc_d.o e_cfb_d.o e_ofb_d.o e_ecb_i.o e_cbc_i.o e_cfb_i.o e_ofb_i.o e_ecb_3d.o e_cbc_3d.o e_rc4.o names.o e_cfb_3d.o e_ofb_3d.o e_xcbc_d.o e_ecb_r2.o e_cbc_r2.o e_cfb_r2.o e_ofb_r2.o e_ecb_bf.o e_cbc_bf.o e_cfb_bf.o e_ofb_bf.o e_ecb_c.o e_cbc_c.o e_cfb_c.o e_ofb_c.o e_ecb_r5.o e_cbc_r5.o e_cfb_r5.o e_ofb_r5.o m_null.o m_md2.o m_md5.o m_sha.o m_sha1.o m_dss.o m_dss1.o m_mdc2.o m_ripemd.o p_open.o p_seal.o p_sign.o p_verify.o p_lib.o p_enc.o p_dec.o bio_md.o bio_b64.o bio_enc.o evp_err.o e_null.o c_all.o evp_lib.o
|
||||
LIBSRC=encode.c digest.c evp_enc.c evp_key.c e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c e_ecb_c.c e_cbc_c.c e_cfb_c.c e_ofb_c.c e_ecb_r5.c e_cbc_r5.c e_cfb_r5.c e_ofb_r5.c m_null.c m_md2.c m_md5.c m_sha.c m_sha1.c m_dss.c m_dss1.c m_mdc2.c m_ripemd.c p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c c_all.c evp_lib.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=encode.c digest.c evp_enc.c evp_key.c e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c e_ecb_c.c e_cbc_c.c e_cfb_c.c e_ofb_c.c e_ecb_r5.c e_cbc_r5.c e_cfb_r5.c e_ofb_r5.c m_null.c m_md2.c m_md5.c m_sha.c m_sha1.c m_dss.c m_dss1.c m_mdc2.c m_ripemd.c p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c c_all.c evp_lib.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=crypto/pem
|
||||
ALL=Makefile pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c pem.h
|
||||
APPS=
|
||||
AR=ar r
|
||||
CC=cc
|
||||
CFLAG=-g
|
||||
CFLAGS=-I.. -I../../include -g
|
||||
CTX_SIZE=ctx_size
|
||||
DIR=pem
|
||||
ERR=pem
|
||||
ERRC=pem_err
|
||||
EXHEADER=pem.h
|
||||
GENERAL=Makefile
|
||||
HEADER=pem.h
|
||||
INCLUDES=-I.. -I../../include
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
LIB=../../libcrypto.a
|
||||
LIBOBJ=pem_sign.o pem_seal.o pem_info.o pem_lib.o pem_all.o pem_err.o
|
||||
LIBSRC=pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=crypto/asn1
|
||||
ALL=Makefile README a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c asn1.h asn1_mac.h
|
||||
ALL=Makefile README a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c nsseq.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c asn1.h asn1_mac.h
|
||||
APPS=
|
||||
AR=ar r
|
||||
CC=cc
|
||||
@@ -714,12 +687,38 @@ HEADER=asn1.h asn1_mac.h
|
||||
INCLUDES=-I.. -I../../include
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
LIB=../../libcrypto.a
|
||||
LIBOBJ=a_object.o a_bitstr.o a_utctm.o a_int.o a_octet.o a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o a_bmp.o a_sign.o a_digest.o a_verify.o x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o x_name.o x_cinf.o x_x509.o x_crl.o x_info.o x_spki.o d2i_r_pr.o i2d_r_pr.o d2i_r_pu.o i2d_r_pu.o d2i_s_pr.o i2d_s_pr.o d2i_s_pu.o i2d_s_pu.o d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o t_req.o t_x509.o t_pkey.o p7_i_s.o p7_signi.o p7_signd.o p7_recip.o p7_enc_c.o p7_evp.o p7_dgst.o p7_s_e.o p7_enc.o p7_lib.o f_int.o f_string.o i2d_dhp.o i2d_dsap.o d2i_dhp.o d2i_dsap.o n_pkey.o a_hdr.o x_pkey.o a_bool.o x_exten.o asn1_par.o asn1_lib.o asn1_err.o a_meth.o a_bytes.o evp_asn1.o
|
||||
LIBSRC=a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c
|
||||
LIBOBJ=a_object.o a_bitstr.o a_utctm.o a_gentm.o a_time.o a_int.o a_octet.o a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o a_bmp.o a_sign.o a_digest.o a_verify.o x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o x_name.o x_cinf.o x_x509.o x_crl.o x_info.o x_spki.o nsseq.o d2i_r_pr.o i2d_r_pr.o d2i_r_pu.o i2d_r_pu.o d2i_s_pr.o i2d_s_pr.o d2i_s_pu.o i2d_s_pu.o d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o t_req.o t_x509.o t_pkey.o p7_i_s.o p7_signi.o p7_signd.o p7_recip.o p7_enc_c.o p7_evp.o p7_dgst.o p7_s_e.o p7_enc.o p7_lib.o f_int.o f_string.o i2d_dhp.o i2d_dsap.o d2i_dhp.o d2i_dsap.o n_pkey.o a_hdr.o x_pkey.o a_bool.o x_exten.o asn1_par.o asn1_lib.o asn1_err.o a_meth.o a_bytes.o evp_asn1.o
|
||||
LIBSRC=a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c nsseq.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c
|
||||
SRC=a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c nsseq.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=crypto/pem
|
||||
ALL=Makefile pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c pem.h pem2.h
|
||||
APPS=
|
||||
AR=ar r
|
||||
CC=cc
|
||||
CFLAG=-g
|
||||
CFLAGS=-I.. -I../../include -g
|
||||
CTX_SIZE=ctx_size
|
||||
DIR=pem
|
||||
ERR=pem
|
||||
ERRC=pem_err
|
||||
EXHEADER=pem.h pem2.h
|
||||
GENERAL=Makefile
|
||||
HEADER=pem.h pem2.h
|
||||
INCLUDES=-I.. -I../../include
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
LIB=../../libcrypto.a
|
||||
LIBOBJ=pem_sign.o pem_seal.o pem_info.o pem_lib.o pem_all.o pem_err.o
|
||||
LIBSRC=pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
@@ -742,12 +741,37 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=x509_def.o x509_d2.o x509_r2x.o x509_cmp.o x509_obj.o x509_req.o x509_vfy.o x509_set.o x509rset.o x509_err.o x509name.o x509_v3.o x509_ext.o x509pack.o x509type.o x509_lu.o x_all.o x509_txt.o by_file.o by_dir.o v3_net.o v3_x509.o
|
||||
LIBSRC=x509_def.c x509_d2.c x509_r2x.c x509_cmp.c x509_obj.c x509_req.c x509_vfy.c x509_set.c x509rset.c x509_err.c x509name.c x509_v3.c x509_ext.c x509pack.c x509type.c x509_lu.c x_all.c x509_txt.c by_file.c by_dir.c v3_net.c v3_x509.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=x509_def.c x509_d2.c x509_r2x.c x509_cmp.c x509_obj.c x509_req.c x509_vfy.c x509_set.c x509rset.c x509_err.c x509name.c x509_v3.c x509_ext.c x509pack.c x509type.c x509_lu.c x_all.c x509_txt.c by_file.c by_dir.c v3_net.c v3_x509.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=crypto/x509v3
|
||||
ALL=Makefile README v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c v3_prn.c v3_utl.c v3err.c x509v3.h
|
||||
APPS=
|
||||
AR=ar r
|
||||
CC=cc
|
||||
CFLAG=-g
|
||||
CFLAGS=-I.. -I../../include -g
|
||||
DIR=x509v3
|
||||
ERR=x509v3
|
||||
ERRC=v3err
|
||||
EXHEADER=x509v3.h
|
||||
GENERAL=Makefile README
|
||||
HEADER=x509v3.h
|
||||
INCLUDES=-I.. -I../../include
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
LIB=../../libcrypto.a
|
||||
LIBOBJ=v3_bcons.o v3_bitst.o v3_conf.o v3_extku.o v3_ia5.o v3_lib.o v3_prn.o v3_utl.o v3err.o
|
||||
LIBSRC=v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c v3_prn.c v3_utl.c v3err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c v3_prn.c v3_utl.c v3err.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=crypto/conf
|
||||
ALL=Makefile conf.c conf_err.c conf_lcl.h conf.h
|
||||
APPS=
|
||||
@@ -767,7 +791,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=conf.o conf_err.o
|
||||
LIBSRC=conf.c conf_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=conf.c conf_err.c
|
||||
TEST=
|
||||
@@ -790,7 +814,7 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=txt_db.o
|
||||
LIBSRC=txt_db.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=txt_db.c
|
||||
TEST=
|
||||
@@ -815,37 +839,12 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=pk7_lib.o pkcs7err.o pk7_doit.o
|
||||
LIBSRC=pk7_lib.c pkcs7err.c pk7_doit.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=pk7_lib.c pkcs7err.c pk7_doit.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=crypto/proxy
|
||||
ALL=Makefile proxy.c pxy_txt.c bf_proxy.c pxy_conf.c pxy_err.c proxy.h
|
||||
APPS=
|
||||
AR=ar r
|
||||
CC=cc
|
||||
CFLAG=-g
|
||||
CFLAGS=-I.. -I../../include -g
|
||||
DIR=proxy
|
||||
ERR=proxy
|
||||
ERRC=pxy_err
|
||||
EXHEADER=proxy.h
|
||||
GENERAL=Makefile
|
||||
HEADER=proxy.h
|
||||
INCLUDES=-I.. -I../../include
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
LIB=../../libcrypto.a
|
||||
LIBOBJ=proxy.o pxy_txt.o bf_proxy.o pxy_conf.o pxy_err.o
|
||||
LIBSRC=proxy.c pxy_txt.c bf_proxy.c pxy_conf.c pxy_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=proxy.c pxy_txt.c bf_proxy.c pxy_conf.c pxy_err.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=crypto/comp
|
||||
ALL=Makefile comp_lib.c c_rle.c c_zlib.c comp.h
|
||||
APPS=
|
||||
@@ -865,14 +864,14 @@ LIB=../../libcrypto.a
|
||||
LIBOBJ=comp_lib.o c_rle.o c_zlib.o
|
||||
LIBSRC=comp_lib.c c_rle.c c_zlib.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../../util/domd ../..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=comp_lib.c c_rle.c c_zlib.c
|
||||
TEST=
|
||||
TOP=../..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=ssl
|
||||
ALL=Makefile README s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c pxy_ssl.c ssl_err.c ssl.h ssl2.h ssl3.h ssl23.h tls1.h ssl_locl.h
|
||||
ALL=Makefile README s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c ssl.h ssl2.h ssl3.h ssl23.h tls1.h ssl_locl.h
|
||||
APPS=
|
||||
AR=ar r
|
||||
CC=cc
|
||||
@@ -887,17 +886,17 @@ HEADER=ssl.h ssl2.h ssl3.h ssl23.h tls1.h ssl_locl.h
|
||||
INCLUDES=-I../crypto -I../include
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
LIB=../libssl.a
|
||||
LIBOBJ=s2_meth.o s2_srvr.o s2_clnt.o s2_lib.o s2_enc.o s2_pkt.o s3_meth.o s3_srvr.o s3_clnt.o s3_lib.o s3_enc.o s3_pkt.o s3_both.o s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o s23_pkt.o t1_meth.o t1_srvr.o t1_clnt.o t1_lib.o t1_enc.o ssl_lib.o ssl_err2.o ssl_cert.o ssl_sess.o ssl_ciph.o ssl_stat.o ssl_rsa.o ssl_asn1.o ssl_txt.o ssl_algs.o bio_ssl.o pxy_ssl.o ssl_err.o
|
||||
LIBSRC=s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c pxy_ssl.c ssl_err.c
|
||||
LIBOBJ=s2_meth.o s2_srvr.o s2_clnt.o s2_lib.o s2_enc.o s2_pkt.o s3_meth.o s3_srvr.o s3_clnt.o s3_lib.o s3_enc.o s3_pkt.o s3_both.o s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o s23_pkt.o t1_meth.o t1_srvr.o t1_clnt.o t1_lib.o t1_enc.o ssl_lib.o ssl_err2.o ssl_cert.o ssl_sess.o ssl_ciph.o ssl_stat.o ssl_rsa.o ssl_asn1.o ssl_txt.o ssl_algs.o bio_ssl.o ssl_err.o
|
||||
LIBSRC=s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../util/domd ..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c pxy_ssl.c ssl_err.c
|
||||
SRC=s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c
|
||||
TEST=ssltest.c
|
||||
TOP=..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=rsaref
|
||||
ALL=Makefile rsaref.c rsar_err.c rsaref.h
|
||||
ALL=Makefile rsaref.c rsar_err.c rsaref.h
|
||||
APPS=
|
||||
AR=ar r
|
||||
CC=cc
|
||||
@@ -906,23 +905,23 @@ CFLAGS=-I../crypto -I../include -g
|
||||
DIR=rsaref
|
||||
ERR=rsaref
|
||||
ERRC=rsar_err
|
||||
EXHEADER=
|
||||
EXHEADER=rsaref.h
|
||||
GENERAL=Makefile
|
||||
HEADER= rsaref.h
|
||||
HEADER=rsaref.h
|
||||
INCLUDES=-I../crypto -I../include
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
LIB=../libRSAglue.a
|
||||
LIBOBJ=rsaref.o rsar_err.o
|
||||
LIBSRC=rsaref.c rsar_err.c
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../util/domd ..
|
||||
MAKEFILE=Makefile.ssl
|
||||
SRC=rsaref.c rsar_err.c
|
||||
TEST=
|
||||
TOP=..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=apps
|
||||
ALL=Makefile verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c bf_perm.c version.c sess_id.c ciphers.c apps.h progs.h s_apps.h testdsa.h testrsa.h
|
||||
ALL=Makefile verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c nseq.c apps.h progs.h s_apps.h testdsa.h testrsa.h
|
||||
A_OBJ=apps.o
|
||||
A_SRC=apps.c
|
||||
CC=cc
|
||||
@@ -931,12 +930,12 @@ CFLAGS=-DMONOLITH -I../include -g -static
|
||||
DIR=apps
|
||||
DLIBCRYPTO=../libcrypto.a
|
||||
DLIBSSL=../libssl.a
|
||||
EXE=ssleay
|
||||
EXE=openssl
|
||||
EXHEADER=
|
||||
EX_LIBS=
|
||||
E_EXE=verify asn1pars req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers
|
||||
E_OBJ=verify.o asn1pars.o req.o dgst.o dh.o enc.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o dsa.o dsaparam.o x509.o genrsa.o s_server.o s_client.o s_ speed.o s_time.o apps.o s_cb.o s_socket.o bf_perm.o version.o sess_id.o ciphers.o
|
||||
E_SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c bf_perm.c version.c sess_id.c ciphers.c
|
||||
E_EXE=verify asn1pars req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa gendsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers nseq
|
||||
E_OBJ=verify.o asn1pars.o req.o dgst.o dh.o enc.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o dsa.o dsaparam.o x509.o genrsa.o gendsa.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o version.o sess_id.o ciphers.o nseq.o
|
||||
E_SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c nseq.c
|
||||
GENERAL=Makefile
|
||||
HEADER=apps.h progs.h s_apps.h testdsa.h testrsa.h
|
||||
INCLUDES=-I../include
|
||||
@@ -944,16 +943,16 @@ INSTALLTOP=/usr/local/ssl
|
||||
LIBCRYPTO=-L.. -lcrypto
|
||||
LIBSSL=-L.. -lssl
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../util/domd ..
|
||||
MAKEFILE=Makefile.ssl
|
||||
PEX_LIBS=
|
||||
PROGS=ssleay.c
|
||||
PROGRAM=openssl
|
||||
PROGS=openssl.c
|
||||
RM=/bin/rm -f
|
||||
SCRIPTS=CA.sh der_chop
|
||||
SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c bf_perm.c version.c sess_id.c ciphers.c
|
||||
SSLEAY=ssleay
|
||||
S_OBJ=s_cb.o s_socket.o bf_perm.o
|
||||
S_SRC=s_cb.c s_socket.c bf_perm.c
|
||||
SCRIPTS=CA.sh CA.pl der_chop
|
||||
SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c nseq.c
|
||||
S_OBJ=s_cb.o s_socket.o
|
||||
S_SRC=s_cb.c s_socket.c
|
||||
TOP=..
|
||||
RELATIVE_DIRECTORY=
|
||||
RELATIVE_DIRECTORY=test
|
||||
@@ -983,7 +982,7 @@ INSTALLTOP=/usr/local/ssl
|
||||
LIBCRYPTO=-L.. -lcrypto
|
||||
LIBSSL=-L.. -lssl
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -fMakefile.ssl
|
||||
MAKEDEPEND=../util/domd ..
|
||||
MAKEFILE=Makefile.ssl
|
||||
MD2TEST=md2test
|
||||
MD5TEST=md5test
|
||||
@@ -1012,7 +1011,7 @@ GENERAL=Makefile.ssl
|
||||
INCLUDES=-I.. -I../../include
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE=make -f Makefile.ssl
|
||||
MAKEDEPEND=makedepend -f Makefile.ssl
|
||||
MAKEDEPEND=../util/domd ..
|
||||
MAKEFILE=Makefile.ssl
|
||||
TEST=
|
||||
TOP=..
|
||||
|
||||
@@ -1,34 +1,10 @@
|
||||
#
|
||||
# Makefile for all the SSL related library routines and utilities
|
||||
VERSION = 0.9.1b
|
||||
PLATFORM=debug
|
||||
#
|
||||
# make install will install:
|
||||
# libraries into $INSTALLTOP/lib
|
||||
# headers into $INSTALLTOP/include
|
||||
# utilities into $INSTALLTOP/bin
|
||||
#
|
||||
# By default INSTALLTOP is set to /usr/local/ssl
|
||||
# If you want things install elsewere, consider running
|
||||
# perl util/ssldir.pl /new/path
|
||||
#
|
||||
# Interesting Mailing Lists:
|
||||
# ssl-bugs@mincom.oz.au
|
||||
# ssl-users@mincom.oz.au
|
||||
#
|
||||
# To join the Mailing Lists:
|
||||
# ssl-bugs-request@mincom.oz.au
|
||||
# ssl-users-request@mincom.oz.au
|
||||
#
|
||||
# If you must get hold of people directly (we much prefer the above
|
||||
# lists to be used if the question is of general interest!):
|
||||
# Eric Young <eay@cryptsoft.com>
|
||||
# Tim Hudson <tjh@cryptsoft.com>
|
||||
# or both <ssleay@cryptsoft.com>
|
||||
#
|
||||
# The primary distribution of SSLeay is from
|
||||
# ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL
|
||||
#
|
||||
##
|
||||
## Makefile for OpenSSL
|
||||
##
|
||||
|
||||
VERSION = 0.9.2b
|
||||
PLATFORM=dist
|
||||
|
||||
# NOCONST - Define for C compilers that don't like the const key word.
|
||||
# NOPROTO - Define in if your compiler does not support prototypes.
|
||||
# RSAref - Define if we are to link with RSAref.
|
||||
@@ -64,9 +40,9 @@ PLATFORM=debug
|
||||
|
||||
CC= gcc
|
||||
#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
|
||||
CFLAG= -DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror
|
||||
CFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
|
||||
PEX_LIBS= -L. -L.. -L../.. -L../../..
|
||||
EX_LIBS= -lefence
|
||||
EX_LIBS=
|
||||
AR=ar r
|
||||
|
||||
# Set BN_ASM to bn_asm.o if you want to use the C version
|
||||
@@ -86,7 +62,7 @@ BN_ASM= bn_asm.o
|
||||
|
||||
# Set DES_ENC to des_enc.o if you want to use the C version
|
||||
#There are 4 x86 assember options.
|
||||
DES_ENC= des_enc.o fcrypt_b.o
|
||||
DES_ENC= asm/dx86-out.o asm/yx86-out.o
|
||||
#DES_ENC= des_enc.o fcrypt_b.o # C
|
||||
#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
|
||||
#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
|
||||
@@ -95,7 +71,7 @@ DES_ENC= des_enc.o fcrypt_b.o
|
||||
|
||||
# Set BF_ENC to bf_enc.o if you want to use the C version
|
||||
#There are 4 x86 assember options.
|
||||
BF_ENC= bf_enc.o
|
||||
BF_ENC= asm/bx86-out.o
|
||||
#BF_ENC= bf_enc.o
|
||||
#BF_ENC= asm/bx86-elf.o # elf
|
||||
#BF_ENC= asm/bx86-sol.o # solaris
|
||||
@@ -104,7 +80,7 @@ BF_ENC= bf_enc.o
|
||||
|
||||
# Set CAST_ENC to c_enc.o if you want to use the C version
|
||||
#There are 4 x86 assember options.
|
||||
CAST_ENC= c_enc.o
|
||||
CAST_ENC= asm/cx86-out.o
|
||||
#CAST_ENC= c_enc.o
|
||||
#CAST_ENC= asm/cx86-elf.o # elf
|
||||
#CAST_ENC= asm/cx86-sol.o # solaris
|
||||
@@ -113,7 +89,7 @@ CAST_ENC= c_enc.o
|
||||
|
||||
# Set RC4_ENC to rc4_enc.o if you want to use the C version
|
||||
#There are 4 x86 assember options.
|
||||
RC4_ENC= rc4_enc.o
|
||||
RC4_ENC= asm/rx86-out.o
|
||||
#RC4_ENC= rc4_enc.o
|
||||
#RC4_ENC= asm/rx86-elf.o # elf
|
||||
#RC4_ENC= asm/rx86-sol.o # solaris
|
||||
@@ -122,7 +98,7 @@ RC4_ENC= rc4_enc.o
|
||||
|
||||
# Set RC5_ENC to rc5_enc.o if you want to use the C version
|
||||
#There are 4 x86 assember options.
|
||||
RC5_ENC= rc5_enc.o
|
||||
RC5_ENC= asm/r586-out.o
|
||||
#RC5_ENC= rc5_enc.o
|
||||
#RC5_ENC= asm/r586-elf.o # elf
|
||||
#RC5_ENC= asm/r586-sol.o # solaris
|
||||
@@ -130,21 +106,21 @@ RC5_ENC= rc5_enc.o
|
||||
#RC5_ENC= asm/r586bsdi.o # bsdi
|
||||
|
||||
# Also need MD5_ASM defined
|
||||
MD5_ASM_OBJ=
|
||||
MD5_ASM_OBJ= asm/mx86-out.o
|
||||
#MD5_ASM_OBJ= asm/mx86-elf.o # elf
|
||||
#MD5_ASM_OBJ= asm/mx86-sol.o # solaris
|
||||
#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD
|
||||
#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi
|
||||
|
||||
# Also need SHA1_ASM defined
|
||||
SHA1_ASM_OBJ=
|
||||
SHA1_ASM_OBJ= asm/sx86-out.o
|
||||
#SHA1_ASM_OBJ= asm/sx86-elf.o # elf
|
||||
#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris
|
||||
#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD
|
||||
#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi
|
||||
|
||||
# Also need RMD160_ASM defined
|
||||
RMD160_ASM_OBJ=
|
||||
RMD160_ASM_OBJ= asm/rm86-out.o
|
||||
#RMD160_ASM_OBJ= asm/rm86-elf.o # elf
|
||||
#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris
|
||||
#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD
|
||||
@@ -157,10 +133,9 @@ SDIRS= \
|
||||
des rc2 rc4 rc5 idea bf cast \
|
||||
bn rsa dsa dh \
|
||||
buffer bio stack lhash rand err objects \
|
||||
evp pem asn1 x509 conf txt_db pkcs7 comp
|
||||
evp asn1 pem x509 x509v3 conf txt_db pkcs7 comp
|
||||
|
||||
# If you change the INSTALLTOP, make sure to also change the values
|
||||
# in crypto/location.h
|
||||
# Do not edit this manually. Use util/ssldir.pl do change this!
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
|
||||
MAKEFILE= Makefile.ssl
|
||||
@@ -173,52 +148,53 @@ SHELL=/bin/sh
|
||||
TOP= .
|
||||
ONEDIRS=out tmp
|
||||
EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep
|
||||
MISC= COPYRIGHT Configure HISTORY.090 HISTORY.066 INSTALL Makefile.ssl \
|
||||
Makefile \
|
||||
README TODO HISTORY README.066 README.080 README.090 \
|
||||
VERSION PROBLEMS MINFO makefile.one e_os.h \
|
||||
MICROSOFT makevms.com config PATENTS
|
||||
WDIRS= windows
|
||||
LIBS= libcrypto.a libssl.a
|
||||
|
||||
GENERAL= Makefile
|
||||
BASENAME= SSLeay
|
||||
BASENAME= openssl
|
||||
NAME= $(BASENAME)-$(VERSION)
|
||||
TARFILE= $(NAME).tar
|
||||
WTARFILE= $(NAME)-win.tar
|
||||
EXHEADER= e_os.h
|
||||
HEADER= e_os.h
|
||||
|
||||
all:
|
||||
all: Makefile.ssl
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making $$i..."; \
|
||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' SDIRS='${SDIRS}' AR='${AR}' all ); \
|
||||
(cd $$i && echo "making all in $$i..." && \
|
||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' SDIRS='${SDIRS}' AR='${AR}' all ) || exit 1; \
|
||||
done;
|
||||
|
||||
sub_all:
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making $$i..."; \
|
||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' all ); \
|
||||
(cd $$i && echo "making all in $$i..." && \
|
||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' all ) || exit 1; \
|
||||
done;
|
||||
|
||||
Makefile.ssl: Makefile.org
|
||||
@echo "Makefile.ssl is older than Makefile.org."
|
||||
@echo "Reconfigure the source tree (via 'perl Configure' or 'sh config')"
|
||||
@echo "and update the error lists (via 'make errors'), please."
|
||||
@false
|
||||
|
||||
libclean:
|
||||
/bin/rm *.a */lib */*/lib
|
||||
rm -f *.a */lib */*/lib
|
||||
|
||||
clean:
|
||||
/bin/rm -f shlib/*.o *.o core a.out fluff *.map
|
||||
rm -f shlib/*.o *.o core a.out fluff *.map
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "cleaning $$i..."; \
|
||||
$(MAKE) SDIRS='${SDIRS}' clean ); \
|
||||
/bin/rm -f $(LIBS); \
|
||||
(cd $$i && echo "making clean in $$i..." && \
|
||||
$(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \
|
||||
rm -f $(LIBS); \
|
||||
done;
|
||||
/bin/rm -f *.a *.o speed.* *.map *.so .pure core
|
||||
/bin/rm -f $(TARFILE)
|
||||
rm -f *.a *.o speed.* *.map *.so .pure core
|
||||
rm -f $(TARFILE)
|
||||
@for i in $(ONEDIRS) ;\
|
||||
do \
|
||||
/bin/rm -fr $$i/*; \
|
||||
rm -fr $$i/*; \
|
||||
done
|
||||
|
||||
makefile.one: files
|
||||
@@ -229,88 +205,78 @@ files: MINFO
|
||||
perl $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making 'files' in $$i..."; \
|
||||
$(MAKE) SDIRS='${SDIRS}' files ); \
|
||||
(cd $$i && echo "making 'files' in $$i..." && \
|
||||
$(MAKE) SDIRS='${SDIRS}' files ) || exit 1; \
|
||||
done;
|
||||
|
||||
links:
|
||||
/bin/rm -f Makefile;
|
||||
./util/point.sh Makefile.ssl Makefile;
|
||||
$(TOP)/util/mklink.sh include $(EXHEADER) ;
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making links in $$i..."; \
|
||||
$(MAKE) SDIRS='${SDIRS}' links ); \
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(TOP)/util/mklink.sh include $(EXHEADER)
|
||||
@for i in $(DIRS); do \
|
||||
(cd $$i && echo "making links in $$i..." && \
|
||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' links ) || exit 1; \
|
||||
done;
|
||||
# @(cd apps; sh ./mklinks)
|
||||
@( SSLEAY="`pwd`/apps/ssleay"; export SSLEAY; sh tools/c_rehash certs )
|
||||
@(OPENSSL="`pwd`/apps/openssl"; export OPENSSL; sh tools/c_rehash certs)
|
||||
|
||||
dclean:
|
||||
/bin/rm -f *.bak
|
||||
rm -f *.bak
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "undoing makedepend in $$i..."; \
|
||||
$(MAKE) SDIRS='${SDIRS}' dclean ); \
|
||||
(cd $$i && echo "making dclean in $$i..." && \
|
||||
$(MAKE) SDIRS='${SDIRS}' dclean ) || exit 1; \
|
||||
done;
|
||||
|
||||
rehash:
|
||||
@(PATH="`pwd`/apps:${PATH}"; sh tools/c_rehash certs)
|
||||
@(OPENSSL="`pwd`/apps/openssl"; export OPENSSL; sh tools/c_rehash certs)
|
||||
|
||||
test: tests
|
||||
|
||||
tests:
|
||||
(cd test; echo "testing $$i..."; \
|
||||
@(cd test && echo "testing..." && \
|
||||
$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SDIRS='${SDIRS}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' tests );
|
||||
@apps/ssleay version -a
|
||||
@apps/openssl version -a
|
||||
|
||||
depend:
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making dependancies $$i..."; \
|
||||
$(MAKE) SDIRS='${SDIRS}' depend ); \
|
||||
(cd $$i && echo "making dependancies $$i..." && \
|
||||
$(MAKE) SDIRS='${SDIRS}' depend ) || exit 1; \
|
||||
done;
|
||||
|
||||
lint:
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making lint $$i..."; \
|
||||
$(MAKE) SDIRS='${SDIRS}' lint ); \
|
||||
(cd $$i && echo "making lint $$i..." && \
|
||||
$(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
|
||||
done;
|
||||
|
||||
tags:
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making tags $$i..."; \
|
||||
$(MAKE) SDIRS='${SDIRS}' tags ); \
|
||||
(cd $$i && echo "making tags $$i..." && \
|
||||
$(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \
|
||||
done;
|
||||
|
||||
errors:
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making errors in $$i..."; \
|
||||
$(MAKE) SDIRS='${SDIRS}' errors ); \
|
||||
(cd $$i && echo "making errors in $$i..." && \
|
||||
$(MAKE) SDIRS='${SDIRS}' errors ) || exit 1; \
|
||||
done;
|
||||
|
||||
tar:
|
||||
@(cd ..;\
|
||||
mv $(BASENAME) $(NAME); \
|
||||
export STUFF; \
|
||||
for i in $(MISC) $(DIRS) $(EDIRS) $(ONEDIRS) ;\
|
||||
do \
|
||||
STUFF="$$STUFF $(NAME)/$$i"; \
|
||||
done; \
|
||||
tar cf $(NAME)/$(TARFILE) $$STUFF; \
|
||||
mv $(NAME) $(BASENAME) )
|
||||
gzip -f $(TARFILE)
|
||||
@gtar --no-recursion -cvf - \
|
||||
`find * -depth -print | grep -v CVS | grep -v .cvsignore | grep -v STATUS | sort` |\
|
||||
tardy --user_number=0 --user_name=openssl \
|
||||
--group_number=0 --group_name=openssl \
|
||||
--prefix=openssl-$(VERSION) - |\
|
||||
gzip --best >../$(TARFILE).gz; \
|
||||
ls -l ../$(TARFILE).gz
|
||||
|
||||
dist:
|
||||
perl Configure dist
|
||||
perl util/up_ver.pl ${VERSION}
|
||||
@$(MAKE) dist_pem_h
|
||||
@$(MAKE) SDIRS='${SDIRS}' clean
|
||||
@$(MAKE) SDIRS='${SDIRS}' dclean
|
||||
@(cd apps; sh ./rmlinks)
|
||||
@$(MAKE) makefile.one
|
||||
@$(MAKE) tar
|
||||
|
||||
dist_pem_h:
|
||||
40
NEWS
Normal file
40
NEWS
Normal file
@@ -0,0 +1,40 @@
|
||||
|
||||
NEWS
|
||||
====
|
||||
|
||||
This file gives a brief overview of the major changes between each OpenSSL
|
||||
release. For more details please read the CHANGES file.
|
||||
|
||||
Major changes between SSLeay 0.9.1c and OpenSSL 0.9.2b:
|
||||
o Fixed a security hole related to session resumption
|
||||
o Fixed RSA encryption routines for the p < q case
|
||||
o "ALL" in cipher lists now means "everything except NULL ciphers"
|
||||
o Support for Triple-DES CBCM cipher
|
||||
o Support of Optimal Asymmetric Encryption Padding (OAEP) for RSA
|
||||
o First support for new TLSv1 ciphers
|
||||
o Added a few new BIOs (syslog BIO, reliable BIO)
|
||||
o Extended support for DSA certificate/keys.
|
||||
o Extended support for Certificate Signing Requests (CSR)
|
||||
o Initial support for X.509v3 extensions
|
||||
o Extended support for compression inside the SSL record layer
|
||||
o Overhauled Win32 builds
|
||||
o Cleanups and fixes to the Big Number (BN) library
|
||||
o Support for ASN.1 GeneralizedTime
|
||||
o Splitted ASN.1 SETs from SEQUENCEs
|
||||
o ASN1 and PEM support for Netscape Certificate Sequences
|
||||
o Overhauled Perl interface
|
||||
o Lots of source tree cleanups.
|
||||
o Lots of memory leak fixes.
|
||||
o Lots of bug fixes.
|
||||
|
||||
Major changes between SSLeay 0.9.0b and OpenSSL 0.9.1c:
|
||||
o Integration of the popular NO_RSA/NO_DSA patches
|
||||
o Initial support for compression inside the SSL record layer
|
||||
o Added BIO proxy and filtering functionality
|
||||
o Extended Big Number (BN) library
|
||||
o Added RIPE MD160 message digest
|
||||
o Addeed support for RC2/64bit cipher
|
||||
o Extended ASN.1 parser routines
|
||||
o Adjustations of the source tree for CVS
|
||||
o Support for various new platforms
|
||||
|
||||
13
PATENTS
13
PATENTS
@@ -1,13 +0,0 @@
|
||||
RSA Data Security holds software patents on the RSA and RC5 algorithms.
|
||||
If there ciphers are used used inside the USA (and Japan?), you must contact
|
||||
RSA Data Security for licencing conditions. Their web page is
|
||||
http://www.rsa.com
|
||||
|
||||
RC4 is a trademark of RSA Data Security, so use of this label should perhaps
|
||||
only me used with RSA Data Security's permission.
|
||||
|
||||
The IDEA algorithm is patented by Ascom in Austria, France, Germany,
|
||||
Italy, Japan, Netherlands, Spain, Sweden, Switzerland, UK and the USA.
|
||||
They should be contacted if that algorithm is to be used, their web page is
|
||||
http://www.ascom.ch
|
||||
|
||||
50
PROBLEMS
50
PROBLEMS
@@ -1,50 +0,0 @@
|
||||
If you have any problems with SSLeay then please take the following
|
||||
steps:
|
||||
|
||||
Remove the ASM version of the BN routines (edit Configure)
|
||||
Remove the compiler optimisation flags
|
||||
Add in the compiler debug flags (-g)
|
||||
|
||||
Note: if using gcc then remove -fomit-frame-pointer before you try
|
||||
to debug things.
|
||||
|
||||
If you wish to report a bug then please include the following information
|
||||
in any bug report:
|
||||
|
||||
SSLeay Details
|
||||
- Version, most of these details can be got from the
|
||||
'ssleay version -a' command.
|
||||
Operating System Details
|
||||
- OS Name
|
||||
- OS Version
|
||||
- Hardware platform
|
||||
Compiler Details
|
||||
- Name
|
||||
- Version
|
||||
Application Details
|
||||
- Name
|
||||
- Version
|
||||
Problem Description
|
||||
- include steps that will reproduce the problem (if known)
|
||||
Stack Traceback (if the application dumps core)
|
||||
|
||||
For example:
|
||||
|
||||
SSLeay-0.5.1a
|
||||
SunOS 5.3, SPARC, SunC 3.0
|
||||
SSLtelnet-0.7
|
||||
|
||||
Core dumps when using telnet with SSL support in bn_mul() with
|
||||
the following stack trackback
|
||||
...
|
||||
|
||||
|
||||
Report the bug to either
|
||||
ssleay@mincom.oz.au (Eric and Tim)
|
||||
or
|
||||
ssl-bugs@mincom.oz.au (mailing list of active developers)
|
||||
|
||||
|
||||
Tim Hudson
|
||||
tjh@mincom.oz.au
|
||||
|
||||
305
README
305
README
@@ -1,173 +1,188 @@
|
||||
SSLeay 0.9.1a 06-Jul-1998
|
||||
Copyright (c) 1997, Eric Young
|
||||
All rights reserved.
|
||||
|
||||
This directory contains Eric Young's (eay@cryptsoft.com) implementation
|
||||
of SSL and supporting libraries.
|
||||
OpenSSL 0.9.2b 22-Mar-1999
|
||||
|
||||
The current version of this library is available from
|
||||
ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-x.x.x.tar.gz
|
||||
Copyright (c) 1998-1999 The OpenSSL Project
|
||||
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
||||
All rights reserved.
|
||||
|
||||
There are patches to a number of internet applications which can be found in
|
||||
ftp://ftp.psy.uq.oz.au/pub/Crypto/SSLapps/
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
A Web page containing the SSLeay FAQ written by Tim Hudson <tjh@cryptsoft.com>
|
||||
can be found at
|
||||
http://www.psy.uq.oz.au/~ftp/Crypto
|
||||
The OpenSSL Project is a collaborative effort to develop a robust,
|
||||
commercial-grade, fully featured, and Open Source toolkit implementing the
|
||||
Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)
|
||||
protocols with full-strength cryptography world-wide. The project is managed
|
||||
by a worldwide community of volunteers that use the Internet to communicate,
|
||||
plan, and develop the OpenSSL tookit and its related documentation.
|
||||
|
||||
Additional documentation is being slowly written by Eric Young, and is being
|
||||
added to http://www.cryptsoft.com/ssleay/doc. It will normally also be
|
||||
available on http://www.psy.uq.oz.au/~ftp/Crypto/ssleay
|
||||
OpenSSL is based on the excellent SSLeay library developed from Eric A. Young
|
||||
and Tim J. Hudson. The OpenSSL toolkit is licensed under a dual-license (the
|
||||
OpenSSL license plus the SSLeay license) situation, which basically means
|
||||
that you are free to get and use it for commercial and non-commercial
|
||||
purposes as long as you fullfill the conditions of both licenses.
|
||||
|
||||
This Library and programs are FREE for commercial and non-commercial
|
||||
usage. The only restriction is that I must be attributed with the
|
||||
development of this code. See the COPYRIGHT file for more details.
|
||||
Donations would still be accepted :-).
|
||||
OVERVIEW
|
||||
--------
|
||||
|
||||
THIS LIBRARY IS NOT %100 COMPATABLE WITH SSLeay 0.6.6
|
||||
The OpenSSL toolkit includes:
|
||||
|
||||
The package includes
|
||||
libssl.a:
|
||||
Implementation of SSLv2, SSLv3, TLSv1 and the required code to support
|
||||
both SSLv2, SSLv3 and TLSv1 in the one server and client.
|
||||
|
||||
libssl.a:
|
||||
My implementation of SSLv2, SSLv3 and the required code to support
|
||||
both SSLv2 and SSLv3 in the one server.
|
||||
libcrypto.a:
|
||||
General encryption and X.509 v1/v3 stuff needed by SSL/TLS but not
|
||||
actually logically part of it. It includes routines for the following:
|
||||
|
||||
libcrypto.a:
|
||||
General encryption and X509 stuff needed by SSL but not
|
||||
actually logically part of it. It includes routines for the following:
|
||||
Ciphers
|
||||
libdes - EAY's libdes DES encryption package which has been floating
|
||||
around the net for a few years. It includes 15
|
||||
'modes/variations' of DES (1, 2 and 3 key versions of ecb,
|
||||
cbc, cfb and ofb; pcbc and a more general form of cfb and
|
||||
ofb) including desx in cbc mode, a fast crypt(3), and
|
||||
routines to read passwords from the keyboard.
|
||||
RC4 encryption,
|
||||
RC2 encryption - 4 different modes, ecb, cbc, cfb and ofb.
|
||||
Blowfish encryption - 4 different modes, ecb, cbc, cfb and ofb.
|
||||
IDEA encryption - 4 different modes, ecb, cbc, cfb and ofb.
|
||||
|
||||
Ciphers
|
||||
libdes - My libdes DES encryption package which has been floating
|
||||
around the net for a few years. It includes 15
|
||||
'modes/variations' of DES (1, 2 and 3 key versions of ecb,
|
||||
cbc, cfb and ofb; pcbc and a more general form of cfb and ofb)
|
||||
including desx in cbc mode,
|
||||
a fast crypt(3), and routines to read passwords from the
|
||||
keyboard.
|
||||
RC4 encryption,
|
||||
RC2 encryption - 4 different modes, ecb, cbc, cfb and ofb.
|
||||
Blowfish encryption - 4 different modes, ecb, cbc, cfb and ofb.
|
||||
IDEA encryption - 4 different modes, ecb, cbc, cfb and ofb.
|
||||
Digests
|
||||
MD5 and MD2 message digest algorithms, fast implementations,
|
||||
SHA (SHA-0) and SHA-1 message digest algorithms,
|
||||
MDC2 message digest. A DES based hash that is polular on smart cards.
|
||||
|
||||
Digests
|
||||
MD5 and MD2 message digest algorithms, fast implementations,
|
||||
SHA (SHA-0) and SHA-1 message digest algorithms,
|
||||
MDC2 message digest. A DES based hash that is polular on smart cards.
|
||||
Public Key
|
||||
RSA encryption/decryption/generation.
|
||||
There is no limit on the number of bits.
|
||||
DSA encryption/decryption/generation.
|
||||
There is no limit on the number of bits.
|
||||
Diffie-Hellman key-exchange/key generation.
|
||||
There is no limit on the number of bits.
|
||||
|
||||
Public Key
|
||||
RSA encryption/decryption/generation. There is no limit
|
||||
on the number of bits.
|
||||
DSA encryption/decryption/generation. There is no limit on the
|
||||
number of bits.
|
||||
Diffie-Hellman key-exchange/key generation. There is no limit
|
||||
on the number of bits.
|
||||
X.509v3 certificates
|
||||
X509 encoding/decoding into/from binary ASN1 and a PEM
|
||||
based ascii-binary encoding which supports encryption with a
|
||||
private key. Program to generate RSA and DSA certificate
|
||||
requests and to generate RSA and DSA certificates.
|
||||
|
||||
X509v3 certificates
|
||||
X509 encoding/decoding into/from binary ASN1 and a PEM
|
||||
based ascii-binary encoding which supports encryption with
|
||||
a private key.
|
||||
Program to generate RSA and DSA certificate requests and to
|
||||
generate RSA and DSA certificates.
|
||||
Systems
|
||||
The normal digital envelope routines and base64 encoding. Higher
|
||||
level access to ciphers and digests by name. New ciphers can be
|
||||
loaded at run time. The BIO io system which is a simple non-blocking
|
||||
IO abstraction. Current methods supported are file descriptors,
|
||||
sockets, socket accept, socket connect, memory buffer, buffering, SSL
|
||||
client/server, file pointer, encryption, digest, non-blocking testing
|
||||
and null.
|
||||
|
||||
Systems
|
||||
The normal digital envelope routines and base64 encoding.
|
||||
Higher level access to ciphers and digests by name. New ciphers can be
|
||||
loaded at run time.
|
||||
The BIO io system which is a simple non-blocking IO abstraction.
|
||||
Current methods supported are file descriptors, sockets,
|
||||
socket accept, socket connect, memory buffer, buffering,
|
||||
SSL client/server, file pointer, encryption, digest,
|
||||
non-blocking testing and null.
|
||||
Data structures
|
||||
A dynamically growing hashing system
|
||||
A simple stack.
|
||||
A Configuration loader that uses a format similar to MS .ini files.
|
||||
Data structures
|
||||
A dynamically growing hashing system
|
||||
A simple stack.
|
||||
A Configuration loader that uses a format similar to MS .ini files.
|
||||
|
||||
Programs in this package include
|
||||
enc - a general encryption program that can encrypt/decrypt using
|
||||
one of 17 different cipher/mode combinations. The
|
||||
input/output can also be converted to/from base64
|
||||
ascii encoding.
|
||||
dgst - a generate message digesting program that will generate
|
||||
message digests for any of md2, md5, sha (sha-0 or sha-1)
|
||||
or mdc2.
|
||||
asn1parse - parse and display the structure of an asn1 encoded
|
||||
binary file.
|
||||
rsa - Manipulate RSA private keys.
|
||||
dsa - Manipulate DSA private keys.
|
||||
dh - Manipulate Diffie-Hellman parameter files.
|
||||
dsaparam- Manipulate and generate DSA parameter files.
|
||||
crl - Manipulate certificate revocation lists.
|
||||
crt2pkcs7- Generate a pkcs7 object containing a crl and a certificate.
|
||||
x509 - Manipulate x509 certificates, self-sign certificates.
|
||||
req - Manipulate PKCS#10 certificate requests and also
|
||||
generate certificate requests.
|
||||
genrsa - Generates an arbitrary sized RSA private key.
|
||||
gendh - Generates a set of Diffie-Hellman parameters, the prime
|
||||
will be a strong prime.
|
||||
ca - Create certificates from PKCS#10 certificate requests.
|
||||
This program also maintains a database of certificates
|
||||
issued.
|
||||
verify - Check x509 certificate signatures.
|
||||
speed - Benchmark SSLeay's ciphers.
|
||||
s_server- A test SSL server.
|
||||
s_client- A test SSL client.
|
||||
s_time - Benchmark SSL performance of SSL server programs.
|
||||
errstr - Convert from SSLeay hex error codes to a readable form.
|
||||
|
||||
Documents avaliable are
|
||||
A Postscript and html reference manual
|
||||
(written by Tim Hudson tjh@cryptsoft.com).
|
||||
openssl:
|
||||
A command line tool which provides the following functions:
|
||||
|
||||
A list of text protocol references I used.
|
||||
An initial version of the library manual.
|
||||
enc - a general encryption program that can encrypt/decrypt using
|
||||
one of 17 different cipher/mode combinations. The
|
||||
input/output can also be converted to/from base64
|
||||
ascii encoding.
|
||||
dgst - a generate message digesting program that will generate
|
||||
message digests for any of md2, md5, sha (sha-0 or sha-1)
|
||||
or mdc2.
|
||||
asn1parse - parse and display the structure of an asn1 encoded
|
||||
binary file.
|
||||
rsa - Manipulate RSA private keys.
|
||||
dsa - Manipulate DSA private keys.
|
||||
dh - Manipulate Diffie-Hellman parameter files.
|
||||
dsaparam- Manipulate and generate DSA parameter files.
|
||||
crl - Manipulate certificate revocation lists.
|
||||
crt2pkcs7- Generate a pkcs7 object containing a crl and a certificate.
|
||||
x509 - Manipulate x509 certificates, self-sign certificates.
|
||||
req - Manipulate PKCS#10 certificate requests and also
|
||||
generate certificate requests.
|
||||
genrsa - Generates an arbitrary sized RSA private key.
|
||||
gendsa - Generates DSA parameters.
|
||||
gendh - Generates a set of Diffie-Hellman parameters, the prime
|
||||
will be a strong prime.
|
||||
ca - Create certificates from PKCS#10 certificate requests.
|
||||
This program also maintains a database of certificates
|
||||
issued.
|
||||
verify - Check x509 certificate signatures.
|
||||
speed - Benchmark OpenSSL's ciphers.
|
||||
s_server- A test SSL server.
|
||||
s_client- A test SSL client.
|
||||
s_time - Benchmark SSL performance of SSL server programs.
|
||||
errstr - Convert from OpenSSL hex error codes to a readable form.
|
||||
nseq - Netscape certificate sequence utility
|
||||
|
||||
PATENTS
|
||||
-------
|
||||
|
||||
To install this package, read the INSTALL file.
|
||||
For the Microsoft word, read MICROSOFT
|
||||
This library has been compiled and tested on Solaris 2.[34] (sparc and x86),
|
||||
SunOS 4.1.3, DGUX, OSF1 Alpha, HPUX 9, AIX 3.5(?), IRIX 5.[23],
|
||||
LINUX, NeXT (intel), linux, Windows NT, Windows 3.1, MSDOS 6.22.
|
||||
Various companies hold various patents for various algorithms in various
|
||||
locations around the world. _YOU_ are responsible for ensuring that your use
|
||||
of any algorithms is legel by checking if there are any patents in your
|
||||
country. The file contains some of the patents that we know about or are
|
||||
rumoured to exist. This is not a definitive list.
|
||||
|
||||
Multithreading has been tested under Windows NT and Solaris 2.5.1
|
||||
RSA Data Security holds software patents on the RSA and RC5 algorithms. If
|
||||
their ciphers are used used inside the USA (and Japan?), you must contact RSA
|
||||
Data Security for licencing conditions. Their web page is
|
||||
http://www.rsa.com/.
|
||||
|
||||
Due to time constraints, the current release has only be rigorously tested
|
||||
on Solaris 2.[45], Linux and Windows NT.
|
||||
RC4 is a trademark of RSA Data Security, so use of this label should perhaps
|
||||
only be used with RSA Data Security's permission.
|
||||
|
||||
For people in the USA, it is possible to compile SSLeay to use RSA
|
||||
Inc.'s public key library, RSAref. From my understanding, it is
|
||||
claimed by RSA Inc. to be illegal to use my public key routines inside the USA.
|
||||
Read doc/rsaref.doc on how to build with RSAref.
|
||||
The IDEA algorithm is patented by Ascom in Austria, France, Germany, Italy,
|
||||
Japan, Netherlands, Spain, Sweden, Switzerland, UK and the USA. They should
|
||||
be contacted if that algorithm is to be used, their web page is
|
||||
http://www.ascom.ch/.
|
||||
|
||||
Read the documentation in the doc directory. It is quite rough,
|
||||
but it lists the functions, you will probably have to look at
|
||||
the code to work out how to used them. I will be working on
|
||||
documentation. Look at the example programs.
|
||||
INSTALLATION
|
||||
------------
|
||||
|
||||
There should be a SSL reference manual which is being put together by
|
||||
Tim Hudson (tjh@cryptsoft.com) in the same location as this
|
||||
distribution. This contains a lot more information that is very
|
||||
useful. For a description of X509 Certificates, their use, and
|
||||
certification, read rfc1421, rfc1422, rfc1423 and rfc1424. ssl/README
|
||||
also goes over the mechanism.
|
||||
To install this package under a Unix derivative, read the INSTALL file. For
|
||||
a Win32 platform, read the INSTALL.W32 file.
|
||||
|
||||
We have setup some mailing lists for use by people that are interested
|
||||
in helping develop this code and/or ask questions.
|
||||
ssl-bugs@mincom.oz.au
|
||||
ssl-users@mincom.oz.au
|
||||
ssl-bugs-request@mincom.oz.au
|
||||
ssl-users-request@mincom.oz.au
|
||||
For people in the USA, it is possible to compile OpenSSL to use RSA Inc.'s
|
||||
public key library, RSAref. Read doc/ssleay.txt under 'rsaref.doc' on how to
|
||||
build with RSAref.
|
||||
|
||||
I have recently read about a new form of software, that which is in
|
||||
a permanent state of beta release. Linux and Netscape are 2 good
|
||||
examples of this, and I would also add SSLeay to this category.
|
||||
The Current stable release is 0.6.6. It has a few minor problems.
|
||||
0.8.0 is not call compatable so make sure you have the correct version
|
||||
of SSLeay to link with.
|
||||
Read the documentation in the doc/ directory. It is quite rough, but it
|
||||
lists the functions, you will probably have to look at the code to work out
|
||||
how to used them. Look at the example programs.
|
||||
|
||||
eric (Jun 1997)
|
||||
SUPPORT
|
||||
-------
|
||||
|
||||
Eric Young (eay@cryptsoft.com)
|
||||
86 Taunton St.
|
||||
Annerley 4103.
|
||||
Australia.
|
||||
If you have any problems with OpenSSL then please take the following steps
|
||||
first:
|
||||
|
||||
- Remove ASM versions of libraries
|
||||
- Remove compiler optimisation flags
|
||||
- Add compiler debug flags (if using gcc then remove -fomit-frame-pointer
|
||||
before you try to debug things)
|
||||
|
||||
If you wish to report a bug then please include the following information in
|
||||
any bug report:
|
||||
|
||||
OpenSSL Details
|
||||
- Version, most of these details can be got from the
|
||||
'openssl version -a' command.
|
||||
Operating System Details
|
||||
- OS Name
|
||||
- OS Version
|
||||
- Hardware platform
|
||||
Compiler Details
|
||||
- Name
|
||||
- Version
|
||||
Application Details
|
||||
- Name
|
||||
- Version
|
||||
Problem Description
|
||||
- include steps that will reproduce the problem (if known)
|
||||
Stack Traceback (if the application dumps core)
|
||||
|
||||
Report the bug to the OpenSSL project at:
|
||||
|
||||
openssl-users@openssl.org
|
||||
|
||||
|
||||
27
README.066
27
README.066
@@ -1,27 +0,0 @@
|
||||
|
||||
SSLeay 0.6.6 13-Jan-1997
|
||||
|
||||
The main additions are
|
||||
|
||||
- assember for x86 DES improvments.
|
||||
From 191,000 per second on a pentium 100, I now get 281,000. The inner
|
||||
loop and the IP/FP modifications are from
|
||||
Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>. Many thanks for his
|
||||
contribution.
|
||||
- The 'DES macros' introduced in 0.6.5 now have 3 types.
|
||||
DES_PTR1, DES_PTR2 and 'normal'. As per before, des_opts reports which
|
||||
is best and there is a summery of mine in crypto/des/options.txt
|
||||
- A few bug fixes.
|
||||
- Added blowfish. It is not used by SSL but all the other stuff that
|
||||
deals with ciphers can use it in either ecb, cbc, cfb64 or ofb64 modes.
|
||||
There are 3 options for optimising Blowfish. BF_PTR, BF_PTR2 and 'normal'.
|
||||
BF_PTR2 is pentium/x86 specific. The correct option is setup in
|
||||
the 'Configure' script.
|
||||
- There is now a 'get client certificate' callback which can be
|
||||
'non-blocking'. If more details are required, let me know. It will
|
||||
documented more in SSLv3 when I finish it.
|
||||
- Bug fixes from 0.6.5 including the infamous 'ca' bug. The 'make test'
|
||||
now tests the ca program.
|
||||
- Lots of little things modified and tweaked.
|
||||
|
||||
eric
|
||||
147
README.080
147
README.080
@@ -1,147 +0,0 @@
|
||||
This version of SSLeay has quite a lot of things different from the
|
||||
previous version.
|
||||
|
||||
Basically check all callback parameters, I will be producing documentation
|
||||
about how to use things in th future. Currently I'm just getting 080 out
|
||||
the door. Please not that there are several ways to do everything, and
|
||||
most of the applications in the apps directory are hybrids, some using old
|
||||
methods and some using new methods.
|
||||
|
||||
Have a look in demos/bio for some very simple programs and
|
||||
apps/s_client.c and apps/s_server.c for some more advanced versions.
|
||||
Notes are definitly needed but they are a week or so away.
|
||||
|
||||
Anyway, some quick nots from Tim Hudson (tjh@cryptsoft.com)
|
||||
---
|
||||
Quick porting notes for moving from SSLeay-0.6.x to SSLeay-0.8.x to
|
||||
get those people that want to move to using the new code base off to
|
||||
a quick start.
|
||||
|
||||
Note that Eric has tidied up a lot of the areas of the API that were
|
||||
less than desirable and renamed quite a few things (as he had to break
|
||||
the API in lots of places anyrate). There are a whole pile of additional
|
||||
functions for making dealing with (and creating) certificates a lot
|
||||
cleaner.
|
||||
|
||||
01-Jul-97
|
||||
Tim Hudson
|
||||
tjh@cryptsoft.com
|
||||
|
||||
---8<---
|
||||
|
||||
To maintain code that uses both SSLeay-0.6.x and SSLeay-0.8.x you could
|
||||
use something like the following (assuming you #include "crypto.h" which
|
||||
is something that you really should be doing).
|
||||
|
||||
#if SSLEAY_VERSION_NUMBER >= 0x0800
|
||||
#define SSLEAY8
|
||||
#endif
|
||||
|
||||
buffer.h -> splits into buffer.h and bio.h so you need to include bio.h
|
||||
too if you are working with BIO internal stuff (as distinct
|
||||
from simply using the interface in an opaque manner)
|
||||
|
||||
#include "bio.h" - required along with "buffer.h" if you write
|
||||
your own BIO routines as the buffer and bio
|
||||
stuff that was intermixed has been separated
|
||||
out
|
||||
|
||||
envelope.h -> evp.h (which should have been done ages ago)
|
||||
|
||||
Initialisation ... don't forget these or you end up with code that
|
||||
is missing the bits required to do useful things (like ciphers):
|
||||
|
||||
SSLeay_add_ssl_algorithms()
|
||||
(probably also want SSL_load_error_strings() too but you should have
|
||||
already had that call in place)
|
||||
|
||||
SSL_CTX_new() - requires an extra method parameter
|
||||
SSL_CTX_new(SSLv23_method())
|
||||
SSL_CTX_new(SSLv2_method())
|
||||
SSL_CTX_new(SSLv3_method())
|
||||
|
||||
OR to only have the server or the client code
|
||||
SSL_CTX_new(SSLv23_server_method())
|
||||
SSL_CTX_new(SSLv2_server_method())
|
||||
SSL_CTX_new(SSLv3_server_method())
|
||||
or
|
||||
SSL_CTX_new(SSLv23_client_method())
|
||||
SSL_CTX_new(SSLv2_client_method())
|
||||
SSL_CTX_new(SSLv3_client_method())
|
||||
|
||||
SSL_set_default_verify_paths() ... renamed to the more appropriate
|
||||
SSL_CTX_set_default_verify_paths()
|
||||
|
||||
If you want to use client certificates then you have to add in a bit
|
||||
of extra stuff in that a SSLv3 server sends a list of those CAs that
|
||||
it will accept certificates from ... so you have to provide a list to
|
||||
SSLeay otherwise certain browsers will not send client certs.
|
||||
|
||||
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(s_cert_file));
|
||||
|
||||
|
||||
X509_NAME_oneline(X) -> X509_NAME_oneline(X,NULL,0)
|
||||
or provide a buffer and size to copy the
|
||||
result into
|
||||
|
||||
X509_add_cert -> X509_STORE_add_cert (and you might want to read the
|
||||
notes on X509_NAME structure changes too)
|
||||
|
||||
|
||||
VERIFICATION CODE
|
||||
=================
|
||||
|
||||
The codes have all be renamed from VERIFY_ERR_* to X509_V_ERR_* to
|
||||
more accurately reflect things.
|
||||
|
||||
The verification callback args are now packaged differently so that
|
||||
extra fields for verification can be added easily in future without
|
||||
having to break things by adding extra parameters each release :-)
|
||||
|
||||
X509_cert_verify_error_string -> X509_verify_cert_error_string
|
||||
|
||||
|
||||
BIO INTERNALS
|
||||
=============
|
||||
|
||||
Eric has fixed things so that extra flags can be introduced in
|
||||
the BIO layer in future without having to play with all the BIO
|
||||
modules by adding in some macros.
|
||||
|
||||
The ugly stuff using
|
||||
b->flags ~= (BIO_FLAGS_RW|BIO_FLAGS_SHOULD_RETRY)
|
||||
becomes
|
||||
BIO_clear_retry_flags(b)
|
||||
|
||||
b->flags |= (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)
|
||||
becomes
|
||||
BIO_set_retry_read(b)
|
||||
|
||||
Also ... BIO_get_retry_flags(b), BIO_set_flags(b)
|
||||
|
||||
|
||||
|
||||
OTHER THINGS
|
||||
============
|
||||
|
||||
X509_NAME has been altered so that it isn't just a STACK ... the STACK
|
||||
is now in the "entries" field ... and there are a pile of nice functions
|
||||
for getting at the details in a much cleaner manner.
|
||||
|
||||
SSL_CTX has been altered ... "cert" is no longer a direct member of this
|
||||
structure ... things are now down under "cert_store" (see x509_vfy.h) and
|
||||
things are no longer in a CERTIFICATE_CTX but instead in a X509_STORE.
|
||||
If your code "knows" about this level of detail then it will need some
|
||||
surgery.
|
||||
|
||||
If you depending on the incorrect spelling of a number of the error codes
|
||||
then you will have to change your code as these have been fixed.
|
||||
|
||||
ENV_CIPHER "type" got renamed to "nid" and as that is what it actually
|
||||
has been all along so this makes things clearer.
|
||||
ify_cert_error_string(ctx->error));
|
||||
|
||||
SSL_R_NO_CIPHER_WE_TRUST -> SSL_R_NO_CIPHER_LIST
|
||||
and SSL_R_REUSE_CIPHER_LIST_NOT_ZERO
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
10-Apr-1998
|
||||
I said the next version would go out at easter, and so it shall.
|
||||
I expect a 0.9.1 will follow with portability fixes in the next few weeks.
|
||||
|
||||
This is a quick, meet the deadline. Look to ssl-users for comments on what
|
||||
is new etc.
|
||||
|
||||
eric (about to go bushwalking for the 4 day easter break :-)
|
||||
179
STATUS
Normal file
179
STATUS
Normal file
@@ -0,0 +1,179 @@
|
||||
|
||||
OpenSSL STATUS Last modified at
|
||||
______________ $Date: 1999/03/14 01:16:42 $
|
||||
|
||||
DEVELOPMENT STATE
|
||||
|
||||
o OpenSSL 0.9.2: Freezed!
|
||||
- No more feature commits, please.
|
||||
- Commit bugfixes and cleanups only, please.
|
||||
- Already successfully tested platform:
|
||||
o FreeBSD 2.2.7 Ben Laurie OK
|
||||
o FreeBSD 3.1 Ralf S. Engelschall OK
|
||||
o Solaris 2.6 Ralf S. Engelschall OK except for ctype warns
|
||||
o Linux RH 5.1 Steve Henson OK
|
||||
o Linux 2.0 RH 5.2 Ralf S. Engelschall OK
|
||||
o Linux 2.2 RH 5.2 Peter 'Luna' Altberg OK
|
||||
o WinNT,95 VC++ 5 Steve Henson OK
|
||||
|
||||
Proposed release time: Monday, March 15th 1999
|
||||
|
||||
o OpenSSL 0.9.1c: Released on December 23th, 1998
|
||||
|
||||
RELEASE SHOWSTOPPERS
|
||||
|
||||
o Compilation warnings: ctype-related int vs. char
|
||||
o Compilation error: "unsigned long*" and "int*" under AIX
|
||||
o Why are NULL ciphers in front of the cipher spec?
|
||||
(see my posting "Bug?!: Cipher Suite and NULL Ciphers" in openssl-dev)
|
||||
o A Linux alpha user reported: "alpha.s does not have bn_div_word()"
|
||||
(see posting "ALPHA error" in openssl-dev)
|
||||
o Undefined BN symbols in assembler stuff on Solaris
|
||||
(see posting "openssl-SNAP-19990308-2130 on Solaris-2.6 SC4" in openssl-dev)
|
||||
|
||||
AVAILABLE PATCHES
|
||||
|
||||
o Solaris AS error (kenji@miyake.org)
|
||||
o getenv in ca.c and x509_def.c (jaltman@watsun.cc.columbia.edu)
|
||||
o s3_lib.c - export clients (levitte@stacken.kth.se)
|
||||
o linux dynamic libs (colin@field.medicine.adelaide.edu.au)
|
||||
o MingW support (niklas@canit.se)
|
||||
o crypto/des/enc_read.c bugfix (mike@cs.mun.ca)
|
||||
|
||||
IN PROGRESS
|
||||
|
||||
o Steve is currently working on:
|
||||
X509 V3 extension code including:
|
||||
1. Support for the more common PKIX extensions.
|
||||
2. Proper (or at least usable) certificate chain verification.
|
||||
3. Support in standard applications (req, x509, ca).
|
||||
4. Documentation on how all the above works.
|
||||
Next on the list is probably PKCS#12 integration.
|
||||
|
||||
o Mark is currently working on:
|
||||
Folding in any changes that are in the C2Net code base that were
|
||||
not in the original SSLeay-0.9.1.b release. Plus other minor
|
||||
tidying.
|
||||
|
||||
o Ralf is currently working on:
|
||||
1. Support for SSL_set_default_verify_paths(),
|
||||
SSL_load_verify_locations(), SSL_get_cert_store() and
|
||||
SSL_set_cert_store() functions which work like their existing
|
||||
SSL_CTX_xxx() variants but on a per connection basis. That's needed
|
||||
to let us provide full-featured per-URL client verification in
|
||||
mod_ssl or Apache-SSL.
|
||||
=> It still dumps core, so I suspend this and investigate
|
||||
again for OpenSSL 0.9.3.
|
||||
2. The perl/ stuff to make it really work the first time ;-)
|
||||
=> I'll investigate a few more hours for OpenSSL 0.9.2
|
||||
3. The new documentation set in POD format under doc/
|
||||
=> I'll investigate a few more hours for OpenSSL 0.9.2
|
||||
4. More cleanups to get rid of obsolete/old/ugly files in the
|
||||
source tree which are not really needed.
|
||||
=> Done all which were possible with my personal knowledge
|
||||
|
||||
o Ben is currently working on:
|
||||
1. Function Prototype Thought Police issues.
|
||||
2. Integrated documentation.
|
||||
3. New TLS Ciphersuites.
|
||||
4. Anything else that takes his fancy.
|
||||
|
||||
NEEDS PATCH
|
||||
|
||||
OPEN ISSUES
|
||||
|
||||
o The Makefile hierarchy and build mechanism is still not a round thing:
|
||||
|
||||
1. The config vs. Configure scripts
|
||||
It's the same nasty situation as for Apache with APACI vs.
|
||||
src/Configure. It confuses.
|
||||
Suggestion: Merge Configure and config into a single configure
|
||||
script with a Autoconf style interface ;-) and remove
|
||||
Configure and config. Or even let us use GNU Autoconf
|
||||
itself. Then we can avoid a lot of those platform checks
|
||||
which are currently in Configure.
|
||||
|
||||
2. The xxx.org -> xxx.h generation:
|
||||
It's not obvious for which file xxx.org is the source.
|
||||
Suggestion: Rename xxx.org to xxx.h.in (Autoconf style), this way
|
||||
one sees that xxx.h.in is the input for xxx.h
|
||||
|
||||
Status: Mark +1
|
||||
|
||||
o The installation under "make install" produces a very
|
||||
installation layout: $prefix/certs and $prefix/private dirs. That's
|
||||
not nice. Ralf suggests to move the two certs and private dirs either
|
||||
to $prefix/etc/, $prefix/lib/ or $prefix/share. Alternatively
|
||||
we could also not install the certs at all.
|
||||
|
||||
Status: Ralf +1 for both not installing the certs at all and
|
||||
moving it to $prefix/etc/. +0 for $prefix/lib/
|
||||
and $prefix/share.
|
||||
Paul: why is it not nice?
|
||||
Ralf: because it messes up the install dir when
|
||||
$prefix is not a dedicated area like /usr/local/ssl.
|
||||
When we move them to a standard subdir like
|
||||
etc/ lib/ or share/ we don't mess up things
|
||||
when $prefix is /usr or /usr/local, etc.
|
||||
Additionally it makes package vendors life
|
||||
easier....
|
||||
|
||||
o Support for Shared Libraries has to be added at least
|
||||
for the major Unix platforms. The details we can rip from the stuff
|
||||
Ralf has done for the Apache src/Configure script. Ben wants the
|
||||
solution to be really simple.
|
||||
|
||||
Status: Ralf will look how we can easily incorporate the
|
||||
compiler PIC and linker DSO flags from Apache
|
||||
into the OpenSSL Configure script.
|
||||
|
||||
o The perl/ stuff needs a major overhaul. Currently it's
|
||||
totally obsolete. Either we clean it up and enhance it to be up-to-date
|
||||
with the C code or we also could replace it with the really nice
|
||||
Net::SSLeay package we can find under
|
||||
http://www.neuronio.pt/SSLeay.pm.html. Ralf uses this package for a
|
||||
longer time and it works fine and is a nice Perl module. Best would be
|
||||
to convince the author to work for the OpenSSL project and create a
|
||||
Net::OpenSSL or Crypt::OpenSSL package out of it and maintains it for
|
||||
us.
|
||||
|
||||
Status: Ralf thinks we should both contact the author of Net::SSLeay
|
||||
and look how much effort it is to bring Eric's perl/ stuff up
|
||||
to date.
|
||||
Paul +1
|
||||
|
||||
o The EVP and ASN1 stuff is a mess. Currently you have one EVP_CIPHER
|
||||
structure for each cipher. This may make sense for things like DES but
|
||||
for variable length ciphers like RC2 and RC4 it is NBG. Need a way to
|
||||
use the EVP interface and set up the cipher parameters. The ASN1 stuff
|
||||
is also foo wrt ciphers whose AlgorithmIdentifier has more than just
|
||||
an IV in it (e.g. RC2, RC5). This also means that EVP_Seal and EVP_Open
|
||||
don't work unless the key length matches the fixed value (some vendors
|
||||
use a key length decided by the size of the RSA encrypted key and expect
|
||||
RC2 to adapt).
|
||||
|
||||
o Properly initialize the PRNG in the absence of /dev/random.
|
||||
|
||||
o > NO_RSA (ejs@bfd.com)
|
||||
> ./Configure -DNO_IDEA -DNO_RC5 -DNO_RC4 -DNO_RC2 -DNO_RSA -DNO_ERR linux-elf
|
||||
> I tried for a whole day to do this and could not get it to work. Linux
|
||||
> machine, kernel 2.0.36 and 2.2.1, redhat 5.2 latest, gcc and egcs , no
|
||||
> go. I also noticed the even with -DNO_IDEA, _DNO_RC2, etc. the make
|
||||
> still goes into those subdirectories and 'makes'.
|
||||
|
||||
WISHES
|
||||
|
||||
o Damien Miller:
|
||||
"How about making the each of the locations compile-time defined. I
|
||||
would like to (for example) put binaries in /usr/bin, configuration
|
||||
data, certs and keys in /etc/openssl/certs and /etc/openssl/keys, etc.
|
||||
This would also be a great boon to binary package makers. The
|
||||
SSLeay-0.9.1b RPM already includes some patches which do some of this.
|
||||
I can forward them if you wish."
|
||||
|
||||
o Mats Nilsson <mats.nilsson@xware.se>:
|
||||
"Add reference counting to all substructures of X509 etc. For instance,
|
||||
X509_NAME lacks a reference counter, while EVP_PKEY has one. I'm
|
||||
making COM-wrappers for selected parts of SSLeay for a project of ours,
|
||||
and has found this inconsistency in copy semantics annoying."
|
||||
|
||||
28
TODO
28
TODO
@@ -1,28 +0,0 @@
|
||||
- The loading of the netscape RC4 encrypted key is a crock of pig pellets.
|
||||
It will be reworked along with a nice general mechanism for encrypting
|
||||
ASN.1 stuff. [ Jun 96 ] I've cleaned up private keys internally but
|
||||
still have not done PKCS#8 support.
|
||||
|
||||
- Winsock support in s_client/s_server for windows nt/3.1 is a crock.
|
||||
I will probably not get this fixed for a while, it is just there so
|
||||
I could test things.
|
||||
|
||||
- Be able to generate DSS certificates.
|
||||
|
||||
- Add CRL to the X509 verification stuff, this will probably be added with
|
||||
SSLv3.
|
||||
|
||||
+ X509 callback. I need to callback the application to retrieve certificates
|
||||
and CRL.
|
||||
|
||||
*<- designates the things I'm activly working on.
|
||||
+<- designates that which I have next in the queue.
|
||||
|
||||
====
|
||||
|
||||
X509v3 extensions
|
||||
verify certificate chains
|
||||
X509 cert lookup methods
|
||||
RSA/DSA/DH methods mostly for smart cards
|
||||
dsa cert generation
|
||||
|
||||
24
VERSION
24
VERSION
@@ -1,24 +0,0 @@
|
||||
SSLeay 0.8.1
|
||||
- Mostly bug fixes. There is an Ephemeral DH cipher problem which
|
||||
is fixed.
|
||||
|
||||
SSLeay 0.8.0
|
||||
- New release, for those that are wondering what happend to
|
||||
0.7.x, call it our internal development version :-)
|
||||
- There have been lots of changes, mostly the addition of SSLv3.
|
||||
- There have been many additions from people and amongst
|
||||
others, C2Net has assisted greatly.
|
||||
|
||||
SSLeay 0.6.6
|
||||
SSLeay 0.8.0 is not upward compatable with SSLeay 0.6.6, so
|
||||
if your application requires 0.6.6, use it. There have been
|
||||
lots of bug fixes to 0.8.x that have not been applied to 0.6.6
|
||||
so use 0.8.0+ in preference.
|
||||
|
||||
PORTING 0.6.6 to 0.8.0
|
||||
I'll be documenting this over the next few weeks but as
|
||||
pressures have been increasing for making SSLv3 support
|
||||
available I'm shipping it without this documentation as I
|
||||
basically have not had time to write it (too busy earning a
|
||||
living :-)
|
||||
|
||||
1
apps/.cvsignore
Normal file
1
apps/.cvsignore
Normal file
@@ -0,0 +1 @@
|
||||
openssl
|
||||
153
apps/CA.pl
Executable file
153
apps/CA.pl
Executable file
@@ -0,0 +1,153 @@
|
||||
#!/usr/local/bin/perl
|
||||
#
|
||||
# CA - wrapper around ca to make it easier to use ... basically ca requires
|
||||
# some setup stuff to be done before you can use it and this makes
|
||||
# things easier between now and when Eric is convinced to fix it :-)
|
||||
#
|
||||
# CA -newca ... will setup the right stuff
|
||||
# CA -newreq ... will generate a certificate request
|
||||
# CA -sign ... will sign the generated request and output
|
||||
#
|
||||
# At the end of that grab newreq.pem and newcert.pem (one has the key
|
||||
# and the other the certificate) and cat them together and that is what
|
||||
# you want/need ... I'll make even this a little cleaner later.
|
||||
#
|
||||
#
|
||||
# 12-Jan-96 tjh Added more things ... including CA -signcert which
|
||||
# converts a certificate to a request and then signs it.
|
||||
# 10-Jan-96 eay Fixed a few more bugs and added the SSLEAY_CONFIG
|
||||
# environment variable so this can be driven from
|
||||
# a script.
|
||||
# 25-Jul-96 eay Cleaned up filenames some more.
|
||||
# 11-Jun-96 eay Fixed a few filename missmatches.
|
||||
# 03-May-96 eay Modified to use 'ssleay cmd' instead of 'cmd'.
|
||||
# 18-Apr-96 tjh Original hacking
|
||||
#
|
||||
# Tim Hudson
|
||||
# tjh@cryptsoft.com
|
||||
#
|
||||
|
||||
# 27-Apr-98 snh Translation into perl, fix existing CA bug.
|
||||
#
|
||||
#
|
||||
# Steve Henson
|
||||
# shenson@bigfoot.com
|
||||
|
||||
# default openssl.cnf file has setup as per the following
|
||||
# demoCA ... where everything is stored
|
||||
|
||||
$DAYS="-days 365";
|
||||
$REQ="openssl req $SSLEAY_CONFIG";
|
||||
$CA="openssl ca $SSLEAY_CONFIG";
|
||||
$VERIFY="openssl verify";
|
||||
$X509="openssl x509";
|
||||
|
||||
$CATOP="./demoCA";
|
||||
$CAKEY="cakey.pem";
|
||||
$CACERT="cacert.pem";
|
||||
|
||||
$DIRMODE = 0777;
|
||||
|
||||
$RET = 0;
|
||||
|
||||
foreach (@ARGV) {
|
||||
if ( /^(-\?|-h|-help)$/ ) {
|
||||
print STDERR "usage: CA -newcert|-newreq|-newca|-sign|-verify\n";
|
||||
exit 0;
|
||||
} elsif (/^-newcert$/) {
|
||||
# create a certificate
|
||||
system ("$REQ -new -x509 -keyout newreq.pem -out newreq.pem $DAYS");
|
||||
$RET=$?;
|
||||
print "Certificate (and private key) is in newreq.pem\n"
|
||||
} elsif (/^-newreq$/) {
|
||||
# create a certificate request
|
||||
system ("$REQ -new -keyout newreq.pem -out newreq.pem $DAYS");
|
||||
$RET=$?;
|
||||
print "Request (and private key) is in newreq.pem\n";
|
||||
} elsif (/^-newca$/) {
|
||||
# if explictly asked for or it doesn't exist then setup the
|
||||
# directory structure that Eric likes to manage things
|
||||
$NEW="1";
|
||||
if ( "$NEW" || ! -f ${CATOP}/serial ) {
|
||||
# create the directory hierarchy
|
||||
mkdir $CATOP, $DIRMODE;
|
||||
mkdir "${CATOP}/certs", $DIRMODE;
|
||||
mkdir "${CATOP}/crl", $DIRMODE ;
|
||||
mkdir "${CATOP}/newcerts", $DIRMODE;
|
||||
mkdir "${CATOP}/private", $DIRMODE;
|
||||
open OUT, ">${CATOP}/serial";
|
||||
print OUT "01\n";
|
||||
close OUT;
|
||||
open OUT, ">${CATOP}/index.txt";
|
||||
close OUT;
|
||||
}
|
||||
if ( ! -f "${CATOP}/private/$CAKEY" ) {
|
||||
print "CA certificate filename (or enter to create)\n";
|
||||
$FILE = <STDIN>;
|
||||
|
||||
chop $FILE;
|
||||
|
||||
# ask user for existing CA certificate
|
||||
if ($FILE) {
|
||||
cp_pem($FILE,"${CATOP}/private/$CAKEY", "PRIVATE");
|
||||
cp_pem($FILE,"${CATOP}/$CACERT", "CERTIFICATE");
|
||||
$RET=$?;
|
||||
} else {
|
||||
print "Making CA certificate ...\n";
|
||||
system ("$REQ -new -x509 -keyout " .
|
||||
"${CATOP}/private/$CAKEY -out ${CATOP}/$CACERT $DAYS");
|
||||
$RET=$?;
|
||||
}
|
||||
}
|
||||
} elsif (/^-xsign$/) {
|
||||
system ("$CA -policy policy_anything -infiles newreq.pem");
|
||||
$RET=$?;
|
||||
} elsif (/^(-sign|-signreq)$/) {
|
||||
system ("$CA -policy policy_anything -out newcert.pem " .
|
||||
"-infiles newreq.pem");
|
||||
$RET=$?;
|
||||
print "Signed certificate is in newcert.pem\n";
|
||||
} elsif (/^-signcert$/) {
|
||||
system ("$X509 -x509toreq -in newreq.pem -signkey newreq.pem " .
|
||||
"-out tmp.pem");
|
||||
system ("$CA -policy policy_anything -out newcert.pem " .
|
||||
"-infiles tmp.pem");
|
||||
$RET = $?;
|
||||
print "Signed certificate is in newcert.pem\n";
|
||||
} elsif (/^-verify$/) {
|
||||
if (shift) {
|
||||
foreach $j (@ARGV) {
|
||||
system ("$VERIFY -CAfile $CATOP/$CACERT $j");
|
||||
$RET=$? if ($? != 0);
|
||||
}
|
||||
exit $RET;
|
||||
} else {
|
||||
system ("$VERIFY -CAfile $CATOP/$CACERT newcert.pem");
|
||||
$RET=$?;
|
||||
exit 0;
|
||||
}
|
||||
} else {
|
||||
print STDERR "Unknown arg $_\n";
|
||||
print STDERR "usage: CA -newcert|-newreq|-newca|-sign|-verify\n";
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
|
||||
exit $RET;
|
||||
|
||||
sub cp_pem {
|
||||
my ($infile, $outfile, $bound) = @_;
|
||||
open IN, $infile;
|
||||
open OUT, ">$outfile";
|
||||
my $flag = 0;
|
||||
while (<IN>) {
|
||||
$flag = 1 if (/^-----BEGIN.*$bound/) ;
|
||||
print OUT $_ if ($flag);
|
||||
if (/^-----END.*$bound/) {
|
||||
close IN;
|
||||
close OUT;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
10
apps/CA.sh
10
apps/CA.sh
@@ -27,14 +27,14 @@
|
||||
# tjh@cryptsoft.com
|
||||
#
|
||||
|
||||
# default ssleay.cnf file has setup as per the following
|
||||
# default openssl.cnf file has setup as per the following
|
||||
# demoCA ... where everything is stored
|
||||
|
||||
DAYS="-days 365"
|
||||
REQ="ssleay req $SSLEAY_CONFIG"
|
||||
CA="ssleay ca $SSLEAY_CONFIG"
|
||||
VERIFY="ssleay verify"
|
||||
X509="ssleay x509"
|
||||
REQ="openssl req $SSLEAY_CONFIG"
|
||||
CA="openssl ca $SSLEAY_CONFIG"
|
||||
VERIFY="openssl verify"
|
||||
X509="openssl x509"
|
||||
|
||||
CATOP=./demoCA
|
||||
CAKEY=./cakey.pem
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# SSLeay/apps/Makefile.ssl
|
||||
# apps/Makefile.ssl
|
||||
#
|
||||
|
||||
DIR= apps
|
||||
@@ -9,9 +9,9 @@ INCLUDES= -I../include
|
||||
CFLAG= -g -static
|
||||
INSTALLTOP= /usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= makedepend -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
RM= /bin/rm -f
|
||||
RM= rm -f
|
||||
|
||||
PEX_LIBS=
|
||||
EX_LIBS=
|
||||
@@ -25,18 +25,18 @@ DLIBSSL=../libssl.a
|
||||
LIBCRYPTO=-L.. -lcrypto
|
||||
LIBSSL=-L.. -lssl
|
||||
|
||||
SSLEAY= ssleay
|
||||
PROGRAM= openssl
|
||||
|
||||
SCRIPTS=CA.sh der_chop
|
||||
SCRIPTS=CA.sh CA.pl der_chop
|
||||
|
||||
EXE= $(SSLEAY)
|
||||
EXE= $(PROGRAM)
|
||||
|
||||
E_EXE= verify asn1pars req dgst dh enc gendh errstr ca crl \
|
||||
rsa dsa dsaparam \
|
||||
x509 genrsa s_server s_client speed \
|
||||
s_time version pkcs7 crl2pkcs7 sess_id ciphers
|
||||
x509 genrsa gendsa s_server s_client speed \
|
||||
s_time version pkcs7 crl2pkcs7 sess_id ciphers nseq
|
||||
|
||||
PROGS= $(SSLEAY).c
|
||||
PROGS= $(PROGRAM).c
|
||||
|
||||
A_OBJ=apps.o
|
||||
A_SRC=apps.c
|
||||
@@ -46,18 +46,18 @@ S_SRC= s_cb.c s_socket.c
|
||||
E_OBJ= verify.o asn1pars.o req.o dgst.o dh.o enc.o gendh.o errstr.o ca.o \
|
||||
pkcs7.o crl2p7.o crl.o \
|
||||
rsa.o dsa.o dsaparam.o \
|
||||
x509.o genrsa.o s_server.o s_client.o speed.o \
|
||||
x509.o genrsa.o gendsa.o s_server.o s_client.o speed.o \
|
||||
s_time.o $(A_OBJ) $(S_OBJ) version.o sess_id.o \
|
||||
ciphers.o
|
||||
ciphers.o nseq.o
|
||||
|
||||
# pem_mail.o
|
||||
|
||||
E_SRC= verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c \
|
||||
pkcs7.c crl2p7.c crl.c \
|
||||
rsa.c dsa.c dsaparam.c \
|
||||
x509.c genrsa.c s_server.c s_client.c speed.c \
|
||||
x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c \
|
||||
s_time.c $(A_SRC) $(S_SRC) version.c sess_id.c \
|
||||
ciphers.c
|
||||
ciphers.c nseq.c
|
||||
|
||||
# pem_mail.c
|
||||
|
||||
@@ -86,18 +86,15 @@ sreq.o: req.c
|
||||
files:
|
||||
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
install: mklinks
|
||||
@for i in $(EXE) $(SCRIPTS) mklinks; \
|
||||
install:
|
||||
@for i in $(EXE) $(SCRIPTS); \
|
||||
do \
|
||||
(echo installing $$i; \
|
||||
cp $$i $(INSTALLTOP)/bin/$$i; \
|
||||
chmod 755 $(INSTALLTOP)/bin/$$i ); \
|
||||
done; \
|
||||
cp ssleay.cnf $(INSTALLTOP)/lib
|
||||
chmod 644 $(INSTALLTOP)/lib/ssleay.cnf
|
||||
cd $(INSTALLTOP)/bin; \
|
||||
/bin/sh ./mklinks; \
|
||||
/bin/rm -f ./mklinks
|
||||
cp openssl.cnf $(INSTALLTOP)/lib; \
|
||||
chmod 644 $(INSTALLTOP)/lib/openssl.cnf
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
@@ -105,8 +102,7 @@ tags:
|
||||
tests:
|
||||
|
||||
links:
|
||||
/bin/rm -f Makefile
|
||||
$(TOP)/util/point.sh Makefile.ssl Makefile ;
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
@@ -121,8 +117,8 @@ dclean:
|
||||
errors:
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff $(EXE)
|
||||
/bin/rm -f req
|
||||
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff $(EXE)
|
||||
rm -f req
|
||||
|
||||
$(DLIBSSL):
|
||||
(cd ../ssl; $(MAKE))
|
||||
@@ -130,15 +126,326 @@ $(DLIBSSL):
|
||||
$(DLIBCRYPTO):
|
||||
(cd ../crypto; $(MAKE))
|
||||
|
||||
$(SSLEAY): progs.h $(E_OBJ) $(SSLEAY).o $(DLIBCRYPTO) $(DLIBSSL)
|
||||
$(RM) $(SSLEAY)
|
||||
$(CC) -o $(SSLEAY) $(CFLAGS) $(SSLEAY).o $(E_OBJ) $(PEX_LIBS) $(LIBSSL) $(LIBCRYPTO) $(EX_LIBS)
|
||||
$(PROGRAM): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
|
||||
$(RM) $(PROGRAM)
|
||||
$(CC) -o $(PROGRAM) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(LIBSSL) $(LIBCRYPTO) $(EX_LIBS)
|
||||
@(cd ..; OPENSSL="`pwd`/apps/openssl"; export OPENSSL; sh tools/c_rehash certs)
|
||||
|
||||
progs.h:
|
||||
perl ./g_ssleay.pl $(E_EXE) >progs.h
|
||||
$(RM) $(SSLEAY).o
|
||||
|
||||
mklinks:
|
||||
perl ./g_ssleay.pl $(E_EXE) >progs.h
|
||||
perl ./progs.pl $(E_EXE) >progs.h
|
||||
$(RM) $(PROGRAM).o
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
apps.o: ../include/bio.h ../include/buffer.h ../include/crypto.h
|
||||
apps.o: ../include/e_os.h ../include/opensslv.h ../include/stack.h apps.h
|
||||
apps.o: progs.h
|
||||
asn1pars.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
asn1pars.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
asn1pars.o: ../include/crypto.h ../include/des.h ../include/dh.h
|
||||
asn1pars.o: ../include/dsa.h ../include/e_os.h ../include/err.h
|
||||
asn1pars.o: ../include/evp.h ../include/idea.h ../include/md2.h
|
||||
asn1pars.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
|
||||
asn1pars.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
|
||||
asn1pars.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
|
||||
asn1pars.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h
|
||||
asn1pars.o: ../include/sha.h ../include/stack.h ../include/x509.h
|
||||
asn1pars.o: ../include/x509_vfy.h apps.h progs.h
|
||||
ca.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
|
||||
ca.o: ../include/buffer.h ../include/cast.h ../include/conf.h
|
||||
ca.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
ca.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
ca.o: ../include/lhash.h ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
ca.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
ca.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
|
||||
ca.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
ca.o: ../include/stack.h ../include/txt_db.h ../include/x509.h
|
||||
ca.o: ../include/x509_vfy.h ../include/x509v3.h apps.h progs.h
|
||||
ciphers.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
ciphers.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
ciphers.o: ../include/crypto.h ../include/des.h ../include/dh.h
|
||||
ciphers.o: ../include/dsa.h ../include/e_os.h ../include/err.h ../include/evp.h
|
||||
ciphers.o: ../include/idea.h ../include/lhash.h ../include/md2.h
|
||||
ciphers.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
|
||||
ciphers.o: ../include/opensslv.h ../include/pkcs7.h ../include/rc2.h
|
||||
ciphers.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
|
||||
ciphers.o: ../include/rsa.h ../include/sha.h ../include/ssl.h ../include/ssl2.h
|
||||
ciphers.o: ../include/ssl23.h ../include/ssl3.h ../include/stack.h
|
||||
ciphers.o: ../include/tls1.h ../include/x509.h ../include/x509_vfy.h apps.h
|
||||
ciphers.o: progs.h
|
||||
crl.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
|
||||
crl.o: ../include/buffer.h ../include/cast.h ../include/crypto.h
|
||||
crl.o: ../include/des.h ../include/dh.h ../include/dsa.h ../include/e_os.h
|
||||
crl.o: ../include/err.h ../include/evp.h ../include/idea.h ../include/md2.h
|
||||
crl.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
|
||||
crl.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
|
||||
crl.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
crl.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h ../include/stack.h
|
||||
crl.o: ../include/x509.h ../include/x509_vfy.h ../include/x509v3.h apps.h
|
||||
crl.o: progs.h
|
||||
crl2p7.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
crl2p7.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
crl2p7.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
crl2p7.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
crl2p7.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
crl2p7.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
crl2p7.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h
|
||||
crl2p7.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
|
||||
crl2p7.o: ../include/rsa.h ../include/sha.h ../include/stack.h
|
||||
crl2p7.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
|
||||
dgst.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
dgst.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
dgst.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
dgst.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
dgst.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
dgst.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
dgst.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
|
||||
dgst.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
dgst.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h apps.h
|
||||
dgst.o: progs.h
|
||||
dh.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
|
||||
dh.o: ../include/buffer.h ../include/cast.h ../include/crypto.h
|
||||
dh.o: ../include/des.h ../include/dh.h ../include/dsa.h ../include/e_os.h
|
||||
dh.o: ../include/err.h ../include/evp.h ../include/idea.h ../include/md2.h
|
||||
dh.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
|
||||
dh.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
|
||||
dh.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
dh.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h ../include/stack.h
|
||||
dh.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
|
||||
dsa.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
|
||||
dsa.o: ../include/buffer.h ../include/cast.h ../include/crypto.h
|
||||
dsa.o: ../include/des.h ../include/dh.h ../include/dsa.h ../include/e_os.h
|
||||
dsa.o: ../include/err.h ../include/evp.h ../include/idea.h ../include/md2.h
|
||||
dsa.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
|
||||
dsa.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
|
||||
dsa.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
dsa.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h ../include/stack.h
|
||||
dsa.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
|
||||
dsaparam.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
dsaparam.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
dsaparam.o: ../include/crypto.h ../include/des.h ../include/dh.h
|
||||
dsaparam.o: ../include/dsa.h ../include/e_os.h ../include/err.h
|
||||
dsaparam.o: ../include/evp.h ../include/idea.h ../include/md2.h
|
||||
dsaparam.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
|
||||
dsaparam.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
|
||||
dsaparam.o: ../include/pkcs7.h ../include/rand.h ../include/rc2.h
|
||||
dsaparam.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
|
||||
dsaparam.o: ../include/rsa.h ../include/sha.h ../include/stack.h
|
||||
dsaparam.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
|
||||
enc.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
|
||||
enc.o: ../include/buffer.h ../include/cast.h ../include/crypto.h
|
||||
enc.o: ../include/des.h ../include/dh.h ../include/dsa.h ../include/e_os.h
|
||||
enc.o: ../include/err.h ../include/evp.h ../include/idea.h ../include/md2.h
|
||||
enc.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
|
||||
enc.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
|
||||
enc.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
enc.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h ../include/stack.h
|
||||
enc.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
|
||||
errstr.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
errstr.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
errstr.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
errstr.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
errstr.o: ../include/lhash.h ../include/md2.h ../include/md5.h
|
||||
errstr.o: ../include/mdc2.h ../include/objects.h ../include/opensslv.h
|
||||
errstr.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
errstr.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
errstr.o: ../include/ssl.h ../include/ssl2.h ../include/ssl23.h
|
||||
errstr.o: ../include/ssl3.h ../include/stack.h ../include/tls1.h
|
||||
errstr.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
|
||||
gendh.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
gendh.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
gendh.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
gendh.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
gendh.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
gendh.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
gendh.o: ../include/pem2.h ../include/pkcs7.h ../include/rand.h
|
||||
gendh.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h ../include/ripemd.h
|
||||
gendh.o: ../include/rsa.h ../include/sha.h ../include/stack.h ../include/x509.h
|
||||
gendh.o: ../include/x509_vfy.h apps.h progs.h
|
||||
gendsa.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
gendsa.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
gendsa.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
gendsa.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
gendsa.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
gendsa.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
gendsa.o: ../include/pem2.h ../include/pkcs7.h ../include/rand.h
|
||||
gendsa.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
gendsa.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
gendsa.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h apps.h
|
||||
gendsa.o: progs.h
|
||||
genrsa.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
genrsa.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
genrsa.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
genrsa.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
genrsa.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
genrsa.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
genrsa.o: ../include/pem2.h ../include/pkcs7.h ../include/rand.h
|
||||
genrsa.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
genrsa.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
genrsa.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h apps.h
|
||||
genrsa.o: progs.h
|
||||
nseq.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
nseq.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
nseq.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
nseq.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
nseq.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
nseq.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
nseq.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
|
||||
nseq.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
nseq.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h apps.h
|
||||
nseq.o: progs.h
|
||||
openssl.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
openssl.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
openssl.o: ../include/conf.h ../include/crypto.h ../include/des.h
|
||||
openssl.o: ../include/dh.h ../include/dsa.h ../include/e_os.h ../include/err.h
|
||||
openssl.o: ../include/evp.h ../include/idea.h ../include/lhash.h
|
||||
openssl.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
openssl.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
openssl.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h
|
||||
openssl.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
|
||||
openssl.o: ../include/rsa.h ../include/sha.h ../include/ssl.h ../include/ssl2.h
|
||||
openssl.o: ../include/ssl23.h ../include/ssl3.h ../include/stack.h
|
||||
openssl.o: ../include/tls1.h ../include/x509.h ../include/x509_vfy.h apps.h
|
||||
openssl.o: progs.h s_apps.h
|
||||
pkcs7.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
pkcs7.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
pkcs7.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
pkcs7.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
pkcs7.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
pkcs7.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
pkcs7.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
|
||||
pkcs7.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
pkcs7.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h apps.h
|
||||
pkcs7.o: progs.h
|
||||
req.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
|
||||
req.o: ../include/buffer.h ../include/cast.h ../include/conf.h
|
||||
req.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
req.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
req.o: ../include/lhash.h ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
req.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
req.o: ../include/pem2.h ../include/pkcs7.h ../include/rand.h ../include/rc2.h
|
||||
req.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h ../include/rsa.h
|
||||
req.o: ../include/sha.h ../include/stack.h ../include/x509.h
|
||||
req.o: ../include/x509_vfy.h ../include/x509v3.h apps.h progs.h
|
||||
rsa.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
|
||||
rsa.o: ../include/buffer.h ../include/cast.h ../include/crypto.h
|
||||
rsa.o: ../include/des.h ../include/dh.h ../include/dsa.h ../include/e_os.h
|
||||
rsa.o: ../include/err.h ../include/evp.h ../include/idea.h ../include/md2.h
|
||||
rsa.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
|
||||
rsa.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
|
||||
rsa.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
rsa.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h ../include/stack.h
|
||||
rsa.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
|
||||
s_cb.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
s_cb.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
s_cb.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
s_cb.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
s_cb.o: ../include/lhash.h ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
s_cb.o: ../include/objects.h ../include/opensslv.h ../include/pkcs7.h
|
||||
s_cb.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h ../include/ripemd.h
|
||||
s_cb.o: ../include/rsa.h ../include/sha.h ../include/ssl.h ../include/ssl2.h
|
||||
s_cb.o: ../include/ssl23.h ../include/ssl3.h ../include/stack.h
|
||||
s_cb.o: ../include/tls1.h ../include/x509.h ../include/x509_vfy.h apps.h
|
||||
s_cb.o: progs.h s_apps.h
|
||||
s_client.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
s_client.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
s_client.o: ../include/crypto.h ../include/des.h ../include/dh.h
|
||||
s_client.o: ../include/dsa.h ../include/e_os.h ../include/err.h
|
||||
s_client.o: ../include/evp.h ../include/idea.h ../include/lhash.h
|
||||
s_client.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
s_client.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
s_client.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h
|
||||
s_client.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
|
||||
s_client.o: ../include/rsa.h ../include/sha.h ../include/ssl.h
|
||||
s_client.o: ../include/ssl2.h ../include/ssl23.h ../include/ssl3.h
|
||||
s_client.o: ../include/stack.h ../include/tls1.h ../include/x509.h
|
||||
s_client.o: ../include/x509_vfy.h apps.h progs.h s_apps.h
|
||||
s_server.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
s_server.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
s_server.o: ../include/crypto.h ../include/des.h ../include/dh.h
|
||||
s_server.o: ../include/dsa.h ../include/e_os.h ../include/err.h
|
||||
s_server.o: ../include/evp.h ../include/idea.h ../include/lhash.h
|
||||
s_server.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
s_server.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
s_server.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h
|
||||
s_server.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
|
||||
s_server.o: ../include/rsa.h ../include/sha.h ../include/ssl.h
|
||||
s_server.o: ../include/ssl2.h ../include/ssl23.h ../include/ssl3.h
|
||||
s_server.o: ../include/stack.h ../include/tls1.h ../include/x509.h
|
||||
s_server.o: ../include/x509_vfy.h apps.h progs.h s_apps.h
|
||||
s_socket.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
s_socket.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
s_socket.o: ../include/crypto.h ../include/des.h ../include/dh.h
|
||||
s_socket.o: ../include/dsa.h ../include/e_os.h ../include/evp.h
|
||||
s_socket.o: ../include/idea.h ../include/lhash.h ../include/md2.h
|
||||
s_socket.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
|
||||
s_socket.o: ../include/opensslv.h ../include/pkcs7.h ../include/rc2.h
|
||||
s_socket.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
|
||||
s_socket.o: ../include/rsa.h ../include/sha.h ../include/ssl.h
|
||||
s_socket.o: ../include/ssl2.h ../include/ssl23.h ../include/ssl3.h
|
||||
s_socket.o: ../include/stack.h ../include/tls1.h ../include/x509.h
|
||||
s_socket.o: ../include/x509_vfy.h apps.h progs.h s_apps.h
|
||||
s_time.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
s_time.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
s_time.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
s_time.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
s_time.o: ../include/lhash.h ../include/md2.h ../include/md5.h
|
||||
s_time.o: ../include/mdc2.h ../include/objects.h ../include/opensslv.h
|
||||
s_time.o: ../include/pem.h ../include/pem2.h ../include/pkcs7.h
|
||||
s_time.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
s_time.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
s_time.o: ../include/ssl.h ../include/ssl2.h ../include/ssl23.h
|
||||
s_time.o: ../include/ssl3.h ../include/stack.h ../include/tls1.h
|
||||
s_time.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h s_apps.h
|
||||
sess_id.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
sess_id.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
sess_id.o: ../include/crypto.h ../include/des.h ../include/dh.h
|
||||
sess_id.o: ../include/dsa.h ../include/e_os.h ../include/err.h ../include/evp.h
|
||||
sess_id.o: ../include/idea.h ../include/lhash.h ../include/md2.h
|
||||
sess_id.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
|
||||
sess_id.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
|
||||
sess_id.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
|
||||
sess_id.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h
|
||||
sess_id.o: ../include/sha.h ../include/ssl.h ../include/ssl2.h
|
||||
sess_id.o: ../include/ssl23.h ../include/ssl3.h ../include/stack.h
|
||||
sess_id.o: ../include/tls1.h ../include/x509.h ../include/x509_vfy.h apps.h
|
||||
sess_id.o: progs.h
|
||||
speed.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
speed.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
speed.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
speed.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/hmac.h
|
||||
speed.o: ../include/idea.h ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
speed.o: ../include/objects.h ../include/opensslv.h ../include/pkcs7.h
|
||||
speed.o: ../include/rand.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
speed.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
speed.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h ./testdsa.h
|
||||
speed.o: ./testrsa.h apps.h progs.h
|
||||
verify.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
verify.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
verify.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
verify.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
verify.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
verify.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
verify.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h
|
||||
verify.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
|
||||
verify.o: ../include/rsa.h ../include/sha.h ../include/stack.h
|
||||
verify.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
|
||||
version.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
version.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
version.o: ../include/crypto.h ../include/des.h ../include/dh.h
|
||||
version.o: ../include/dsa.h ../include/e_os.h ../include/evp.h
|
||||
version.o: ../include/idea.h ../include/md2.h ../include/md5.h
|
||||
version.o: ../include/mdc2.h ../include/objects.h ../include/opensslv.h
|
||||
version.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h
|
||||
version.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
version.o: ../include/stack.h apps.h progs.h
|
||||
x509.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
|
||||
x509.o: ../include/bn.h ../include/buffer.h ../include/cast.h
|
||||
x509.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
|
||||
x509.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
|
||||
x509.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
|
||||
x509.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
|
||||
x509.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
|
||||
x509.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h ../include/sha.h
|
||||
x509.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h
|
||||
x509.o: ../include/x509v3.h apps.h progs.h
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
*/
|
||||
|
||||
/* A nice addition from Dr Stephen Henson <shenson@bigfoot.com> to
|
||||
* add the -strparse option which parses nested binarary structures
|
||||
* add the -strparse option which parses nested binary structures
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
@@ -164,7 +164,7 @@ bad:
|
||||
BIO_printf(bio_err,"%s [options] <infile\n",prog);
|
||||
BIO_printf(bio_err,"where options are\n");
|
||||
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -in arg inout file\n");
|
||||
BIO_printf(bio_err," -in arg input file\n");
|
||||
BIO_printf(bio_err," -offset arg offset into file\n");
|
||||
BIO_printf(bio_err," -length arg lenth of section in file\n");
|
||||
BIO_printf(bio_err," -i indent entries\n");
|
||||
|
||||
324
apps/bss_file.c
Normal file
324
apps/bss_file.c
Normal file
@@ -0,0 +1,324 @@
|
||||
/* crypto/bio/bss_file.c */
|
||||
/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#define APPS_WIN16
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include "cryptlib.h"
|
||||
#include "bio.h"
|
||||
#include "err.h"
|
||||
|
||||
#ifndef NOPROTO
|
||||
static int MS_CALLBACK file_write(BIO *h,char *buf,int num);
|
||||
static int MS_CALLBACK file_read(BIO *h,char *buf,int size);
|
||||
static int MS_CALLBACK file_puts(BIO *h,char *str);
|
||||
static int MS_CALLBACK file_gets(BIO *h,char *str,int size);
|
||||
static long MS_CALLBACK file_ctrl(BIO *h,int cmd,long arg1,char *arg2);
|
||||
static int MS_CALLBACK file_new(BIO *h);
|
||||
static int MS_CALLBACK file_free(BIO *data);
|
||||
#else
|
||||
static int MS_CALLBACK file_write();
|
||||
static int MS_CALLBACK file_read();
|
||||
static int MS_CALLBACK file_puts();
|
||||
static int MS_CALLBACK file_gets();
|
||||
static long MS_CALLBACK file_ctrl();
|
||||
static int MS_CALLBACK file_new();
|
||||
static int MS_CALLBACK file_free();
|
||||
#endif
|
||||
|
||||
static BIO_METHOD methods_filep=
|
||||
{
|
||||
BIO_TYPE_FILE,"FILE pointer",
|
||||
file_write,
|
||||
file_read,
|
||||
file_puts,
|
||||
file_gets,
|
||||
file_ctrl,
|
||||
file_new,
|
||||
file_free,
|
||||
};
|
||||
|
||||
BIO *BIO_new_file(filename,mode)
|
||||
char *filename;
|
||||
char *mode;
|
||||
{
|
||||
BIO *ret;
|
||||
FILE *file;
|
||||
|
||||
if ((file=fopen(filename,mode)) == NULL)
|
||||
{
|
||||
SYSerr(SYS_F_FOPEN,errno);
|
||||
BIOerr(BIO_F_BIO_NEW_FILE,ERR_R_SYS_LIB);
|
||||
return(NULL);
|
||||
}
|
||||
if ((ret=BIO_new_fp(file,BIO_CLOSE)) == NULL)
|
||||
{
|
||||
fclose(file);
|
||||
return(NULL);
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
BIO *BIO_new_fp(stream,close_flag)
|
||||
FILE *stream;
|
||||
int close_flag;
|
||||
{
|
||||
BIO *ret;
|
||||
|
||||
if ((ret=BIO_new(BIO_s_file())) == NULL)
|
||||
return(NULL);
|
||||
BIO_set_fp(ret,stream,close_flag);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
#if !defined(WIN16) || defined(APPS_WIN16)
|
||||
|
||||
BIO_METHOD *BIO_s_file()
|
||||
{
|
||||
return(&methods_filep);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
BIO_METHOD *BIO_s_file_internal_w16()
|
||||
{
|
||||
return(&methods_filep);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static int MS_CALLBACK file_new(bi)
|
||||
BIO *bi;
|
||||
{
|
||||
bi->init=0;
|
||||
bi->num=0;
|
||||
bi->ptr=NULL;
|
||||
return(1);
|
||||
}
|
||||
|
||||
static int MS_CALLBACK file_free(a)
|
||||
BIO *a;
|
||||
{
|
||||
if (a == NULL) return(0);
|
||||
if (a->shutdown)
|
||||
{
|
||||
if ((a->init) && (a->ptr != NULL))
|
||||
{
|
||||
fclose((FILE *)a->ptr);
|
||||
a->ptr=NULL;
|
||||
}
|
||||
a->init=0;
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
static int MS_CALLBACK file_read(b,out,outl)
|
||||
BIO *b;
|
||||
char *out;
|
||||
int outl;
|
||||
{
|
||||
int ret=0;
|
||||
|
||||
if (b->init && (out != NULL))
|
||||
{
|
||||
ret=fread(out,1,(int)outl,(FILE *)b->ptr);
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static int MS_CALLBACK file_write(b,in,inl)
|
||||
BIO *b;
|
||||
char *in;
|
||||
int inl;
|
||||
{
|
||||
int ret=0;
|
||||
|
||||
if (b->init && (in != NULL))
|
||||
{
|
||||
if (fwrite(in,(int)inl,1,(FILE *)b->ptr))
|
||||
ret=inl;
|
||||
/* ret=fwrite(in,1,(int)inl,(FILE *)b->ptr); */
|
||||
/* acording to Tim Hudson <tjh@cryptsoft.com>, the commented
|
||||
* out version above can cause 'inl' write calls under
|
||||
* some stupid stdio implementations (VMS) */
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static long MS_CALLBACK file_ctrl(b,cmd,num,ptr)
|
||||
BIO *b;
|
||||
int cmd;
|
||||
long num;
|
||||
char *ptr;
|
||||
{
|
||||
long ret=1;
|
||||
FILE *fp=(FILE *)b->ptr;
|
||||
FILE **fpp;
|
||||
char p[4];
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case BIO_CTRL_RESET:
|
||||
ret=(long)fseek(fp,num,0);
|
||||
break;
|
||||
case BIO_CTRL_EOF:
|
||||
ret=(long)feof(fp);
|
||||
break;
|
||||
case BIO_CTRL_INFO:
|
||||
ret=ftell(fp);
|
||||
break;
|
||||
case BIO_C_SET_FILE_PTR:
|
||||
file_free(b);
|
||||
b->shutdown=(int)num;
|
||||
b->ptr=(char *)ptr;
|
||||
b->init=1;
|
||||
break;
|
||||
case BIO_C_SET_FILENAME:
|
||||
file_free(b);
|
||||
b->shutdown=(int)num&BIO_CLOSE;
|
||||
if (num & BIO_FP_APPEND)
|
||||
{
|
||||
if (num & BIO_FP_READ)
|
||||
strcpy(p,"a+");
|
||||
else strcpy(p,"a");
|
||||
}
|
||||
else if ((num & BIO_FP_READ) && (num & BIO_FP_WRITE))
|
||||
strcpy(p,"r+");
|
||||
else if (num & BIO_FP_WRITE)
|
||||
strcpy(p,"w");
|
||||
else if (num & BIO_FP_READ)
|
||||
strcpy(p,"r");
|
||||
else
|
||||
{
|
||||
BIOerr(BIO_F_FILE_CTRL,BIO_R_BAD_FOPEN_MODE);
|
||||
ret=0;
|
||||
break;
|
||||
}
|
||||
#if defined(MSDOS) || defined(WINDOWS)
|
||||
if (!(num & BIO_FP_TEXT))
|
||||
strcat(p,"b");
|
||||
else
|
||||
strcat(p,"t");
|
||||
#endif
|
||||
fp=fopen(ptr,p);
|
||||
if (fp == NULL)
|
||||
{
|
||||
SYSerr(SYS_F_FOPEN,errno);
|
||||
BIOerr(BIO_F_FILE_CTRL,ERR_R_SYS_LIB);
|
||||
ret=0;
|
||||
break;
|
||||
}
|
||||
b->ptr=(char *)fp;
|
||||
b->init=1;
|
||||
break;
|
||||
case BIO_C_GET_FILE_PTR:
|
||||
/* the ptr parameter is actually a FILE ** in this case. */
|
||||
if (ptr != NULL)
|
||||
{
|
||||
fpp=(FILE **)ptr;
|
||||
*fpp=(FILE *)b->ptr;
|
||||
}
|
||||
break;
|
||||
case BIO_CTRL_GET_CLOSE:
|
||||
ret=(long)b->shutdown;
|
||||
break;
|
||||
case BIO_CTRL_SET_CLOSE:
|
||||
b->shutdown=(int)num;
|
||||
break;
|
||||
case BIO_CTRL_FLUSH:
|
||||
fflush((FILE *)b->ptr);
|
||||
break;
|
||||
case BIO_CTRL_DUP:
|
||||
ret=1;
|
||||
break;
|
||||
|
||||
case BIO_CTRL_PENDING:
|
||||
case BIO_CTRL_PUSH:
|
||||
case BIO_CTRL_POP:
|
||||
default:
|
||||
ret=0;
|
||||
break;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static int MS_CALLBACK file_gets(bp,buf,size)
|
||||
BIO *bp;
|
||||
char *buf;
|
||||
int size;
|
||||
{
|
||||
int ret=0;
|
||||
|
||||
buf[0]='\0';
|
||||
fgets(buf,size,(FILE *)bp->ptr);
|
||||
if (buf[0] != '\0')
|
||||
ret=strlen(buf);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static int MS_CALLBACK file_puts(bp,str)
|
||||
BIO *bp;
|
||||
char *str;
|
||||
{
|
||||
int n,ret;
|
||||
|
||||
n=strlen(str);
|
||||
ret=file_write(bp,str,n);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
9
apps/c512-key.pem
Normal file
9
apps/c512-key.pem
Normal file
@@ -0,0 +1,9 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIBOwIBAAJBALtv55QyzG6i2PlwZ1pah7++Gv8L5j6Hnyr/uTZE1NLG0ABDDexm
|
||||
q/R4KedLjFEIYjocDui+IXs62NNtXrT8odkCAwEAAQJAbwXq0vJ/+uyEvsNgxLko
|
||||
/V86mGXQ/KrSkeKlL0r4ENxjcyeMAGoKu6J9yMY7+X9+Zm4nxShNfTsf/+Freoe1
|
||||
HQIhAPOSm5Q1YI+KIsII2GeVJx1U69+wnd71OasIPakS1L1XAiEAxQAW+J3/JWE0
|
||||
ftEYakbhUOKL8tD1OaFZS71/5GdG7E8CIQCefUMmySSvwd6kC0VlATSWbW+d+jp/
|
||||
nWmM1KvqnAo5uQIhALqEADu5U1Wvt8UN8UDGBRPQulHWNycuNV45d3nnskWPAiAw
|
||||
ueTyr6WsZ5+SD8g/Hy3xuvF3nPmJRH+rwvVihlcFOg==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
8
apps/c512-req.pem
Normal file
8
apps/c512-req.pem
Normal file
@@ -0,0 +1,8 @@
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIIBGzCBxgIBADBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEa
|
||||
MBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGkNsaWVudCB0ZXN0
|
||||
IGNlcnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALtv55QyzG6i
|
||||
2PlwZ1pah7++Gv8L5j6Hnyr/uTZE1NLG0ABDDexmq/R4KedLjFEIYjocDui+IXs6
|
||||
2NNtXrT8odkCAwEAATANBgkqhkiG9w0BAQQFAANBAC5JBTeji7RosqMaUIDzIW13
|
||||
oO6+kPhx9fXSpMFHIsY3aH92Milkov/2A4SuZTcnv/P6+8klmS0EaiUKcRzak4E=
|
||||
-----END CERTIFICATE REQUEST-----
|
||||
295
apps/ca.c
295
apps/ca.c
@@ -70,6 +70,7 @@
|
||||
#include "txt_db.h"
|
||||
#include "evp.h"
|
||||
#include "x509.h"
|
||||
#include "x509v3.h"
|
||||
#include "objects.h"
|
||||
#include "pem.h"
|
||||
#include "conf.h"
|
||||
@@ -82,7 +83,7 @@
|
||||
#define PROG ca_main
|
||||
|
||||
#define BASE_SECTION "ca"
|
||||
#define CONFIG_FILE "lib/ssleay.cnf"
|
||||
#define CONFIG_FILE "lib/openssl.cnf"
|
||||
|
||||
#define ENV_DEFAULT_CA "default_ca"
|
||||
|
||||
@@ -104,6 +105,7 @@
|
||||
#define ENV_PRESERVE "preserve"
|
||||
#define ENV_POLICY "policy"
|
||||
#define ENV_EXTENSIONS "x509_extensions"
|
||||
#define ENV_CRLEXT "crl_extensions"
|
||||
#define ENV_MSIE_HACK "msie_hack"
|
||||
|
||||
#define ENV_DATABASE "database"
|
||||
@@ -134,7 +136,7 @@ static char *ca_usage[]={
|
||||
" -policy arg - The CA 'policy' to support\n",
|
||||
" -keyfile arg - PEM private key file\n",
|
||||
" -key arg - key to decode the private key if it is encrypted\n",
|
||||
" -cert - The CA certificate\n",
|
||||
" -cert file - The CA certificate\n",
|
||||
" -in file - The input PEM encoded certificate request(s)\n",
|
||||
" -out file - Where to put the output file(s)\n",
|
||||
" -outdir dir - Where to put output certificates\n",
|
||||
@@ -143,7 +145,7 @@ static char *ca_usage[]={
|
||||
" -ss_cert file - File contains a self signed cert to sign\n",
|
||||
" -preserveDN - Don't re-order the DN\n",
|
||||
" -batch - Don't ask questions\n",
|
||||
" -msie_hack - msie modifications to handle all thos universal strings\n",
|
||||
" -msie_hack - msie modifications to handle all those universal strings\n",
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -154,7 +156,7 @@ extern int EF_ALIGNMENT;
|
||||
#endif
|
||||
|
||||
#ifndef NOPROTO
|
||||
static STACK *load_extensions(char *section);
|
||||
static int add_oid_section(LHASH *conf);
|
||||
static void lookup_fail(char *name,char *tag);
|
||||
static int MS_CALLBACK key_callback(char *buf,int len,int verify);
|
||||
static unsigned long index_serial_hash(char **a);
|
||||
@@ -166,21 +168,22 @@ static BIGNUM *load_serial(char *serialfile);
|
||||
static int save_serial(char *serialfile, BIGNUM *serial);
|
||||
static int certify(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
|
||||
EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,char *startdate,
|
||||
int days, int batch, STACK *extensions,int verbose);
|
||||
int days, int batch, char *ext_sect, LHASH *conf,int verbose);
|
||||
static int certify_cert(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
|
||||
EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,char *startdate,
|
||||
int days,int batch,STACK *extensions,int verbose);
|
||||
int days,int batch,char *ext_sect, LHASH *conf,int verbose);
|
||||
static int certify_spkac(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
|
||||
EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,char *startdate,
|
||||
int days,STACK *extensions,int verbose);
|
||||
int days,char *ext_sect,LHASH *conf,int verbose);
|
||||
static int fix_data(int nid, int *type);
|
||||
static void write_new_certificate(BIO *bp, X509 *x, int output_der);
|
||||
static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, EVP_MD *dgst,
|
||||
STACK *policy, TXT_DB *db, BIGNUM *serial, char *startdate,
|
||||
int days, int batch, int verbose, X509_REQ *req, STACK *extensions);
|
||||
int days, int batch, int verbose, X509_REQ *req, char *ext_sect,
|
||||
LHASH *conf);
|
||||
static int check_time_format(char *str);
|
||||
#else
|
||||
static STACK *load_extensions();
|
||||
static int add_oid_section();
|
||||
static void lookup_fail();
|
||||
static int MS_CALLBACK key_callback();
|
||||
static unsigned long index_serial_hash();
|
||||
@@ -234,6 +237,7 @@ char **argv;
|
||||
char *outdir=NULL;
|
||||
char *serialfile=NULL;
|
||||
char *extensions=NULL;
|
||||
char *crl_ext=NULL;
|
||||
BIGNUM *serial=NULL;
|
||||
char *startdate=NULL;
|
||||
int days=0;
|
||||
@@ -251,7 +255,6 @@ char **argv;
|
||||
long l;
|
||||
EVP_MD *dgst=NULL;
|
||||
STACK *attribs=NULL;
|
||||
STACK *extensions_sk=NULL;
|
||||
STACK *cert_sk=NULL;
|
||||
BIO *hex=NULL;
|
||||
#undef BSIZE
|
||||
@@ -266,7 +269,7 @@ EF_ALIGNMENT=0;
|
||||
|
||||
apps_startup();
|
||||
|
||||
X509v3_add_netscape_extensions();
|
||||
X509V3_add_standard_extensions();
|
||||
|
||||
preserve=0;
|
||||
if (bio_err == NULL)
|
||||
@@ -445,6 +448,7 @@ bad:
|
||||
BIO_printf(bio_err,"problems opening %s for extra oid's\n",p);
|
||||
ERR_print_errors(bio_err);
|
||||
*/
|
||||
ERR_clear_error();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -453,6 +457,10 @@ bad:
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!add_oid_section(conf)) {
|
||||
ERR_print_errors(bio_err);
|
||||
goto err;
|
||||
}
|
||||
|
||||
in=BIO_new(BIO_s_file());
|
||||
out=BIO_new(BIO_s_file());
|
||||
@@ -688,12 +696,17 @@ bad:
|
||||
goto err;
|
||||
}
|
||||
|
||||
if ((extensions=CONF_get_string(conf,section,ENV_EXTENSIONS))
|
||||
!= NULL)
|
||||
{
|
||||
if ((extensions_sk=load_extensions(extensions)) == NULL)
|
||||
extensions=CONF_get_string(conf,section,ENV_EXTENSIONS);
|
||||
if(extensions) {
|
||||
/* Check syntax of file */
|
||||
if(!X509V3_EXT_check_conf(conf, extensions)) {
|
||||
BIO_printf(bio_err,
|
||||
"Error Loading extension section %s\n",
|
||||
extensions);
|
||||
ret = 1;
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
if (startdate == NULL)
|
||||
{
|
||||
@@ -749,7 +762,7 @@ bad:
|
||||
{
|
||||
total++;
|
||||
j=certify_spkac(&x,spkac_file,pkey,x509,dgst,attribs,db,
|
||||
serial,startdate,days,extensions_sk,verbose);
|
||||
serial,startdate,days,extensions,conf,verbose);
|
||||
if (j < 0) goto err;
|
||||
if (j > 0)
|
||||
{
|
||||
@@ -773,7 +786,7 @@ bad:
|
||||
total++;
|
||||
j=certify_cert(&x,ss_cert_file,pkey,x509,dgst,attribs,
|
||||
db,serial,startdate,days,batch,
|
||||
extensions_sk,verbose);
|
||||
extensions,conf,verbose);
|
||||
if (j < 0) goto err;
|
||||
if (j > 0)
|
||||
{
|
||||
@@ -792,7 +805,7 @@ bad:
|
||||
total++;
|
||||
j=certify(&x,infile,pkey,x509,dgst,attribs,db,
|
||||
serial,startdate,days,batch,
|
||||
extensions_sk,verbose);
|
||||
extensions,conf,verbose);
|
||||
if (j < 0) goto err;
|
||||
if (j > 0)
|
||||
{
|
||||
@@ -811,7 +824,7 @@ bad:
|
||||
total++;
|
||||
j=certify(&x,argv[i],pkey,x509,dgst,attribs,db,
|
||||
serial,startdate,days,batch,
|
||||
extensions_sk,verbose);
|
||||
extensions,conf,verbose);
|
||||
if (j < 0) goto err;
|
||||
if (j > 0)
|
||||
{
|
||||
@@ -955,6 +968,17 @@ bad:
|
||||
/*****************************************************************/
|
||||
if (gencrl)
|
||||
{
|
||||
crl_ext=CONF_get_string(conf,section,ENV_CRLEXT);
|
||||
if(crl_ext) {
|
||||
/* Check syntax of file */
|
||||
if(!X509V3_EXT_check_conf(conf, crl_ext)) {
|
||||
BIO_printf(bio_err,
|
||||
"Error Loading CRL extension section %s\n",
|
||||
crl_ext);
|
||||
ret = 1;
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
if ((hex=BIO_new(BIO_s_mem())) == NULL) goto err;
|
||||
|
||||
if (!crldays && !crlhours)
|
||||
@@ -1012,7 +1036,7 @@ bad:
|
||||
r->sequence=i;
|
||||
}
|
||||
|
||||
/* we how have a CRL */
|
||||
/* we now have a CRL */
|
||||
if (verbose) BIO_printf(bio_err,"signing CRL\n");
|
||||
if (md != NULL)
|
||||
{
|
||||
@@ -1023,7 +1047,32 @@ bad:
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifndef NO_DSA
|
||||
if (pkey->type == EVP_PKEY_DSA)
|
||||
dgst=EVP_dss1();
|
||||
else
|
||||
#endif
|
||||
dgst=EVP_md5();
|
||||
}
|
||||
|
||||
/* Add any extensions asked for */
|
||||
|
||||
if(crl_ext) {
|
||||
X509V3_CTX crlctx;
|
||||
if (ci->version == NULL)
|
||||
if ((ci->version=ASN1_INTEGER_new()) == NULL) goto err;
|
||||
ASN1_INTEGER_set(ci->version,1); /* version 2 CRL */
|
||||
crlctx.crl = crl;
|
||||
crlctx.issuer_cert = x509;
|
||||
crlctx.subject_cert = NULL;
|
||||
crlctx.subject_req = NULL;
|
||||
crlctx.flags = 0;
|
||||
|
||||
if(!X509V3_EXT_CRL_add_conf(conf, &crlctx,
|
||||
crl_ext, crl)) goto err;
|
||||
}
|
||||
|
||||
if (!X509_CRL_sign(crl,pkey,dgst)) goto err;
|
||||
|
||||
PEM_write_bio_X509_CRL(Sout,crl);
|
||||
@@ -1031,24 +1080,23 @@ bad:
|
||||
/*****************************************************************/
|
||||
ret=0;
|
||||
err:
|
||||
if (hex != NULL) BIO_free(hex);
|
||||
if (Cout != NULL) BIO_free(Cout);
|
||||
if (Sout != NULL) BIO_free(Sout);
|
||||
if (out != NULL) BIO_free(out);
|
||||
if (in != NULL) BIO_free(in);
|
||||
BIO_free(hex);
|
||||
BIO_free(Cout);
|
||||
BIO_free(Sout);
|
||||
BIO_free(out);
|
||||
BIO_free(in);
|
||||
|
||||
if (cert_sk != NULL) sk_pop_free(cert_sk,X509_free);
|
||||
if (extensions_sk != NULL)
|
||||
sk_pop_free(extensions_sk,X509_EXTENSION_free);
|
||||
sk_pop_free(cert_sk,X509_free);
|
||||
|
||||
if (ret) ERR_print_errors(bio_err);
|
||||
if (serial != NULL) BN_free(serial);
|
||||
if (db != NULL) TXT_DB_free(db);
|
||||
if (pkey != NULL) EVP_PKEY_free(pkey);
|
||||
if (x509 != NULL) X509_free(x509);
|
||||
if (crl != NULL) X509_CRL_free(crl);
|
||||
if (conf != NULL) CONF_free(conf);
|
||||
X509v3_cleanup_extensions();
|
||||
BN_free(serial);
|
||||
TXT_DB_free(db);
|
||||
EVP_PKEY_free(pkey);
|
||||
X509_free(x509);
|
||||
X509_CRL_free(crl);
|
||||
CONF_free(conf);
|
||||
X509V3_EXT_cleanup();
|
||||
OBJ_cleanup();
|
||||
EXIT(ret);
|
||||
}
|
||||
|
||||
@@ -1180,7 +1228,7 @@ err:
|
||||
}
|
||||
|
||||
static int certify(xret,infile,pkey,x509,dgst,policy,db,serial,startdate,days,
|
||||
batch,extensions,verbose)
|
||||
batch,ext_sect,lconf,verbose)
|
||||
X509 **xret;
|
||||
char *infile;
|
||||
EVP_PKEY *pkey;
|
||||
@@ -1192,7 +1240,8 @@ BIGNUM *serial;
|
||||
char *startdate;
|
||||
int days;
|
||||
int batch;
|
||||
STACK *extensions;
|
||||
char *ext_sect;
|
||||
LHASH *lconf;
|
||||
int verbose;
|
||||
{
|
||||
X509_REQ *req=NULL;
|
||||
@@ -1224,6 +1273,7 @@ int verbose;
|
||||
goto err;
|
||||
}
|
||||
i=X509_REQ_verify(req,pktmp);
|
||||
EVP_PKEY_free(pktmp);
|
||||
if (i < 0)
|
||||
{
|
||||
ok=0;
|
||||
@@ -1240,7 +1290,7 @@ int verbose;
|
||||
BIO_printf(bio_err,"Signature ok\n");
|
||||
|
||||
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,
|
||||
days,batch,verbose,req,extensions);
|
||||
days,batch,verbose,req,ext_sect,lconf);
|
||||
|
||||
err:
|
||||
if (req != NULL) X509_REQ_free(req);
|
||||
@@ -1249,7 +1299,7 @@ err:
|
||||
}
|
||||
|
||||
static int certify_cert(xret,infile,pkey,x509,dgst,policy,db,serial,startdate,
|
||||
days, batch,extensions,verbose)
|
||||
days,batch,ext_sect,lconf,verbose)
|
||||
X509 **xret;
|
||||
char *infile;
|
||||
EVP_PKEY *pkey;
|
||||
@@ -1261,7 +1311,8 @@ BIGNUM *serial;
|
||||
char *startdate;
|
||||
int days;
|
||||
int batch;
|
||||
STACK *extensions;
|
||||
char *ext_sect;
|
||||
LHASH *lconf;
|
||||
int verbose;
|
||||
{
|
||||
X509 *req=NULL;
|
||||
@@ -1293,6 +1344,7 @@ int verbose;
|
||||
goto err;
|
||||
}
|
||||
i=X509_verify(req,pktmp);
|
||||
EVP_PKEY_free(pktmp);
|
||||
if (i < 0)
|
||||
{
|
||||
ok=0;
|
||||
@@ -1312,7 +1364,7 @@ int verbose;
|
||||
goto err;
|
||||
|
||||
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,days,
|
||||
batch,verbose,rreq,extensions);
|
||||
batch,verbose,rreq,ext_sect,lconf);
|
||||
|
||||
err:
|
||||
if (rreq != NULL) X509_REQ_free(rreq);
|
||||
@@ -1322,7 +1374,7 @@ err:
|
||||
}
|
||||
|
||||
static int do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,days,
|
||||
batch,verbose,req, extensions)
|
||||
batch,verbose,req,ext_sect,lconf)
|
||||
X509 **xret;
|
||||
EVP_PKEY *pkey;
|
||||
X509 *x509;
|
||||
@@ -1335,7 +1387,8 @@ int days;
|
||||
int batch;
|
||||
int verbose;
|
||||
X509_REQ *req;
|
||||
STACK *extensions;
|
||||
char *ext_sect;
|
||||
LHASH *lconf;
|
||||
{
|
||||
X509_NAME *name=NULL,*CAname=NULL,*subject=NULL;
|
||||
ASN1_UTCTIME *tm,*tmptm;
|
||||
@@ -1345,7 +1398,6 @@ STACK *extensions;
|
||||
X509_CINF *ci;
|
||||
X509_NAME_ENTRY *ne;
|
||||
X509_NAME_ENTRY *tne,*push;
|
||||
X509_EXTENSION *ex=NULL;
|
||||
EVP_PKEY *pktmp;
|
||||
int ok= -1,i,j,last,nid;
|
||||
char *p;
|
||||
@@ -1647,11 +1699,14 @@ again2:
|
||||
if (!X509_set_subject_name(ret,subject)) goto err;
|
||||
|
||||
pktmp=X509_REQ_get_pubkey(req);
|
||||
if (!X509_set_pubkey(ret,pktmp)) goto err;
|
||||
i = X509_set_pubkey(ret,pktmp);
|
||||
EVP_PKEY_free(pktmp);
|
||||
if (!i) goto err;
|
||||
|
||||
/* Lets add the extensions, if there are any */
|
||||
if ((extensions != NULL) && (sk_num(extensions) > 0))
|
||||
if (ext_sect)
|
||||
{
|
||||
X509V3_CTX ctx;
|
||||
if (ci->version == NULL)
|
||||
if ((ci->version=ASN1_INTEGER_new()) == NULL)
|
||||
goto err;
|
||||
@@ -1662,17 +1717,16 @@ again2:
|
||||
if (ci->extensions != NULL)
|
||||
sk_pop_free(ci->extensions,X509_EXTENSION_free);
|
||||
|
||||
if ((ci->extensions=sk_new_null()) == NULL)
|
||||
goto err;
|
||||
ci->extensions = NULL;
|
||||
|
||||
ctx.subject_cert = ret;
|
||||
ctx.issuer_cert = x509;
|
||||
ctx.subject_req = req;
|
||||
ctx.crl = NULL;
|
||||
ctx.flags = 0;
|
||||
|
||||
if(!X509V3_EXT_add_conf(lconf, &ctx, ext_sect, ret)) goto err;
|
||||
|
||||
/* Lets 'copy' in the new ones */
|
||||
for (i=0; i<sk_num(extensions); i++)
|
||||
{
|
||||
ex=X509_EXTENSION_dup((X509_EXTENSION *)
|
||||
sk_value(extensions,i));
|
||||
if (ex == NULL) goto err;
|
||||
if (!sk_push(ci->extensions,(char *)ex)) goto err;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1690,13 +1744,14 @@ again2:
|
||||
}
|
||||
}
|
||||
|
||||
if (pkey->type == EVP_PKEY_DSA) dgst=EVP_dss1();
|
||||
|
||||
#ifndef NO_DSA
|
||||
if (pkey->type == EVP_PKEY_DSA) dgst=EVP_dss1();
|
||||
pktmp=X509_get_pubkey(ret);
|
||||
if (EVP_PKEY_missing_parameters(pktmp) &&
|
||||
!EVP_PKEY_missing_parameters(pkey))
|
||||
EVP_PKEY_copy_parameters(pktmp,pkey);
|
||||
EVP_PKEY_free(pktmp);
|
||||
#endif
|
||||
|
||||
if (!X509_sign(ret,pkey,dgst))
|
||||
@@ -1794,7 +1849,7 @@ int output_der;
|
||||
}
|
||||
|
||||
static int certify_spkac(xret,infile,pkey,x509,dgst,policy,db,serial,
|
||||
startdate,days,extensions,verbose)
|
||||
startdate,days,ext_sect,lconf,verbose)
|
||||
X509 **xret;
|
||||
char *infile;
|
||||
EVP_PKEY *pkey;
|
||||
@@ -1805,7 +1860,8 @@ TXT_DB *db;
|
||||
BIGNUM *serial;
|
||||
char *startdate;
|
||||
int days;
|
||||
STACK *extensions;
|
||||
char *ext_sect;
|
||||
LHASH *lconf;
|
||||
int verbose;
|
||||
{
|
||||
STACK *sk=NULL;
|
||||
@@ -1949,8 +2005,9 @@ int verbose;
|
||||
BIO_printf(bio_err,"Signature ok\n");
|
||||
|
||||
X509_REQ_set_pubkey(req,pktmp);
|
||||
EVP_PKEY_free(pktmp);
|
||||
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,
|
||||
days,1,verbose,req,extensions);
|
||||
days,1,verbose,req,ext_sect,lconf);
|
||||
err:
|
||||
if (req != NULL) X509_REQ_free(req);
|
||||
if (parms != NULL) CONF_free(parms);
|
||||
@@ -1978,102 +2035,6 @@ int *type;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
static STACK *load_extensions(sec)
|
||||
char *sec;
|
||||
{
|
||||
STACK *ext;
|
||||
STACK *ret=NULL;
|
||||
CONF_VALUE *cv;
|
||||
ASN1_OCTET_STRING *str=NULL;
|
||||
ASN1_STRING *tmp=NULL;
|
||||
X509_EXTENSION *x;
|
||||
BIO *mem=NULL;
|
||||
BUF_MEM *buf=NULL;
|
||||
int i,nid,len;
|
||||
unsigned char *ptr;
|
||||
int pack_type;
|
||||
int data_type;
|
||||
|
||||
if ((ext=CONF_get_section(conf,sec)) == NULL)
|
||||
{
|
||||
BIO_printf(bio_err,"unable to find extension section called '%s'\n",sec);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
if ((ret=sk_new_null()) == NULL) return(NULL);
|
||||
|
||||
for (i=0; i<sk_num(ext); i++)
|
||||
{
|
||||
cv=(CONF_VALUE *)sk_value(ext,i); /* get the object id */
|
||||
if ((nid=OBJ_txt2nid(cv->name)) == NID_undef)
|
||||
{
|
||||
BIO_printf(bio_err,"%s:unknown object type in section, '%s'\n",sec,cv->name);
|
||||
goto err;
|
||||
}
|
||||
|
||||
pack_type=X509v3_pack_type_by_NID(nid);
|
||||
data_type=X509v3_data_type_by_NID(nid);
|
||||
|
||||
/* pack up the input bytes */
|
||||
ptr=(unsigned char *)cv->value;
|
||||
len=strlen((char *)ptr);
|
||||
if ((len > 2) && (cv->value[0] == '0') &&
|
||||
(cv->value[1] == 'x'))
|
||||
{
|
||||
if (data_type == V_ASN1_UNDEF)
|
||||
{
|
||||
BIO_printf(bio_err,"data type for extension %s is unknown\n",cv->name);
|
||||
goto err;
|
||||
}
|
||||
if (mem == NULL)
|
||||
if ((mem=BIO_new(BIO_s_mem())) == NULL)
|
||||
goto err;
|
||||
if (((buf=BUF_MEM_new()) == NULL) ||
|
||||
!BUF_MEM_grow(buf,128))
|
||||
goto err;
|
||||
if ((tmp=ASN1_STRING_new()) == NULL) goto err;
|
||||
|
||||
BIO_reset(mem);
|
||||
BIO_write(mem,(char *)&(ptr[2]),len-2);
|
||||
if (!a2i_ASN1_STRING(mem,tmp,buf->data,buf->max))
|
||||
goto err;
|
||||
len=tmp->length;
|
||||
ptr=tmp->data;
|
||||
}
|
||||
|
||||
switch (pack_type)
|
||||
{
|
||||
case X509_EXT_PACK_STRING:
|
||||
if ((str=X509v3_pack_string(&str,
|
||||
data_type,ptr,len)) == NULL)
|
||||
goto err;
|
||||
break;
|
||||
case X509_EXT_PACK_UNKNOWN:
|
||||
default:
|
||||
BIO_printf(bio_err,"Don't know how to pack extension %s\n",cv->name);
|
||||
goto err;
|
||||
/* break; */
|
||||
}
|
||||
|
||||
if ((x=X509_EXTENSION_create_by_NID(NULL,nid,0,str)) == NULL)
|
||||
goto err;
|
||||
sk_push(ret,(char *)x);
|
||||
}
|
||||
|
||||
if (0)
|
||||
{
|
||||
err:
|
||||
if (ret != NULL) sk_pop_free(ret,X509_EXTENSION_free);
|
||||
ret=NULL;
|
||||
}
|
||||
if (str != NULL) ASN1_OCTET_STRING_free(str);
|
||||
if (tmp != NULL) ASN1_STRING_free(tmp);
|
||||
if (buf != NULL) BUF_MEM_free(buf);
|
||||
if (mem != NULL) BIO_free(mem);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static int check_time_format(str)
|
||||
char *str;
|
||||
{
|
||||
@@ -2085,3 +2046,25 @@ char *str;
|
||||
return(ASN1_UTCTIME_check(&tm));
|
||||
}
|
||||
|
||||
static int add_oid_section(hconf)
|
||||
LHASH *hconf;
|
||||
{
|
||||
char *p;
|
||||
STACK *sktmp;
|
||||
CONF_VALUE *cnf;
|
||||
int i;
|
||||
if(!(p=CONF_get_string(hconf,NULL,"oid_section"))) return 1;
|
||||
if(!(sktmp = CONF_get_section(hconf, p))) {
|
||||
BIO_printf(bio_err, "problem loading oid section %s\n", p);
|
||||
return 0;
|
||||
}
|
||||
for(i = 0; i < sk_num(sktmp); i++) {
|
||||
cnf = (CONF_VALUE *)sk_value(sktmp, i);
|
||||
if(OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) {
|
||||
BIO_printf(bio_err, "problem creating object %s=%s\n",
|
||||
cnf->name, cnf->value);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
BIN
apps/cert.der
BIN
apps/cert.der
Binary file not shown.
63
apps/crl.c
63
apps/crl.c
@@ -63,6 +63,7 @@
|
||||
#include "bio.h"
|
||||
#include "err.h"
|
||||
#include "x509.h"
|
||||
#include "x509v3.h"
|
||||
#include "pem.h"
|
||||
|
||||
#undef PROG
|
||||
@@ -104,7 +105,7 @@ char **argv;
|
||||
BIO *out=NULL;
|
||||
int informat,outformat;
|
||||
char *infile=NULL,*outfile=NULL;
|
||||
int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0;
|
||||
int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0;
|
||||
char **pp,buf[256];
|
||||
|
||||
apps_startup();
|
||||
@@ -142,10 +143,6 @@ char **argv;
|
||||
if (--argc < 1) goto bad;
|
||||
outformat=str2fmt(*(++argv));
|
||||
}
|
||||
else if (strcmp(*argv,"-text") == 0)
|
||||
{
|
||||
outformat=FORMAT_TEXT;
|
||||
}
|
||||
else if (strcmp(*argv,"-in") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
@@ -156,6 +153,8 @@ char **argv;
|
||||
if (--argc < 1) goto bad;
|
||||
outfile= *(++argv);
|
||||
}
|
||||
else if (strcmp(*argv,"-text") == 0)
|
||||
text = 1;
|
||||
else if (strcmp(*argv,"-hash") == 0)
|
||||
hash= ++num;
|
||||
else if (strcmp(*argv,"-issuer") == 0)
|
||||
@@ -176,14 +175,6 @@ char **argv;
|
||||
argv++;
|
||||
}
|
||||
|
||||
if (outformat == FORMAT_TEXT)
|
||||
{
|
||||
num=0;
|
||||
issuer= ++num;
|
||||
lastupdate= ++num;
|
||||
nextupdate= ++num;
|
||||
}
|
||||
|
||||
if (badops)
|
||||
{
|
||||
bad:
|
||||
@@ -193,6 +184,7 @@ bad:
|
||||
}
|
||||
|
||||
ERR_load_crypto_strings();
|
||||
X509V3_add_standard_extensions();
|
||||
x=load_crl(infile,informat);
|
||||
if (x == NULL) { goto end; }
|
||||
|
||||
@@ -203,28 +195,28 @@ bad:
|
||||
if (issuer == i)
|
||||
{
|
||||
X509_NAME_oneline(x->crl->issuer,buf,256);
|
||||
fprintf(stdout,"issuer= %s\n",buf);
|
||||
BIO_printf(bio_out,"issuer= %s\n",buf);
|
||||
}
|
||||
|
||||
if (hash == i)
|
||||
{
|
||||
fprintf(stdout,"%08lx\n",
|
||||
BIO_printf(bio_out,"%08lx\n",
|
||||
X509_NAME_hash(x->crl->issuer));
|
||||
}
|
||||
if (lastupdate == i)
|
||||
{
|
||||
fprintf(stdout,"lastUpdate=");
|
||||
ASN1_UTCTIME_print(bio_out,x->crl->lastUpdate);
|
||||
fprintf(stdout,"\n");
|
||||
BIO_printf(bio_out,"lastUpdate=");
|
||||
ASN1_TIME_print(bio_out,x->crl->lastUpdate);
|
||||
BIO_printf(bio_out,"\n");
|
||||
}
|
||||
if (nextupdate == i)
|
||||
{
|
||||
fprintf(stdout,"nextUpdate=");
|
||||
BIO_printf(bio_out,"nextUpdate=");
|
||||
if (x->crl->nextUpdate != NULL)
|
||||
ASN1_UTCTIME_print(bio_out,x->crl->nextUpdate);
|
||||
ASN1_TIME_print(bio_out,x->crl->nextUpdate);
|
||||
else
|
||||
fprintf(stdout,"NONE");
|
||||
fprintf(stdout,"\n");
|
||||
BIO_printf(bio_out,"NONE");
|
||||
BIO_printf(bio_out,"\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -249,27 +241,11 @@ bad:
|
||||
}
|
||||
}
|
||||
|
||||
if (text) X509_CRL_print(out, x);
|
||||
if (outformat == FORMAT_ASN1)
|
||||
i=(int)i2d_X509_CRL_bio(out,x);
|
||||
else if (outformat == FORMAT_PEM)
|
||||
i=PEM_write_bio_X509_CRL(out,x);
|
||||
else if (outformat == FORMAT_TEXT)
|
||||
{
|
||||
X509_REVOKED *r;
|
||||
STACK *sk;
|
||||
|
||||
sk=sk_dup(x->crl->revoked);
|
||||
while ((r=(X509_REVOKED *)sk_pop(sk)) != NULL)
|
||||
{
|
||||
fprintf(stdout,"revoked: serialNumber=");
|
||||
i2a_ASN1_INTEGER(out,r->serialNumber);
|
||||
fprintf(stdout," revocationDate=");
|
||||
ASN1_UTCTIME_print(bio_out,r->revocationDate);
|
||||
fprintf(stdout,"\n");
|
||||
}
|
||||
sk_free(sk);
|
||||
i=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
BIO_printf(bio_err,"bad output format specified for outfile\n");
|
||||
@@ -278,9 +254,10 @@ bad:
|
||||
if (!i) { BIO_printf(bio_err,"unable to write CRL\n"); goto end; }
|
||||
ret=0;
|
||||
end:
|
||||
if (out != NULL) BIO_free(out);
|
||||
if (bio_out != NULL) BIO_free(bio_out);
|
||||
if (x != NULL) X509_CRL_free(x);
|
||||
BIO_free(out);
|
||||
BIO_free(bio_out);
|
||||
X509_CRL_free(x);
|
||||
X509V3_EXT_cleanup();
|
||||
EXIT(ret);
|
||||
}
|
||||
|
||||
@@ -324,7 +301,7 @@ int format;
|
||||
}
|
||||
|
||||
end:
|
||||
if (in != NULL) BIO_free(in);
|
||||
BIO_free(in);
|
||||
return(x);
|
||||
}
|
||||
|
||||
|
||||
8
apps/crl.out
Normal file
8
apps/crl.out
Normal file
@@ -0,0 +1,8 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIBDjCBuTANBgkqhkiG9w0BAQQFADBgMQswCQYDVQQGEwJBVTEMMAoGA1UECBMD
|
||||
UUxEMRkwFwYDVQQKExBNaW5jb20gUHR5LiBMdGQuMQswCQYDVQQLEwJDUzEbMBkG
|
||||
A1UEAxMSU1NMZWF5IGRlbW8gc2VydmVyFw05NzA3MDkwMDAwMjJaFw05NzA4MDgw
|
||||
MDAwMjJaMCgwEgIBARcNOTUxMDA5MjMzMjA1WjASAgEDFw05NTEyMDEwMTAwMDBa
|
||||
MA0GCSqGSIb3DQEBBAUAA0EAcEBIWVZPXxSlLMPPLfBi4s0N3lzTgskZkgO6pjZi
|
||||
oQRwh5vi5zFqDNQteGx7RTHpUYntgyoAZ87FZE0GOJgBaQ==
|
||||
-----END X509 CRL-----
|
||||
@@ -98,6 +98,7 @@ char **argv;
|
||||
PKCS7 *p7 = NULL;
|
||||
PKCS7_SIGNED *p7s = NULL;
|
||||
X509_CRL *crl=NULL;
|
||||
STACK *certflst=NULL;
|
||||
STACK *crl_stack=NULL;
|
||||
STACK *cert_stack=NULL;
|
||||
int ret=1,nocrl=0;
|
||||
@@ -112,7 +113,6 @@ char **argv;
|
||||
outfile=NULL;
|
||||
informat=FORMAT_PEM;
|
||||
outformat=FORMAT_PEM;
|
||||
certfile=NULL;
|
||||
|
||||
prog=argv[0];
|
||||
argc--;
|
||||
@@ -146,7 +146,8 @@ char **argv;
|
||||
else if (strcmp(*argv,"-certfile") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
certfile= *(++argv);
|
||||
if(!certflst) certflst = sk_new(NULL);
|
||||
sk_push(certflst,*(++argv));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -165,9 +166,10 @@ bad:
|
||||
BIO_printf(bio_err,"where options are\n");
|
||||
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -outform arg output format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -in arg inout file\n");
|
||||
BIO_printf(bio_err," -in arg input file\n");
|
||||
BIO_printf(bio_err," -out arg output file\n");
|
||||
BIO_printf(bio_err," -certfile arg certificates file of chain to a trusted CA\n");
|
||||
BIO_printf(bio_err," (can be used more than once)\n");
|
||||
BIO_printf(bio_err," -nocrl no crl to load, just certs from '-certfile'\n");
|
||||
EXIT(1);
|
||||
}
|
||||
@@ -229,15 +231,17 @@ bad:
|
||||
if ((cert_stack=sk_new(NULL)) == NULL) goto end;
|
||||
p7s->cert=cert_stack;
|
||||
|
||||
if (certfile != NULL)
|
||||
{
|
||||
if(certflst) for(i = 0; i < sk_num(certflst); i++) {
|
||||
certfile = sk_value(certflst, i);
|
||||
if (add_certs_from_file(cert_stack,certfile) < 0)
|
||||
{
|
||||
BIO_printf(bio_err,"error loading certificates\n");
|
||||
BIO_printf(bio_err, "error loading certificates\n");
|
||||
ERR_print_errors(bio_err);
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sk_free(certflst);
|
||||
|
||||
if (outfile == NULL)
|
||||
BIO_set_fp(out,stdout,BIO_NOCLOSE);
|
||||
@@ -297,19 +301,23 @@ char *certfile;
|
||||
|
||||
if ((stat(certfile,&st) != 0))
|
||||
{
|
||||
BIO_printf(bio_err,"unable to file the file, %s\n",certfile);
|
||||
BIO_printf(bio_err,"unable to load the file, %s\n",certfile);
|
||||
goto end;
|
||||
}
|
||||
|
||||
in=BIO_new(BIO_s_file());
|
||||
if ((in == NULL) || (BIO_read_filename(in,certfile) <= 0))
|
||||
{
|
||||
BIO_printf(bio_err,"error opening the file, %s\n",certfile);
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* This loads from a file, a stack of x509/crl/pkey sets */
|
||||
sk=PEM_X509_INFO_read_bio(in,NULL,NULL);
|
||||
if (sk == NULL) goto end;
|
||||
if (sk == NULL) {
|
||||
BIO_printf(bio_err,"error reading the file, %s\n",certfile);
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* scan over it and pull out the CRL's */
|
||||
while (sk_num(sk))
|
||||
|
||||
@@ -42,13 +42,13 @@ $md4_cmd="md4";
|
||||
$rsa_cmd="rsa -des -inform der ";
|
||||
|
||||
# this was the 0.5.x way of doing things ...
|
||||
$cmd="ssleay asn1parse";
|
||||
$x509_cmd="ssleay x509";
|
||||
$crl_cmd="ssleay crl";
|
||||
$rc4_cmd="ssleay rc4";
|
||||
$md2_cmd="ssleay md2";
|
||||
$md4_cmd="ssleay md4";
|
||||
$rsa_cmd="ssleay rsa -des -inform der ";
|
||||
$cmd="openssl asn1parse";
|
||||
$x509_cmd="openssl x509";
|
||||
$crl_cmd="openssl crl";
|
||||
$rc4_cmd="openssl rc4";
|
||||
$md2_cmd="openssl md2";
|
||||
$md4_cmd="openssl md4";
|
||||
$rsa_cmd="openssl rsa -des -inform der ";
|
||||
|
||||
&Getopts('vd:') || die "usage:$0 [-v] [-d num] file";
|
||||
$depth=($opt_d =~ /^\d+$/)?$opt_d:0;
|
||||
|
||||
@@ -152,10 +152,10 @@ bad:
|
||||
BIO_printf(bio_err,"where options are\n");
|
||||
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -outform arg output format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -in arg inout file\n");
|
||||
BIO_printf(bio_err," -in arg input file\n");
|
||||
BIO_printf(bio_err," -out arg output file\n");
|
||||
BIO_printf(bio_err," -check check the DH parameters\n");
|
||||
BIO_printf(bio_err," -text check the DH parameters\n");
|
||||
BIO_printf(bio_err," -text print a text form of the DH parameters\n");
|
||||
BIO_printf(bio_err," -C Output C code\n");
|
||||
BIO_printf(bio_err," -noout no output\n");
|
||||
goto end;
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
-----BEGIN DSA PRIVATE KEY-----
|
||||
Proc-Type: 4,ENCRYPTED
|
||||
DEK-Info: DES-EDE3-CBC,C5B6C7CC9E1FE2C0
|
||||
|
||||
svCXBcBRhMuU22UXOfiKZA+thmz6KYXpt1Yg5Rd+TYQcQ1MdvNy0B0tkP1SxzDq0
|
||||
Xh1eMeTML9/9/0rKakgNXXXbpi5RB8t6BmwRSyej89F7nn1mtR3qzoyPRpp15SDl
|
||||
Tn67C+2v+HDF3MFk88hiNCYkNbcmi7TWvChsl8N1r7wdZwtIox56yXdgxw6ZIpa/
|
||||
par0oUCzN7fiavPgCWz1kfPNSaBQSdxwH7TZi5tMHAr0J3C7a7QRnZfE09R59Uqr
|
||||
zslrq+ndIw1BZAxoY0SlBu+iFOVaBVlwToC4AsHkv7j7l8ITtr7f42YbBa44D9TO
|
||||
uOhONmkk/v3Fso4RaOEzdKZC+hnmmzvHs6TiTWm6yzJgSFwyOUK0eGmKEeVxpcH5
|
||||
rUOlHOwzen+FFtocZDZAfdFnb7QY7L/boQvyA5A+ZbRG4DUpmBQeQsSaICHM5Rxx
|
||||
1QaLF413VNPXTLPbW0ilSc2H8x2iZTIVKfd33oSO6NhXPtSYQgfecEF4BvNHY5c4
|
||||
HovjT4mckbK95bcBzoCHu43vuSQkmZzdYo/ydSZt6zoPavbBLueTpgSbdXiDi827
|
||||
MVqOsYxGCb+kez0FoDSTgw==
|
||||
MIIBugIBAAKBgQCnP26Fv0FqKX3wn0cZMJCaCR3aajMexT2GlrMV4FMuj+BZgnOQ
|
||||
PnUxmUd6UvuF5NmmezibaIqEm4fGHrV+hktTW1nPcWUZiG7OZq5riDb77Cjcwtel
|
||||
u+UsOSZL2ppwGJU3lRBWI/YV7boEXt45T/23Qx+1pGVvzYAR5HCVW1DNSQIVAPcH
|
||||
Me36bAYD1YWKHKycZedQZmVvAoGATd9MA6aRivUZb1BGJZnlaG8w42nh5bNdmLso
|
||||
hkj83pkEP1+IDJxzJA0gXbkqmj8YlifkYofBe3RiU/xhJ6h6kQmdtvFNnFQPWAbu
|
||||
SXQHzlV+I84W9srcWmEBfslxtU323DQph2j2XiCTs9v15AlsQReVkusBtXOlan7Y
|
||||
Mu0OArgCgYAapll6iqz9XrZFlk2GCVcB+KihxWnH7IuHvSLw9YUrJahcBHmbpvt4
|
||||
94lF4gC5w3WPM+vXJofbusk4GoQEEsQNMDaah4m49uUqAylOVFJJJXuirVJ+o+0T
|
||||
tOFDITEAl+YZZariXOD7tdOSOl9RLMPC6+daHKS9e68u3enxhqnDGQIUB78dhW77
|
||||
J6zsFbSEHaQGUmfSeoM=
|
||||
-----END DSA PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIICUjCCAhECAQAwUjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
-----BEGIN DSA PRIVATE KEY-----
|
||||
Proc-Type: 4,ENCRYPTED
|
||||
DEK-Info: DES-EDE3-CBC,F80EEEBEEA7386C4
|
||||
|
||||
GZ9zgFcHOlnhPoiSbVi/yXc9mGoj44A6IveD4UlpSEUt6Xbse3Fr0KHIUyQ3oGnS
|
||||
mClKoAp/eOTb5Frhto85SzdsxYtac+X1v5XwdzAMy2KowHVk1N8A5jmE2OlkNPNt
|
||||
of132MNlo2cyIRYaa35PPYBGNCmUm7YcYS8O90YtkrQZZTf4+2C4kllhMcdkQwkr
|
||||
FWSWC8YOQ7w0LHb4cX1FejHHom9Nd/0PN3vn3UyySvfOqoR7nbXkrpHXmPIr0hxX
|
||||
RcF0aXcV/CzZ1/nfXWQf4o3+oD0T22SDoVcZY60IzI0oIc3pNCbDV3uKNmgekrFd
|
||||
qOUJ+QW8oWp7oefRx62iBfIeC8DZunohMXaWAQCU0sLQOR4yEdeUCnzCSywe0bG1
|
||||
diD0KYaEe+Yub1BQH4aLsBgDjardgpJRTQLq0DUvw0/QGO1irKTJzegEDNVBKrVn
|
||||
V4AHOKT1CUKqvGNRP1UnccUDTF6miOAtaj/qpzra7sSk7dkGBvIEeFoAg84kfh9h
|
||||
hVvF1YyzC9bwZepruoqoUwke/WdNIR5ymOVZ/4Liw0JdIOcq+atbdRX08niqIRkf
|
||||
dsZrUj4leo3zdefYUQ7w4N2Ns37yDFq7
|
||||
MIIBvAIBAAKBgQCnP26Fv0FqKX3wn0cZMJCaCR3aajMexT2GlrMV4FMuj+BZgnOQ
|
||||
PnUxmUd6UvuF5NmmezibaIqEm4fGHrV+hktTW1nPcWUZiG7OZq5riDb77Cjcwtel
|
||||
u+UsOSZL2ppwGJU3lRBWI/YV7boEXt45T/23Qx+1pGVvzYAR5HCVW1DNSQIVAPcH
|
||||
Me36bAYD1YWKHKycZedQZmVvAoGATd9MA6aRivUZb1BGJZnlaG8w42nh5bNdmLso
|
||||
hkj83pkEP1+IDJxzJA0gXbkqmj8YlifkYofBe3RiU/xhJ6h6kQmdtvFNnFQPWAbu
|
||||
SXQHzlV+I84W9srcWmEBfslxtU323DQph2j2XiCTs9v15AlsQReVkusBtXOlan7Y
|
||||
Mu0OArgCgYEApu25HkB1b4gKMIV7aLGNSIknMzYgrB7o1kQxeDf34dDVRM9OZ8tk
|
||||
umz6tl+iUcNe5EoxdsYV1IXSddjOi08LOLsZq7AQlNnKvbtlmMDULpqkZJD0bO7A
|
||||
29nisJfKy1URqABLw5DgfcPh1ZLXtmDfUgJvmjgTmvTPT2j9TPjq7RUCFQDNvrBz
|
||||
6TicfImU7UFRn9h00j0lJQ==
|
||||
-----END DSA PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIICVTCCAhMCAQAwUzELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx
|
||||
|
||||
@@ -154,7 +154,7 @@ bad:
|
||||
BIO_printf(bio_err,"where options are\n");
|
||||
BIO_printf(bio_err," -inform arg input format - one of DER NET PEM\n");
|
||||
BIO_printf(bio_err," -outform arg output format - one of DER NET PEM\n");
|
||||
BIO_printf(bio_err," -in arg inout file\n");
|
||||
BIO_printf(bio_err," -in arg input file\n");
|
||||
BIO_printf(bio_err," -out arg output file\n");
|
||||
BIO_printf(bio_err," -des encrypt PEM output with cbc des\n");
|
||||
BIO_printf(bio_err," -des3 encrypt PEM output with ede cbc des using 168 bit key\n");
|
||||
|
||||
@@ -172,7 +172,7 @@ bad:
|
||||
BIO_printf(bio_err,"where options are\n");
|
||||
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -outform arg output format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -in arg inout file\n");
|
||||
BIO_printf(bio_err," -in arg input file\n");
|
||||
BIO_printf(bio_err," -out arg output file\n");
|
||||
BIO_printf(bio_err," -text check the DSA parameters\n");
|
||||
BIO_printf(bio_err," -C Output C code\n");
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
#define MONOLITH
|
||||
|
||||
#include "ssleay.c"
|
||||
#include "openssl.c"
|
||||
#include "apps.c"
|
||||
#include "asn1pars.c"
|
||||
#ifndef NO_RSA
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
2.99999.3 SET.ex3 SET x509v3 extension 3
|
||||
|
||||
114
apps/g_ssleay.pl
114
apps/g_ssleay.pl
@@ -1,114 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
$mkprog='mklinks';
|
||||
$rmprog='rmlinks';
|
||||
|
||||
print "#ifndef NOPROTO\n";
|
||||
|
||||
grep(s/^asn1pars$/asn1parse/,@ARGV);
|
||||
|
||||
foreach (@ARGV)
|
||||
{ printf "extern int %s_main(int argc,char *argv[]);\n",$_; }
|
||||
print "#else\n";
|
||||
foreach (@ARGV)
|
||||
{ printf "extern int %s_main();\n",$_; }
|
||||
print "#endif\n";
|
||||
|
||||
|
||||
print <<'EOF';
|
||||
|
||||
#ifdef SSLEAY_SRC
|
||||
|
||||
#define FUNC_TYPE_GENERAL 1
|
||||
#define FUNC_TYPE_MD 2
|
||||
#define FUNC_TYPE_CIPHER 3
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
char *name;
|
||||
int (*func)();
|
||||
} FUNCTION;
|
||||
|
||||
FUNCTION functions[] = {
|
||||
EOF
|
||||
|
||||
foreach (@ARGV)
|
||||
{
|
||||
push(@files,$_);
|
||||
$str="\t{FUNC_TYPE_GENERAL,\"$_\",${_}_main},\n";
|
||||
if (($_ =~ /^s_/) || ($_ =~ /^ciphers$/))
|
||||
{ print "#if !defined(NO_SOCK) && !(defined(NO_SSL2) && defined(O_SSL3))\n${str}#endif\n"; }
|
||||
elsif ( ($_ =~ /^rsa$/) || ($_ =~ /^genrsa$/) ||
|
||||
($_ =~ /^req$/) || ($_ =~ /^ca$/) || ($_ =~ /^x509$/))
|
||||
{ print "#ifndef NO_RSA\n${str}#endif\n"; }
|
||||
elsif ( ($_ =~ /^dsa$/) || ($_ =~ /^gendsa$/) || ($_ =~ /^dsaparam$/))
|
||||
{ print "#ifndef NO_DSA\n${str}#endif\n"; }
|
||||
elsif ( ($_ =~ /^dh$/) || ($_ =~ /^gendh$/))
|
||||
{ print "#ifndef NO_DH\n${str}#endif\n"; }
|
||||
else
|
||||
{ print $str; }
|
||||
}
|
||||
|
||||
foreach ("md2","md5","sha","sha1","mdc2","rmd160")
|
||||
{
|
||||
push(@files,$_);
|
||||
printf "\t{FUNC_TYPE_MD,\"%s\",dgst_main},\n",$_;
|
||||
}
|
||||
|
||||
foreach (
|
||||
"base64",
|
||||
"des", "des3", "desx", "idea", "rc4", "rc2","bf","cast","rc5",
|
||||
"des-ecb", "des-ede", "des-ede3",
|
||||
"des-cbc", "des-ede-cbc","des-ede3-cbc",
|
||||
"des-cfb", "des-ede-cfb","des-ede3-cfb",
|
||||
"des-ofb", "des-ede-ofb","des-ede3-ofb",
|
||||
"idea-cbc","idea-ecb", "idea-cfb", "idea-ofb",
|
||||
"rc2-cbc", "rc2-ecb", "rc2-cfb", "rc2-ofb",
|
||||
"bf-cbc", "bf-ecb", "bf-cfb", "bf-ofb",
|
||||
"cast5-cbc","cast5-ecb", "cast5-cfb","cast5-ofb",
|
||||
"cast-cbc", "rc5-cbc", "rc5-ecb", "rc5-cfb", "rc5-ofb")
|
||||
{
|
||||
push(@files,$_);
|
||||
|
||||
$t=sprintf("\t{FUNC_TYPE_CIPHER,\"%s\",enc_main},\n",$_);
|
||||
if ($_ =~ /des/) { $t="#ifndef NO_DES\n${t}#endif\n"; }
|
||||
elsif ($_ =~ /idea/) { $t="#ifndef NO_IDEA\n${t}#endif\n"; }
|
||||
elsif ($_ =~ /rc4/) { $t="#ifndef NO_RC4\n${t}#endif\n"; }
|
||||
elsif ($_ =~ /rc2/) { $t="#ifndef NO_RC2\n${t}#endif\n"; }
|
||||
elsif ($_ =~ /bf/) { $t="#ifndef NO_BLOWFISH\n${t}#endif\n"; }
|
||||
elsif ($_ =~ /cast/) { $t="#ifndef NO_CAST\n${t}#endif\n"; }
|
||||
elsif ($_ =~ /rc5/) { $t="#ifndef NO_RC5\n${t}#endif\n"; }
|
||||
print $t;
|
||||
}
|
||||
|
||||
print "\t{0,NULL,NULL}\n\t};\n";
|
||||
print "#endif\n\n";
|
||||
|
||||
open(OUT,">$mkprog") || die "unable to open '$prog':$!\n";
|
||||
print OUT "#!/bin/sh\nfor i in ";
|
||||
foreach (@files)
|
||||
{ print OUT $_." "; }
|
||||
print OUT <<'EOF';
|
||||
|
||||
do
|
||||
echo making symlink for $i
|
||||
/bin/rm -f $i
|
||||
ln -s ssleay $i
|
||||
done
|
||||
EOF
|
||||
close(OUT);
|
||||
chmod(0755,$mkprog);
|
||||
|
||||
open(OUT,">$rmprog") || die "unable to open '$prog':$!\n";
|
||||
print OUT "#!/bin/sh\nfor i in ";
|
||||
foreach (@files)
|
||||
{ print OUT $_." "; }
|
||||
print OUT <<'EOF';
|
||||
|
||||
do
|
||||
echo removing $i
|
||||
/bin/rm -f $i
|
||||
done
|
||||
EOF
|
||||
close(OUT);
|
||||
chmod(0755,$rmprog);
|
||||
@@ -85,10 +85,11 @@ char **argv;
|
||||
{
|
||||
char buffer[200];
|
||||
DSA *dsa=NULL;
|
||||
int ret=1,num=DEFBITS;
|
||||
int ret=1;
|
||||
char *outfile=NULL;
|
||||
char *inrand=NULL,*randfile,*dsaparams=NULL;
|
||||
BIO *out=NULL,*in=NULL;
|
||||
EVP_CIPHER *enc=NULL;
|
||||
|
||||
apps_startup();
|
||||
|
||||
@@ -117,6 +118,16 @@ char **argv;
|
||||
{
|
||||
dsaparams= *argv;
|
||||
}
|
||||
#ifndef NO_DES
|
||||
else if (strcmp(*argv,"-des") == 0)
|
||||
enc=EVP_des_cbc();
|
||||
else if (strcmp(*argv,"-des3") == 0)
|
||||
enc=EVP_des_ede3_cbc();
|
||||
#endif
|
||||
#ifndef NO_IDEA
|
||||
else if (strcmp(*argv,"-idea") == 0)
|
||||
enc=EVP_idea_cbc();
|
||||
#endif
|
||||
else
|
||||
goto bad;
|
||||
argv++;
|
||||
@@ -126,16 +137,25 @@ char **argv;
|
||||
if (dsaparams == NULL)
|
||||
{
|
||||
bad:
|
||||
BIO_printf(bio_err,"usage: gendsa [args] [numbits]\n");
|
||||
BIO_printf(bio_err," -out file - output the key to 'file\n");
|
||||
BIO_printf(bio_err,"usage: gendsa [args] dsaparam-file\n");
|
||||
BIO_printf(bio_err," -out file - output the key to 'file'\n");
|
||||
#ifndef NO_DES
|
||||
BIO_printf(bio_err," -des - encrypt the generated key with DES in cbc mode\n");
|
||||
BIO_printf(bio_err," -des3 - encrypt the generated key with DES in ede cbc mode (168 bit key)\n");
|
||||
#endif
|
||||
#ifndef NO_IDEA
|
||||
BIO_printf(bio_err," -idea - encrypt the generated key with IDEA in cbc mode\n");
|
||||
#endif
|
||||
BIO_printf(bio_err," -rand file:file:...\n");
|
||||
BIO_printf(bio_err," - load the file (or the files in the directory) into\n");
|
||||
BIO_printf(bio_err," the random number generator\n");
|
||||
BIO_printf(bio_err," dsaparam-file\n");
|
||||
BIO_printf(bio_err," - a DSA parameter file as generated by the dsaparam command\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
in=BIO_new(BIO_s_file());
|
||||
if (!(BIO_read_filename(in,"dsaparams")))
|
||||
if (!(BIO_read_filename(in,dsaparams)))
|
||||
{
|
||||
perror(dsaparams);
|
||||
goto end;
|
||||
@@ -174,8 +194,8 @@ bad:
|
||||
dsa_load_rand(inrand));
|
||||
}
|
||||
|
||||
BIO_printf(bio_err,"Generating DSA parameters, %d bit long prime\n",num);
|
||||
BIO_printf(bio_err,"This could take some time\n");
|
||||
BIO_printf(bio_err,"Generating DSA key, %d bits\n",
|
||||
BN_num_bits(dsa->p));
|
||||
if (!DSA_generate_key(dsa)) goto end;
|
||||
|
||||
if (randfile == NULL)
|
||||
@@ -183,7 +203,7 @@ bad:
|
||||
else
|
||||
RAND_write_file(randfile);
|
||||
|
||||
if (!PEM_write_bio_DSAPrivateKey(out,dsa,EVP_des_ede3_cbc(),NULL,0,NULL))
|
||||
if (!PEM_write_bio_DSAPrivateKey(out,dsa,enc,NULL,0,NULL))
|
||||
goto end;
|
||||
ret=0;
|
||||
end:
|
||||
|
||||
BIN
apps/gmon.out
BIN
apps/gmon.out
Binary file not shown.
@@ -1,7 +0,0 @@
|
||||
#!/bin/sh
|
||||
for i in verify asn1parse req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers md2 md5 sha sha1 mdc2 rmd160 base64 des des3 desx idea rc4 rc2 bf cast rc5 des-ecb des-ede des-ede3 des-cbc des-ede-cbc des-ede3-cbc des-cfb des-ede-cfb des-ede3-cfb des-ofb des-ede-ofb des-ede3-ofb idea-cbc idea-ecb idea-cfb idea-ofb rc2-cbc rc2-ecb rc2-cfb rc2-ofb bf-cbc bf-ecb bf-cfb bf-ofb cast5-cbc cast5-ecb cast5-cfb cast5-ofb cast-cbc rc5-cbc rc5-ecb rc5-cfb rc5-ofb
|
||||
do
|
||||
echo making symlink for $i
|
||||
/bin/rm -f $i
|
||||
ln -s ssleay $i
|
||||
done
|
||||
182
apps/nseq.c
Normal file
182
apps/nseq.c
Normal file
@@ -0,0 +1,182 @@
|
||||
/* nseq.c */
|
||||
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||
* project 1999.
|
||||
*/
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1999 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* licensing@OpenSSL.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "pem.h"
|
||||
#include "err.h"
|
||||
#include "apps.h"
|
||||
|
||||
#undef PROG
|
||||
#define PROG nseq_main
|
||||
|
||||
#ifdef NOPROTO
|
||||
static int dump_cert_text(BIO *out, X509 *x);
|
||||
#else
|
||||
static int dump_cert_text();
|
||||
#endif
|
||||
|
||||
int MAIN(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
char **args, *infile = NULL, *outfile = NULL;
|
||||
BIO *in = NULL, *out = NULL;
|
||||
int toseq = 0;
|
||||
X509 *x509 = NULL;
|
||||
NETSCAPE_CERT_SEQUENCE *seq = NULL;
|
||||
int i, ret = 1;
|
||||
int badarg = 0;
|
||||
if (bio_err == NULL) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);
|
||||
ERR_load_crypto_strings();
|
||||
SSLeay_add_all_algorithms();
|
||||
args = argv + 1;
|
||||
while (!badarg && *args && *args[0] == '-') {
|
||||
if (!strcmp (*args, "-toseq")) toseq = 1;
|
||||
else if (!strcmp (*args, "-in")) {
|
||||
if (args[1]) {
|
||||
args++;
|
||||
infile = *args;
|
||||
} else badarg = 1;
|
||||
} else if (!strcmp (*args, "-out")) {
|
||||
if (args[1]) {
|
||||
args++;
|
||||
outfile = *args;
|
||||
} else badarg = 1;
|
||||
} else badarg = 1;
|
||||
args++;
|
||||
}
|
||||
|
||||
if (badarg) {
|
||||
BIO_printf (bio_err, "Netscape certificate sequence utility\n");
|
||||
BIO_printf (bio_err, "Usage nseq [options]\n");
|
||||
BIO_printf (bio_err, "where options are\n");
|
||||
BIO_printf (bio_err, "-in file input file\n");
|
||||
BIO_printf (bio_err, "-out file output file\n");
|
||||
BIO_printf (bio_err, "-toseq output NS Sequence file\n");
|
||||
EXIT(1);
|
||||
}
|
||||
|
||||
if (infile) {
|
||||
if (!(in = BIO_new_file (infile, "r"))) {
|
||||
BIO_printf (bio_err,
|
||||
"Can't open input file %s\n", infile);
|
||||
goto end;
|
||||
}
|
||||
} else in = BIO_new_fp(stdin, BIO_NOCLOSE);
|
||||
|
||||
if (outfile) {
|
||||
if (!(out = BIO_new_file (outfile, "w"))) {
|
||||
BIO_printf (bio_err,
|
||||
"Can't open output file %s\n", outfile);
|
||||
goto end;
|
||||
}
|
||||
} else out = BIO_new_fp(stdout, BIO_NOCLOSE);
|
||||
|
||||
if (toseq) {
|
||||
seq = NETSCAPE_CERT_SEQUENCE_new();
|
||||
seq->certs = sk_new(NULL);
|
||||
while((x509 = PEM_read_bio_X509(in, NULL, NULL)))
|
||||
sk_push(seq->certs, (char *)x509);
|
||||
|
||||
if(!sk_num(seq->certs))
|
||||
{
|
||||
BIO_printf (bio_err, "Error reading certs file %s\n", infile);
|
||||
ERR_print_errors(bio_err);
|
||||
goto end;
|
||||
}
|
||||
PEM_write_bio_NETSCAPE_CERT_SEQUENCE(out, seq);
|
||||
ret = 0;
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (!(seq = PEM_read_bio_NETSCAPE_CERT_SEQUENCE(in, NULL, NULL))) {
|
||||
BIO_printf (bio_err, "Error reading sequence file %s\n", infile);
|
||||
ERR_print_errors(bio_err);
|
||||
goto end;
|
||||
}
|
||||
|
||||
for(i = 0; i < sk_num(seq->certs); i++) {
|
||||
x509 = (X509 *) sk_value(seq->certs, i);
|
||||
dump_cert_text(out, x509);
|
||||
PEM_write_bio_X509(out, x509);
|
||||
}
|
||||
ret = 0;
|
||||
end:
|
||||
BIO_free(in);
|
||||
BIO_free(out);
|
||||
NETSCAPE_CERT_SEQUENCE_free(seq);
|
||||
|
||||
EXIT(ret);
|
||||
}
|
||||
|
||||
static int dump_cert_text(out, x)
|
||||
BIO *out;
|
||||
X509 *x;
|
||||
{
|
||||
char buf[256];
|
||||
X509_NAME_oneline(X509_get_subject_name(x),buf,256);
|
||||
BIO_puts(out,"subject=");
|
||||
BIO_puts(out,buf);
|
||||
|
||||
X509_NAME_oneline(X509_get_issuer_name(x),buf,256);
|
||||
BIO_puts(out,"\nissuer= ");
|
||||
BIO_puts(out,buf);
|
||||
BIO_puts(out,"\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* apps/ssleay.c */
|
||||
/* apps/openssl.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -152,12 +152,14 @@ char *Argv[];
|
||||
ERR_load_crypto_strings();
|
||||
|
||||
/* Lets load up our environment a little */
|
||||
p=getenv("SSLEAY_CONF");
|
||||
p=getenv("OPENSSL_CONF");
|
||||
if (p == NULL)
|
||||
p=getenv("SSLEAY_CONF");
|
||||
if (p == NULL)
|
||||
{
|
||||
strcpy(config_name,X509_get_default_cert_area());
|
||||
strcat(config_name,"/lib/");
|
||||
strcat(config_name,SSLEAY_CONF);
|
||||
strcat(config_name,OPENSSL_CONF);
|
||||
p=config_name;
|
||||
}
|
||||
|
||||
@@ -191,7 +193,7 @@ char *Argv[];
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* ok, lets enter the old 'SSLeay>' mode */
|
||||
/* ok, lets enter the old 'OpenSSL>' mode */
|
||||
|
||||
for (;;)
|
||||
{
|
||||
@@ -204,7 +206,7 @@ char *Argv[];
|
||||
p[0]='\0';
|
||||
if (i++)
|
||||
prompt=">";
|
||||
else prompt="SSLeay>";
|
||||
else prompt="OpenSSL> ";
|
||||
fputs(prompt,stdout);
|
||||
fflush(stdout);
|
||||
fgets(p,n,stdin);
|
||||
@@ -278,10 +280,10 @@ char *argv[];
|
||||
}
|
||||
else
|
||||
{
|
||||
BIO_printf(bio_err,"'%s' is a bad command, valid commands are",
|
||||
BIO_printf(bio_err,"openssl:Error: '%s' is an invalid command.\n",
|
||||
argv[0]);
|
||||
BIO_printf(bio_err, "\nStandard commands");
|
||||
i=0;
|
||||
fp=functions;
|
||||
tp=0;
|
||||
for (fp=functions; fp->name != NULL; fp++)
|
||||
{
|
||||
@@ -299,27 +301,43 @@ char *argv[];
|
||||
{
|
||||
i=1;
|
||||
BIO_printf(bio_err,
|
||||
"Message Digest commands - see the dgst command for more details\n");
|
||||
"\nMessage Digest commands (see the `dgst' command for more details)\n");
|
||||
}
|
||||
else if (tp == FUNC_TYPE_CIPHER)
|
||||
{
|
||||
i=1;
|
||||
BIO_printf(bio_err,"Cipher commands - see the enc command for more details\n");
|
||||
BIO_printf(bio_err,"\nCipher commands (see the `enc' command for more details)\n");
|
||||
}
|
||||
}
|
||||
BIO_printf(bio_err,"%-15s",fp->name);
|
||||
}
|
||||
BIO_printf(bio_err,"\nquit\n");
|
||||
BIO_printf(bio_err,"\n\n");
|
||||
ret=0;
|
||||
}
|
||||
end:
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static int SortFnByName(const void *_f1,const void *_f2)
|
||||
{
|
||||
const FUNCTION *f1=_f1;
|
||||
const FUNCTION *f2=_f2;
|
||||
|
||||
if(f1->type != f2->type)
|
||||
return f1->type-f2->type;
|
||||
return strcmp(f1->name,f2->name);
|
||||
}
|
||||
|
||||
static LHASH *prog_init()
|
||||
{
|
||||
LHASH *ret;
|
||||
FUNCTION *f;
|
||||
int i;
|
||||
|
||||
/* Purely so it looks nice when the user hits ? */
|
||||
for(i=0,f=functions ; f->name != NULL ; ++f,++i)
|
||||
;
|
||||
qsort(functions,i,sizeof *functions,SortFnByName);
|
||||
|
||||
if ((ret=lh_new(hash,cmp)) == NULL) return(NULL);
|
||||
|
||||
|
||||
104
apps/openssl.cnf
104
apps/openssl.cnf
@@ -1,10 +1,19 @@
|
||||
#
|
||||
# SSLeay example configuration file.
|
||||
# OpenSSL example configuration file.
|
||||
# This is mostly being used for generation of certificate requests.
|
||||
#
|
||||
|
||||
RANDFILE = $ENV::HOME/.rnd
|
||||
oid_file = $ENV::HOME/.oid
|
||||
oid_section = new_oids
|
||||
|
||||
[ new_oids ]
|
||||
|
||||
# We can add new OIDs in here for use by 'ca' and 'req'.
|
||||
# Add a simple OID like this:
|
||||
# testoid1=1.2.3.4
|
||||
# Or use config file substitution like this:
|
||||
# testoid2=${testoid1}.5.6
|
||||
|
||||
####################################################################
|
||||
[ ca ]
|
||||
@@ -25,7 +34,8 @@ crl = $dir/crl.pem # The current CRL
|
||||
private_key = $dir/private/cakey.pem# The private key
|
||||
RANDFILE = $dir/private/.rand # private random number file
|
||||
|
||||
x509_extensions = x509v3_extensions # The extentions to add to the cert
|
||||
x509_extensions = usr_cert # The extentions to add to the cert
|
||||
crl_extensions = crl_ext # Extensions to add to CRL
|
||||
default_days = 365 # how long to certify for
|
||||
default_crl_days= 30 # how long before next CRL
|
||||
default_md = md5 # which md to use.
|
||||
@@ -63,6 +73,7 @@ default_bits = 1024
|
||||
default_keyfile = privkey.pem
|
||||
distinguished_name = req_distinguished_name
|
||||
attributes = req_attributes
|
||||
x509_extensions = v3_ca # The extentions to add to the self signed cert
|
||||
|
||||
[ req_distinguished_name ]
|
||||
countryName = Country Name (2 letter code)
|
||||
@@ -80,7 +91,7 @@ localityName = Locality Name (eg, city)
|
||||
|
||||
# we can do this but it is not needed normally :-)
|
||||
#1.organizationName = Second Organization Name (eg, company)
|
||||
#1.organizationName_default = CryptSoft Pty Ltd
|
||||
#1.organizationName_default = World Wide Web Pty Ltd
|
||||
|
||||
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||
#organizationalUnitName_default =
|
||||
@@ -91,7 +102,7 @@ commonName_max = 64
|
||||
emailAddress = Email Address
|
||||
emailAddress_max = 40
|
||||
|
||||
SET-ex3 = SET extension number 3
|
||||
# SET-ex3 = SET extension number 3
|
||||
|
||||
[ req_attributes ]
|
||||
challengePassword = A challenge password
|
||||
@@ -100,20 +111,89 @@ challengePassword_max = 20
|
||||
|
||||
unstructuredName = An optional company name
|
||||
|
||||
[ x509v3_extensions ]
|
||||
[ usr_cert ]
|
||||
|
||||
nsCaRevocationUrl = http://www.cryptsoft.com/ca-crl.pem
|
||||
nsComment = "This is a comment"
|
||||
# These extensions are added when 'ca' signs a request.
|
||||
|
||||
# under ASN.1, the 0 bit would be encoded as 80
|
||||
nsCertType = 0x40
|
||||
# This goes against PKIX guidelines but some CAs do it and some software
|
||||
# requires this to avoid interpreting an end user certificate as a CA.
|
||||
|
||||
basicConstraints=CA:FALSE
|
||||
|
||||
# Here are some examples of the usage of nsCertType. If it is omitted
|
||||
# the certificate can be used for anything *except* object signing.
|
||||
|
||||
# This is OK for an SSL server.
|
||||
#nsCertType = server
|
||||
|
||||
# For an object signing certificate this would be used.
|
||||
#nsCertType = objsign
|
||||
|
||||
# For normal client use this is typical
|
||||
#nsCertType = client, email
|
||||
|
||||
# This is typical also
|
||||
|
||||
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||
|
||||
nsComment = "OpenSSL Generated Certificate"
|
||||
|
||||
# PKIX recommendations
|
||||
subjectKeyIdentifier=hash
|
||||
authorityKeyIdentifier=keyid,issuer:always
|
||||
|
||||
# Import the email address.
|
||||
|
||||
subjectAltName=email:copy
|
||||
|
||||
# Copy subject details
|
||||
|
||||
issuerAltName=issuer:copy
|
||||
|
||||
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
|
||||
#nsBaseUrl
|
||||
#nsRevocationUrl
|
||||
#nsRenewalUrl
|
||||
#nsCaPolicyUrl
|
||||
#nsSslServerName
|
||||
#nsCertSequence
|
||||
#nsCertExt
|
||||
#nsDataType
|
||||
|
||||
[ v3_ca]
|
||||
|
||||
# Extensions for a typical CA
|
||||
|
||||
# It's a CA certificate
|
||||
basicConstraints = CA:true
|
||||
|
||||
# PKIX recommendation.
|
||||
|
||||
subjectKeyIdentifier=hash
|
||||
|
||||
authorityKeyIdentifier=keyid:always,issuer:always
|
||||
|
||||
# This is what PKIX recommends but some broken software chokes on critical
|
||||
# extensions.
|
||||
#basicConstraints = critical,CA:true
|
||||
|
||||
# Key usage: again this should really be critical.
|
||||
keyUsage = cRLSign, keyCertSign
|
||||
|
||||
# Some might want this also
|
||||
#nsCertType = sslCA, emailCA
|
||||
|
||||
# Include email address in subject alt name: another PKIX recommendation
|
||||
subjectAltName=email:copy
|
||||
# Copy issuer details
|
||||
issuerAltName=issuer:copy
|
||||
|
||||
# RAW DER hex encoding of an extension: beware experts only!
|
||||
# 1.2.3.5=RAW:02:03
|
||||
# You can even override a supported extension:
|
||||
# basicConstraints= critical, RAW:30:03:01:01:FF
|
||||
|
||||
[ crl_ext ]
|
||||
|
||||
# CRL extensions.
|
||||
# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
|
||||
|
||||
issuerAltName=issuer:copy
|
||||
authorityKeyIdentifier=keyid:always,issuer:always
|
||||
|
||||
@@ -161,7 +161,7 @@ bad:
|
||||
BIO_printf(bio_err,"where options are\n");
|
||||
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -outform arg output format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -in arg inout file\n");
|
||||
BIO_printf(bio_err," -in arg input file\n");
|
||||
BIO_printf(bio_err," -out arg output file\n");
|
||||
BIO_printf(bio_err," -print_certs print any certs or crl in the input\n");
|
||||
BIO_printf(bio_err," -des encrypt PEM output with cbc des\n");
|
||||
@@ -277,9 +277,9 @@ bad:
|
||||
BIO_puts(out,buf);
|
||||
|
||||
BIO_puts(out,"\nlast update=");
|
||||
ASN1_UTCTIME_print(out,crl->crl->lastUpdate);
|
||||
ASN1_TIME_print(out,crl->crl->lastUpdate);
|
||||
BIO_puts(out,"\nnext update=");
|
||||
ASN1_UTCTIME_print(out,crl->crl->nextUpdate);
|
||||
ASN1_TIME_print(out,crl->crl->nextUpdate);
|
||||
BIO_puts(out,"\n");
|
||||
|
||||
PEM_write_bio_X509_CRL(out,crl);
|
||||
|
||||
14
apps/progs.h
14
apps/progs.h
@@ -14,6 +14,7 @@ extern int dsa_main(int argc,char *argv[]);
|
||||
extern int dsaparam_main(int argc,char *argv[]);
|
||||
extern int x509_main(int argc,char *argv[]);
|
||||
extern int genrsa_main(int argc,char *argv[]);
|
||||
extern int gendsa_main(int argc,char *argv[]);
|
||||
extern int s_server_main(int argc,char *argv[]);
|
||||
extern int s_client_main(int argc,char *argv[]);
|
||||
extern int speed_main(int argc,char *argv[]);
|
||||
@@ -23,6 +24,7 @@ extern int pkcs7_main(int argc,char *argv[]);
|
||||
extern int crl2pkcs7_main(int argc,char *argv[]);
|
||||
extern int sess_id_main(int argc,char *argv[]);
|
||||
extern int ciphers_main(int argc,char *argv[]);
|
||||
extern int nseq_main(int argc,char *argv[]);
|
||||
#else
|
||||
extern int verify_main();
|
||||
extern int asn1parse_main();
|
||||
@@ -39,6 +41,7 @@ extern int dsa_main();
|
||||
extern int dsaparam_main();
|
||||
extern int x509_main();
|
||||
extern int genrsa_main();
|
||||
extern int gendsa_main();
|
||||
extern int s_server_main();
|
||||
extern int s_client_main();
|
||||
extern int speed_main();
|
||||
@@ -48,6 +51,7 @@ extern int pkcs7_main();
|
||||
extern int crl2pkcs7_main();
|
||||
extern int sess_id_main();
|
||||
extern int ciphers_main();
|
||||
extern int nseq_main();
|
||||
#endif
|
||||
|
||||
#ifdef SSLEAY_SRC
|
||||
@@ -65,9 +69,7 @@ typedef struct {
|
||||
FUNCTION functions[] = {
|
||||
{FUNC_TYPE_GENERAL,"verify",verify_main},
|
||||
{FUNC_TYPE_GENERAL,"asn1parse",asn1parse_main},
|
||||
#ifndef NO_RSA
|
||||
{FUNC_TYPE_GENERAL,"req",req_main},
|
||||
#endif
|
||||
{FUNC_TYPE_GENERAL,"dgst",dgst_main},
|
||||
#ifndef NO_DH
|
||||
{FUNC_TYPE_GENERAL,"dh",dh_main},
|
||||
@@ -77,9 +79,7 @@ FUNCTION functions[] = {
|
||||
{FUNC_TYPE_GENERAL,"gendh",gendh_main},
|
||||
#endif
|
||||
{FUNC_TYPE_GENERAL,"errstr",errstr_main},
|
||||
#ifndef NO_RSA
|
||||
{FUNC_TYPE_GENERAL,"ca",ca_main},
|
||||
#endif
|
||||
{FUNC_TYPE_GENERAL,"crl",crl_main},
|
||||
#ifndef NO_RSA
|
||||
{FUNC_TYPE_GENERAL,"rsa",rsa_main},
|
||||
@@ -90,12 +90,13 @@ FUNCTION functions[] = {
|
||||
#ifndef NO_DSA
|
||||
{FUNC_TYPE_GENERAL,"dsaparam",dsaparam_main},
|
||||
#endif
|
||||
#ifndef NO_RSA
|
||||
{FUNC_TYPE_GENERAL,"x509",x509_main},
|
||||
#endif
|
||||
#ifndef NO_RSA
|
||||
{FUNC_TYPE_GENERAL,"genrsa",genrsa_main},
|
||||
#endif
|
||||
#ifndef NO_DSA
|
||||
{FUNC_TYPE_GENERAL,"gendsa",gendsa_main},
|
||||
#endif
|
||||
#if !defined(NO_SOCK) && !(defined(NO_SSL2) && defined(O_SSL3))
|
||||
{FUNC_TYPE_GENERAL,"s_server",s_server_main},
|
||||
#endif
|
||||
@@ -113,6 +114,7 @@ FUNCTION functions[] = {
|
||||
#if !defined(NO_SOCK) && !(defined(NO_SSL2) && defined(O_SSL3))
|
||||
{FUNC_TYPE_GENERAL,"ciphers",ciphers_main},
|
||||
#endif
|
||||
{FUNC_TYPE_GENERAL,"nseq",nseq_main},
|
||||
{FUNC_TYPE_MD,"md2",dgst_main},
|
||||
{FUNC_TYPE_MD,"md5",dgst_main},
|
||||
{FUNC_TYPE_MD,"sha",dgst_main},
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
$mkprog='mklinks';
|
||||
$rmprog='rmlinks';
|
||||
|
||||
print "#ifndef NOPROTO\n";
|
||||
|
||||
grep(s/^asn1pars$/asn1parse/,@ARGV);
|
||||
@@ -38,8 +35,7 @@ foreach (@ARGV)
|
||||
$str="\t{FUNC_TYPE_GENERAL,\"$_\",${_}_main},\n";
|
||||
if (($_ =~ /^s_/) || ($_ =~ /^ciphers$/))
|
||||
{ print "#if !defined(NO_SOCK) && !(defined(NO_SSL2) && defined(O_SSL3))\n${str}#endif\n"; }
|
||||
elsif ( ($_ =~ /^rsa$/) || ($_ =~ /^genrsa$/) ||
|
||||
($_ =~ /^req$/) || ($_ =~ /^ca$/) || ($_ =~ /^x509$/))
|
||||
elsif ( ($_ =~ /^rsa$/) || ($_ =~ /^genrsa$/) )
|
||||
{ print "#ifndef NO_RSA\n${str}#endif\n"; }
|
||||
elsif ( ($_ =~ /^dsa$/) || ($_ =~ /^gendsa$/) || ($_ =~ /^dsaparam$/))
|
||||
{ print "#ifndef NO_DSA\n${str}#endif\n"; }
|
||||
@@ -84,31 +80,3 @@ foreach (
|
||||
print "\t{0,NULL,NULL}\n\t};\n";
|
||||
print "#endif\n\n";
|
||||
|
||||
open(OUT,">$mkprog") || die "unable to open '$prog':$!\n";
|
||||
print OUT "#!/bin/sh\nfor i in ";
|
||||
foreach (@files)
|
||||
{ print OUT $_." "; }
|
||||
print OUT <<'EOF';
|
||||
|
||||
do
|
||||
echo making symlink for $i
|
||||
/bin/rm -f $i
|
||||
ln -s ssleay $i
|
||||
done
|
||||
EOF
|
||||
close(OUT);
|
||||
chmod(0755,$mkprog);
|
||||
|
||||
open(OUT,">$rmprog") || die "unable to open '$prog':$!\n";
|
||||
print OUT "#!/bin/sh\nfor i in ";
|
||||
foreach (@files)
|
||||
{ print OUT $_." "; }
|
||||
print OUT <<'EOF';
|
||||
|
||||
do
|
||||
echo removing $i
|
||||
/bin/rm -f $i
|
||||
done
|
||||
EOF
|
||||
close(OUT);
|
||||
chmod(0755,$rmprog);
|
||||
|
||||
176
apps/req.c
176
apps/req.c
@@ -71,6 +71,7 @@
|
||||
#include "err.h"
|
||||
#include "asn1.h"
|
||||
#include "x509.h"
|
||||
#include "x509v3.h"
|
||||
#include "objects.h"
|
||||
#include "pem.h"
|
||||
|
||||
@@ -80,6 +81,7 @@
|
||||
#define KEYFILE "default_keyfile"
|
||||
#define DISTINGUISHED_NAME "distinguished_name"
|
||||
#define ATTRIBUTES "attributes"
|
||||
#define V3_EXTENSIONS "x509_extensions"
|
||||
|
||||
#define DEFAULT_KEY_LENGTH 512
|
||||
#define MIN_KEY_LENGTH 384
|
||||
@@ -113,12 +115,16 @@ static int add_DN_object(X509_NAME *n, char *text, char *def, char *value,
|
||||
int nid,int min,int max);
|
||||
static void MS_CALLBACK req_cb(int p,int n,char *arg);
|
||||
static int req_fix_data(int nid,int *type,int len,int min,int max);
|
||||
static int check_end(char *str, char *end);
|
||||
static int add_oid_section(LHASH *conf);
|
||||
#else
|
||||
static int make_REQ();
|
||||
static int add_attribute_object();
|
||||
static int add_DN_object();
|
||||
static void MS_CALLBACK req_cb();
|
||||
static int req_fix_data();
|
||||
static int check_end();
|
||||
static int add_oid_section();
|
||||
#endif
|
||||
|
||||
#ifndef MONOLITH
|
||||
@@ -147,6 +153,7 @@ char **argv;
|
||||
int informat,outformat,verify=0,noout=0,text=0,keyform=FORMAT_PEM;
|
||||
int nodes=0,kludge=0;
|
||||
char *infile,*outfile,*prog,*keyfile=NULL,*template=NULL,*keyout=NULL;
|
||||
char *extensions = NULL;
|
||||
EVP_CIPHER *cipher=NULL;
|
||||
int modulus=0;
|
||||
char *p;
|
||||
@@ -221,13 +228,16 @@ char **argv;
|
||||
}
|
||||
else if (strcmp(*argv,"-newkey") == 0)
|
||||
{
|
||||
int is_numeric;
|
||||
|
||||
if (--argc < 1) goto bad;
|
||||
p= *(++argv);
|
||||
if ((strncmp("rsa:",p,4) == 0) ||
|
||||
((p[0] >= '0') && (p[0] <= '9')))
|
||||
is_numeric = p[0] >= '0' && p[0] <= '9';
|
||||
if (strncmp("rsa:",p,4) == 0 || is_numeric)
|
||||
{
|
||||
pkey_type=TYPE_RSA;
|
||||
p+=4;
|
||||
if(!is_numeric)
|
||||
p+=4;
|
||||
newkey= atoi(p);
|
||||
}
|
||||
else
|
||||
@@ -254,11 +264,10 @@ char **argv;
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* This will 'disapear'
|
||||
* when we free xtmp */
|
||||
dtmp=X509_get_pubkey(xtmp);
|
||||
if (dtmp->type == EVP_PKEY_DSA)
|
||||
dsa_params=DSAparams_dup(dtmp->pkey.dsa);
|
||||
EVP_PKEY_free(dtmp);
|
||||
X509_free(xtmp);
|
||||
if (dsa_params == NULL)
|
||||
{
|
||||
@@ -329,7 +338,7 @@ bad:
|
||||
BIO_printf(bio_err,"where options are\n");
|
||||
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -outform arg output format - one of DER TXT PEM\n");
|
||||
BIO_printf(bio_err," -in arg inout file\n");
|
||||
BIO_printf(bio_err," -in arg input file\n");
|
||||
BIO_printf(bio_err," -out arg output file\n");
|
||||
BIO_printf(bio_err," -text text form of request\n");
|
||||
BIO_printf(bio_err," -noout do not output REQ\n");
|
||||
@@ -343,7 +352,7 @@ bad:
|
||||
BIO_printf(bio_err," -newkey dsa:file generate a new DSA key, parameters taken from CA in 'file'\n");
|
||||
|
||||
BIO_printf(bio_err," -[digest] Digest to sign with (md5, sha1, md2, mdc2)\n");
|
||||
BIO_printf(bio_err," -config file request templace file.\n");
|
||||
BIO_printf(bio_err," -config file request template file.\n");
|
||||
BIO_printf(bio_err," -new new request.\n");
|
||||
BIO_printf(bio_err," -x509 output a x509 structure instead of a cert. req.\n");
|
||||
BIO_printf(bio_err," -days number of days a x509 generated by -x509 is valid for.\n");
|
||||
@@ -354,15 +363,18 @@ bad:
|
||||
}
|
||||
|
||||
ERR_load_crypto_strings();
|
||||
X509V3_add_standard_extensions();
|
||||
|
||||
#ifndef MONOLITH
|
||||
/* Lets load up our environment a little */
|
||||
p=getenv("SSLEAY_CONF");
|
||||
p=getenv("OPENSSL_CONF");
|
||||
if (p == NULL)
|
||||
p=getenv("SSLEAY_CONF");
|
||||
if (p == NULL)
|
||||
{
|
||||
strcpy(config_name,X509_get_default_cert_area());
|
||||
strcat(config_name,"/lib/");
|
||||
strcat(config_name,SSLEAY_CONF);
|
||||
strcat(config_name,OPENSSL_CONF);
|
||||
p=config_name;
|
||||
}
|
||||
default_config_file=p;
|
||||
@@ -414,6 +426,7 @@ bad:
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!add_oid_section(req_conf)) goto end;
|
||||
|
||||
if ((md_alg == NULL) &&
|
||||
((p=CONF_get_string(req_conf,SECTION,"default_md")) != NULL))
|
||||
@@ -422,6 +435,16 @@ bad:
|
||||
digest=md_alg;
|
||||
}
|
||||
|
||||
extensions = CONF_get_string(req_conf, SECTION, V3_EXTENSIONS);
|
||||
if(extensions) {
|
||||
/* Check syntax of file */
|
||||
if(!X509V3_EXT_check_conf(req_conf, extensions)) {
|
||||
BIO_printf(bio_err,
|
||||
"Error Loading extension section %s\n", extensions);
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
in=BIO_new(BIO_s_file());
|
||||
out=BIO_new(BIO_s_file());
|
||||
if ((in == NULL) || (out == NULL))
|
||||
@@ -622,12 +645,12 @@ loop:
|
||||
}
|
||||
if (x509)
|
||||
{
|
||||
EVP_PKEY *tmppkey;
|
||||
X509V3_CTX ext_ctx;
|
||||
if ((x509ss=X509_new()) == NULL) goto end;
|
||||
|
||||
/* don't set the version number, for starters
|
||||
* the field is null and second, null is v0
|
||||
* if (!ASN1_INTEGER_set(ci->version,0L)) goto end;
|
||||
*/
|
||||
/* Set version to V3 */
|
||||
if(!X509_set_version(x509ss, 2)) goto end;
|
||||
ASN1_INTEGER_set(X509_get_serialNumber(x509ss),0L);
|
||||
|
||||
X509_set_issuer_name(x509ss,
|
||||
@@ -637,7 +660,27 @@ loop:
|
||||
(long)60*60*24*days);
|
||||
X509_set_subject_name(x509ss,
|
||||
X509_REQ_get_subject_name(req));
|
||||
X509_set_pubkey(x509ss,X509_REQ_get_pubkey(req));
|
||||
tmppkey = X509_REQ_get_pubkey(req);
|
||||
X509_set_pubkey(x509ss,tmppkey);
|
||||
EVP_PKEY_free(tmppkey);
|
||||
|
||||
/* Set up V3 context struct */
|
||||
|
||||
ext_ctx.issuer_cert = x509ss;
|
||||
ext_ctx.subject_cert = x509ss;
|
||||
ext_ctx.subject_req = NULL;
|
||||
ext_ctx.crl = NULL;
|
||||
ext_ctx.flags = 0;
|
||||
|
||||
/* Add extensions */
|
||||
if(extensions && !X509V3_EXT_add_conf(req_conf,
|
||||
&ext_ctx, extensions, x509ss))
|
||||
{
|
||||
BIO_printf(bio_err,
|
||||
"Error Loading extension section %s\n",
|
||||
extensions);
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (!(i=X509_sign(x509ss,pkey,digest)))
|
||||
goto end;
|
||||
@@ -661,7 +704,10 @@ loop:
|
||||
}
|
||||
|
||||
i=X509_REQ_verify(req,pkey);
|
||||
if (tmp) pkey=NULL;
|
||||
if (tmp) {
|
||||
EVP_PKEY_free(pkey);
|
||||
pkey=NULL;
|
||||
}
|
||||
|
||||
if (i < 0)
|
||||
{
|
||||
@@ -718,9 +764,11 @@ loop:
|
||||
goto end;
|
||||
}
|
||||
fprintf(stdout,"Modulus=");
|
||||
#ifndef NO_RSA
|
||||
if (pubkey->type == EVP_PKEY_RSA)
|
||||
BN_print(out,pubkey->pkey.rsa->n);
|
||||
else
|
||||
#endif
|
||||
fprintf(stdout,"Wrong Algorithm type");
|
||||
fprintf(stdout,"\n");
|
||||
}
|
||||
@@ -764,11 +812,13 @@ end:
|
||||
ERR_print_errors(bio_err);
|
||||
}
|
||||
if ((req_conf != NULL) && (req_conf != config)) CONF_free(req_conf);
|
||||
if (in != NULL) BIO_free(in);
|
||||
if (out != NULL) BIO_free(out);
|
||||
if (pkey != NULL) EVP_PKEY_free(pkey);
|
||||
if (req != NULL) X509_REQ_free(req);
|
||||
if (x509ss != NULL) X509_free(x509ss);
|
||||
BIO_free(in);
|
||||
BIO_free(out);
|
||||
EVP_PKEY_free(pkey);
|
||||
X509_REQ_free(req);
|
||||
X509_free(x509ss);
|
||||
X509V3_EXT_cleanup();
|
||||
OBJ_cleanup();
|
||||
#ifndef NO_DSA
|
||||
if (dsa_params != NULL) DSA_free(dsa_params);
|
||||
#endif
|
||||
@@ -780,7 +830,7 @@ X509_REQ *req;
|
||||
EVP_PKEY *pkey;
|
||||
int attribs;
|
||||
{
|
||||
int ret=0,i,j;
|
||||
int ret=0,i;
|
||||
unsigned char *p,*q;
|
||||
X509_REQ_INFO *ri;
|
||||
char buf[100];
|
||||
@@ -840,42 +890,21 @@ start: for (;;)
|
||||
v=(CONF_VALUE *)sk_value(sk,i);
|
||||
p=q=NULL;
|
||||
type=v->name;
|
||||
/* Allow for raw OIDs */
|
||||
/* [n.mm.ooo.ppp] */
|
||||
for (j=0; type[j] != '\0'; j++)
|
||||
{
|
||||
if ( (type[j] == ':') ||
|
||||
(type[j] == ',') ||
|
||||
(type[j] == '.'))
|
||||
p=(unsigned char *)&(type[j+1]);
|
||||
if (type[j] == '[')
|
||||
{
|
||||
p=(unsigned char *)&(type[j+1]);
|
||||
for (j++; type[j] != '\0'; j++)
|
||||
if (type[j] == ']')
|
||||
{
|
||||
q=(unsigned char *)&(type[j]);
|
||||
break;
|
||||
}
|
||||
if(!check_end(type,"_min") || !check_end(type,"_max") ||
|
||||
!check_end(type,"_default") ||
|
||||
!check_end(type,"_value")) continue;
|
||||
/* Skip past any leading X. X: X, etc to allow for
|
||||
* multiple instances
|
||||
*/
|
||||
for(p = v->name; *p ; p++)
|
||||
if ((*p == ':') || (*p == ',') ||
|
||||
(*p == '.')) {
|
||||
p++;
|
||||
if(*p) type = p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (p != NULL)
|
||||
type=(char *)p;
|
||||
if ((nid=OBJ_txt2nid(type)) == NID_undef)
|
||||
{
|
||||
/* Add a new one if possible */
|
||||
if ((p != NULL) && (q != NULL) && (*q == ']'))
|
||||
{
|
||||
*q='\0';
|
||||
nid=OBJ_create((char *)p,NULL,NULL);
|
||||
*q=']';
|
||||
if (nid == NID_undef) goto start;
|
||||
}
|
||||
else
|
||||
goto start;
|
||||
}
|
||||
|
||||
/* If OBJ not recognised ignore it */
|
||||
if ((nid=OBJ_txt2nid(type)) == NID_undef) goto start;
|
||||
sprintf(buf,"%s_default",v->name);
|
||||
if ((def=CONF_get_string(req_conf,tmp,buf)) == NULL)
|
||||
def="";
|
||||
@@ -1158,3 +1187,40 @@ int len,min,max;
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
/* Check if the end of a string matches 'end' */
|
||||
static int check_end(str, end)
|
||||
char *str;
|
||||
char *end;
|
||||
{
|
||||
int elen, slen;
|
||||
char *tmp;
|
||||
elen = strlen(end);
|
||||
slen = strlen(str);
|
||||
if(elen > slen) return 1;
|
||||
tmp = str + slen - elen;
|
||||
return strcmp(tmp, end);
|
||||
}
|
||||
|
||||
static int add_oid_section(conf)
|
||||
LHASH *conf;
|
||||
{
|
||||
char *p;
|
||||
STACK *sktmp;
|
||||
CONF_VALUE *cnf;
|
||||
int i;
|
||||
if(!(p=CONF_get_string(conf,NULL,"oid_section"))) return 1;
|
||||
if(!(sktmp = CONF_get_section(conf, p))) {
|
||||
BIO_printf(bio_err, "problem loading oid section %s\n", p);
|
||||
return 0;
|
||||
}
|
||||
for(i = 0; i < sk_num(sktmp); i++) {
|
||||
cnf = (CONF_VALUE *)sk_value(sktmp, i);
|
||||
if(OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) {
|
||||
BIO_printf(bio_err, "problem creating object %s=%s\n",
|
||||
cnf->name, cnf->value);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/sh
|
||||
for i in verify asn1parse req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers md2 md5 sha sha1 mdc2 rmd160 base64 des des3 desx idea rc4 rc2 bf cast rc5 des-ecb des-ede des-ede3 des-cbc des-ede-cbc des-ede3-cbc des-cfb des-ede-cfb des-ede3-cfb des-ofb des-ede-ofb des-ede3-ofb idea-cbc idea-ecb idea-cfb idea-ofb rc2-cbc rc2-ecb rc2-cfb rc2-ofb bf-cbc bf-ecb bf-cfb bf-ofb cast5-cbc cast5-ecb cast5-cfb cast5-ofb cast-cbc rc5-cbc rc5-ecb rc5-cfb rc5-ofb
|
||||
do
|
||||
echo removing $i
|
||||
/bin/rm -f $i
|
||||
done
|
||||
@@ -154,7 +154,7 @@ bad:
|
||||
BIO_printf(bio_err,"where options are\n");
|
||||
BIO_printf(bio_err," -inform arg input format - one of DER NET PEM\n");
|
||||
BIO_printf(bio_err," -outform arg output format - one of DER NET PEM\n");
|
||||
BIO_printf(bio_err," -in arg inout file\n");
|
||||
BIO_printf(bio_err," -in arg input file\n");
|
||||
BIO_printf(bio_err," -out arg output file\n");
|
||||
BIO_printf(bio_err," -des encrypt PEM output with cbc des\n");
|
||||
BIO_printf(bio_err," -des3 encrypt PEM output with ede cbc des using 168 bit key\n");
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
#ifndef NOPROTO
|
||||
int do_accept(int acc_sock, int *sock, char **host);
|
||||
int do_server(int port, int *ret, int (*cb) ());
|
||||
int do_server(int port, int *ret, int (*cb) (), char *context);
|
||||
#ifdef HEADER_X509_H
|
||||
int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx);
|
||||
#else
|
||||
|
||||
14
apps/s_cb.c
14
apps/s_cb.c
@@ -109,13 +109,13 @@ X509_STORE_CTX *ctx;
|
||||
case X509_V_ERR_CERT_NOT_YET_VALID:
|
||||
case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:
|
||||
BIO_printf(bio_err,"notBefore=");
|
||||
ASN1_UTCTIME_print(bio_err,X509_get_notBefore(ctx->current_cert));
|
||||
ASN1_TIME_print(bio_err,X509_get_notBefore(ctx->current_cert));
|
||||
BIO_printf(bio_err,"\n");
|
||||
break;
|
||||
case X509_V_ERR_CERT_HAS_EXPIRED:
|
||||
case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:
|
||||
BIO_printf(bio_err,"notAfter=");
|
||||
ASN1_UTCTIME_print(bio_err,X509_get_notAfter(ctx->current_cert));
|
||||
ASN1_TIME_print(bio_err,X509_get_notAfter(ctx->current_cert));
|
||||
BIO_printf(bio_err,"\n");
|
||||
break;
|
||||
}
|
||||
@@ -156,9 +156,13 @@ char *key_file;
|
||||
ssl=SSL_new(ctx);
|
||||
x509=SSL_get_certificate(ssl);
|
||||
|
||||
if (x509 != NULL)
|
||||
EVP_PKEY_copy_parameters(X509_get_pubkey(x509),
|
||||
SSL_get_privatekey(ssl));
|
||||
if (x509 != NULL) {
|
||||
EVP_PKEY *pktmp;
|
||||
pktmp = X509_get_pubkey(x509);
|
||||
EVP_PKEY_copy_parameters(pktmp,
|
||||
SSL_get_privatekey(ssl));
|
||||
EVP_PKEY_free(pktmp);
|
||||
}
|
||||
SSL_free(ssl);
|
||||
*/
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ static int c_quiet=0;
|
||||
|
||||
static void sc_usage()
|
||||
{
|
||||
BIO_printf(bio_err,"usage: client args\n");
|
||||
BIO_printf(bio_err,"usage: s_client args\n");
|
||||
BIO_printf(bio_err,"\n");
|
||||
BIO_printf(bio_err," -host host - use -connect instead\n");
|
||||
BIO_printf(bio_err," -port port - use -connect instead\n");
|
||||
@@ -130,7 +130,7 @@ static void sc_usage()
|
||||
BIO_printf(bio_err," -tls1 - just use TLSv1\n");
|
||||
BIO_printf(bio_err," -no_tls1/-no_ssl3/-no_ssl2 - turn off that protocol\n");
|
||||
BIO_printf(bio_err," -bugs - Switch on all SSL implementation bug workarounds\n");
|
||||
BIO_printf(bio_err," -cipher - prefered cipher to use, use the 'ssleay ciphers'\n");
|
||||
BIO_printf(bio_err," -cipher - prefered cipher to use, use the 'openssl ciphers'\n");
|
||||
BIO_printf(bio_err," command to see what is available\n");
|
||||
|
||||
}
|
||||
@@ -743,9 +743,13 @@ int full;
|
||||
BIO_printf(bio,"%s, Cipher is %s\n",
|
||||
SSL_CIPHER_get_version(c),
|
||||
SSL_CIPHER_get_name(c));
|
||||
if (peer != NULL)
|
||||
if (peer != NULL) {
|
||||
EVP_PKEY *pktmp;
|
||||
pktmp = X509_get_pubkey(peer);
|
||||
BIO_printf(bio,"Server public key is %d bit\n",
|
||||
EVP_PKEY_bits(X509_get_pubkey(peer)));
|
||||
EVP_PKEY_bits(pktmp));
|
||||
EVP_PKEY_free(pktmp);
|
||||
}
|
||||
SSL_SESSION_print(bio,SSL_get_session(s));
|
||||
BIO_printf(bio,"---\n");
|
||||
if (peer != NULL)
|
||||
|
||||
@@ -75,9 +75,9 @@
|
||||
#include "s_apps.h"
|
||||
|
||||
#ifndef NOPROTO
|
||||
static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export);
|
||||
static int sv_body(char *hostname, int s);
|
||||
static int www_body(char *hostname, int s);
|
||||
static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export,int keylength);
|
||||
static int sv_body(char *hostname, int s, char *context);
|
||||
static int www_body(char *hostname, int s, char *context);
|
||||
static void close_accept_socket(void );
|
||||
static void sv_usage(void);
|
||||
static int init_ssl_connection(SSL *s);
|
||||
@@ -189,13 +189,16 @@ static void sv_usage()
|
||||
{
|
||||
BIO_printf(bio_err,"usage: s_server [args ...]\n");
|
||||
BIO_printf(bio_err,"\n");
|
||||
BIO_printf(bio_err," -accept arg - port to accept on (default is %d\n",PORT);
|
||||
BIO_printf(bio_err," -accept arg - port to accept on (default is %d)\n",PORT);
|
||||
BIO_printf(bio_err," -context arg - set session ID context\n");
|
||||
BIO_printf(bio_err," -verify arg - turn on peer certificate verification\n");
|
||||
BIO_printf(bio_err," -Verify arg - turn on peer certificate verification, must have a cert.\n");
|
||||
BIO_printf(bio_err," -cert arg - certificate file to use, PEM format assumed\n");
|
||||
BIO_printf(bio_err," (default is %s)\n",TEST_CERT);
|
||||
BIO_printf(bio_err," -key arg - RSA file to use, PEM format assumed, in cert file if\n");
|
||||
BIO_printf(bio_err," not specified (default is %s)\n",TEST_CERT);
|
||||
BIO_printf(bio_err," -dcert arg - second certificate file to use (usually for DSA)\n");
|
||||
BIO_printf(bio_err," -dkey arg - second private key file to use (usually for DSA)\n");
|
||||
#ifdef FIONBIO
|
||||
BIO_printf(bio_err," -nbio - Run with non-blocking IO\n");
|
||||
#endif
|
||||
@@ -205,7 +208,7 @@ static void sv_usage()
|
||||
BIO_printf(bio_err," -CApath arg - PEM format directory of CA's\n");
|
||||
BIO_printf(bio_err," -CAfile arg - PEM format file of CA's\n");
|
||||
BIO_printf(bio_err," -nocert - Don't use any certificates (Anon-DH)\n");
|
||||
BIO_printf(bio_err," -cipher arg - play with 'ssleay ciphers' to see what goes here\n");
|
||||
BIO_printf(bio_err," -cipher arg - play with 'openssl ciphers' to see what goes here\n");
|
||||
BIO_printf(bio_err," -quiet - No server output\n");
|
||||
BIO_printf(bio_err," -no_tmp_rsa - Do not generate a tmp RSA key\n");
|
||||
BIO_printf(bio_err," -ssl2 - Just talk SSLv2\n");
|
||||
@@ -216,7 +219,7 @@ static void sv_usage()
|
||||
BIO_printf(bio_err," -no_tls1 - Just disable TLSv1\n");
|
||||
BIO_printf(bio_err," -bugs - Turn on SSL bug compatability\n");
|
||||
BIO_printf(bio_err," -www - Respond to a 'GET /' with a status page\n");
|
||||
BIO_printf(bio_err," -WWW - Returns requested page from to a 'GET <path> HTTP/1.0'\n");
|
||||
BIO_printf(bio_err," -WWW - Respond to a 'GET /<path> HTTP/1.0' with file ./<path>\n");
|
||||
}
|
||||
|
||||
static int local_argc=0;
|
||||
@@ -229,6 +232,7 @@ char *argv[];
|
||||
{
|
||||
short port=PORT;
|
||||
char *CApath=NULL,*CAfile=NULL;
|
||||
char *context = NULL;
|
||||
int badop=0,bugs=0;
|
||||
int ret=1;
|
||||
int off=0;
|
||||
@@ -290,6 +294,11 @@ char *argv[];
|
||||
verify_depth=atoi(*(++argv));
|
||||
BIO_printf(bio_err,"verify depth is %d, must return a certificate\n",verify_depth);
|
||||
}
|
||||
else if (strcmp(*argv,"-context") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
context= *(++argv);
|
||||
}
|
||||
else if (strcmp(*argv,"-cert") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
@@ -505,13 +514,13 @@ bad:
|
||||
SSL_CTX_set_cipher_list(ctx,cipher);
|
||||
SSL_CTX_set_verify(ctx,s_server_verify,verify_callback);
|
||||
|
||||
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(s_cert_file));
|
||||
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(CAfile));
|
||||
|
||||
BIO_printf(bio_s_out,"ACCEPT\n");
|
||||
if (www)
|
||||
do_server(port,&accept_socket,www_body);
|
||||
do_server(port,&accept_socket,www_body, context);
|
||||
else
|
||||
do_server(port,&accept_socket,sv_body);
|
||||
do_server(port,&accept_socket,sv_body, context);
|
||||
print_stats(bio_s_out,ctx);
|
||||
ret=0;
|
||||
end:
|
||||
@@ -551,9 +560,10 @@ SSL_CTX *ssl_ctx;
|
||||
SSL_CTX_sess_get_cache_size(ssl_ctx));
|
||||
}
|
||||
|
||||
static int sv_body(hostname, s)
|
||||
static int sv_body(hostname, s, context)
|
||||
char *hostname;
|
||||
int s;
|
||||
char *context;
|
||||
{
|
||||
char *buf=NULL;
|
||||
fd_set readfds;
|
||||
@@ -580,8 +590,11 @@ int s;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (con == NULL)
|
||||
if (con == NULL) {
|
||||
con=(SSL *)SSL_new(ctx);
|
||||
if(context)
|
||||
SSL_set_session_id_context(con, context, strlen(context));
|
||||
}
|
||||
SSL_clear(con);
|
||||
|
||||
sbio=BIO_new_socket(s,BIO_NOCLOSE);
|
||||
@@ -645,7 +658,7 @@ int s;
|
||||
/* strcpy(buf,"server side RE-NEGOTIATE\n"); */
|
||||
}
|
||||
if ((buf[0] == 'R') &&
|
||||
((buf[1] == '\0') || (buf[1] == '\r')))
|
||||
((buf[1] == '\n') || (buf[1] == '\r')))
|
||||
{
|
||||
SSL_set_verify(con,
|
||||
SSL_VERIFY_PEER|SSL_VERIFY_CLIENT_ONCE,NULL);
|
||||
@@ -868,9 +881,10 @@ char *file;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int www_body(hostname, s)
|
||||
static int www_body(hostname, s, context)
|
||||
char *hostname;
|
||||
int s;
|
||||
char *context;
|
||||
{
|
||||
char *buf=NULL;
|
||||
int ret=1;
|
||||
@@ -903,6 +917,7 @@ int s;
|
||||
if (!BIO_set_write_buffer_size(io,bufsize)) goto err;
|
||||
|
||||
if ((con=(SSL *)SSL_new(ctx)) == NULL) goto err;
|
||||
if(context) SSL_set_session_id_context(con, context, strlen(context));
|
||||
|
||||
sbio=BIO_new_socket(s,BIO_NOCLOSE);
|
||||
if (s_nbio_test)
|
||||
@@ -1211,9 +1226,10 @@ err:
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static RSA MS_CALLBACK *tmp_rsa_cb(s,export)
|
||||
static RSA MS_CALLBACK *tmp_rsa_cb(s,export,keylength)
|
||||
SSL *s;
|
||||
int export;
|
||||
int keylength;
|
||||
{
|
||||
static RSA *rsa_tmp=NULL;
|
||||
|
||||
@@ -1221,11 +1237,11 @@ int export;
|
||||
{
|
||||
if (!s_quiet)
|
||||
{
|
||||
BIO_printf(bio_err,"Generating temp (512 bit) RSA key...");
|
||||
BIO_printf(bio_err,"Generating temp (%d bit) RSA key...",keylength);
|
||||
BIO_flush(bio_err);
|
||||
}
|
||||
#ifndef NO_RSA
|
||||
rsa_tmp=RSA_generate_key(512,RSA_F4,NULL,NULL);
|
||||
rsa_tmp=RSA_generate_key(keylength,RSA_F4,NULL,NULL);
|
||||
#endif
|
||||
if (!s_quiet)
|
||||
{
|
||||
|
||||
@@ -280,10 +280,11 @@ int port;
|
||||
return(1);
|
||||
}
|
||||
|
||||
int do_server(port, ret, cb)
|
||||
int do_server(port, ret, cb, context)
|
||||
int port;
|
||||
int *ret;
|
||||
int (*cb)();
|
||||
char *context;
|
||||
{
|
||||
int sock;
|
||||
char *name;
|
||||
@@ -304,7 +305,7 @@ int (*cb)();
|
||||
SHUTDOWN(accept_socket);
|
||||
return(0);
|
||||
}
|
||||
i=(*cb)(name,sock);
|
||||
i=(*cb)(name,sock, context);
|
||||
if (name != NULL) Free(name);
|
||||
SHUTDOWN2(sock);
|
||||
if (i < 0)
|
||||
@@ -332,7 +333,12 @@ char *ip;
|
||||
if (ip == NULL)
|
||||
server.sin_addr.s_addr=INADDR_ANY;
|
||||
else
|
||||
/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
|
||||
#ifndef BIT_FIELD_LIMITS
|
||||
memcpy(&server.sin_addr.s_addr,ip,4);
|
||||
#else
|
||||
memcpy(&server.sin_addr,ip,4);
|
||||
#endif
|
||||
s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL);
|
||||
|
||||
if (s == INVALID_SOCKET) goto err;
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
#define NO_SHUTDOWN
|
||||
|
||||
/*-----------------------------------------
|
||||
cntime - SSL client connection timer program
|
||||
s_time - SSL client connection timer program
|
||||
Written and donated by Larry Streepy <streepy@healthcare.com>
|
||||
-----------------------------------------*/
|
||||
|
||||
@@ -224,13 +224,13 @@ static void s_time_usage()
|
||||
-time arg - max number of seconds to collect data, default %d\n\
|
||||
-verify arg - turn on peer certificate verification, arg == depth\n\
|
||||
-cert arg - certificate file to use, PEM format assumed\n\
|
||||
-key arg - RSA file to use, PEM format assumed, in cert file if\n\
|
||||
not specified but cert fill is.\n\
|
||||
-key arg - RSA file to use, PEM format assumed, key is in cert file\n\
|
||||
file if not specified by this option\n\
|
||||
-CApath arg - PEM format directory of CA's\n\
|
||||
-CAfile arg - PEM format file of CA's\n\
|
||||
-cipher - prefered cipher to use, play with 'ssleay ciphers'\n\n";
|
||||
-cipher - prefered cipher to use, play with 'openssl ciphers'\n\n";
|
||||
|
||||
printf( "usage: client <args>\n\n" );
|
||||
printf( "usage: s_time <args>\n\n" );
|
||||
|
||||
printf("-connect host:port - host:port to connect to (default is %s)\n",SSL_CONNECT_NAME);
|
||||
#ifdef FIONBIO
|
||||
|
||||
@@ -138,7 +138,7 @@ static void sc_usage()
|
||||
BIO_printf(bio_err," -tls1 - just use TLSv1\n");
|
||||
BIO_printf(bio_err," -no_tls1/-no_ssl3/-no_ssl2 - turn off that protocol\n");
|
||||
BIO_printf(bio_err," -bugs - Switch on all SSL implementation bug workarounds\n");
|
||||
BIO_printf(bio_err," -cipher - prefered cipher to use, use the 'ssleay ciphers'\n");
|
||||
BIO_printf(bio_err," -cipher - prefered cipher to use, use the 'openssl ciphers'\n");
|
||||
BIO_printf(bio_err," command to see what is available\n");
|
||||
|
||||
}
|
||||
@@ -770,8 +770,12 @@ int full;
|
||||
SSL_CIPHER_get_version(c),
|
||||
SSL_CIPHER_get_name(c));
|
||||
if (peer != NULL)
|
||||
{
|
||||
EVP_PKEY *pktmp;
|
||||
BIO_printf(bio,"Server public key is %d bit\n",
|
||||
EVP_PKEY_bits(X509_get_pubkey(peer)));
|
||||
EVP_PKEY_bits(pktmp));
|
||||
EVP_PKEY_free(pktmp);
|
||||
}
|
||||
SSL_SESSION_print(bio,SSL_get_session(s));
|
||||
BIO_printf(bio,"---\n");
|
||||
if (peer != NULL)
|
||||
|
||||
@@ -70,15 +70,16 @@
|
||||
#define PROG sess_id_main
|
||||
|
||||
static char *sess_id_usage[]={
|
||||
"usage: crl args\n",
|
||||
"usage: sess_id args\n",
|
||||
"\n",
|
||||
" -inform arg - input format - default PEM (one of DER, TXT or PEM)\n",
|
||||
" -outform arg - output format - default PEM\n",
|
||||
" -in arg - input file - default stdin\n",
|
||||
" -out arg - output file - default stdout\n",
|
||||
" -text - print ssl session id details\n",
|
||||
" -cert - output certificaet \n",
|
||||
" -cert - output certificate \n",
|
||||
" -noout - no CRL output\n",
|
||||
" -context arg - set the session ID context\n",
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -96,7 +97,7 @@ char **argv;
|
||||
int ret=1,i,num,badops=0;
|
||||
BIO *out=NULL;
|
||||
int informat,outformat;
|
||||
char *infile=NULL,*outfile=NULL;
|
||||
char *infile=NULL,*outfile=NULL,*context=NULL;
|
||||
int cert=0,noout=0,text=0;
|
||||
char **pp;
|
||||
|
||||
@@ -140,6 +141,11 @@ char **argv;
|
||||
cert= ++num;
|
||||
else if (strcmp(*argv,"-noout") == 0)
|
||||
noout= ++num;
|
||||
else if (strcmp(*argv,"-context") == 0)
|
||||
{
|
||||
if(--argc < 1) goto bad;
|
||||
context=*++argv;
|
||||
}
|
||||
else
|
||||
{
|
||||
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
||||
@@ -162,6 +168,17 @@ bad:
|
||||
x=load_sess_id(infile,informat);
|
||||
if (x == NULL) { goto end; }
|
||||
|
||||
if(context)
|
||||
{
|
||||
x->sid_ctx_length=strlen(context);
|
||||
if(x->sid_ctx_length > SSL_MAX_SID_CTX_LENGTH)
|
||||
{
|
||||
BIO_printf(bio_err,"Context too long\n");
|
||||
goto end;
|
||||
}
|
||||
memcpy(x->sid_ctx,context,x->sid_ctx_length);
|
||||
}
|
||||
|
||||
#ifdef undef
|
||||
/* just testing for memory leaks :-) */
|
||||
{
|
||||
|
||||
24
apps/speed.c
24
apps/speed.c
@@ -450,7 +450,7 @@ char **argv;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (strcmp(*argv,"ssleay") == 0)
|
||||
if (strcmp(*argv,"openssl") == 0)
|
||||
{
|
||||
RSA_set_default_method(RSA_PKCS1_SSLeay());
|
||||
j--;
|
||||
@@ -601,9 +601,9 @@ char **argv;
|
||||
#endif
|
||||
|
||||
#ifndef NO_DES
|
||||
des_set_key((C_Block *)key,sch);
|
||||
des_set_key((C_Block *)key2,sch2);
|
||||
des_set_key((C_Block *)key3,sch3);
|
||||
des_set_key(key,sch);
|
||||
des_set_key(key2,sch2);
|
||||
des_set_key(key3,sch3);
|
||||
#endif
|
||||
#ifndef NO_IDEA
|
||||
idea_set_encrypt_key(key16,&idea_ks);
|
||||
@@ -633,8 +633,7 @@ char **argv;
|
||||
count*=2;
|
||||
Time_F(START);
|
||||
for (i=count; i; i--)
|
||||
des_ecb_encrypt((C_Block *)buf,(C_Block *)buf,
|
||||
&(sch[0]),DES_ENCRYPT);
|
||||
des_ecb_encrypt(buf,buf, &(sch[0]),DES_ENCRYPT);
|
||||
d=Time_F(STOP);
|
||||
} while (d <3);
|
||||
c[D_MD2][0]=count/10;
|
||||
@@ -851,10 +850,8 @@ char **argv;
|
||||
print_message(names[D_CBC_DES],c[D_CBC_DES][j],lengths[j]);
|
||||
Time_F(START);
|
||||
for (count=0,run=1; COND(c[D_CBC_DES][j]); count++)
|
||||
des_ncbc_encrypt((C_Block *)buf,
|
||||
(C_Block *)buf,
|
||||
(long)lengths[j],sch,
|
||||
(C_Block *)&(iv[0]),DES_ENCRYPT);
|
||||
des_ncbc_encrypt(buf,buf,lengths[j],sch,
|
||||
&(iv[0]),DES_ENCRYPT);
|
||||
d=Time_F(STOP);
|
||||
BIO_printf(bio_err,"%ld %s's in %.2fs\n",
|
||||
count,names[D_CBC_DES],d);
|
||||
@@ -869,10 +866,9 @@ char **argv;
|
||||
print_message(names[D_EDE3_DES],c[D_EDE3_DES][j],lengths[j]);
|
||||
Time_F(START);
|
||||
for (count=0,run=1; COND(c[D_EDE3_DES][j]); count++)
|
||||
des_ede3_cbc_encrypt((C_Block *)buf,
|
||||
(C_Block *)buf,
|
||||
(long)lengths[j],sch,sch2,sch3,
|
||||
(C_Block *)&(iv[0]),DES_ENCRYPT);
|
||||
des_ede3_cbc_encrypt(buf,buf,lengths[j],
|
||||
sch,sch2,sch3,
|
||||
&(iv[0]),DES_ENCRYPT);
|
||||
d=Time_F(STOP);
|
||||
BIO_printf(bio_err,"%ld %s's in %.2fs\n",
|
||||
count,names[D_EDE3_DES],d);
|
||||
|
||||
343
apps/ssleay.c
343
apps/ssleay.c
@@ -1,343 +0,0 @@
|
||||
/* apps/ssleay.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#ifndef DEBUG
|
||||
#undef DEBUG
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "bio.h"
|
||||
#include "crypto.h"
|
||||
#include "lhash.h"
|
||||
#include "conf.h"
|
||||
#include "x509.h"
|
||||
#include "pem.h"
|
||||
#include "ssl.h"
|
||||
#define SSLEAY /* turn off a few special case MONOLITH macros */
|
||||
#define USE_SOCKETS /* needed for the _O_BINARY defs in the MS world */
|
||||
#define SSLEAY_SRC
|
||||
#include "apps.h"
|
||||
#include "s_apps.h"
|
||||
#include "err.h"
|
||||
|
||||
/*
|
||||
#ifdef WINDOWS
|
||||
#include "bss_file.c"
|
||||
#endif
|
||||
*/
|
||||
|
||||
#ifndef NOPROTO
|
||||
static unsigned long MS_CALLBACK hash(FUNCTION *a);
|
||||
static int MS_CALLBACK cmp(FUNCTION *a,FUNCTION *b);
|
||||
static LHASH *prog_init(void );
|
||||
static int do_cmd(LHASH *prog,int argc,char *argv[]);
|
||||
#else
|
||||
static unsigned long MS_CALLBACK hash();
|
||||
static int MS_CALLBACK cmp();
|
||||
static LHASH *prog_init();
|
||||
static int do_cmd();
|
||||
#endif
|
||||
|
||||
LHASH *config=NULL;
|
||||
char *default_config_file=NULL;
|
||||
|
||||
#ifdef DEBUG
|
||||
static void sig_stop(i)
|
||||
int i;
|
||||
{
|
||||
char *a=NULL;
|
||||
|
||||
*a='\0';
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Make sure there is only one when MONOLITH is defined */
|
||||
#ifdef MONOLITH
|
||||
BIO *bio_err=NULL;
|
||||
#endif
|
||||
|
||||
int main(Argc,Argv)
|
||||
int Argc;
|
||||
char *Argv[];
|
||||
{
|
||||
ARGS arg;
|
||||
#define PROG_NAME_SIZE 16
|
||||
char pname[PROG_NAME_SIZE];
|
||||
FUNCTION f,*fp;
|
||||
MS_STATIC char *prompt,buf[1024],config_name[256];
|
||||
int n,i,ret=0;
|
||||
int argc;
|
||||
char **argv,*p;
|
||||
LHASH *prog=NULL;
|
||||
long errline;
|
||||
|
||||
arg.data=NULL;
|
||||
arg.count=0;
|
||||
|
||||
/* SSLeay_add_ssl_algorithms(); is called in apps_startup() */
|
||||
apps_startup();
|
||||
|
||||
#if defined(DEBUG) && !defined(WINDOWS) && !defined(MSDOS)
|
||||
#ifdef SIGBUS
|
||||
signal(SIGBUS,sig_stop);
|
||||
#endif
|
||||
#ifdef SIGSEGV
|
||||
signal(SIGSEGV,sig_stop);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (bio_err == NULL)
|
||||
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
|
||||
BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
|
||||
|
||||
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
|
||||
|
||||
ERR_load_crypto_strings();
|
||||
|
||||
/* Lets load up our environment a little */
|
||||
p=getenv("SSLEAY_CONF");
|
||||
if (p == NULL)
|
||||
{
|
||||
strcpy(config_name,X509_get_default_cert_area());
|
||||
strcat(config_name,"/lib/");
|
||||
strcat(config_name,SSLEAY_CONF);
|
||||
p=config_name;
|
||||
}
|
||||
|
||||
default_config_file=p;
|
||||
|
||||
config=CONF_load(config,p,&errline);
|
||||
if (config == NULL) ERR_clear_error();
|
||||
|
||||
prog=prog_init();
|
||||
|
||||
/* first check the program name */
|
||||
program_name(Argv[0],pname,PROG_NAME_SIZE);
|
||||
|
||||
f.name=pname;
|
||||
fp=(FUNCTION *)lh_retrieve(prog,(char *)&f);
|
||||
if (fp != NULL)
|
||||
{
|
||||
Argv[0]=pname;
|
||||
ret=fp->func(Argc,Argv);
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* ok, now check that there are not arguments, if there are,
|
||||
* run with them, shifting the ssleay off the front */
|
||||
if (Argc != 1)
|
||||
{
|
||||
Argc--;
|
||||
Argv++;
|
||||
ret=do_cmd(prog,Argc,Argv);
|
||||
if (ret < 0) ret=0;
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* ok, lets enter the old 'SSLeay>' mode */
|
||||
|
||||
for (;;)
|
||||
{
|
||||
ret=0;
|
||||
p=buf;
|
||||
n=1024;
|
||||
i=0;
|
||||
for (;;)
|
||||
{
|
||||
p[0]='\0';
|
||||
if (i++)
|
||||
prompt=">";
|
||||
else prompt="SSLeay>";
|
||||
fputs(prompt,stdout);
|
||||
fflush(stdout);
|
||||
fgets(p,n,stdin);
|
||||
if (p[0] == '\0') goto end;
|
||||
i=strlen(p);
|
||||
if (i <= 1) break;
|
||||
if (p[i-2] != '\\') break;
|
||||
i-=2;
|
||||
p+=i;
|
||||
n-=i;
|
||||
}
|
||||
if (!chopup_args(&arg,buf,&argc,&argv)) break;
|
||||
|
||||
ret=do_cmd(prog,argc,argv);
|
||||
if (ret < 0)
|
||||
{
|
||||
ret=0;
|
||||
goto end;
|
||||
}
|
||||
if (ret != 0)
|
||||
BIO_printf(bio_err,"error in %s\n",argv[0]);
|
||||
BIO_flush(bio_err);
|
||||
}
|
||||
BIO_printf(bio_err,"bad exit\n");
|
||||
ret=1;
|
||||
end:
|
||||
if (config != NULL)
|
||||
{
|
||||
CONF_free(config);
|
||||
config=NULL;
|
||||
}
|
||||
if (prog != NULL) lh_free(prog);
|
||||
if (arg.data != NULL) Free(arg.data);
|
||||
ERR_remove_state(0);
|
||||
|
||||
EVP_cleanup();
|
||||
ERR_free_strings();
|
||||
|
||||
CRYPTO_mem_leaks(bio_err);
|
||||
if (bio_err != NULL)
|
||||
{
|
||||
BIO_free(bio_err);
|
||||
bio_err=NULL;
|
||||
}
|
||||
EXIT(ret);
|
||||
}
|
||||
|
||||
static int do_cmd(prog,argc,argv)
|
||||
LHASH *prog;
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
FUNCTION f,*fp;
|
||||
int i,ret=1,tp,nl;
|
||||
|
||||
if ((argc <= 0) || (argv[0] == NULL))
|
||||
{ ret=0; goto end; }
|
||||
f.name=argv[0];
|
||||
fp=(FUNCTION *)lh_retrieve(prog,(char *)&f);
|
||||
if (fp != NULL)
|
||||
{
|
||||
ret=fp->func(argc,argv);
|
||||
}
|
||||
else if ((strcmp(argv[0],"quit") == 0) ||
|
||||
(strcmp(argv[0],"q") == 0) ||
|
||||
(strcmp(argv[0],"exit") == 0) ||
|
||||
(strcmp(argv[0],"bye") == 0))
|
||||
{
|
||||
ret= -1;
|
||||
goto end;
|
||||
}
|
||||
else
|
||||
{
|
||||
BIO_printf(bio_err,"'%s' is a bad command, valid commands are",
|
||||
argv[0]);
|
||||
i=0;
|
||||
fp=functions;
|
||||
tp=0;
|
||||
for (fp=functions; fp->name != NULL; fp++)
|
||||
{
|
||||
nl=0;
|
||||
if (((i++) % 5) == 0)
|
||||
{
|
||||
BIO_printf(bio_err,"\n");
|
||||
nl=1;
|
||||
}
|
||||
if (fp->type != tp)
|
||||
{
|
||||
tp=fp->type;
|
||||
if (!nl) BIO_printf(bio_err,"\n");
|
||||
if (tp == FUNC_TYPE_MD)
|
||||
{
|
||||
i=1;
|
||||
BIO_printf(bio_err,
|
||||
"Message Digest commands - see the dgst command for more details\n");
|
||||
}
|
||||
else if (tp == FUNC_TYPE_CIPHER)
|
||||
{
|
||||
i=1;
|
||||
BIO_printf(bio_err,"Cipher commands - see the enc command for more details\n");
|
||||
}
|
||||
}
|
||||
BIO_printf(bio_err,"%-15s",fp->name);
|
||||
}
|
||||
BIO_printf(bio_err,"\nquit\n");
|
||||
ret=0;
|
||||
}
|
||||
end:
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static LHASH *prog_init()
|
||||
{
|
||||
LHASH *ret;
|
||||
FUNCTION *f;
|
||||
|
||||
if ((ret=lh_new(hash,cmp)) == NULL) return(NULL);
|
||||
|
||||
for (f=functions; f->name != NULL; f++)
|
||||
lh_insert(ret,(char *)f);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static int MS_CALLBACK cmp(a,b)
|
||||
FUNCTION *a,*b;
|
||||
{
|
||||
return(strncmp(a->name,b->name,8));
|
||||
}
|
||||
|
||||
static unsigned long MS_CALLBACK hash(a)
|
||||
FUNCTION *a;
|
||||
{
|
||||
return(lh_strhash(a->name));
|
||||
}
|
||||
|
||||
#undef SSLEAY
|
||||
119
apps/ssleay.cnf
119
apps/ssleay.cnf
@@ -1,119 +0,0 @@
|
||||
#
|
||||
# SSLeay example configuration file.
|
||||
# This is mostly being used for generation of certificate requests.
|
||||
#
|
||||
|
||||
RANDFILE = $ENV::HOME/.rnd
|
||||
oid_file = $ENV::HOME/.oid
|
||||
|
||||
####################################################################
|
||||
[ ca ]
|
||||
default_ca = CA_default # The default ca section
|
||||
|
||||
####################################################################
|
||||
[ CA_default ]
|
||||
|
||||
dir = ./demoCA # Where everything is kept
|
||||
certs = $dir/certs # Where the issued certs are kept
|
||||
crl_dir = $dir/crl # Where the issued crl are kept
|
||||
database = $dir/index.txt # database index file.
|
||||
new_certs_dir = $dir/newcerts # default place for new certs.
|
||||
|
||||
certificate = $dir/cacert.pem # The CA certificate
|
||||
serial = $dir/serial # The current serial number
|
||||
crl = $dir/crl.pem # The current CRL
|
||||
private_key = $dir/private/cakey.pem# The private key
|
||||
RANDFILE = $dir/private/.rand # private random number file
|
||||
|
||||
x509_extensions = x509v3_extensions # The extentions to add to the cert
|
||||
default_days = 365 # how long to certify for
|
||||
default_crl_days= 30 # how long before next CRL
|
||||
default_md = md5 # which md to use.
|
||||
preserve = no # keep passed DN ordering
|
||||
|
||||
# A few difference way of specifying how similar the request should look
|
||||
# For type CA, the listed attributes must be the same, and the optional
|
||||
# and supplied fields are just that :-)
|
||||
policy = policy_match
|
||||
|
||||
# For the CA policy
|
||||
[ policy_match ]
|
||||
countryName = match
|
||||
stateOrProvinceName = match
|
||||
organizationName = match
|
||||
organizationalUnitName = optional
|
||||
commonName = supplied
|
||||
emailAddress = optional
|
||||
|
||||
# For the 'anything' policy
|
||||
# At this point in time, you must list all acceptable 'object'
|
||||
# types.
|
||||
[ policy_anything ]
|
||||
countryName = optional
|
||||
stateOrProvinceName = optional
|
||||
localityName = optional
|
||||
organizationName = optional
|
||||
organizationalUnitName = optional
|
||||
commonName = supplied
|
||||
emailAddress = optional
|
||||
|
||||
####################################################################
|
||||
[ req ]
|
||||
default_bits = 1024
|
||||
default_keyfile = privkey.pem
|
||||
distinguished_name = req_distinguished_name
|
||||
attributes = req_attributes
|
||||
|
||||
[ req_distinguished_name ]
|
||||
countryName = Country Name (2 letter code)
|
||||
countryName_default = AU
|
||||
countryName_min = 2
|
||||
countryName_max = 2
|
||||
|
||||
stateOrProvinceName = State or Province Name (full name)
|
||||
stateOrProvinceName_default = Some-State
|
||||
|
||||
localityName = Locality Name (eg, city)
|
||||
|
||||
0.organizationName = Organization Name (eg, company)
|
||||
0.organizationName_default = Internet Widgits Pty Ltd
|
||||
|
||||
# we can do this but it is not needed normally :-)
|
||||
#1.organizationName = Second Organization Name (eg, company)
|
||||
#1.organizationName_default = CryptSoft Pty Ltd
|
||||
|
||||
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||
#organizationalUnitName_default =
|
||||
|
||||
commonName = Common Name (eg, YOUR name)
|
||||
commonName_max = 64
|
||||
|
||||
emailAddress = Email Address
|
||||
emailAddress_max = 40
|
||||
|
||||
SET-ex3 = SET extension number 3
|
||||
|
||||
[ req_attributes ]
|
||||
challengePassword = A challenge password
|
||||
challengePassword_min = 4
|
||||
challengePassword_max = 20
|
||||
|
||||
unstructuredName = An optional company name
|
||||
|
||||
[ x509v3_extensions ]
|
||||
|
||||
nsCaRevocationUrl = http://www.cryptsoft.com/ca-crl.pem
|
||||
nsComment = "This is a comment"
|
||||
|
||||
# under ASN.1, the 0 bit would be encoded as 80
|
||||
nsCertType = 0x40
|
||||
|
||||
#nsBaseUrl
|
||||
#nsRevocationUrl
|
||||
#nsRenewalUrl
|
||||
#nsCaPolicyUrl
|
||||
#nsSslServerName
|
||||
#nsCertSequence
|
||||
#nsCertExt
|
||||
#nsDataType
|
||||
|
||||
25
apps/stuff/pkcs7.ex1
Normal file
25
apps/stuff/pkcs7.ex1
Normal file
@@ -0,0 +1,25 @@
|
||||
-----BEGIN xxx-----
|
||||
MIAGCSqGSIb3DQEHAqCAMIACAQExADCABgkqhkiG9w0BBwEAAKCAMIIB
|
||||
rTCCAUkCAgC2MA0GCSqGSIb3DQEBAgUAME0xCzAJBgNVBAYTAlVTMSAw
|
||||
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEcMBoGA1UECxMT
|
||||
UGVyc29uYSBDZXJ0aWZpY2F0ZTAeFw05NDA0MDkwMDUwMzdaFw05NDA4
|
||||
MDIxODM4NTdaMGcxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0
|
||||
YSBTZWN1cml0eSwgSW5jLjEcMBoGA1UECxMTUGVyc29uYSBDZXJ0aWZp
|
||||
Y2F0ZTEYMBYGA1UEAxMPU2V0ZWMgQXN0cm9ub215MFwwDQYJKoZIhvcN
|
||||
AQEBBQADSwAwSAJBAMy8QcW7RMrB4sTdQ8Nmb2DFmJmkWn+el+NdeamI
|
||||
DElX/qw9mIQu4xNj1FfepfJNxzPvA0OtMKhy6+bkrlyMEU8CAwEAATAN
|
||||
BgkqhkiG9w0BAQIFAANPAAYn7jDgirhiIL4wnP8nGzUisGSpsFsF4/7z
|
||||
2P2wqne6Qk8Cg/Dstu3RyaN78vAMGP8d82H5+Ndfhi2mRp4YHiGHz0Hl
|
||||
K6VbPfnyvS2wdjCCAccwggFRAgUCQAAAFDANBgkqhkiG9w0BAQIFADBf
|
||||
MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2VjdXJpdHks
|
||||
IEluYy4xLjAsBgNVBAsTJUxvdyBBc3N1cmFuY2UgQ2VydGlmaWNhdGlv
|
||||
biBBdXRob3JpdHkwHhcNOTQwMTA3MDAwMDAwWhcNOTYwMTA3MjM1OTU5
|
||||
WjBNMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2VjdXJp
|
||||
dHksIEluYy4xHDAaBgNVBAsTE1BlcnNvbmEgQ2VydGlmaWNhdGUwaTAN
|
||||
BgkqhkiG9w0BAQEFAANYADBVAk4GqghQDa9Xi/2zAdYEqJVIcYhlLN1F
|
||||
pI9tXQ1m6zZ39PYXK8Uhoj0Es7kWRv8hC04vqkOKwndWbzVtvoHQOmP8
|
||||
nOkkuBi+AQvgFoRcgOUCAwEAATANBgkqhkiG9w0BAQIFAANhAD/5Uo7x
|
||||
Ddp49oZm9GoNcPhZcW1e+nojLvHXWAU/CBkwfcR+FSf4hQ5eFu1AjYv6
|
||||
Wqf430Xe9Et5+jgnMTiq4LnwgTdA8xQX4elJz9QzQobkE3XVOjVAtCFc
|
||||
miin80RB8AAAMYAAAAAAAAAAAA==
|
||||
-----END xxx-----
|
||||
11
apps/stuff/pkcs7.ex2
Normal file
11
apps/stuff/pkcs7.ex2
Normal file
@@ -0,0 +1,11 @@
|
||||
-----BEGIN PRIVACY-ENHANCED MESSAGE-----
|
||||
MIAGCSqGSIb3DQEHBqCAMIACAQAwgAYJKoZIhvcNAQcBMBEGBSsOAwIHBAifqtdy
|
||||
x6uIMYCCARgvFzJtOZBn773DtmXlx037ck3giqnV0WC0QAx5f+fesAiGaxMqWcir
|
||||
r9XvT0nT0LgSQ/8tiLCDBEKdyCNgdcJAduy3D0r2sb5sNTT0TyL9uydG3w55vTnW
|
||||
aPbCPCWLudArI1UHDZbnoJICrVehxG/sYX069M8v6VO8PsJS7//hh1yM+0nekzQ5
|
||||
l1p0j7uWKu4W0csrlGqhLvEJanj6dQAGSTNCOoH3jzEXGQXntgesk8poFPfHdtj0
|
||||
5RH4MuJRajDmoEjlrNcnGl/BdHAd2JaCo6uZWGcnGAgVJ/TVfSVSwN5nlCK87tXl
|
||||
nL7DJwaPRYwxb3mnPKNq7ATiJPf5u162MbwxrddmiE7e3sST7naSN+GS0ateY5X7
|
||||
AAAAAAAAAAA=
|
||||
-----END PRIVACY-ENHANCED MESSAGE-----
|
||||
|
||||
12
apps/stuff/pkcs7.ex3
Normal file
12
apps/stuff/pkcs7.ex3
Normal file
@@ -0,0 +1,12 @@
|
||||
-----BEGIN PRIVACY-ENHANCED MESSAGE-----
|
||||
MIAGCSqGSIb3DQEHA6CAMIACAQAxgDCBqQIBADBTME0xCzAJBgNVBAYTAlVTMSAw
|
||||
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEcMBoGA1UECxMTUGVyc29u
|
||||
YSBDZXJ0aWZpY2F0ZQICALYwDQYJKoZIhvcNAQEBBQAEQCU/R+YCJSUsV6XLilHG
|
||||
cNVzwqKcWzmT/rZ+duOv8Ggb7oO/d8H3xUVGQ2LsX4kYGq2szwj8Q6eWhsmhf4oz
|
||||
lvMAADCABgkqhkiG9w0BBwEwEQYFKw4DAgcECFif7BadXlw3oIAEgZBNcMexKe16
|
||||
+mNxx8YQPukBCL0bWqS86lvws/AgRkKPELmysBi5lco8MBCsWK/fCyrnxIRHs1oK
|
||||
BXBVlsAhKkkusk1kCf/GbXSAphdSgG+d6LxrNZwHbBFOX6A2hYS63Iczd5bOVDDW
|
||||
Op2gcgUtMJq6k2LFrs4L7HHqRPPlqNJ6j5mFP4xkzOCNIQynpD1rV6EECMIk/T7k
|
||||
1JLSAAAAAAAAAAAAAA==
|
||||
-----END PRIVACY-ENHANCED MESSAGE-----
|
||||
|
||||
46
apps/stuff/pkcs7.pem
Normal file
46
apps/stuff/pkcs7.pem
Normal file
@@ -0,0 +1,46 @@
|
||||
-----BEGIN PKCS7-----
|
||||
MIIIEgYJKoZIhvcNAQcCMIIIAwIBATEAMAsGCSqGSIb3DQEHAaCCBDUwggIhMIIB
|
||||
jgIFAnIAAGcwDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMxIDAeBgNVBAoT
|
||||
F1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVy
|
||||
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk1MDUxNzAwMDAwMFoXDTk1MTEx
|
||||
NjIzNTk1OVowdzELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5h
|
||||
MRIwEAYDVQQHEwlDaGFybG90dGUxIzAhBgNVBAoTGlZuZXQgSW50ZXJuZXQgQWNj
|
||||
ZXNzLCBJbmMuMRYwFAYDVQQDFA13d3cqLnZuZXQubmV0MHwwDQYJKoZIhvcNAQEB
|
||||
BQADawAwaAJhAOngW+io4W1lAp1b2k4+KqICaLHatp6AWkPLpa3Li2mwmggSGeRD
|
||||
AmTI4FQB0EFrDMfKLOteHgGoDJ0vifmV5cKvevRt5Gn+xPn54Halu7i145iUldyv
|
||||
oViUNpWmLJhKTQIDAQABMA0GCSqGSIb3DQEBAgUAA34AQkyfJje6H8fxtN68TvXV
|
||||
RibnPpQol2jMbh0VnK9cP9ePvsXy+7JoGuWxj6zlgjZGwia49xITggZ+0b+wP51l
|
||||
5e8xEEc2K7eC5QVD0qh/NSqdPcVP+UG6UK/LT25w/yLuZgqJ3g87kGbOo9myLhkZ
|
||||
3jr3kXnsriBmwmqcjgUwggIMMIIBlgIFAkAAAEUwDQYJKoZIhvcNAQECBQAwXzEL
|
||||
MAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4w
|
||||
LAYDVQQLEyVMb3cgQXNzdXJhbmNlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
|
||||
DTk0MTEwOTIzMTk0NFoXDTk5MTIzMTIzMTk0NFowXzELMAkGA1UEBhMCVVMxIDAe
|
||||
BgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUg
|
||||
U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUA
|
||||
A4GJADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwji
|
||||
ioII0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJ
|
||||
VphIuR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJ
|
||||
KoZIhvcNAQECBQADYQAjOCnuhWTdRq+8PhUBSzKbOhmafQQPQ8Ltw+49U8N1zgq9
|
||||
1ROaW46znUQykAPUdaAIflEfV2e0ULuyOWCwDJ2ME7NUmWL86SLkk6QLC9iItjva
|
||||
h+tdpLV/+TerjmrxCWChggOyMIICjTCCAfowDQYJKoZIhvcNAQECBQAwXzELMAkG
|
||||
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
|
||||
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5Fw05NTA1
|
||||
MDIwMjEyMjZaFw05NTA2MDEwMDAxNDlaMIIBaDAWAgUCQQAABBcNOTUwMjAxMTcy
|
||||
NDI2WjAWAgUCQQAACRcNOTUwMjEwMDIxNjM5WjAWAgUCQQAADxcNOTUwMjI0MDAx
|
||||
MjQ5WjAWAgUCQQAADBcNOTUwMjI1MDA0NjQ0WjAWAgUCQQAAGxcNOTUwMzEzMTg0
|
||||
MDQ5WjAWAgUCQQAAFhcNOTUwMzE1MTkxNjU0WjAWAgUCQQAAGhcNOTUwMzE1MTk0
|
||||
MDQxWjAWAgUCQQAAHxcNOTUwMzI0MTk0NDMzWjAWAgUCcgAABRcNOTUwMzI5MjAw
|
||||
NzExWjAWAgUCcgAAERcNOTUwMzMwMDIzNDI2WjAWAgUCQQAAIBcNOTUwNDA3MDEx
|
||||
MzIxWjAWAgUCcgAAHhcNOTUwNDA4MDAwMjU5WjAWAgUCcgAAQRcNOTUwNDI4MTcx
|
||||
NzI0WjAWAgUCcgAAOBcNOTUwNDI4MTcyNzIxWjAWAgUCcgAATBcNOTUwNTAyMDIx
|
||||
MjI2WjANBgkqhkiG9w0BAQIFAAN+AHqOEJXSDejYy0UwxxrH/9+N2z5xu/if0J6q
|
||||
QmK92W0hW158wpJg+ovV3+wQwvIEPRL2rocL0tKfAsVq1IawSJzSNgxG0lrcla3M
|
||||
rJBnZ4GaZDu4FutZh72MR3GtJaAL3iTJHJD55kK2D/VoyY1djlsPuNh6AEgdVwFA
|
||||
yp0vMIIBHTCBqDANBgkqhkiG9w0BAQIFADBfMQswCQYDVQQGEwJVUzEgMB4GA1UE
|
||||
ChMXUlNBIERhdGEgU2VjdXJpdHksIEluYy4xLjAsBgNVBAsTJUxvdyBBc3N1cmFu
|
||||
Y2UgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkXDTk1MDUwMTE5MjcyOVoXDTk1MDYw
|
||||
MTA4MDAwMFowGDAWAgUCQAAAXhcNOTUwMjA4MDE0NjIyWjANBgkqhkiG9w0BAQIF
|
||||
AANhAF70VxEAKgGlS2otYkWSqYJ286MMDbdAIoEGCDTtVuLCOP3YKHOSTjFhbIhL
|
||||
5mBd+Q/W+lKSqdoyYhdObaBk4I4Wk+/BE2QK1x4QhtYG144spESXIRIKAbhffg1g
|
||||
rRe/ETEA
|
||||
-----END PKCS7-----
|
||||
16
apps/test.ssl
Normal file
16
apps/test.ssl
Normal file
@@ -0,0 +1,16 @@
|
||||
www.microsoft.com:443
|
||||
sectest.microsoft.com:443
|
||||
https://sectest.microsoft.com/ClientAuth/test.asp
|
||||
ssl3.netscape.com:443
|
||||
ssl3.netscape.com:444
|
||||
www.openmarket.com:443 - no session ID caching. - no swap
|
||||
|
||||
Servers
|
||||
bad www.openmarket.com Open-Market-Secure-WebServer/V2.1
|
||||
bad www.microsoft.com Server: Microsoft-IIS/3.0
|
||||
good transact.netscape.com Netscape-Enterprise/2.01
|
||||
|
||||
clients
|
||||
good netscape
|
||||
hmm MSIE
|
||||
|
||||
@@ -107,7 +107,7 @@ char **argv;
|
||||
if (platform) printf("%s\n",SSLeay_version(SSLEAY_PLATFORM));
|
||||
if (options)
|
||||
{
|
||||
printf("options:");
|
||||
printf("options: ");
|
||||
printf("%s ",BN_options());
|
||||
#ifndef NO_MD2
|
||||
printf("%s ",MD2_options());
|
||||
|
||||
37
apps/x509.c
37
apps/x509.c
@@ -69,6 +69,7 @@
|
||||
#include "bn.h"
|
||||
#include "evp.h"
|
||||
#include "x509.h"
|
||||
#include "x509v3.h"
|
||||
#include "objects.h"
|
||||
#include "pem.h"
|
||||
|
||||
@@ -110,7 +111,7 @@ static char *x509_usage[]={
|
||||
" missing, it is asssumed to be in the CA file.\n",
|
||||
" -CAcreateserial - create serial number file if it does not exist\n",
|
||||
" -CAserial - serial file\n",
|
||||
" -text - print the certitificate in text form\n",
|
||||
" -text - print the certificate in text form\n",
|
||||
" -C - print out C code forms\n",
|
||||
" -md2/-md5/-sha1/-mdc2 - digest to do an RSA sign with\n",
|
||||
NULL
|
||||
@@ -305,6 +306,7 @@ bad:
|
||||
}
|
||||
|
||||
ERR_load_crypto_strings();
|
||||
X509V3_add_standard_extensions();
|
||||
|
||||
if (!X509_STORE_set_default_paths(ctx))
|
||||
{
|
||||
@@ -368,6 +370,7 @@ bad:
|
||||
goto end;
|
||||
}
|
||||
i=X509_REQ_verify(req,pkey);
|
||||
EVP_PKEY_free(pkey);
|
||||
if (i < 0)
|
||||
{
|
||||
BIO_printf(bio_err,"Signature verification error\n");
|
||||
@@ -400,7 +403,9 @@ bad:
|
||||
ci->key=req->req_info->pubkey;
|
||||
req->req_info->pubkey=NULL;
|
||||
#else
|
||||
X509_set_pubkey(x,X509_REQ_get_pubkey(req));
|
||||
pkey = X509_REQ_get_pubkey(req);
|
||||
X509_set_pubkey(x,pkey);
|
||||
EVP_PKEY_free(pkey);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
@@ -463,7 +468,6 @@ bad:
|
||||
BIO_printf(STDout,"%08lx\n",X509_subject_name_hash(x));
|
||||
}
|
||||
else
|
||||
#ifndef NO_RSA
|
||||
if (modulus == i)
|
||||
{
|
||||
EVP_PKEY *pkey;
|
||||
@@ -476,14 +480,21 @@ bad:
|
||||
goto end;
|
||||
}
|
||||
BIO_printf(STDout,"Modulus=");
|
||||
#ifndef NO_RSA
|
||||
if (pkey->type == EVP_PKEY_RSA)
|
||||
BN_print(STDout,pkey->pkey.rsa->n);
|
||||
else
|
||||
#endif
|
||||
#ifndef NO_DSA
|
||||
if (pkey->type == EVP_PKEY_DSA)
|
||||
BN_print(STDout,pkey->pkey.dsa->pub_key);
|
||||
else
|
||||
#endif
|
||||
BIO_printf(STDout,"Wrong Algorithm type");
|
||||
BIO_printf(STDout,"\n");
|
||||
EVP_PKEY_free(pkey);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (C == i)
|
||||
{
|
||||
unsigned char *d;
|
||||
@@ -545,13 +556,13 @@ bad:
|
||||
else if (startdate == i)
|
||||
{
|
||||
BIO_puts(STDout,"notBefore=");
|
||||
ASN1_UTCTIME_print(STDout,X509_get_notBefore(x));
|
||||
ASN1_TIME_print(STDout,X509_get_notBefore(x));
|
||||
BIO_puts(STDout,"\n");
|
||||
}
|
||||
else if (enddate == i)
|
||||
{
|
||||
BIO_puts(STDout,"notAfter=");
|
||||
ASN1_UTCTIME_print(STDout,X509_get_notAfter(x));
|
||||
ASN1_TIME_print(STDout,X509_get_notAfter(x));
|
||||
BIO_puts(STDout,"\n");
|
||||
}
|
||||
else if (fingerprint == i)
|
||||
@@ -688,6 +699,7 @@ end:
|
||||
if (Upkey != NULL) EVP_PKEY_free(Upkey);
|
||||
if (CApkey != NULL) EVP_PKEY_free(CApkey);
|
||||
if (rq != NULL) X509_REQ_free(rq);
|
||||
X509V3_EXT_cleanup();
|
||||
EXIT(ret);
|
||||
}
|
||||
|
||||
@@ -711,7 +723,9 @@ int days;
|
||||
X509_STORE_CTX xsc;
|
||||
EVP_PKEY *upkey;
|
||||
|
||||
EVP_PKEY_copy_parameters(X509_get_pubkey(xca),pkey);
|
||||
upkey = X509_get_pubkey(xca);
|
||||
EVP_PKEY_copy_parameters(upkey,pkey);
|
||||
EVP_PKEY_free(upkey);
|
||||
|
||||
X509_STORE_CTX_init(&xsc,ctx,x,NULL);
|
||||
buf=(char *)Malloc(EVP_PKEY_size(pkey)*2+
|
||||
@@ -829,6 +843,7 @@ int days;
|
||||
/* Force a re-write */
|
||||
X509_set_pubkey(x,upkey);
|
||||
}
|
||||
EVP_PKEY_free(upkey);
|
||||
|
||||
if (!X509_sign(x,pkey,digest)) goto end;
|
||||
ret=1;
|
||||
@@ -1029,8 +1044,12 @@ int days;
|
||||
EVP_MD *digest;
|
||||
{
|
||||
|
||||
EVP_PKEY_copy_parameters(X509_get_pubkey(x),pkey);
|
||||
EVP_PKEY_save_parameters(X509_get_pubkey(x),1);
|
||||
EVP_PKEY *pktmp;
|
||||
|
||||
pktmp = X509_get_pubkey(x);
|
||||
EVP_PKEY_copy_parameters(pktmp,pkey);
|
||||
EVP_PKEY_save_parameters(pktmp,1);
|
||||
EVP_PKEY_free(pktmp);
|
||||
|
||||
if (!X509_set_issuer_name(x,X509_get_subject_name(x))) goto err;
|
||||
if (X509_gmtime_adj(X509_get_notBefore(x),0) == NULL) goto err;
|
||||
|
||||
59
certs/ICE-CA.pem
Normal file
59
certs/ICE-CA.pem
Normal file
@@ -0,0 +1,59 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 1 (0x1)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: O=European ICE-TEL project, OU=V3-Certification Authority
|
||||
Validity
|
||||
Not Before: Apr 2 17:35:53 1997 GMT
|
||||
Not After : Apr 2 17:35:53 1998 GMT
|
||||
Subject: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsa
|
||||
RSA Public Key: (512 bit)
|
||||
Modulus (512 bit):
|
||||
00:82:75:ba:f6:d1:60:b5:f9:15:b3:6a:dd:29:8f:
|
||||
8b:a4:6f:1a:88:e0:50:43:40:0b:79:41:d5:d3:16:
|
||||
44:7d:74:65:17:42:06:52:0b:e9:50:c8:10:cd:24:
|
||||
e2:ae:8d:22:30:73:e6:b4:b7:93:1f:e5:6e:a2:ae:
|
||||
49:11:a5:c9:45
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Authority Key Identifier:
|
||||
0.........z.."p......e..
|
||||
X509v3 Subject Key Identifier:
|
||||
..~r..:..B.44fu......3
|
||||
X509v3 Key Usage: critical
|
||||
....
|
||||
X509v3 Certificate Policies: critical
|
||||
0.0...*...
|
||||
X509v3 Subject Alternative Name:
|
||||
0!..secude-support@darmstadt.gmd.de
|
||||
X509v3 Issuer Alternative Name:
|
||||
0I..ice-tel-ca@darmstadt.gmd.de.*http://www.darmstadt.gmd.de/ice-tel/euroca
|
||||
X509v3 Basic Constraints: critical
|
||||
0....
|
||||
X509v3 CRL Distribution Points:
|
||||
0200...,.*http://www.darmstadt.gmd.de/ice-tel/euroca
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
17:a2:88:b7:99:5a:05:41:e4:13:34:67:e6:1f:3e:26:ec:4b:
|
||||
69:f9:3e:28:22:be:9d:1c:ab:41:6f:0c:00:85:fe:45:74:f6:
|
||||
98:f0:ce:9b:65:53:4a:50:42:c7:d4:92:bd:d7:a2:a8:3d:98:
|
||||
88:73:cd:60:28:79:a3:fc:48:7a
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICzDCCAnagAwIBAgIBATANBgkqhkiG9w0BAQQFADBIMSEwHwYDVQQKExhFdXJv
|
||||
cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
|
||||
QXV0aG9yaXR5MB4XDTk3MDQwMjE3MzU1M1oXDTk4MDQwMjE3MzU1M1owXDEhMB8G
|
||||
A1UEChMYRXVyb3BlYW4gSUNFLVRFTCBwcm9qZWN0MSMwIQYDVQQLExpWMy1DZXJ0
|
||||
aWZpY2F0aW9uIEF1dGhvcml0eTESMBAGA1UEBxMJRGFybXN0YWR0MFkwCgYEVQgB
|
||||
AQICAgADSwAwSAJBAIJ1uvbRYLX5FbNq3SmPi6RvGojgUENAC3lB1dMWRH10ZRdC
|
||||
BlIL6VDIEM0k4q6NIjBz5rS3kx/lbqKuSRGlyUUCAwEAAaOCATgwggE0MB8GA1Ud
|
||||
IwQYMBaAFIr3yNUOx3ro1yJw4AuJ1bbsZbzPMB0GA1UdDgQWBBR+cvL4OoacQog0
|
||||
NGZ1w9T80aIRMzAOBgNVHQ8BAf8EBAMCAfYwFAYDVR0gAQH/BAowCDAGBgQqAwQF
|
||||
MCoGA1UdEQQjMCGBH3NlY3VkZS1zdXBwb3J0QGRhcm1zdGFkdC5nbWQuZGUwUgYD
|
||||
VR0SBEswSYEbaWNlLXRlbC1jYUBkYXJtc3RhZHQuZ21kLmRlhipodHRwOi8vd3d3
|
||||
LmRhcm1zdGFkdC5nbWQuZGUvaWNlLXRlbC9ldXJvY2EwDwYDVR0TAQH/BAUwAwEB
|
||||
/zA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vd3d3LmRhcm1zdGFkdC5nbWQuZGUv
|
||||
aWNlLXRlbC9ldXJvY2EwDQYJKoZIhvcNAQEEBQADQQAXooi3mVoFQeQTNGfmHz4m
|
||||
7Etp+T4oIr6dHKtBbwwAhf5FdPaY8M6bZVNKUELH1JK916KoPZiIc81gKHmj/Eh6
|
||||
-----END CERTIFICATE-----
|
||||
48
certs/ICE-root.pem
Normal file
48
certs/ICE-root.pem
Normal file
@@ -0,0 +1,48 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 0 (0x0)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: O=European ICE-TEL project, OU=V3-Certification Authority
|
||||
Validity
|
||||
Not Before: Apr 2 17:33:36 1997 GMT
|
||||
Not After : Apr 2 17:33:36 1998 GMT
|
||||
Subject: O=European ICE-TEL project, OU=V3-Certification Authority
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsa
|
||||
RSA Public Key: (512 bit)
|
||||
Modulus (512 bit):
|
||||
00:80:3e:eb:ae:47:a9:fe:10:54:0b:81:8b:9c:2b:
|
||||
82:ab:3a:61:36:65:8b:f3:73:9f:ac:ac:7a:15:a7:
|
||||
13:8f:b4:c4:ba:a3:0f:bc:a5:58:8d:cc:b1:93:31:
|
||||
9e:81:9e:8c:19:61:86:fa:52:73:54:d1:97:76:22:
|
||||
e7:c7:9f:41:cd
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
........z.."p......e..
|
||||
X509v3 Key Usage: critical
|
||||
....
|
||||
X509v3 Subject Alternative Name:
|
||||
0I.*http://www.darmstadt.gmd.de/ice-tel/euroca..ice-tel-ca@darmstadt.gmd.de
|
||||
X509v3 Basic Constraints: critical
|
||||
0....
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
76:69:61:db:b7:cf:8b:06:9e:d8:8c:96:53:d2:4d:a8:23:a6:
|
||||
03:44:e8:8f:24:a5:c0:84:a8:4b:77:d4:2d:2b:7d:37:91:67:
|
||||
f2:2c:ce:02:31:4c:6b:cc:ce:f2:68:a6:11:11:ab:7d:88:b8:
|
||||
7e:22:9f:25:06:60:bd:79:30:3d
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICFjCCAcCgAwIBAgIBADANBgkqhkiG9w0BAQQFADBIMSEwHwYDVQQKExhFdXJv
|
||||
cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
|
||||
QXV0aG9yaXR5MB4XDTk3MDQwMjE3MzMzNloXDTk4MDQwMjE3MzMzNlowSDEhMB8G
|
||||
A1UEChMYRXVyb3BlYW4gSUNFLVRFTCBwcm9qZWN0MSMwIQYDVQQLExpWMy1DZXJ0
|
||||
aWZpY2F0aW9uIEF1dGhvcml0eTBZMAoGBFUIAQECAgIAA0sAMEgCQQCAPuuuR6n+
|
||||
EFQLgYucK4KrOmE2ZYvzc5+srHoVpxOPtMS6ow+8pViNzLGTMZ6BnowZYYb6UnNU
|
||||
0Zd2IufHn0HNAgMBAAGjgZcwgZQwHQYDVR0OBBYEFIr3yNUOx3ro1yJw4AuJ1bbs
|
||||
ZbzPMA4GA1UdDwEB/wQEAwIB9jBSBgNVHREESzBJhipodHRwOi8vd3d3LmRhcm1z
|
||||
dGFkdC5nbWQuZGUvaWNlLXRlbC9ldXJvY2GBG2ljZS10ZWwtY2FAZGFybXN0YWR0
|
||||
LmdtZC5kZTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBAUAA0EAdmlh27fP
|
||||
iwae2IyWU9JNqCOmA0TojySlwISoS3fULSt9N5Fn8izOAjFMa8zO8mimERGrfYi4
|
||||
fiKfJQZgvXkwPQ==
|
||||
-----END CERTIFICATE-----
|
||||
63
certs/ICE-user.pem
Normal file
63
certs/ICE-user.pem
Normal file
@@ -0,0 +1,63 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 1 (0x1)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt
|
||||
Validity
|
||||
Not Before: Apr 2 17:35:59 1997 GMT
|
||||
Not After : Apr 2 17:35:59 1998 GMT
|
||||
Subject: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt, CN=USER
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsa
|
||||
RSA Public Key: (512 bit)
|
||||
Modulus (512 bit):
|
||||
00:a8:a8:53:63:49:1b:93:c3:c3:0b:6c:88:11:55:
|
||||
de:7e:6a:e2:f9:52:a0:dc:69:25:c4:c8:bf:55:e1:
|
||||
31:a8:ce:e4:a9:29:85:99:8a:15:9a:de:f6:2f:e1:
|
||||
b4:50:5f:5e:04:75:a6:f4:76:dc:3c:0e:39:dc:3a:
|
||||
be:3e:a4:61:8b
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Authority Key Identifier:
|
||||
0...~r..:..B.44fu......3
|
||||
X509v3 Subject Key Identifier:
|
||||
...... .*...1.*.......
|
||||
X509v3 Key Usage: critical
|
||||
....
|
||||
X509v3 Certificate Policies: critical
|
||||
0.0...*...0.......
|
||||
X509v3 Subject Alternative Name:
|
||||
0:..user@darmstadt.gmd.de.!http://www.darmstadt.gmd.de/~user
|
||||
X509v3 Issuer Alternative Name:
|
||||
0....gmdca@gmd.de..http://www.gmd.de..saturn.darmstadt.gmd.de.\1!0...U.
|
||||
..European ICE-TEL project1#0!..U....V3-Certification Authority1.0...U....Darmstadt..141.12.62.26
|
||||
X509v3 Basic Constraints: critical
|
||||
0.
|
||||
X509v3 CRL Distribution Points:
|
||||
0.0.......gmdca@gmd.de
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
69:0c:e1:b7:a7:f2:d8:fb:e8:69:c0:13:cd:37:ad:21:06:22:
|
||||
4d:e8:c6:db:f1:04:0b:b7:e0:b3:d6:0c:81:03:ce:c3:6a:3e:
|
||||
c7:e7:24:24:a4:92:64:c2:83:83:06:42:53:0e:6f:09:1e:84:
|
||||
9a:f7:6f:63:9b:94:99:83:d6:a4
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDTzCCAvmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBcMSEwHwYDVQQKExhFdXJv
|
||||
cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
|
||||
QXV0aG9yaXR5MRIwEAYDVQQHEwlEYXJtc3RhZHQwHhcNOTcwNDAyMTczNTU5WhcN
|
||||
OTgwNDAyMTczNTU5WjBrMSEwHwYDVQQKExhFdXJvcGVhbiBJQ0UtVEVMIHByb2pl
|
||||
Y3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24gQXV0aG9yaXR5MRIwEAYDVQQH
|
||||
EwlEYXJtc3RhZHQxDTALBgNVBAMTBFVTRVIwWTAKBgRVCAEBAgICAANLADBIAkEA
|
||||
qKhTY0kbk8PDC2yIEVXefmri+VKg3GklxMi/VeExqM7kqSmFmYoVmt72L+G0UF9e
|
||||
BHWm9HbcPA453Dq+PqRhiwIDAQABo4IBmDCCAZQwHwYDVR0jBBgwFoAUfnLy+DqG
|
||||
nEKINDRmdcPU/NGiETMwHQYDVR0OBBYEFJfc4B8gjSoRmLUx4Sq/ucIYiMrPMA4G
|
||||
A1UdDwEB/wQEAwIB8DAcBgNVHSABAf8EEjAQMAYGBCoDBAUwBgYECQgHBjBDBgNV
|
||||
HREEPDA6gRV1c2VyQGRhcm1zdGFkdC5nbWQuZGWGIWh0dHA6Ly93d3cuZGFybXN0
|
||||
YWR0LmdtZC5kZS9+dXNlcjCBsQYDVR0SBIGpMIGmgQxnbWRjYUBnbWQuZGWGEWh0
|
||||
dHA6Ly93d3cuZ21kLmRlghdzYXR1cm4uZGFybXN0YWR0LmdtZC5kZaRcMSEwHwYD
|
||||
VQQKExhFdXJvcGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRp
|
||||
ZmljYXRpb24gQXV0aG9yaXR5MRIwEAYDVQQHEwlEYXJtc3RhZHSHDDE0MS4xMi42
|
||||
Mi4yNjAMBgNVHRMBAf8EAjAAMB0GA1UdHwQWMBQwEqAQoA6BDGdtZGNhQGdtZC5k
|
||||
ZTANBgkqhkiG9w0BAQQFAANBAGkM4ben8tj76GnAE803rSEGIk3oxtvxBAu34LPW
|
||||
DIEDzsNqPsfnJCSkkmTCg4MGQlMObwkehJr3b2OblJmD1qQ=
|
||||
-----END CERTIFICATE-----
|
||||
9
certs/ICE.crl
Normal file
9
certs/ICE.crl
Normal file
@@ -0,0 +1,9 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIBNDCBnjANBgkqhkiG9w0BAQIFADBFMSEwHwYDVQQKExhFdXJvcGVhbiBJQ0Ut
|
||||
VEVMIFByb2plY3QxIDAeBgNVBAsTF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5Fw05
|
||||
NzA2MDkxNDQyNDNaFw05NzA3MDkxNDQyNDNaMCgwEgIBChcNOTcwMzAzMTQ0MjU0
|
||||
WjASAgEJFw05NjEwMDIxMjI5MjdaMA0GCSqGSIb3DQEBAgUAA4GBAH4vgWo2Tej/
|
||||
i7kbiw4Imd30If91iosjClNpBFwvwUDBclPEeMuYimHbLOk4H8Nofc0fw11+U/IO
|
||||
KSNouUDcqG7B64oY7c4SXKn+i1MWOb5OJiWeodX3TehHjBlyWzoNMWCnYA8XqFP1
|
||||
mOKp8Jla1BibEZf14+/HqCi2hnZUiEXh
|
||||
-----END X509 CRL-----
|
||||
16
certs/vsign4.pem
Normal file
16
certs/vsign4.pem
Normal file
@@ -0,0 +1,16 @@
|
||||
subject=/C=US/O=VeriSign, Inc./OU=Class 4 Public Primary Certification Authority
|
||||
issuer= /C=US/O=VeriSign, Inc./OU=Class 4 Public Primary Certification Authority
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICMTCCAZoCBQKmAAABMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcw
|
||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgNCBQdWJsaWMg
|
||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBa
|
||||
Fw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2ln
|
||||
biwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZp
|
||||
Y2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0LJ1
|
||||
9njQrlpQ9OlQqZ+M1++RlHDo0iSQdomF1t+s5gEXMoDwnZNHvJplnR+Xrr/phnVj
|
||||
IIm9gFidBAydqMEk6QvlMXi9/C0MN2qeeIDpRnX57aP7E3vIwUzSo+/1PLBij0pd
|
||||
O92VZ48TucE81qcmm+zDO3rZTbxtm+gVAePwR6kCAwEAATANBgkqhkiG9w0BAQIF
|
||||
AAOBgQBT3dPwnCR+QKri/AAa19oM/DJhuBUNlvP6Vxt/M3yv6ZiaYch6s7f/sdyZ
|
||||
g9ysEvxwyR84Qu1E9oAuW2szaayc01znX1oYx7EteQSWQZGZQbE8DbqEOcY7l/Am
|
||||
yY7uvcxClf8exwI/VAx49byqYHwCaejcrOICdmHEPgPq0ook0Q==
|
||||
-----END CERTIFICATE-----
|
||||
7
config
7
config
@@ -125,6 +125,10 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
|
||||
echo "${MACHINE}-whatever-bsdi"; exit 0
|
||||
;;
|
||||
|
||||
FreeBSD:3*:*:*)
|
||||
echo "${MACHINE}-whatever-freebsd3"; exit 0
|
||||
;;
|
||||
|
||||
FreeBSD:*:*:*486*)
|
||||
echo "i486-whatever-freebsd"; exit 0
|
||||
;;
|
||||
@@ -300,10 +304,11 @@ fi
|
||||
case "$GUESSOS" in
|
||||
alpha-*-linux2) OUT="alpha-gcc" ;;
|
||||
*-*-linux2) OUT="linux-elf" ;;
|
||||
*-*-linux) OUT="linux-aout" ;;
|
||||
*-*-linux1) OUT="linux-aout" ;;
|
||||
sun4*-sun-solaris2) OUT="solaris-sparc-$CC" ;;
|
||||
*86*-sun-solaris2) OUT="solaris-x86-$CC" ;;
|
||||
*-*-sunos4) OUT="sunos-$CC" ;;
|
||||
*-freebsd3) OUT="FreeBSD-elf" ;;
|
||||
*-freebsd) OUT="FreeBSD" ;;
|
||||
*86*-*-netbsd) OUT="NetBSD-x86" ;;
|
||||
sun3*-*-netbsd) OUT="NetBSD-m68" ;;
|
||||
|
||||
2
crypto/.cvsignore
Normal file
2
crypto/.cvsignore
Normal file
@@ -0,0 +1,2 @@
|
||||
lib
|
||||
date.h
|
||||
@@ -10,19 +10,15 @@ INCLUDES= -I.. -I../../include
|
||||
CFLAG= -g
|
||||
INSTALLTOP= /usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= makedepend -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
RM= /bin/rm -f
|
||||
RM= rm -f
|
||||
AR= ar r
|
||||
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= makedepend -f Makefile.ssl
|
||||
MAKEFILE= Makefile.ssl
|
||||
|
||||
PEX_LIBS=
|
||||
EX_LIBS=
|
||||
|
||||
CFLAGS= $(INCLUDE) $(CFLAG) -DCFLAGS=" \"$(CC) $(CFLAG)\" " -DPLATFORM=" \"$(PLATFORM)\" "
|
||||
CFLAGS= $(INCLUDE) $(CFLAG) -DCFLAGS="\"$(CC) $(CFLAG)\"" -DPLATFORM="\"$(PLATFORM)\""
|
||||
|
||||
ERR=crypto
|
||||
ERRC=cpt_err
|
||||
@@ -33,8 +29,7 @@ SDIRS= md2 md5 sha mdc2 hmac ripemd \
|
||||
des rc2 rc4 rc5 idea bf cast \
|
||||
bn rsa dsa dh \
|
||||
buffer bio stack lhash rand err objects \
|
||||
evp pem x509 \
|
||||
asn1 conf txt_db pkcs7 comp
|
||||
evp asn1 pem x509 x509v3 conf txt_db pkcs7 comp
|
||||
|
||||
GENERAL=Makefile README
|
||||
|
||||
@@ -44,7 +39,7 @@ LIBOBJ= cryptlib.o mem.o cversion.o ex_data.o tmdiff.o $(ERRC).o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= crypto.h cryptall.h tmdiff.h
|
||||
EXHEADER= crypto.h cryptall.h tmdiff.h opensslv.h
|
||||
HEADER= cryptlib.h date.h $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
@@ -54,35 +49,33 @@ top:
|
||||
|
||||
all: date.h lib subdirs
|
||||
|
||||
date.h: ../Makefile.ssl ../VERSION
|
||||
echo "#define DATE \"`date`\"" >date.h
|
||||
date.h: ../Makefile.ssl
|
||||
echo "#define DATE \"`date`\"" >date.h
|
||||
|
||||
subdirs:
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making all in $$i..."; \
|
||||
$(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' all ); \
|
||||
(cd $$i && echo "making all in crypto/$$i..." && \
|
||||
$(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' all ) || exit 1; \
|
||||
done;
|
||||
|
||||
files:
|
||||
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making 'files' in $$i..."; \
|
||||
(cd $$i; echo "making 'files' in crypto/$$i..."; \
|
||||
$(MAKE) files ); \
|
||||
done;
|
||||
|
||||
links:
|
||||
/bin/rm -f Makefile
|
||||
$(TOP)/util/point.sh Makefile.ssl Makefile ;
|
||||
$(TOP)/util/mklink.sh ../include $(HEADER) ;
|
||||
$(TOP)/util/mklink.sh ../test $(TEST) ;
|
||||
$(TOP)/util/mklink.sh ../apps $(APPS) ;
|
||||
$(TOP)/util/point.sh Makefile.ssl Makefile;
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making links in $$i..."; \
|
||||
$(MAKE) links ); \
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(TOP)/util/mklink.sh ../include $(HEADER)
|
||||
@$(TOP)/util/mklink.sh ../test $(TEST)
|
||||
@$(TOP)/util/mklink.sh ../apps $(APPS)
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@for i in $(SDIRS); do \
|
||||
(cd $$i; echo "making links in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' links ); \
|
||||
done;
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
@@ -93,14 +86,14 @@ lib: $(LIBOBJ)
|
||||
libs:
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making libs in $$i..."; \
|
||||
(cd $$i; echo "making libs in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' lib ); \
|
||||
done;
|
||||
|
||||
tests:
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making tests in $$i..."; \
|
||||
(cd $$i; echo "making tests in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' tests ); \
|
||||
done;
|
||||
|
||||
@@ -112,14 +105,14 @@ install:
|
||||
done;
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making install in $$i..."; \
|
||||
(cd $$i; echo "making install in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' install ); \
|
||||
done;
|
||||
|
||||
lint:
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making lint in $$i..."; \
|
||||
(cd $$i; echo "making lint in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' lint ); \
|
||||
done;
|
||||
|
||||
@@ -127,15 +120,15 @@ depend:
|
||||
$(MAKEDEPEND) $(INCLUDE) $(PROGS) $(LIBSRC)
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making depend in $$i..."; \
|
||||
$(MAKE) MAKEFILE='${MAKEFILE}' INCLUDES='${INCLUDES}' MAKEDEPEND='${MAKEDEPEND}' depend ); \
|
||||
(cd $$i; echo "making depend in crypto/$$i..."; \
|
||||
$(MAKE) MAKEFILE='${MAKEFILE}' INCLUDES='${INCLUDES}' depend ); \
|
||||
done;
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making clean in $$i..."; \
|
||||
(cd $$i; echo "making clean in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' clean ); \
|
||||
done;
|
||||
|
||||
@@ -144,18 +137,39 @@ dclean:
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making dclean in $$i..."; \
|
||||
(cd $$i; echo "making dclean in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' dclean ); \
|
||||
done;
|
||||
|
||||
errors:
|
||||
perl ./err/err_code.pl -conf err/ssleay.ec *.c */*.c ../ssl/*.c ../rsaref/*.c
|
||||
errors: errgen $(ERRC).c
|
||||
|
||||
$(ERRC).c: $(ERR).err
|
||||
perl $(TOP)/util/err-ins.pl $(ERR).err $(ERR).h
|
||||
perl err/err_genc.pl -s $(ERR).h $(ERRC).c
|
||||
|
||||
errgen:
|
||||
perl ./err/err_code.pl -conf err/ssleay.ec *.c */*.c ../ssl/*.c ../rsaref/*.c
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making errors in $$i..."; \
|
||||
(cd $$i; echo "making errors in crypto/$$i..."; \
|
||||
$(MAKE) errors ); \
|
||||
done;
|
||||
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
cpt_err.o: ../include/err.h ../include/stack.h crypto.h opensslv.h
|
||||
cryptlib.o: ../include/bio.h ../include/buffer.h ../include/e_os.h
|
||||
cryptlib.o: ../include/err.h ../include/stack.h cryptlib.h crypto.h date.h
|
||||
cryptlib.o: opensslv.h
|
||||
cversion.o: ../include/bio.h ../include/buffer.h ../include/e_os.h
|
||||
cversion.o: ../include/err.h ../include/stack.h cryptlib.h crypto.h date.h
|
||||
cversion.o: opensslv.h
|
||||
ex_data.o: ../include/bio.h ../include/buffer.h ../include/e_os.h
|
||||
ex_data.o: ../include/err.h ../include/lhash.h ../include/stack.h cryptlib.h
|
||||
ex_data.o: crypto.h opensslv.h
|
||||
mem.o: ../include/bio.h ../include/buffer.h ../include/e_os.h ../include/err.h
|
||||
mem.o: ../include/lhash.h ../include/stack.h cryptlib.h crypto.h opensslv.h
|
||||
tmdiff.o: ../include/bio.h ../include/buffer.h ../include/e_os.h
|
||||
tmdiff.o: ../include/err.h ../include/stack.h cryptlib.h crypto.h opensslv.h
|
||||
tmdiff.o: tmdiff.h
|
||||
|
||||
1
crypto/asn1/.cvsignore
Normal file
1
crypto/asn1/.cvsignore
Normal file
@@ -0,0 +1 @@
|
||||
lib
|
||||
@@ -9,7 +9,7 @@ INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= makedepend -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
@@ -22,34 +22,34 @@ TEST=
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c \
|
||||
a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c \
|
||||
a_sign.c a_digest.c a_verify.c \
|
||||
LIBSRC= a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c \
|
||||
a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c \
|
||||
a_enum.c a_sign.c a_digest.c a_verify.c \
|
||||
x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c \
|
||||
x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c \
|
||||
x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c nsseq.c \
|
||||
d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c \
|
||||
d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c \
|
||||
d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c\
|
||||
t_req.c t_x509.c t_pkey.c \
|
||||
t_req.c t_x509.c t_crl.c t_pkey.c \
|
||||
p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c \
|
||||
p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c \
|
||||
f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c \
|
||||
a_hdr.c x_pkey.c a_bool.c x_exten.c \
|
||||
f_enum.c a_hdr.c x_pkey.c a_bool.c x_exten.c \
|
||||
asn1_par.c asn1_lib.c $(ERRC).c a_meth.c a_bytes.c \
|
||||
evp_asn1.c
|
||||
LIBOBJ= a_object.o a_bitstr.o a_utctm.o a_int.o a_octet.o a_print.o \
|
||||
a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o a_bmp.o \
|
||||
a_sign.o a_digest.o a_verify.o \
|
||||
LIBOBJ= a_object.o a_bitstr.o a_utctm.o a_gentm.o a_time.o a_int.o a_octet.o \
|
||||
a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o a_bmp.o \
|
||||
a_enum.o a_sign.o a_digest.o a_verify.o \
|
||||
x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o \
|
||||
x_name.o x_cinf.o x_x509.o x_crl.o x_info.o x_spki.o \
|
||||
x_name.o x_cinf.o x_x509.o x_crl.o x_info.o x_spki.o nsseq.o \
|
||||
d2i_r_pr.o i2d_r_pr.o d2i_r_pu.o i2d_r_pu.o \
|
||||
d2i_s_pr.o i2d_s_pr.o d2i_s_pu.o i2d_s_pu.o \
|
||||
d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o \
|
||||
t_req.o t_x509.o t_pkey.o \
|
||||
t_req.o t_x509.o t_crl.o t_pkey.o \
|
||||
p7_i_s.o p7_signi.o p7_signd.o p7_recip.o p7_enc_c.o p7_evp.o \
|
||||
p7_dgst.o p7_s_e.o p7_enc.o p7_lib.o \
|
||||
f_int.o f_string.o i2d_dhp.o i2d_dsap.o d2i_dhp.o d2i_dsap.o n_pkey.o \
|
||||
a_hdr.o x_pkey.o a_bool.o x_exten.o \
|
||||
f_enum.o a_hdr.o x_pkey.o a_bool.o x_exten.o \
|
||||
asn1_par.o asn1_lib.o $(ERRC).o a_meth.o a_bytes.o \
|
||||
evp_asn1.o
|
||||
|
||||
@@ -82,11 +82,10 @@ files:
|
||||
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
/bin/rm -f Makefile
|
||||
$(TOP)/util/point.sh Makefile.ssl Makefile ;
|
||||
$(TOP)/util/mklink.sh ../../include $(EXHEADER)
|
||||
$(TOP)/util/mklink.sh ../../test $(TEST)
|
||||
$(TOP)/util/mklink.sh ../../apps $(APPS)
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(TOP)/util/mklink.sh ../../include $(EXHEADER)
|
||||
@$(TOP)/util/mklink.sh ../../test $(TEST)
|
||||
@$(TOP)/util/mklink.sh ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
@@ -111,10 +110,669 @@ dclean:
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
errors:
|
||||
errors: $(ERRC).c
|
||||
|
||||
$(ERRC).c: $(ERR).err
|
||||
perl $(TOP)/util/err-ins.pl $(ERR).err $(ERR).h
|
||||
perl ../err/err_genc.pl -s $(ERR).h $(ERRC).c
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
a_bitstr.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_bitstr.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
|
||||
a_bitstr.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
a_bmp.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_bmp.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
|
||||
a_bmp.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
a_bool.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_bool.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
|
||||
a_bool.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
a_bytes.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_bytes.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_bytes.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_bytes.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_bytes.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_bytes.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_bytes.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_bytes.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_bytes.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_bytes.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
a_d2i_fp.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_d2i_fp.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_d2i_fp.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_d2i_fp.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_d2i_fp.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_d2i_fp.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_d2i_fp.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_d2i_fp.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_d2i_fp.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_d2i_fp.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
a_digest.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_digest.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_digest.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_digest.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_digest.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_digest.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_digest.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_digest.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_digest.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_digest.o: ../crypto.h ../opensslv.h asn1.h
|
||||
a_dup.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_dup.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_dup.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_dup.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_dup.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_dup.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_dup.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_dup.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_dup.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_dup.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
a_enum.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_enum.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
|
||||
a_enum.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
a_gentm.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_gentm.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
|
||||
a_gentm.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
a_hdr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_hdr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_hdr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_hdr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_hdr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_hdr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_hdr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_hdr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_hdr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_hdr.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
a_i2d_fp.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_i2d_fp.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_i2d_fp.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_i2d_fp.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_i2d_fp.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_i2d_fp.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_i2d_fp.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_i2d_fp.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_i2d_fp.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_i2d_fp.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
a_int.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_int.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
|
||||
a_int.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
a_meth.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_meth.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_meth.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_meth.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_meth.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_meth.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_meth.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_meth.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_meth.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_meth.o: ../crypto.h ../opensslv.h asn1.h
|
||||
a_object.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_object.o: ../../include/e_os.h ../../include/err.h ../../include/objects.h
|
||||
a_object.o: ../../include/stack.h ../cryptlib.h ../crypto.h ../opensslv.h
|
||||
a_object.o: asn1.h
|
||||
a_octet.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_octet.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
|
||||
a_octet.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
a_print.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_print.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
|
||||
a_print.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
a_set.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_set.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_set.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_set.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_set.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_set.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_set.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_set.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_set.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_set.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
a_sign.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_sign.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_sign.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_sign.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_sign.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_sign.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_sign.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_sign.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_sign.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_sign.o: ../crypto.h ../opensslv.h asn1.h
|
||||
a_time.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_time.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
|
||||
a_time.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
a_type.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_type.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_type.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_type.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_type.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_type.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_type.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_type.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_type.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_type.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
a_utctm.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
a_utctm.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
|
||||
a_utctm.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
a_verify.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
a_verify.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
a_verify.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
a_verify.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
a_verify.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
a_verify.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
a_verify.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
a_verify.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
a_verify.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
a_verify.o: ../crypto.h ../opensslv.h asn1.h
|
||||
asn1_err.o: ../../include/bn.h ../../include/err.h ../../include/stack.h asn1.h
|
||||
asn1_lib.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
asn1_lib.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
asn1_lib.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
asn1_lib.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
asn1_lib.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
asn1_lib.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
asn1_lib.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
asn1_lib.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
asn1_lib.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
asn1_lib.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
asn1_par.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
asn1_par.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
asn1_par.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
asn1_par.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
asn1_par.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
asn1_par.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
asn1_par.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
asn1_par.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
asn1_par.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
asn1_par.o: ../crypto.h ../opensslv.h asn1.h
|
||||
d2i_dhp.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
d2i_dhp.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
d2i_dhp.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
d2i_dhp.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
d2i_dhp.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
d2i_dhp.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
d2i_dhp.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
d2i_dhp.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
d2i_dhp.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
d2i_dhp.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
d2i_dsap.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
d2i_dsap.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
d2i_dsap.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
d2i_dsap.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
d2i_dsap.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
d2i_dsap.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
d2i_dsap.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
d2i_dsap.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
d2i_dsap.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
d2i_dsap.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
d2i_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
d2i_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
d2i_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
d2i_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
d2i_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
d2i_pr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
d2i_pr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
d2i_pr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
d2i_pr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
d2i_pr.o: ../crypto.h ../opensslv.h asn1.h
|
||||
d2i_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
d2i_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
d2i_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
d2i_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
d2i_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
d2i_pu.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
d2i_pu.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
d2i_pu.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
d2i_pu.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
d2i_pu.o: ../crypto.h ../opensslv.h asn1.h
|
||||
d2i_r_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
d2i_r_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
d2i_r_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
d2i_r_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
d2i_r_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
d2i_r_pr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
d2i_r_pr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
d2i_r_pr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
d2i_r_pr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
d2i_r_pr.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
d2i_r_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
d2i_r_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
d2i_r_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
d2i_r_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
d2i_r_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
d2i_r_pu.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
d2i_r_pu.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
d2i_r_pu.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
d2i_r_pu.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
d2i_r_pu.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
d2i_s_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
d2i_s_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
d2i_s_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
d2i_s_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
d2i_s_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
d2i_s_pr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
d2i_s_pr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
d2i_s_pr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
d2i_s_pr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
d2i_s_pr.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
d2i_s_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
d2i_s_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
d2i_s_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
d2i_s_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
d2i_s_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
d2i_s_pu.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
d2i_s_pu.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
d2i_s_pu.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
d2i_s_pu.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
d2i_s_pu.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
evp_asn1.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
evp_asn1.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
evp_asn1.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
evp_asn1.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
evp_asn1.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
evp_asn1.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
evp_asn1.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
evp_asn1.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
evp_asn1.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
evp_asn1.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
f_enum.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
f_enum.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
f_enum.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
f_enum.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
f_enum.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
f_enum.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
f_enum.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
f_enum.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
f_enum.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
f_enum.o: ../crypto.h ../opensslv.h asn1.h
|
||||
f_int.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
f_int.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
f_int.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
f_int.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
f_int.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
f_int.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
f_int.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
f_int.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
f_int.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
f_int.o: ../crypto.h ../opensslv.h asn1.h
|
||||
f_string.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
f_string.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
f_string.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
f_string.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
f_string.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
f_string.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
f_string.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
f_string.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
f_string.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
f_string.o: ../crypto.h ../opensslv.h asn1.h
|
||||
i2d_dhp.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
i2d_dhp.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
i2d_dhp.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
i2d_dhp.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
i2d_dhp.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
i2d_dhp.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
i2d_dhp.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
i2d_dhp.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
i2d_dhp.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
i2d_dhp.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
i2d_dsap.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
i2d_dsap.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
i2d_dsap.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
i2d_dsap.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
i2d_dsap.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
i2d_dsap.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
i2d_dsap.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
i2d_dsap.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
i2d_dsap.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
i2d_dsap.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
i2d_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
i2d_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
i2d_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
i2d_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
i2d_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
i2d_pr.o: ../../include/objects.h ../../include/rc2.h ../../include/rc4.h
|
||||
i2d_pr.o: ../../include/rc5.h ../../include/ripemd.h ../../include/rsa.h
|
||||
i2d_pr.o: ../../include/sha.h ../../include/stack.h ../cryptlib.h ../crypto.h
|
||||
i2d_pr.o: ../opensslv.h asn1.h
|
||||
i2d_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
i2d_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
i2d_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
i2d_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
i2d_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
i2d_pu.o: ../../include/objects.h ../../include/rc2.h ../../include/rc4.h
|
||||
i2d_pu.o: ../../include/rc5.h ../../include/ripemd.h ../../include/rsa.h
|
||||
i2d_pu.o: ../../include/sha.h ../../include/stack.h ../cryptlib.h ../crypto.h
|
||||
i2d_pu.o: ../opensslv.h asn1.h
|
||||
i2d_r_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
i2d_r_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
i2d_r_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
i2d_r_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
i2d_r_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
i2d_r_pr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
i2d_r_pr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
i2d_r_pr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
i2d_r_pr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
i2d_r_pr.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
i2d_r_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
i2d_r_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
i2d_r_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
i2d_r_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
i2d_r_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
i2d_r_pu.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
i2d_r_pu.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
i2d_r_pu.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
i2d_r_pu.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
i2d_r_pu.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
i2d_s_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
i2d_s_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
i2d_s_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
i2d_s_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
i2d_s_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
i2d_s_pr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
i2d_s_pr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
i2d_s_pr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
i2d_s_pr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
i2d_s_pr.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
i2d_s_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
i2d_s_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
i2d_s_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
i2d_s_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
i2d_s_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
i2d_s_pu.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
i2d_s_pu.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
i2d_s_pu.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
i2d_s_pu.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
i2d_s_pu.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
n_pkey.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
n_pkey.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
n_pkey.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
n_pkey.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
n_pkey.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
n_pkey.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
n_pkey.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
n_pkey.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
n_pkey.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
n_pkey.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
nsseq.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
nsseq.o: ../../include/cast.h ../../include/des.h ../../include/dh.h
|
||||
nsseq.o: ../../include/dsa.h ../../include/err.h ../../include/evp.h
|
||||
nsseq.o: ../../include/idea.h ../../include/md2.h ../../include/md5.h
|
||||
nsseq.o: ../../include/mdc2.h ../../include/objects.h ../../include/pkcs7.h
|
||||
nsseq.o: ../../include/rc2.h ../../include/rc4.h ../../include/rc5.h
|
||||
nsseq.o: ../../include/ripemd.h ../../include/rsa.h ../../include/sha.h
|
||||
nsseq.o: ../../include/stack.h ../../include/x509.h ../../include/x509_vfy.h
|
||||
nsseq.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
p7_dgst.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
p7_dgst.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
p7_dgst.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
p7_dgst.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
p7_dgst.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
p7_dgst.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
p7_dgst.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
p7_dgst.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
p7_dgst.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
p7_dgst.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
p7_enc.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
p7_enc.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
p7_enc.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
p7_enc.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
p7_enc.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
p7_enc.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
p7_enc.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
p7_enc.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
p7_enc.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
p7_enc.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
p7_enc_c.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
p7_enc_c.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
p7_enc_c.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
p7_enc_c.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
p7_enc_c.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
p7_enc_c.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
p7_enc_c.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
p7_enc_c.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
p7_enc_c.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
p7_enc_c.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
p7_evp.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
p7_evp.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
p7_evp.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
p7_evp.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
p7_evp.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
p7_evp.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
p7_evp.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
p7_evp.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
p7_evp.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
p7_evp.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
p7_i_s.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
p7_i_s.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
p7_i_s.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
p7_i_s.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
p7_i_s.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
p7_i_s.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
p7_i_s.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
p7_i_s.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
p7_i_s.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
p7_i_s.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
p7_lib.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
p7_lib.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
p7_lib.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
p7_lib.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
p7_lib.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
p7_lib.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
p7_lib.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
p7_lib.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
p7_lib.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
p7_lib.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
p7_recip.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
p7_recip.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
p7_recip.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
p7_recip.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
p7_recip.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
p7_recip.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
p7_recip.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
p7_recip.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
p7_recip.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
p7_recip.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
p7_s_e.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
p7_s_e.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
p7_s_e.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
p7_s_e.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
p7_s_e.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
p7_s_e.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
p7_s_e.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
p7_s_e.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
p7_s_e.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
p7_s_e.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
p7_signd.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
p7_signd.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
p7_signd.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
p7_signd.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
p7_signd.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
p7_signd.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
p7_signd.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
p7_signd.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
p7_signd.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
p7_signd.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
p7_signi.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
p7_signi.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
p7_signi.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
p7_signi.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
p7_signi.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
p7_signi.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
p7_signi.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
p7_signi.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
p7_signi.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
p7_signi.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
t_crl.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
t_crl.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
t_crl.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
t_crl.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
t_crl.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
t_crl.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
t_crl.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
t_crl.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
t_crl.o: ../../include/x509.h ../../include/x509_vfy.h ../../include/x509v3.h
|
||||
t_crl.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
t_pkey.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
|
||||
t_pkey.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
t_pkey.o: ../../include/err.h ../../include/rsa.h ../../include/stack.h
|
||||
t_pkey.o: ../cryptlib.h ../crypto.h ../opensslv.h
|
||||
t_req.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
t_req.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
t_req.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
t_req.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
t_req.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
t_req.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
t_req.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
t_req.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
t_req.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
t_req.o: ../crypto.h ../opensslv.h asn1.h
|
||||
t_x509.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
t_x509.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
t_x509.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
t_x509.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
t_x509.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
t_x509.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
t_x509.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
t_x509.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
t_x509.o: ../../include/x509.h ../../include/x509_vfy.h ../../include/x509v3.h
|
||||
t_x509.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
|
||||
x_algor.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_algor.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_algor.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_algor.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_algor.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_algor.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_algor.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_algor.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_algor.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_algor.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_attrib.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_attrib.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_attrib.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_attrib.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_attrib.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_attrib.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_attrib.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_attrib.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_attrib.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_attrib.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_cinf.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_cinf.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_cinf.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_cinf.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_cinf.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_cinf.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_cinf.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_cinf.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_cinf.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_cinf.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_crl.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_crl.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_crl.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_crl.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_crl.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_crl.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_crl.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_crl.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_crl.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_crl.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_exten.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_exten.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_exten.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_exten.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_exten.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_exten.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_exten.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_exten.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_exten.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_exten.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_info.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_info.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_info.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_info.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_info.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_info.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_info.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_info.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_info.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_info.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_name.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_name.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_name.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_name.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_name.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_name.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_name.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_name.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_name.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_name.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_pkey.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_pkey.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_pkey.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_pkey.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_pkey.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_pkey.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_pkey.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_pkey.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_pkey.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_pkey.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_pubkey.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_pubkey.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_pubkey.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_pubkey.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_pubkey.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_pubkey.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_pubkey.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_pubkey.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_pubkey.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_pubkey.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_req.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_req.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_req.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_req.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_req.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_req.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_req.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_req.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_req.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_req.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_sig.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_sig.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_sig.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_sig.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_sig.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_sig.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_sig.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_sig.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_sig.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_sig.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_spki.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_spki.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_spki.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_spki.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_spki.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_spki.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_spki.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_spki.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_spki.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_spki.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_val.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_val.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_val.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_val.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_val.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_val.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_val.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_val.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_val.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_val.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
x_x509.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
|
||||
x_x509.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
|
||||
x_x509.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
|
||||
x_x509.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
|
||||
x_x509.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
|
||||
x_x509.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
|
||||
x_x509.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
|
||||
x_x509.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
|
||||
x_x509.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
|
||||
x_x509.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
|
||||
|
||||
307
crypto/asn1/a_enum.c
Normal file
307
crypto/asn1/a_enum.c
Normal file
@@ -0,0 +1,307 @@
|
||||
/* crypto/asn1/a_enum.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "asn1.h"
|
||||
|
||||
/* Support for ASN1 ENUMERATED type: based on a_int.c */
|
||||
|
||||
/* ASN1err(ASN1_F_D2I_ASN1_ENUMERATED,ASN1_R_EXPECTING_AN_ENUMERATED);
|
||||
*/
|
||||
|
||||
int i2d_ASN1_ENUMERATED(a,pp)
|
||||
ASN1_ENUMERATED *a;
|
||||
unsigned char **pp;
|
||||
{
|
||||
int pad=0,ret,r,i,t;
|
||||
unsigned char *p,*pt,*n,pb=0;
|
||||
|
||||
if ((a == NULL) || (a->data == NULL)) return(0);
|
||||
t=a->type;
|
||||
if (a->length == 0)
|
||||
ret=1;
|
||||
else
|
||||
{
|
||||
ret=a->length;
|
||||
i=a->data[0];
|
||||
if ((t == V_ASN1_ENUMERATED) && (i > 127))
|
||||
{
|
||||
pad=1;
|
||||
pb=0;
|
||||
}
|
||||
else if ((t == V_ASN1_NEG_ENUMERATED) && (i>128))
|
||||
{
|
||||
pad=1;
|
||||
pb=0xFF;
|
||||
}
|
||||
ret+=pad;
|
||||
}
|
||||
r=ASN1_object_size(0,ret,V_ASN1_ENUMERATED);
|
||||
if (pp == NULL) return(r);
|
||||
p= *pp;
|
||||
|
||||
ASN1_put_object(&p,0,ret,V_ASN1_ENUMERATED,V_ASN1_UNIVERSAL);
|
||||
if (pad) *(p++)=pb;
|
||||
if (a->length == 0)
|
||||
*(p++)=0;
|
||||
else if (t == V_ASN1_ENUMERATED)
|
||||
{
|
||||
memcpy(p,a->data,(unsigned int)a->length);
|
||||
p+=a->length;
|
||||
}
|
||||
else
|
||||
{
|
||||
n=a->data;
|
||||
pt=p;
|
||||
for (i=a->length; i>0; i--)
|
||||
*(p++)= (*(n++)^0xFF)+1;
|
||||
if (!pad) *pt|=0x80;
|
||||
}
|
||||
|
||||
*pp=p;
|
||||
return(r);
|
||||
}
|
||||
|
||||
ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(a, pp, length)
|
||||
ASN1_ENUMERATED **a;
|
||||
unsigned char **pp;
|
||||
long length;
|
||||
{
|
||||
ASN1_ENUMERATED *ret=NULL;
|
||||
unsigned char *p,*to,*s;
|
||||
long len;
|
||||
int inf,tag,xclass;
|
||||
int i;
|
||||
|
||||
if ((a == NULL) || ((*a) == NULL))
|
||||
{
|
||||
if ((ret=ASN1_ENUMERATED_new()) == NULL) return(NULL);
|
||||
ret->type=V_ASN1_ENUMERATED;
|
||||
}
|
||||
else
|
||||
ret=(*a);
|
||||
|
||||
p= *pp;
|
||||
inf=ASN1_get_object(&p,&len,&tag,&xclass,length);
|
||||
if (inf & 0x80)
|
||||
{
|
||||
i=ASN1_R_BAD_OBJECT_HEADER;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (tag != V_ASN1_ENUMERATED)
|
||||
{
|
||||
i=ASN1_R_EXPECTING_AN_ENUMERATED;
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* We must Malloc stuff, even for 0 bytes otherwise it
|
||||
* signifies a missing NULL parameter. */
|
||||
s=(unsigned char *)Malloc((int)len+1);
|
||||
if (s == NULL)
|
||||
{
|
||||
i=ERR_R_MALLOC_FAILURE;
|
||||
goto err;
|
||||
}
|
||||
to=s;
|
||||
if (*p & 0x80) /* a negative number */
|
||||
{
|
||||
ret->type=V_ASN1_NEG_ENUMERATED;
|
||||
if (*p == 0xff)
|
||||
{
|
||||
p++;
|
||||
len--;
|
||||
}
|
||||
for (i=(int)len; i>0; i--)
|
||||
*(to++)= (*(p++)^0xFF)+1;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret->type=V_ASN1_ENUMERATED;
|
||||
if ((*p == 0) && (len != 1))
|
||||
{
|
||||
p++;
|
||||
len--;
|
||||
}
|
||||
memcpy(s,p,(int)len);
|
||||
p+=len;
|
||||
}
|
||||
|
||||
if (ret->data != NULL) Free((char *)ret->data);
|
||||
ret->data=s;
|
||||
ret->length=(int)len;
|
||||
if (a != NULL) (*a)=ret;
|
||||
*pp=p;
|
||||
return(ret);
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_ASN1_ENUMERATED,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret)))
|
||||
ASN1_ENUMERATED_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
int ASN1_ENUMERATED_set(a,v)
|
||||
ASN1_ENUMERATED *a;
|
||||
long v;
|
||||
{
|
||||
int i,j,k;
|
||||
unsigned char buf[sizeof(long)+1];
|
||||
long d;
|
||||
|
||||
a->type=V_ASN1_ENUMERATED;
|
||||
if (a->length < (sizeof(long)+1))
|
||||
{
|
||||
if (a->data != NULL)
|
||||
Free((char *)a->data);
|
||||
if ((a->data=(unsigned char *)Malloc(sizeof(long)+1)) != NULL)
|
||||
memset((char *)a->data,0,sizeof(long)+1);
|
||||
}
|
||||
if (a->data == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ENUMERATED_SET,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
d=v;
|
||||
if (d < 0)
|
||||
{
|
||||
d= -d;
|
||||
a->type=V_ASN1_NEG_ENUMERATED;
|
||||
}
|
||||
|
||||
for (i=0; i<sizeof(long); i++)
|
||||
{
|
||||
if (d == 0) break;
|
||||
buf[i]=(int)d&0xff;
|
||||
d>>=8;
|
||||
}
|
||||
j=0;
|
||||
if (v < 0) a->data[j++]=0;
|
||||
for (k=i-1; k >=0; k--)
|
||||
a->data[j++]=buf[k];
|
||||
a->length=j;
|
||||
return(1);
|
||||
}
|
||||
|
||||
long ASN1_ENUMERATED_get(a)
|
||||
ASN1_ENUMERATED *a;
|
||||
{
|
||||
int neg=0,i;
|
||||
long r=0;
|
||||
|
||||
if (a == NULL) return(0L);
|
||||
i=a->type;
|
||||
if (i == V_ASN1_NEG_ENUMERATED)
|
||||
neg=1;
|
||||
else if (i != V_ASN1_ENUMERATED)
|
||||
return(0);
|
||||
|
||||
if (a->length > sizeof(long))
|
||||
{
|
||||
/* hmm... a bit ugly */
|
||||
return(0xffffffffL);
|
||||
}
|
||||
if (a->data == NULL)
|
||||
return(0);
|
||||
|
||||
for (i=0; i<a->length; i++)
|
||||
{
|
||||
r<<=8;
|
||||
r|=(unsigned char)a->data[i];
|
||||
}
|
||||
if (neg) r= -r;
|
||||
return(r);
|
||||
}
|
||||
|
||||
ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(bn,ai)
|
||||
BIGNUM *bn;
|
||||
ASN1_ENUMERATED *ai;
|
||||
{
|
||||
ASN1_ENUMERATED *ret;
|
||||
int len,j;
|
||||
|
||||
if (ai == NULL)
|
||||
ret=ASN1_ENUMERATED_new();
|
||||
else
|
||||
ret=ai;
|
||||
if (ret == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_BN_TO_ASN1_ENUMERATED,ERR_R_NESTED_ASN1_ERROR);
|
||||
goto err;
|
||||
}
|
||||
ret->type=V_ASN1_ENUMERATED;
|
||||
j=BN_num_bits(bn);
|
||||
len=((j == 0)?0:((j/8)+1));
|
||||
ret->data=(unsigned char *)Malloc(len+4);
|
||||
ret->length=BN_bn2bin(bn,ret->data);
|
||||
return(ret);
|
||||
err:
|
||||
if (ret != ai) ASN1_ENUMERATED_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
BIGNUM *ASN1_ENUMERATED_to_BN(ai,bn)
|
||||
ASN1_ENUMERATED *ai;
|
||||
BIGNUM *bn;
|
||||
{
|
||||
BIGNUM *ret;
|
||||
|
||||
if ((ret=BN_bin2bn(ai->data,ai->length,bn)) == NULL)
|
||||
ASN1err(ASN1_F_ASN1_ENUMERATED_TO_BN,ASN1_R_BN_LIB);
|
||||
return(ret);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
/* crypto/asn1/a_bitstr.c */
|
||||
/* crypto/asn1/a_gentm.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -56,181 +56,162 @@
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
/* GENERALIZEDTIME implementation, written by Steve Henson. Based on UTCTIME */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include "cryptlib.h"
|
||||
#include "asn1.h"
|
||||
|
||||
/* ASN1err(ASN1_F_ASN1_STRING_NEW,ASN1_R_STRING_TOO_SHORT);
|
||||
* ASN1err(ASN1_F_D2I_ASN1_BIT_STRING,ASN1_R_EXPECTING_A_BIT_STRING);
|
||||
/* ASN1err(ASN1_F_ASN1_GENERALIZEDTIME_NEW,ASN1_R_GENERALIZEDTIME_TOO_LONG);
|
||||
* ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ASN1_R_EXPECTING_A_GENERALIZEDTIME);
|
||||
*/
|
||||
|
||||
int i2d_ASN1_BIT_STRING(a,pp)
|
||||
ASN1_BIT_STRING *a;
|
||||
int i2d_ASN1_GENERALIZEDTIME(a,pp)
|
||||
ASN1_GENERALIZEDTIME *a;
|
||||
unsigned char **pp;
|
||||
{
|
||||
int ret,i,j,r,bits,len;
|
||||
unsigned char *p,*d;
|
||||
|
||||
if (a == NULL) return(0);
|
||||
|
||||
len=a->length;
|
||||
|
||||
if ((len > 0)
|
||||
{
|
||||
if (a->flags & ASN1_FG_BITS_LEFT))
|
||||
{
|
||||
bits=a->flags&0x07;
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( ; len > 0; len--)
|
||||
{
|
||||
if (a->data[len-1]) break;
|
||||
}
|
||||
j=a->data[len-1];
|
||||
if (j & 0x80) bits=1;
|
||||
else if (j & 0x40) bits=2;
|
||||
else if (j & 0x20) bits=3;
|
||||
else if (j & 0x10) bits=4;
|
||||
else if (j & 0x08) bits=5;
|
||||
else if (j & 0x04) bits=6;
|
||||
else if (j & 0x02) bits=7;
|
||||
else if (j & 0x01) bits=8;
|
||||
else bits=0;
|
||||
}
|
||||
}
|
||||
else
|
||||
bits=0;
|
||||
ret=1+len;
|
||||
r=ASN1_object_size(0,ret,V_ASN1_BIT_STRING);
|
||||
if (pp == NULL) return(r);
|
||||
p= *pp;
|
||||
|
||||
ASN1_put_object(&p,0,ret,V_ASN1_BIT_STRING,V_ASN1_UNIVERSAL);
|
||||
if (bits == 0)
|
||||
j=0;
|
||||
else j=8-bits;
|
||||
*(p++)=(unsigned char)j;
|
||||
d=a->data;
|
||||
memcpy(p,d,len);
|
||||
p+=len;
|
||||
if (len > 0) p[-1]&=(0xff<<j);
|
||||
*pp=p;
|
||||
return(r);
|
||||
return(i2d_ASN1_bytes((ASN1_STRING *)a,pp,
|
||||
V_ASN1_GENERALIZEDTIME,V_ASN1_UNIVERSAL));
|
||||
}
|
||||
|
||||
ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(a, pp, length)
|
||||
ASN1_BIT_STRING **a;
|
||||
|
||||
ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(a, pp, length)
|
||||
ASN1_GENERALIZEDTIME **a;
|
||||
unsigned char **pp;
|
||||
long length;
|
||||
{
|
||||
ASN1_BIT_STRING *ret=NULL;
|
||||
unsigned char *p,*s;
|
||||
long len;
|
||||
int inf,tag,xclass;
|
||||
int i;
|
||||
ASN1_GENERALIZEDTIME *ret=NULL;
|
||||
|
||||
if ((a == NULL) || ((*a) == NULL))
|
||||
ret=(ASN1_GENERALIZEDTIME *)d2i_ASN1_bytes((ASN1_STRING **)a,pp,length,
|
||||
V_ASN1_GENERALIZEDTIME,V_ASN1_UNIVERSAL);
|
||||
if (ret == NULL)
|
||||
{
|
||||
if ((ret=ASN1_BIT_STRING_new()) == NULL) return(NULL);
|
||||
ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ERR_R_NESTED_ASN1_ERROR);
|
||||
return(NULL);
|
||||
}
|
||||
else
|
||||
ret=(*a);
|
||||
|
||||
p= *pp;
|
||||
inf=ASN1_get_object(&p,&len,&tag,&xclass,length);
|
||||
if (inf & 0x80)
|
||||
if (!ASN1_GENERALIZEDTIME_check(ret))
|
||||
{
|
||||
i=ASN1_R_BAD_OBJECT_HEADER;
|
||||
ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ASN1_R_INVALID_TIME_FORMAT);
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (tag != V_ASN1_BIT_STRING)
|
||||
{
|
||||
i=ASN1_R_EXPECTING_A_BIT_STRING;
|
||||
goto err;
|
||||
}
|
||||
if (len < 1) { i=ASN1_R_STRING_TOO_SHORT; goto err; }
|
||||
|
||||
i= *(p++);
|
||||
ret->flag&= ~(ASN1_FG_BITS_LEFT|0x07); /* clear */
|
||||
if (i > 0)
|
||||
ret->flag|=(ASN1_FG_BITS_LEFT|(i&0x07)); /* set */
|
||||
|
||||
if (len-- > 1) /* using one because of the bits left byte */
|
||||
{
|
||||
s=(unsigned char *)Malloc((int)len);
|
||||
if (s == NULL)
|
||||
{
|
||||
i=ERR_R_MALLOC_FAILURE;
|
||||
goto err;
|
||||
}
|
||||
memcpy(s,p,(int)len);
|
||||
s[len-1]&=(0xff<<i);
|
||||
p+=len;
|
||||
}
|
||||
else
|
||||
s=NULL;
|
||||
|
||||
ret->length=(int)len;
|
||||
if (ret->data != NULL) Free((char *)ret->data);
|
||||
ret->data=s;
|
||||
ret->type=V_ASN1_BIT_STRING;
|
||||
if (a != NULL) (*a)=ret;
|
||||
*pp=p;
|
||||
return(ret);
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_ASN1_BIT_STRING,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret)))
|
||||
ASN1_BIT_STRING_free(ret);
|
||||
ASN1_GENERALIZEDTIME_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
/* These next 2 functions from Goetz Babin-Ebell <babinebell@trustcenter.de>
|
||||
*/
|
||||
int ASN1_BIT_STRING_set_bit(a,n,value)
|
||||
ASN1_BIT_STRING *a;
|
||||
int n;
|
||||
int value;
|
||||
int ASN1_GENERALIZEDTIME_check(d)
|
||||
ASN1_GENERALIZEDTIME *d;
|
||||
{
|
||||
int w,v,iv;
|
||||
unsigned char *c;
|
||||
static int min[9]={ 0, 0, 1, 1, 0, 0, 0, 0, 0};
|
||||
static int max[9]={99, 99,12,31,23,59,59,12,59};
|
||||
char *a;
|
||||
int n,i,l,o;
|
||||
|
||||
w=n/8;
|
||||
v=1<<(7-(n&0x07));
|
||||
iv= ~v;
|
||||
|
||||
a->flag&= ~(ASN1_FG_BITS_LEFT|0x07); /* clear, set on write */
|
||||
|
||||
if (a == NULL) return(0);
|
||||
if ((a->length < (w+1)) || (a->data == NULL))
|
||||
if (d->type != V_ASN1_GENERALIZEDTIME) return(0);
|
||||
l=d->length;
|
||||
a=(char *)d->data;
|
||||
o=0;
|
||||
/* GENERALIZEDTIME is similar to UTCTIME except the year is
|
||||
* represented as YYYY. This stuff treats everything as a two digit
|
||||
* field so make first two fields 00 to 99
|
||||
*/
|
||||
if (l < 13) goto err;
|
||||
for (i=0; i<7; i++)
|
||||
{
|
||||
if (!value) return(1); /* Don't need to set */
|
||||
if (a->data == NULL)
|
||||
c=(unsigned char *)Malloc(w+1);
|
||||
else
|
||||
c=(unsigned char *)Realloc(a->data,w+1);
|
||||
if (c == NULL) return(0);
|
||||
a->data=c;
|
||||
a->length=w+1;
|
||||
c[w]=0;
|
||||
if ((i == 6) && ((a[o] == 'Z') ||
|
||||
(a[o] == '+') || (a[o] == '-')))
|
||||
{ i++; break; }
|
||||
if ((a[o] < '0') || (a[o] > '9')) goto err;
|
||||
n= a[o]-'0';
|
||||
if (++o > l) goto err;
|
||||
|
||||
if ((a[o] < '0') || (a[o] > '9')) goto err;
|
||||
n=(n*10)+ a[o]-'0';
|
||||
if (++o > l) goto err;
|
||||
|
||||
if ((n < min[i]) || (n > max[i])) goto err;
|
||||
}
|
||||
a->data[w]=((a->data[w])&iv)|v;
|
||||
while ((a->length > 0) && (a->data[a->length-1] == 0))
|
||||
a->length--;
|
||||
return(1);
|
||||
if (a[o] == 'Z')
|
||||
o++;
|
||||
else if ((a[o] == '+') || (a[o] == '-'))
|
||||
{
|
||||
o++;
|
||||
if (o+4 > l) goto err;
|
||||
for (i=7; i<9; i++)
|
||||
{
|
||||
if ((a[o] < '0') || (a[o] > '9')) goto err;
|
||||
n= a[o]-'0';
|
||||
o++;
|
||||
if ((a[o] < '0') || (a[o] > '9')) goto err;
|
||||
n=(n*10)+ a[o]-'0';
|
||||
if ((n < min[i]) || (n > max[i])) goto err;
|
||||
o++;
|
||||
}
|
||||
}
|
||||
return(o == l);
|
||||
err:
|
||||
return(0);
|
||||
}
|
||||
|
||||
int ASN1_BIT_STRING_get_bit(a,n)
|
||||
ASN1_BIT_STRING *a;
|
||||
int n;
|
||||
int ASN1_GENERALIZEDTIME_set_string(s,str)
|
||||
ASN1_GENERALIZEDTIME *s;
|
||||
char *str;
|
||||
{
|
||||
int w,v;
|
||||
ASN1_GENERALIZEDTIME t;
|
||||
|
||||
w=n/8;
|
||||
v=1<<(7-(n&0x07));
|
||||
if ((a == NULL) || (a->length < (w+1)) || (a->data == NULL))
|
||||
t.type=V_ASN1_GENERALIZEDTIME;
|
||||
t.length=strlen(str);
|
||||
t.data=(unsigned char *)str;
|
||||
if (ASN1_GENERALIZEDTIME_check(&t))
|
||||
{
|
||||
if (s != NULL)
|
||||
{
|
||||
ASN1_STRING_set((ASN1_STRING *)s,
|
||||
(unsigned char *)str,t.length);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
else
|
||||
return(0);
|
||||
return((a->data[w]&v) != 0);
|
||||
}
|
||||
|
||||
ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(s, t)
|
||||
ASN1_GENERALIZEDTIME *s;
|
||||
time_t t;
|
||||
{
|
||||
char *p;
|
||||
struct tm *ts;
|
||||
#if defined(THREADS) && !defined(WIN32)
|
||||
struct tm data;
|
||||
#endif
|
||||
|
||||
if (s == NULL)
|
||||
s=ASN1_GENERALIZEDTIME_new();
|
||||
if (s == NULL)
|
||||
return(NULL);
|
||||
|
||||
#if defined(THREADS) && !defined(WIN32)
|
||||
ts=(struct tm *)gmtime_r(&t,&data);
|
||||
#else
|
||||
ts=(struct tm *)gmtime(&t);
|
||||
#endif
|
||||
p=(char *)s->data;
|
||||
if ((p == NULL) || (s->length < 16))
|
||||
{
|
||||
p=Malloc(20);
|
||||
if (p == NULL) return(NULL);
|
||||
if (s->data != NULL)
|
||||
Free(s->data);
|
||||
s->data=(unsigned char *)p;
|
||||
}
|
||||
|
||||
sprintf(p,"%04d%02d%02d%02d%02d%02dZ",ts->tm_year,
|
||||
ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec);
|
||||
s->length=strlen(p);
|
||||
s->type=V_ASN1_GENERALIZEDTIME;
|
||||
return(s);
|
||||
}
|
||||
@@ -62,17 +62,43 @@
|
||||
|
||||
/* ASN1err(ASN1_F_ASN1_TYPE_NEW,ERR_R_MALLOC_FAILURE);
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
unsigned char *pbData;
|
||||
int cbData;
|
||||
} MYBLOB;
|
||||
|
||||
int i2d_ASN1_SET(a,pp,func,ex_tag,ex_class)
|
||||
/* SetBlobCmp
|
||||
* This function compares two elements of SET_OF block
|
||||
*/
|
||||
static int SetBlobCmp(const void *elem1, const void *elem2 )
|
||||
{
|
||||
MYBLOB *b1 = (MYBLOB *)elem1;
|
||||
MYBLOB *b2 = (MYBLOB *)elem2;
|
||||
int r;
|
||||
|
||||
r = memcmp(b1->pbData, b2->pbData,
|
||||
b1->cbData < b2->cbData ? b1->cbData : b2->cbData);
|
||||
if(r != 0)
|
||||
return r;
|
||||
return b1->cbData-b2->cbData;
|
||||
}
|
||||
|
||||
int i2d_ASN1_SET(a,pp,func,ex_tag,ex_class,is_set)
|
||||
STACK *a;
|
||||
unsigned char **pp;
|
||||
int (*func)();
|
||||
int ex_tag;
|
||||
int ex_class;
|
||||
int is_set; /* if TRUE, then sort the contents (i.e. it isn't a SEQUENCE) */
|
||||
|
||||
{
|
||||
int ret=0,r;
|
||||
int i;
|
||||
unsigned char *p;
|
||||
unsigned char *pStart, *pTempMem;
|
||||
MYBLOB *rgSetBlob;
|
||||
int totSize;
|
||||
|
||||
if (a == NULL) return(0);
|
||||
for (i=sk_num(a)-1; i>=0; i--)
|
||||
@@ -82,12 +108,55 @@ int ex_class;
|
||||
|
||||
p= *pp;
|
||||
ASN1_put_object(&p,1,ret,ex_tag,ex_class);
|
||||
for (i=0; i<sk_num(a); i++)
|
||||
func(sk_value(a,i),&p);
|
||||
|
||||
*pp=p;
|
||||
return(r);
|
||||
}
|
||||
/* Modified by gp@nsj.co.jp */
|
||||
/* And then again by Ben */
|
||||
/* And again by Steve */
|
||||
|
||||
if(!is_set || (sk_num(a) < 2))
|
||||
{
|
||||
for (i=0; i<sk_num(a); i++)
|
||||
func(sk_value(a,i),&p);
|
||||
|
||||
*pp=p;
|
||||
return(r);
|
||||
}
|
||||
|
||||
pStart = p; /* Catch the beg of Setblobs*/
|
||||
rgSetBlob = (MYBLOB *)Malloc( sk_num(a) * sizeof(MYBLOB)); /* In this array
|
||||
we will store the SET blobs */
|
||||
|
||||
for (i=0; i<sk_num(a); i++)
|
||||
{
|
||||
rgSetBlob[i].pbData = p; /* catch each set encode blob */
|
||||
func(sk_value(a,i),&p);
|
||||
rgSetBlob[i].cbData = p - rgSetBlob[i].pbData; /* Length of this
|
||||
SetBlob
|
||||
*/
|
||||
}
|
||||
*pp=p;
|
||||
totSize = p - pStart; /* This is the total size of all set blobs */
|
||||
|
||||
/* Now we have to sort the blobs. I am using a simple algo.
|
||||
*Sort ptrs *Copy to temp-mem *Copy from temp-mem to user-mem*/
|
||||
qsort( rgSetBlob, sk_num(a), sizeof(MYBLOB), SetBlobCmp);
|
||||
pTempMem = Malloc(totSize);
|
||||
|
||||
/* Copy to temp mem */
|
||||
p = pTempMem;
|
||||
for(i=0; i<sk_num(a); ++i)
|
||||
{
|
||||
memcpy(p, rgSetBlob[i].pbData, rgSetBlob[i].cbData);
|
||||
p += rgSetBlob[i].cbData;
|
||||
}
|
||||
|
||||
/* Copy back to user mem*/
|
||||
memcpy(pStart, pTempMem, totSize);
|
||||
Free(pTempMem);
|
||||
Free(rgSetBlob);
|
||||
|
||||
return(r);
|
||||
}
|
||||
|
||||
STACK *d2i_ASN1_SET(a,pp,length,func,free_func,ex_tag,ex_class)
|
||||
STACK **a;
|
||||
|
||||
@@ -67,7 +67,6 @@
|
||||
#include "x509.h"
|
||||
#include "objects.h"
|
||||
#include "buffer.h"
|
||||
#include "pem.h"
|
||||
|
||||
int ASN1_sign(i2d,algor1,algor2,signature,data,pkey,type)
|
||||
int (*i2d)();
|
||||
|
||||
114
crypto/asn1/a_time.c
Normal file
114
crypto/asn1/a_time.c
Normal file
@@ -0,0 +1,114 @@
|
||||
/* crypto/asn1/a_time.c */
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1999 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* licensing@OpenSSL.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/* This is an implementation of the ASN1 Time structure which is:
|
||||
* Time ::= CHOICE {
|
||||
* utcTime UTCTime,
|
||||
* generalTime GeneralizedTime }
|
||||
* written by Steve Henson.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include "cryptlib.h"
|
||||
#include "asn1.h"
|
||||
|
||||
int i2d_ASN1_TIME(a,pp)
|
||||
ASN1_TIME *a;
|
||||
unsigned char **pp;
|
||||
{
|
||||
if(a->type == V_ASN1_UTCTIME || a->type == V_ASN1_GENERALIZEDTIME)
|
||||
return(i2d_ASN1_bytes((ASN1_STRING *)a,pp,
|
||||
a->type ,V_ASN1_UNIVERSAL));
|
||||
ASN1err(ASN1_F_I2D_ASN1_TIME,ASN1_R_EXPECTING_A_TIME);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
ASN1_TIME *d2i_ASN1_TIME(a, pp, length)
|
||||
ASN1_TIME **a;
|
||||
unsigned char **pp;
|
||||
long length;
|
||||
{
|
||||
unsigned char tag;
|
||||
tag = **pp & ~V_ASN1_CONSTRUCTED;
|
||||
if(tag == (V_ASN1_UTCTIME|V_ASN1_UNIVERSAL))
|
||||
return d2i_ASN1_UTCTIME(a, pp, length);
|
||||
if(tag == (V_ASN1_GENERALIZEDTIME|V_ASN1_UNIVERSAL))
|
||||
return d2i_ASN1_GENERALIZEDTIME(a, pp, length);
|
||||
ASN1err(ASN1_F_D2I_ASN1_TIME,ASN1_R_EXPECTING_A_TIME);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
|
||||
ASN1_TIME *ASN1_TIME_set(s, t)
|
||||
ASN1_TIME *s;
|
||||
time_t t;
|
||||
{
|
||||
struct tm *ts;
|
||||
#if defined(THREADS) && !defined(WIN32)
|
||||
struct tm data;
|
||||
#endif
|
||||
|
||||
#if defined(THREADS) && !defined(WIN32)
|
||||
ts=(struct tm *)gmtime_r(&t,&data);
|
||||
#else
|
||||
ts=(struct tm *)gmtime(&t);
|
||||
#endif
|
||||
if((ts->tm_year >= 1950) && (ts->tm_year < 2050))
|
||||
return ASN1_UTCTIME_set(s, t);
|
||||
return ASN1_GENERALIZEDTIME_set(s,t);
|
||||
}
|
||||
@@ -89,6 +89,10 @@ unsigned char **pp;
|
||||
case V_ASN1_NEG_INTEGER:
|
||||
r=i2d_ASN1_INTEGER(a->value.integer,pp);
|
||||
break;
|
||||
case V_ASN1_ENUMERATED:
|
||||
case V_ASN1_NEG_ENUMERATED:
|
||||
r=i2d_ASN1_ENUMERATED(a->value.enumerated,pp);
|
||||
break;
|
||||
case V_ASN1_BIT_STRING:
|
||||
r=i2d_ASN1_BIT_STRING(a->value.bit_string,pp);
|
||||
break;
|
||||
@@ -119,6 +123,9 @@ unsigned char **pp;
|
||||
case V_ASN1_UTCTIME:
|
||||
r=i2d_ASN1_UTCTIME(a->value.utctime,pp);
|
||||
break;
|
||||
case V_ASN1_GENERALIZEDTIME:
|
||||
r=i2d_ASN1_GENERALIZEDTIME(a->value.generalizedtime,pp);
|
||||
break;
|
||||
case V_ASN1_SET:
|
||||
case V_ASN1_SEQUENCE:
|
||||
if (a->value.set == NULL)
|
||||
@@ -174,6 +181,11 @@ long length;
|
||||
d2i_ASN1_INTEGER(NULL,&p,max-p)) == NULL)
|
||||
goto err;
|
||||
break;
|
||||
case V_ASN1_ENUMERATED:
|
||||
if ((ret->value.enumerated=
|
||||
d2i_ASN1_ENUMERATED(NULL,&p,max-p)) == NULL)
|
||||
goto err;
|
||||
break;
|
||||
case V_ASN1_BIT_STRING:
|
||||
if ((ret->value.bit_string=
|
||||
d2i_ASN1_BIT_STRING(NULL,&p,max-p)) == NULL)
|
||||
@@ -224,6 +236,11 @@ long length;
|
||||
d2i_ASN1_UTCTIME(NULL,&p,max-p)) == NULL)
|
||||
goto err;
|
||||
break;
|
||||
case V_ASN1_GENERALIZEDTIME:
|
||||
if ((ret->value.generalizedtime=
|
||||
d2i_ASN1_GENERALIZEDTIME(NULL,&p,max-p)) == NULL)
|
||||
goto err;
|
||||
break;
|
||||
case V_ASN1_SET:
|
||||
case V_ASN1_SEQUENCE:
|
||||
/* Sets and sequences are left complete */
|
||||
@@ -301,6 +318,8 @@ ASN1_TYPE *a;
|
||||
break;
|
||||
case V_ASN1_INTEGER:
|
||||
case V_ASN1_NEG_INTEGER:
|
||||
case V_ASN1_ENUMERATED:
|
||||
case V_ASN1_NEG_ENUMERATED:
|
||||
case V_ASN1_BIT_STRING:
|
||||
case V_ASN1_OCTET_STRING:
|
||||
case V_ASN1_SEQUENCE:
|
||||
|
||||
@@ -67,7 +67,6 @@
|
||||
#include "objects.h"
|
||||
#include "buffer.h"
|
||||
#include "evp.h"
|
||||
#include "pem.h"
|
||||
|
||||
int ASN1_verify(i2d,a,signature,data,pkey)
|
||||
int (*i2d)();
|
||||
|
||||
@@ -2,12 +2,16 @@
|
||||
|
||||
/* Function codes. */
|
||||
#define ASN1_F_A2D_ASN1_OBJECT 100
|
||||
#define ASN1_F_A2I_ASN1_ENUMERATED 236
|
||||
#define ASN1_F_A2I_ASN1_INTEGER 101
|
||||
#define ASN1_F_A2I_ASN1_STRING 102
|
||||
#define ASN1_F_ASN1_COLLATE_PRIMATIVE 103
|
||||
#define ASN1_F_ASN1_D2I_BIO 104
|
||||
#define ASN1_F_ASN1_D2I_FP 105
|
||||
#define ASN1_F_ASN1_DUP 106
|
||||
#define ASN1_F_ASN1_ENUMERATED_SET 232
|
||||
#define ASN1_F_ASN1_ENUMERATED_TO_BN 233
|
||||
#define ASN1_F_ASN1_GENERALIZEDTIME_NEW 222
|
||||
#define ASN1_F_ASN1_GET_OBJECT 107
|
||||
#define ASN1_F_ASN1_HEADER_NEW 108
|
||||
#define ASN1_F_ASN1_I2D_BIO 109
|
||||
@@ -23,24 +27,34 @@
|
||||
#define ASN1_F_ASN1_TYPE_NEW 119
|
||||
#define ASN1_F_ASN1_UTCTIME_NEW 120
|
||||
#define ASN1_F_ASN1_VERIFY 121
|
||||
#define ASN1_F_AUTHORITY_KEYID_NEW 237
|
||||
#define ASN1_F_BASIC_CONSTRAINTS_NEW 226
|
||||
#define ASN1_F_BN_TO_ASN1_ENUMERATED 234
|
||||
#define ASN1_F_BN_TO_ASN1_INTEGER 122
|
||||
#define ASN1_F_D2I_ASN1_BIT_STRING 123
|
||||
#define ASN1_F_D2I_ASN1_BMPSTRING 124
|
||||
#define ASN1_F_D2I_ASN1_BOOLEAN 125
|
||||
#define ASN1_F_D2I_ASN1_BYTES 126
|
||||
#define ASN1_F_D2I_ASN1_ENUMERATED 235
|
||||
#define ASN1_F_D2I_ASN1_GENERALIZEDTIME 223
|
||||
#define ASN1_F_D2I_ASN1_HEADER 127
|
||||
#define ASN1_F_D2I_ASN1_INTEGER 128
|
||||
#define ASN1_F_D2I_ASN1_OBJECT 129
|
||||
#define ASN1_F_D2I_ASN1_OCTET_STRING 130
|
||||
#define ASN1_F_D2I_ASN1_PRINT_TYPE 131
|
||||
#define ASN1_F_D2I_ASN1_SET 132
|
||||
#define ASN1_F_D2I_ASN1_TIME 224
|
||||
#define ASN1_F_D2I_ASN1_TYPE 133
|
||||
#define ASN1_F_D2I_ASN1_TYPE_BYTES 134
|
||||
#define ASN1_F_D2I_ASN1_UTCTIME 135
|
||||
#define ASN1_F_D2I_AUTHORITY_KEYID 238
|
||||
#define ASN1_F_D2I_BASIC_CONSTRAINTS 227
|
||||
#define ASN1_F_D2I_DHPARAMS 136
|
||||
#define ASN1_F_D2I_DSAPARAMS 137
|
||||
#define ASN1_F_D2I_DSAPRIVATEKEY 138
|
||||
#define ASN1_F_D2I_DSAPUBLICKEY 139
|
||||
#define ASN1_F_D2I_GENERAL_NAME 230
|
||||
#define ASN1_F_D2I_NETSCAPE_CERT_SEQUENCE 228
|
||||
#define ASN1_F_D2I_NETSCAPE_PKEY 140
|
||||
#define ASN1_F_D2I_NETSCAPE_RSA 141
|
||||
#define ASN1_F_D2I_NETSCAPE_RSA_2 142
|
||||
@@ -56,6 +70,7 @@
|
||||
#define ASN1_F_D2I_PKCS7_SIGNED 152
|
||||
#define ASN1_F_D2I_PKCS7_SIGNER_INFO 153
|
||||
#define ASN1_F_D2I_PKCS7_SIGN_ENVELOPE 154
|
||||
#define ASN1_F_D2I_PKEY_USAGE_PERIOD 239
|
||||
#define ASN1_F_D2I_PRIVATEKEY 155
|
||||
#define ASN1_F_D2I_PUBLICKEY 156
|
||||
#define ASN1_F_D2I_RSAPRIVATEKEY 157
|
||||
@@ -77,7 +92,9 @@
|
||||
#define ASN1_F_D2I_X509_REVOKED 173
|
||||
#define ASN1_F_D2I_X509_SIG 174
|
||||
#define ASN1_F_D2I_X509_VAL 175
|
||||
#define ASN1_F_GENERAL_NAME_NEW 231
|
||||
#define ASN1_F_I2D_ASN1_HEADER 176
|
||||
#define ASN1_F_I2D_ASN1_TIME 225
|
||||
#define ASN1_F_I2D_DHPARAMS 177
|
||||
#define ASN1_F_I2D_DSAPARAMS 178
|
||||
#define ASN1_F_I2D_DSAPRIVATEKEY 179
|
||||
@@ -90,6 +107,7 @@
|
||||
#define ASN1_F_I2D_RSAPUBLICKEY 186
|
||||
#define ASN1_F_I2D_X509_ATTRIBUTE 187
|
||||
#define ASN1_F_I2T_ASN1_OBJECT 188
|
||||
#define ASN1_F_NETSCAPE_CERT_SEQUENCE_NEW 229
|
||||
#define ASN1_F_NETSCAPE_PKEY_NEW 189
|
||||
#define ASN1_F_NETSCAPE_SPKAC_NEW 190
|
||||
#define ASN1_F_NETSCAPE_SPKI_NEW 191
|
||||
@@ -103,6 +121,7 @@
|
||||
#define ASN1_F_PKCS7_SIGNED_NEW 199
|
||||
#define ASN1_F_PKCS7_SIGNER_INFO_NEW 200
|
||||
#define ASN1_F_PKCS7_SIGN_ENVELOPE_NEW 201
|
||||
#define ASN1_F_PKEY_USAGE_PERIOD_NEW 240
|
||||
#define ASN1_F_X509_ALGOR_NEW 202
|
||||
#define ASN1_F_X509_ATTRIBUTE_NEW 203
|
||||
#define ASN1_F_X509_CINF_NEW 204
|
||||
@@ -138,13 +157,17 @@
|
||||
#define ASN1_R_DATA_IS_WRONG 110
|
||||
#define ASN1_R_DECODING_ERROR 111
|
||||
#define ASN1_R_ERROR_PARSING_SET_ELEMENT 112
|
||||
#define ASN1_R_EXPECTING_AN_ENUMERATED 154
|
||||
#define ASN1_R_EXPECTING_AN_INTEGER 113
|
||||
#define ASN1_R_EXPECTING_AN_OBJECT 114
|
||||
#define ASN1_R_EXPECTING_AN_OCTET_STRING 115
|
||||
#define ASN1_R_EXPECTING_A_BIT_STRING 116
|
||||
#define ASN1_R_EXPECTING_A_BOOLEAN 117
|
||||
#define ASN1_R_EXPECTING_A_GENERALIZEDTIME 151
|
||||
#define ASN1_R_EXPECTING_A_TIME 152
|
||||
#define ASN1_R_EXPECTING_A_UTCTIME 118
|
||||
#define ASN1_R_FIRST_NUM_TOO_LARGE 119
|
||||
#define ASN1_R_GENERALIZEDTIME_TOO_LONG 153
|
||||
#define ASN1_R_HEADER_TOO_LONG 120
|
||||
#define ASN1_R_INVALID_DIGIT 121
|
||||
#define ASN1_R_INVALID_SEPARATOR 122
|
||||
|
||||
@@ -89,7 +89,8 @@ extern "C" {
|
||||
#define V_ASN1_OBJECT_DESCRIPTOR 7
|
||||
#define V_ASN1_EXTERNAL 8
|
||||
#define V_ASN1_REAL 9
|
||||
#define V_ASN1_ENUMERATED 10 /* microsoft weirdness */
|
||||
#define V_ASN1_ENUMERATED 10
|
||||
#define V_ASN1_NEG_ENUMERATED (10+0x100)
|
||||
#define V_ASN1_SEQUENCE 16
|
||||
#define V_ASN1_SET 17
|
||||
#define V_ASN1_NUMERICSTRING 18 /**/
|
||||
@@ -168,6 +169,7 @@ typedef struct asn1_string_st
|
||||
|
||||
#ifndef DEBUG
|
||||
#define ASN1_INTEGER ASN1_STRING
|
||||
#define ASN1_ENUMERATED ASN1_STRING
|
||||
#define ASN1_BIT_STRING ASN1_STRING
|
||||
#define ASN1_OCTET_STRING ASN1_STRING
|
||||
#define ASN1_PRINTABLESTRING ASN1_STRING
|
||||
@@ -175,11 +177,13 @@ typedef struct asn1_string_st
|
||||
#define ASN1_IA5STRING ASN1_STRING
|
||||
#define ASN1_UTCTIME ASN1_STRING
|
||||
#define ASN1_GENERALIZEDTIME ASN1_STRING
|
||||
#define ASN1_TIME ASN1_STRING
|
||||
#define ASN1_GENERALSTRING ASN1_STRING
|
||||
#define ASN1_UNIVERSALSTRING ASN1_STRING
|
||||
#define ASN1_BMPSTRING ASN1_STRING
|
||||
#else
|
||||
typedef struct asn1_string_st ASN1_INTEGER;
|
||||
typedef struct asn1_string_st ASN1_ENUMERATED;
|
||||
typedef struct asn1_string_st ASN1_BIT_STRING;
|
||||
typedef struct asn1_string_st ASN1_OCTET_STRING;
|
||||
typedef struct asn1_string_st ASN1_PRINTABLESTRING;
|
||||
@@ -189,6 +193,7 @@ typedef struct asn1_string_st ASN1_GENERALSTRING;
|
||||
typedef struct asn1_string_st ASN1_UNIVERSALSTRING;
|
||||
typedef struct asn1_string_st ASN1_BMPSTRING;
|
||||
typedef struct asn1_string_st ASN1_UTCTIME;
|
||||
typedef struct asn1_string_st ASN1_TIME;
|
||||
typedef struct asn1_string_st ASN1_GENERALIZEDTIME;
|
||||
#endif
|
||||
|
||||
@@ -200,6 +205,7 @@ typedef struct asn1_type_st
|
||||
ASN1_STRING * asn1_string;
|
||||
ASN1_OBJECT * object;
|
||||
ASN1_INTEGER * integer;
|
||||
ASN1_ENUMERATED * enumerated;
|
||||
ASN1_BIT_STRING * bit_string;
|
||||
ASN1_OCTET_STRING * octet_string;
|
||||
ASN1_PRINTABLESTRING * printablestring;
|
||||
@@ -260,6 +266,17 @@ typedef struct asn1_header_st
|
||||
/* i2d_ASN1_INTEGER() is a function */
|
||||
/* d2i_ASN1_INTEGER() is a function */
|
||||
|
||||
#define ASN1_ENUMERATED_new() (ASN1_ENUMERATED *)\
|
||||
ASN1_STRING_type_new(V_ASN1_ENUMERATED)
|
||||
#define ASN1_ENUMERATED_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_ENUMERATED_dup(a) (ASN1_ENUMERATED *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
#define ASN1_ENUMERATED_cmp(a,b) ASN1_STRING_cmp(\
|
||||
(ASN1_STRING *)a,(ASN1_STRING *)b)
|
||||
/* ASN1_ENUMERATED_set() is a function, also see BN_to_ASN1_ENUMERATED() */
|
||||
/* ASN1_ENUMERATED_get() is a function, also see ASN1_ENUMERATED_to_BN() */
|
||||
/* i2d_ASN1_ENUMERATED() is a function */
|
||||
/* d2i_ASN1_ENUMERATED() is a function */
|
||||
|
||||
#define ASN1_OCTET_STRING_new() (ASN1_OCTET_STRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_OCTET_STRING)
|
||||
#define ASN1_OCTET_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
@@ -288,7 +305,7 @@ typedef struct asn1_header_st
|
||||
B_ASN1_BMPSTRING|\
|
||||
B_ASN1_UNKNOWN)
|
||||
|
||||
#define ASN1_PRINTABLESTRING_new() (ASN1_PRINTABLESTRING_STRING *)\
|
||||
#define ASN1_PRINTABLESTRING_new() (ASN1_PRINTABLESTRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING)
|
||||
#define ASN1_PRINTABLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_PRINTABLESTRING(a,pp) \
|
||||
@@ -311,6 +328,8 @@ typedef struct asn1_header_st
|
||||
#define ASN1_IA5STRING_new() (ASN1_IA5STRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_IA5STRING)
|
||||
#define ASN1_IA5STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_IA5STRING_dup(a) \
|
||||
(ASN1_IA5STRING *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_IA5STRING(a,pp) \
|
||||
i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_IA5STRING,\
|
||||
V_ASN1_UNIVERSAL)
|
||||
@@ -330,12 +349,22 @@ typedef struct asn1_header_st
|
||||
#define ASN1_GENERALIZEDTIME_new() (ASN1_GENERALIZEDTIME *)\
|
||||
ASN1_STRING_type_new(V_ASN1_GENERALIZEDTIME)
|
||||
#define ASN1_GENERALIZEDTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_GENERALIZEDTIME_dup(a) (ASN1_UTCTIME *)ASN1_STRING_dup(\
|
||||
#define ASN1_GENERALIZEDTIME_dup(a) (ASN1_GENERALIZEDTIME *)ASN1_STRING_dup(\
|
||||
(ASN1_STRING *)a)
|
||||
/* DOES NOT EXIST YET i2d_ASN1_GENERALIZEDTIME() is a function */
|
||||
/* DOES NOT EXIST YET d2i_ASN1_GENERALIZEDTIME() is a function */
|
||||
/* DOES NOT EXIST YET ASN1_GENERALIZEDTIME_set() is a function */
|
||||
/* DOES NOT EXIST YET ASN1_GENERALIZEDTIME_check() is a function */
|
||||
/* i2d_ASN1_GENERALIZEDTIME() is a function */
|
||||
/* d2i_ASN1_GENERALIZEDTIME() is a function */
|
||||
/* ASN1_GENERALIZEDTIME_set() is a function */
|
||||
/* ASN1_GENERALIZEDTIME_check() is a function */
|
||||
|
||||
#define ASN1_TIME_new() (ASN1_TIME *)\
|
||||
ASN1_STRING_type_new(V_ASN1_UTCTIME)
|
||||
#define ASN1_TIME_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_TIME_dup(a) (ASN1_TIME *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
|
||||
/* i2d_ASN1_TIME() is a function */
|
||||
/* d2i_ASN1_TIME() is a function */
|
||||
/* ASN1_TIME_set() is a function */
|
||||
/* ASN1_TIME_check() is a function */
|
||||
|
||||
#define ASN1_GENERALSTRING_new() (ASN1_GENERALSTRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_GENERALSTRING)
|
||||
@@ -402,10 +431,18 @@ int i2d_ASN1_INTEGER(ASN1_INTEGER *a,unsigned char **pp);
|
||||
ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **a,unsigned char **pp,
|
||||
long length);
|
||||
|
||||
int i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a,unsigned char **pp);
|
||||
ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a,unsigned char **pp,
|
||||
long length);
|
||||
|
||||
int ASN1_UTCTIME_check(ASN1_UTCTIME *a);
|
||||
ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s,time_t t);
|
||||
int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, char *str);
|
||||
|
||||
int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *a);
|
||||
ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,time_t t);
|
||||
int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, char *str);
|
||||
|
||||
int i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a,unsigned char **pp);
|
||||
ASN1_OCTET_STRING *d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a,
|
||||
unsigned char **pp,long length);
|
||||
@@ -430,8 +467,20 @@ int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a,unsigned char **pp);
|
||||
ASN1_UTCTIME * d2i_ASN1_UTCTIME(ASN1_UTCTIME **a,unsigned char **pp,
|
||||
long length);
|
||||
|
||||
int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a,unsigned char **pp);
|
||||
ASN1_GENERALIZEDTIME * d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a,unsigned char **pp,
|
||||
long length);
|
||||
|
||||
int i2d_ASN1_TIME(ASN1_TIME *a,unsigned char **pp);
|
||||
ASN1_TIME * d2i_ASN1_TIME(ASN1_TIME **a,unsigned char **pp, long length);
|
||||
ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s,time_t t);
|
||||
|
||||
|
||||
/* for the is_set parameter to i2d_ASN1_SET */
|
||||
#define IS_SEQUENCE 0
|
||||
#define IS_SET 1
|
||||
int i2d_ASN1_SET(STACK *a, unsigned char **pp,
|
||||
int (*func)(), int ex_tag, int ex_class);
|
||||
int (*func)(), int ex_tag, int ex_class, int is_set);
|
||||
STACK * d2i_ASN1_SET(STACK **a, unsigned char **pp, long length,
|
||||
char *(*func)(), void (*free_func)(),
|
||||
int ex_tag, int ex_class);
|
||||
@@ -439,6 +488,8 @@ STACK * d2i_ASN1_SET(STACK **a, unsigned char **pp, long length,
|
||||
#ifdef HEADER_BIO_H
|
||||
int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a);
|
||||
int a2i_ASN1_INTEGER(BIO *bp,ASN1_INTEGER *bs,char *buf,int size);
|
||||
int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a);
|
||||
int a2i_ASN1_ENUMERATED(BIO *bp,ASN1_ENUMERATED *bs,char *buf,int size);
|
||||
int i2a_ASN1_OBJECT(BIO *bp,ASN1_OBJECT *a);
|
||||
int a2i_ASN1_STRING(BIO *bp,ASN1_STRING *bs,char *buf,int size);
|
||||
int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type);
|
||||
@@ -454,6 +505,11 @@ long ASN1_INTEGER_get(ASN1_INTEGER *a);
|
||||
ASN1_INTEGER *BN_to_ASN1_INTEGER(BIGNUM *bn, ASN1_INTEGER *ai);
|
||||
BIGNUM *ASN1_INTEGER_to_BN(ASN1_INTEGER *ai,BIGNUM *bn);
|
||||
|
||||
int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v);
|
||||
long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a);
|
||||
ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai);
|
||||
BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai,BIGNUM *bn);
|
||||
|
||||
/* General */
|
||||
/* given a string, return the correct type, max is the maximum length */
|
||||
int ASN1_PRINTABLE_type(unsigned char *s, int max);
|
||||
@@ -488,6 +544,8 @@ int ASN1_i2d_fp(int (*i2d)(),FILE *out,unsigned char *x);
|
||||
char *ASN1_d2i_bio(char *(*xnew)(),char *(*d2i)(),BIO *bp,unsigned char **x);
|
||||
int ASN1_i2d_bio(int (*i2d)(),BIO *out,unsigned char *x);
|
||||
int ASN1_UTCTIME_print(BIO *fp,ASN1_UTCTIME *a);
|
||||
int ASN1_GENERALIZEDTIME_print(BIO *fp,ASN1_GENERALIZEDTIME *a);
|
||||
int ASN1_TIME_print(BIO *fp,ASN1_TIME *a);
|
||||
int ASN1_STRING_print(BIO *bp,ASN1_STRING *v);
|
||||
int ASN1_parse(BIO *bp,unsigned char *pp,long len,int indent);
|
||||
#endif
|
||||
@@ -544,9 +602,14 @@ int i2d_ASN1_BOOLEAN();
|
||||
int d2i_ASN1_BOOLEAN();
|
||||
int i2d_ASN1_INTEGER();
|
||||
ASN1_INTEGER *d2i_ASN1_INTEGER();
|
||||
int i2d_ASN1_ENUMERATED();
|
||||
ASN1_INTEGER *d2i_ASN1_ENUMERATED();
|
||||
int ASN1_UTCTIME_check();
|
||||
ASN1_UTCTIME *ASN1_UTCTIME_set();
|
||||
int ASN1_UTCTIME_set_string();
|
||||
int ASN1_GENERALIZEDTIME_check();
|
||||
ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set();
|
||||
int ASN1_GENERALIZEDTIME_set_string();
|
||||
int i2d_ASN1_OCTET_STRING();
|
||||
ASN1_OCTET_STRING *d2i_ASN1_OCTET_STRING();
|
||||
int i2d_ASN1_PRINTABLE();
|
||||
@@ -557,6 +620,11 @@ int i2d_ASN1_IA5STRING();
|
||||
ASN1_IA5STRING *d2i_ASN1_IA5STRING();
|
||||
int i2d_ASN1_UTCTIME();
|
||||
ASN1_UTCTIME * d2i_ASN1_UTCTIME();
|
||||
int i2d_ASN1_GENERALIZEDTIME();
|
||||
ASN1_GENERALIZEDTIME * d2i_ASN1_GENERALIZEDTIME();
|
||||
int i2d_ASN1_TIME();
|
||||
ASN1_TIME * d2i_ASN1_TIME();
|
||||
ASN1_TIME *ASN1_TIME_set();
|
||||
int i2d_ASN1_SET();
|
||||
STACK * d2i_ASN1_SET();
|
||||
int a2d_ASN1_OBJECT();
|
||||
@@ -565,6 +633,10 @@ int ASN1_INTEGER_set();
|
||||
long ASN1_INTEGER_get();
|
||||
ASN1_INTEGER *BN_to_ASN1_INTEGER();
|
||||
BIGNUM *ASN1_INTEGER_to_BN();
|
||||
int ASN1_ENUMERATED_set();
|
||||
long ASN1_ENUMERATED_get();
|
||||
ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED();
|
||||
BIGNUM *ASN1_ENUMERATED_to_BN();
|
||||
int ASN1_PRINTABLE_type();
|
||||
int i2d_ASN1_bytes();
|
||||
ASN1_STRING *d2i_ASN1_bytes();
|
||||
@@ -583,10 +655,14 @@ int ASN1_i2d_fp();
|
||||
char *ASN1_d2i_bio();
|
||||
int ASN1_i2d_bio();
|
||||
int ASN1_UTCTIME_print();
|
||||
int ASN1_GENERALIZEDTIME_print();
|
||||
int ASN1_TIME_print();
|
||||
int ASN1_STRING_print();
|
||||
int ASN1_parse();
|
||||
int i2a_ASN1_INTEGER();
|
||||
int a2i_ASN1_INTEGER();
|
||||
int i2a_ASN1_ENUMERATED();
|
||||
int a2i_ASN1_ENUMERATED();
|
||||
int i2a_ASN1_OBJECT();
|
||||
int i2t_ASN1_OBJECT();
|
||||
int a2i_ASN1_STRING();
|
||||
@@ -619,12 +695,16 @@ ASN1_BMPSTRING *d2i_ASN1_BMPSTRING();
|
||||
|
||||
/* Function codes. */
|
||||
#define ASN1_F_A2D_ASN1_OBJECT 100
|
||||
#define ASN1_F_A2I_ASN1_ENUMERATED 236
|
||||
#define ASN1_F_A2I_ASN1_INTEGER 101
|
||||
#define ASN1_F_A2I_ASN1_STRING 102
|
||||
#define ASN1_F_ASN1_COLLATE_PRIMATIVE 103
|
||||
#define ASN1_F_ASN1_D2I_BIO 104
|
||||
#define ASN1_F_ASN1_D2I_FP 105
|
||||
#define ASN1_F_ASN1_DUP 106
|
||||
#define ASN1_F_ASN1_ENUMERATED_SET 232
|
||||
#define ASN1_F_ASN1_ENUMERATED_TO_BN 233
|
||||
#define ASN1_F_ASN1_GENERALIZEDTIME_NEW 222
|
||||
#define ASN1_F_ASN1_GET_OBJECT 107
|
||||
#define ASN1_F_ASN1_HEADER_NEW 108
|
||||
#define ASN1_F_ASN1_I2D_BIO 109
|
||||
@@ -640,24 +720,34 @@ ASN1_BMPSTRING *d2i_ASN1_BMPSTRING();
|
||||
#define ASN1_F_ASN1_TYPE_NEW 119
|
||||
#define ASN1_F_ASN1_UTCTIME_NEW 120
|
||||
#define ASN1_F_ASN1_VERIFY 121
|
||||
#define ASN1_F_AUTHORITY_KEYID_NEW 237
|
||||
#define ASN1_F_BASIC_CONSTRAINTS_NEW 226
|
||||
#define ASN1_F_BN_TO_ASN1_ENUMERATED 234
|
||||
#define ASN1_F_BN_TO_ASN1_INTEGER 122
|
||||
#define ASN1_F_D2I_ASN1_BIT_STRING 123
|
||||
#define ASN1_F_D2I_ASN1_BMPSTRING 124
|
||||
#define ASN1_F_D2I_ASN1_BOOLEAN 125
|
||||
#define ASN1_F_D2I_ASN1_BYTES 126
|
||||
#define ASN1_F_D2I_ASN1_ENUMERATED 235
|
||||
#define ASN1_F_D2I_ASN1_GENERALIZEDTIME 223
|
||||
#define ASN1_F_D2I_ASN1_HEADER 127
|
||||
#define ASN1_F_D2I_ASN1_INTEGER 128
|
||||
#define ASN1_F_D2I_ASN1_OBJECT 129
|
||||
#define ASN1_F_D2I_ASN1_OCTET_STRING 130
|
||||
#define ASN1_F_D2I_ASN1_PRINT_TYPE 131
|
||||
#define ASN1_F_D2I_ASN1_SET 132
|
||||
#define ASN1_F_D2I_ASN1_TIME 224
|
||||
#define ASN1_F_D2I_ASN1_TYPE 133
|
||||
#define ASN1_F_D2I_ASN1_TYPE_BYTES 134
|
||||
#define ASN1_F_D2I_ASN1_UTCTIME 135
|
||||
#define ASN1_F_D2I_AUTHORITY_KEYID 238
|
||||
#define ASN1_F_D2I_BASIC_CONSTRAINTS 227
|
||||
#define ASN1_F_D2I_DHPARAMS 136
|
||||
#define ASN1_F_D2I_DSAPARAMS 137
|
||||
#define ASN1_F_D2I_DSAPRIVATEKEY 138
|
||||
#define ASN1_F_D2I_DSAPUBLICKEY 139
|
||||
#define ASN1_F_D2I_GENERAL_NAME 230
|
||||
#define ASN1_F_D2I_NETSCAPE_CERT_SEQUENCE 228
|
||||
#define ASN1_F_D2I_NETSCAPE_PKEY 140
|
||||
#define ASN1_F_D2I_NETSCAPE_RSA 141
|
||||
#define ASN1_F_D2I_NETSCAPE_RSA_2 142
|
||||
@@ -673,6 +763,7 @@ ASN1_BMPSTRING *d2i_ASN1_BMPSTRING();
|
||||
#define ASN1_F_D2I_PKCS7_SIGNED 152
|
||||
#define ASN1_F_D2I_PKCS7_SIGNER_INFO 153
|
||||
#define ASN1_F_D2I_PKCS7_SIGN_ENVELOPE 154
|
||||
#define ASN1_F_D2I_PKEY_USAGE_PERIOD 239
|
||||
#define ASN1_F_D2I_PRIVATEKEY 155
|
||||
#define ASN1_F_D2I_PUBLICKEY 156
|
||||
#define ASN1_F_D2I_RSAPRIVATEKEY 157
|
||||
@@ -694,7 +785,9 @@ ASN1_BMPSTRING *d2i_ASN1_BMPSTRING();
|
||||
#define ASN1_F_D2I_X509_REVOKED 173
|
||||
#define ASN1_F_D2I_X509_SIG 174
|
||||
#define ASN1_F_D2I_X509_VAL 175
|
||||
#define ASN1_F_GENERAL_NAME_NEW 231
|
||||
#define ASN1_F_I2D_ASN1_HEADER 176
|
||||
#define ASN1_F_I2D_ASN1_TIME 225
|
||||
#define ASN1_F_I2D_DHPARAMS 177
|
||||
#define ASN1_F_I2D_DSAPARAMS 178
|
||||
#define ASN1_F_I2D_DSAPRIVATEKEY 179
|
||||
@@ -707,6 +800,7 @@ ASN1_BMPSTRING *d2i_ASN1_BMPSTRING();
|
||||
#define ASN1_F_I2D_RSAPUBLICKEY 186
|
||||
#define ASN1_F_I2D_X509_ATTRIBUTE 187
|
||||
#define ASN1_F_I2T_ASN1_OBJECT 188
|
||||
#define ASN1_F_NETSCAPE_CERT_SEQUENCE_NEW 229
|
||||
#define ASN1_F_NETSCAPE_PKEY_NEW 189
|
||||
#define ASN1_F_NETSCAPE_SPKAC_NEW 190
|
||||
#define ASN1_F_NETSCAPE_SPKI_NEW 191
|
||||
@@ -720,6 +814,7 @@ ASN1_BMPSTRING *d2i_ASN1_BMPSTRING();
|
||||
#define ASN1_F_PKCS7_SIGNED_NEW 199
|
||||
#define ASN1_F_PKCS7_SIGNER_INFO_NEW 200
|
||||
#define ASN1_F_PKCS7_SIGN_ENVELOPE_NEW 201
|
||||
#define ASN1_F_PKEY_USAGE_PERIOD_NEW 240
|
||||
#define ASN1_F_X509_ALGOR_NEW 202
|
||||
#define ASN1_F_X509_ATTRIBUTE_NEW 203
|
||||
#define ASN1_F_X509_CINF_NEW 204
|
||||
@@ -755,13 +850,17 @@ ASN1_BMPSTRING *d2i_ASN1_BMPSTRING();
|
||||
#define ASN1_R_DATA_IS_WRONG 110
|
||||
#define ASN1_R_DECODING_ERROR 111
|
||||
#define ASN1_R_ERROR_PARSING_SET_ELEMENT 112
|
||||
#define ASN1_R_EXPECTING_AN_ENUMERATED 154
|
||||
#define ASN1_R_EXPECTING_AN_INTEGER 113
|
||||
#define ASN1_R_EXPECTING_AN_OBJECT 114
|
||||
#define ASN1_R_EXPECTING_AN_OCTET_STRING 115
|
||||
#define ASN1_R_EXPECTING_A_BIT_STRING 116
|
||||
#define ASN1_R_EXPECTING_A_BOOLEAN 117
|
||||
#define ASN1_R_EXPECTING_A_GENERALIZEDTIME 151
|
||||
#define ASN1_R_EXPECTING_A_TIME 152
|
||||
#define ASN1_R_EXPECTING_A_UTCTIME 118
|
||||
#define ASN1_R_FIRST_NUM_TOO_LARGE 119
|
||||
#define ASN1_R_GENERALIZEDTIME_TOO_LONG 153
|
||||
#define ASN1_R_HEADER_TOO_LONG 120
|
||||
#define ASN1_R_INVALID_DIGIT 121
|
||||
#define ASN1_R_INVALID_SEPARATOR 122
|
||||
|
||||
@@ -64,12 +64,16 @@
|
||||
static ERR_STRING_DATA ASN1_str_functs[]=
|
||||
{
|
||||
{ERR_PACK(0,ASN1_F_A2D_ASN1_OBJECT,0), "a2d_ASN1_OBJECT"},
|
||||
{ERR_PACK(0,ASN1_F_A2I_ASN1_ENUMERATED,0), "a2i_ASN1_ENUMERATED"},
|
||||
{ERR_PACK(0,ASN1_F_A2I_ASN1_INTEGER,0), "a2i_ASN1_INTEGER"},
|
||||
{ERR_PACK(0,ASN1_F_A2I_ASN1_STRING,0), "a2i_ASN1_STRING"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_COLLATE_PRIMATIVE,0), "ASN1_COLLATE_PRIMATIVE"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_D2I_BIO,0), "ASN1_d2i_bio"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_D2I_FP,0), "ASN1_d2i_fp"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_DUP,0), "ASN1_dup"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_ENUMERATED_SET,0), "ASN1_ENUMERATED_set"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_ENUMERATED_TO_BN,0), "ASN1_ENUMERATED_to_BN"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_GENERALIZEDTIME_NEW,0), "ASN1_GENERALIZEDTIME_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_GET_OBJECT,0), "ASN1_get_object"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_HEADER_NEW,0), "ASN1_HEADER_new"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_I2D_BIO,0), "ASN1_i2d_bio"},
|
||||
@@ -85,24 +89,34 @@ static ERR_STRING_DATA ASN1_str_functs[]=
|
||||
{ERR_PACK(0,ASN1_F_ASN1_TYPE_NEW,0), "ASN1_TYPE_new"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_UTCTIME_NEW,0), "ASN1_UTCTIME_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_ASN1_VERIFY,0), "ASN1_VERIFY"},
|
||||
{ERR_PACK(0,ASN1_F_AUTHORITY_KEYID_NEW,0), "AUTHORITY_KEYID_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_BASIC_CONSTRAINTS_NEW,0), "BASIC_CONSTRAINTS_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_BN_TO_ASN1_ENUMERATED,0), "BN_to_ASN1_ENUMERATED"},
|
||||
{ERR_PACK(0,ASN1_F_BN_TO_ASN1_INTEGER,0), "BN_to_ASN1_INTEGER"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_BIT_STRING,0), "d2i_ASN1_BIT_STRING"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_BMPSTRING,0), "d2i_ASN1_BMPSTRING"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_BOOLEAN,0), "d2i_ASN1_BOOLEAN"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_BYTES,0), "d2i_ASN1_bytes"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_ENUMERATED,0), "d2i_ASN1_ENUMERATED"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_GENERALIZEDTIME,0), "d2i_ASN1_GENERALIZEDTIME"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_HEADER,0), "d2i_ASN1_HEADER"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_INTEGER,0), "d2i_ASN1_INTEGER"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_OBJECT,0), "d2i_ASN1_OBJECT"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_OCTET_STRING,0), "d2i_ASN1_OCTET_STRING"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_PRINT_TYPE,0), "D2I_ASN1_PRINT_TYPE"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_SET,0), "d2i_ASN1_SET"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_TIME,0), "d2i_ASN1_TIME"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_TYPE,0), "d2i_ASN1_TYPE"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_TYPE_BYTES,0), "d2i_ASN1_type_bytes"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_ASN1_UTCTIME,0), "d2i_ASN1_UTCTIME"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_AUTHORITY_KEYID,0), "D2I_AUTHORITY_KEYID"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_BASIC_CONSTRAINTS,0), "D2I_BASIC_CONSTRAINTS"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_DHPARAMS,0), "D2I_DHPARAMS"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_DSAPARAMS,0), "D2I_DSAPARAMS"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_DSAPRIVATEKEY,0), "D2I_DSAPRIVATEKEY"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_DSAPUBLICKEY,0), "D2I_DSAPUBLICKEY"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_GENERAL_NAME,0), "D2I_GENERAL_NAME"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_NETSCAPE_CERT_SEQUENCE,0), "D2I_NETSCAPE_CERT_SEQUENCE"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_NETSCAPE_PKEY,0), "D2I_NETSCAPE_PKEY"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_NETSCAPE_RSA,0), "D2I_NETSCAPE_RSA"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_NETSCAPE_RSA_2,0), "D2I_NETSCAPE_RSA_2"},
|
||||
@@ -118,6 +132,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
|
||||
{ERR_PACK(0,ASN1_F_D2I_PKCS7_SIGNED,0), "D2I_PKCS7_SIGNED"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_PKCS7_SIGNER_INFO,0), "D2I_PKCS7_SIGNER_INFO"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_PKCS7_SIGN_ENVELOPE,0), "D2I_PKCS7_SIGN_ENVELOPE"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_PKEY_USAGE_PERIOD,0), "D2I_PKEY_USAGE_PERIOD"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_PRIVATEKEY,0), "D2I_PRIVATEKEY"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_PUBLICKEY,0), "D2I_PUBLICKEY"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_RSAPRIVATEKEY,0), "D2I_RSAPRIVATEKEY"},
|
||||
@@ -139,7 +154,9 @@ static ERR_STRING_DATA ASN1_str_functs[]=
|
||||
{ERR_PACK(0,ASN1_F_D2I_X509_REVOKED,0), "D2I_X509_REVOKED"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_X509_SIG,0), "D2I_X509_SIG"},
|
||||
{ERR_PACK(0,ASN1_F_D2I_X509_VAL,0), "D2I_X509_VAL"},
|
||||
{ERR_PACK(0,ASN1_F_GENERAL_NAME_NEW,0), "GENERAL_NAME_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_I2D_ASN1_HEADER,0), "i2d_ASN1_HEADER"},
|
||||
{ERR_PACK(0,ASN1_F_I2D_ASN1_TIME,0), "i2d_ASN1_TIME"},
|
||||
{ERR_PACK(0,ASN1_F_I2D_DHPARAMS,0), "I2D_DHPARAMS"},
|
||||
{ERR_PACK(0,ASN1_F_I2D_DSAPARAMS,0), "I2D_DSAPARAMS"},
|
||||
{ERR_PACK(0,ASN1_F_I2D_DSAPRIVATEKEY,0), "I2D_DSAPRIVATEKEY"},
|
||||
@@ -152,6 +169,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
|
||||
{ERR_PACK(0,ASN1_F_I2D_RSAPUBLICKEY,0), "I2D_RSAPUBLICKEY"},
|
||||
{ERR_PACK(0,ASN1_F_I2D_X509_ATTRIBUTE,0), "I2D_X509_ATTRIBUTE"},
|
||||
{ERR_PACK(0,ASN1_F_I2T_ASN1_OBJECT,0), "i2t_ASN1_OBJECT"},
|
||||
{ERR_PACK(0,ASN1_F_NETSCAPE_CERT_SEQUENCE_NEW,0), "NETSCAPE_CERT_SEQUENCE_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_NETSCAPE_PKEY_NEW,0), "NETSCAPE_PKEY_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_NETSCAPE_SPKAC_NEW,0), "NETSCAPE_SPKAC_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_NETSCAPE_SPKI_NEW,0), "NETSCAPE_SPKI_NEW"},
|
||||
@@ -165,6 +183,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
|
||||
{ERR_PACK(0,ASN1_F_PKCS7_SIGNED_NEW,0), "PKCS7_SIGNED_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_PKCS7_SIGNER_INFO_NEW,0), "PKCS7_SIGNER_INFO_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_PKCS7_SIGN_ENVELOPE_NEW,0), "PKCS7_SIGN_ENVELOPE_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_PKEY_USAGE_PERIOD_NEW,0), "PKEY_USAGE_PERIOD_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_X509_ALGOR_NEW,0), "X509_ALGOR_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_X509_ATTRIBUTE_NEW,0), "X509_ATTRIBUTE_NEW"},
|
||||
{ERR_PACK(0,ASN1_F_X509_CINF_NEW,0), "X509_CINF_NEW"},
|
||||
@@ -203,13 +222,17 @@ static ERR_STRING_DATA ASN1_str_reasons[]=
|
||||
{ASN1_R_DATA_IS_WRONG ,"data is wrong"},
|
||||
{ASN1_R_DECODING_ERROR ,"decoding error"},
|
||||
{ASN1_R_ERROR_PARSING_SET_ELEMENT ,"error parsing set element"},
|
||||
{ASN1_R_EXPECTING_AN_ENUMERATED ,"expecting an enumerated"},
|
||||
{ASN1_R_EXPECTING_AN_INTEGER ,"expecting an integer"},
|
||||
{ASN1_R_EXPECTING_AN_OBJECT ,"expecting an object"},
|
||||
{ASN1_R_EXPECTING_AN_OCTET_STRING ,"expecting an octet string"},
|
||||
{ASN1_R_EXPECTING_A_BIT_STRING ,"expecting a bit string"},
|
||||
{ASN1_R_EXPECTING_A_BOOLEAN ,"expecting a boolean"},
|
||||
{ASN1_R_EXPECTING_A_GENERALIZEDTIME ,"expecting a generalizedtime"},
|
||||
{ASN1_R_EXPECTING_A_TIME ,"expecting a time"},
|
||||
{ASN1_R_EXPECTING_A_UTCTIME ,"expecting a utctime"},
|
||||
{ASN1_R_FIRST_NUM_TOO_LARGE ,"first num too large"},
|
||||
{ASN1_R_GENERALIZEDTIME_TOO_LONG ,"generalizedtime too long"},
|
||||
{ASN1_R_HEADER_TOO_LONG ,"header too long"},
|
||||
{ASN1_R_INVALID_DIGIT ,"invalid digit"},
|
||||
{ASN1_R_INVALID_SEPARATOR ,"invalid separator"},
|
||||
|
||||
@@ -69,7 +69,7 @@ static int asn1_get_length();
|
||||
static void asn1_put_length();
|
||||
#endif
|
||||
|
||||
char *ASN1_version="ASN1 part of SSLeay 0.9.1a 06-Jul-1998";
|
||||
char *ASN1_version="ASN.1" OPENSSL_VERSION_PTEXT;
|
||||
|
||||
int ASN1_check_infinite_end(p,len)
|
||||
unsigned char **p;
|
||||
|
||||
@@ -134,15 +134,20 @@ err:\
|
||||
M_ASN1_D2I_get(b,func); \
|
||||
}
|
||||
|
||||
#define M_ASN1_D2I_get_imp(b,func, type) \
|
||||
M_ASN1_next=(_tmp& V_ASN1_CONSTRUCTED)|type; \
|
||||
c.q=c.p; \
|
||||
if (func(&(b),&c.p,c.slen) == NULL) \
|
||||
{c.line=__LINE__; M_ASN1_next_prev = _tmp; goto err; } \
|
||||
c.slen-=(c.p-c.q);\
|
||||
M_ASN1_next_prev=_tmp;
|
||||
|
||||
#define M_ASN1_D2I_get_IMP_opt(b,func,tag,type) \
|
||||
if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) == \
|
||||
(V_ASN1_CONTEXT_SPECIFIC|(tag)))) \
|
||||
{ \
|
||||
unsigned char tmp; \
|
||||
tmp=M_ASN1_next; \
|
||||
M_ASN1_next=(tmp& ~V_ASN1_PRIMATIVE_TAG)|type; \
|
||||
M_ASN1_D2I_get(b,func); \
|
||||
M_ASN1_next_prev=tmp; \
|
||||
unsigned char _tmp = M_ASN1_next; \
|
||||
M_ASN1_D2I_get_imp(b,func, type);\
|
||||
}
|
||||
|
||||
#define M_ASN1_D2I_get_set(r,func,free_func) \
|
||||
@@ -162,6 +167,10 @@ err:\
|
||||
if ((a != NULL) && (sk_num(a) != 0)) \
|
||||
M_ASN1_I2D_put_SET(a,f);
|
||||
|
||||
#define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \
|
||||
if ((a != NULL) && (sk_num(a) != 0)) \
|
||||
M_ASN1_I2D_put_SEQUENCE(a,f);
|
||||
|
||||
#define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \
|
||||
if ((c.slen != 0) && \
|
||||
(M_ASN1_next == \
|
||||
@@ -209,8 +218,16 @@ err:\
|
||||
if (Tinf & 0x80) \
|
||||
{ c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \
|
||||
c.line=__LINE__; goto err; } \
|
||||
if (Tinf == (V_ASN1_CONSTRUCTED+1)) \
|
||||
Tlen = c.slen - (c.p - c.q) - 2; \
|
||||
if (func(&(r),&c.p,Tlen) == NULL) \
|
||||
{ c.line=__LINE__; goto err; } \
|
||||
if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \
|
||||
Tlen = c.slen - (c.p - c.q); \
|
||||
if(!ASN1_check_infinite_end(&c.p, Tlen)) \
|
||||
{ c.error=ERR_R_MISSING_ASN1_EOS; \
|
||||
c.line=__LINE__; goto err; } \
|
||||
}\
|
||||
c.slen-=(c.p-c.q); \
|
||||
}
|
||||
|
||||
@@ -226,10 +243,18 @@ err:\
|
||||
if (Tinf & 0x80) \
|
||||
{ c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \
|
||||
c.line=__LINE__; goto err; } \
|
||||
if (Tinf == (V_ASN1_CONSTRUCTED+1)) \
|
||||
Tlen = c.slen - (c.p - c.q) - 2; \
|
||||
if (d2i_ASN1_SET(&(r),&c.p,Tlen,(char *(*)())func, \
|
||||
(void (*)())free_func, \
|
||||
b,V_ASN1_UNIVERSAL) == NULL) \
|
||||
{ c.line=__LINE__; goto err; } \
|
||||
if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \
|
||||
Tlen = c.slen - (c.p - c.q); \
|
||||
if(!ASN1_check_infinite_end(&c.p, Tlen)) \
|
||||
{ c.error=ERR_R_MISSING_ASN1_EOS; \
|
||||
c.line=__LINE__; goto err; } \
|
||||
}\
|
||||
c.slen-=(c.p-c.q); \
|
||||
}
|
||||
|
||||
@@ -262,21 +287,32 @@ err:\
|
||||
#define M_ASN1_I2D_len_IMP_opt(a,f) if (a != NULL) M_ASN1_I2D_len(a,f)
|
||||
|
||||
#define M_ASN1_I2D_len_SET(a,f) \
|
||||
ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SET,V_ASN1_UNIVERSAL);
|
||||
ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET);
|
||||
|
||||
#define M_ASN1_I2D_len_SEQ(a,f) \
|
||||
ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
|
||||
#define M_ASN1_I2D_len_SEQUENCE(a,f) \
|
||||
ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \
|
||||
IS_SEQUENCE);
|
||||
|
||||
#define M_ASN1_I2D_len_SEQ_opt(a,f) \
|
||||
#define M_ASN1_I2D_len_SEQUENCE_opt(a,f) \
|
||||
if ((a != NULL) && (sk_num(a) != 0)) \
|
||||
M_ASN1_I2D_len_SEQ(a,f);
|
||||
M_ASN1_I2D_len_SEQUENCE(a,f);
|
||||
|
||||
#define M_ASN1_I2D_len_IMP_set(a,f,x) \
|
||||
ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC);
|
||||
#define M_ASN1_I2D_len_IMP_SET(a,f,x) \
|
||||
ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET);
|
||||
|
||||
#define M_ASN1_I2D_len_IMP_set_opt(a,f,x) \
|
||||
#define M_ASN1_I2D_len_IMP_SET_opt(a,f,x) \
|
||||
if ((a != NULL) && (sk_num(a) != 0)) \
|
||||
ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC);
|
||||
ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
|
||||
IS_SET);
|
||||
|
||||
#define M_ASN1_I2D_len_IMP_SEQUENCE(a,f,x) \
|
||||
ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
|
||||
IS_SEQUENCE);
|
||||
|
||||
#define M_ASN1_I2D_len_IMP_SEQUENCE_opt(a,f,x) \
|
||||
if ((a != NULL) && (sk_num(a) != 0)) \
|
||||
ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
|
||||
IS_SEQUENCE);
|
||||
|
||||
#define M_ASN1_I2D_len_EXP_opt(a,f,mtag,v) \
|
||||
if (a != NULL)\
|
||||
@@ -285,10 +321,18 @@ err:\
|
||||
ret+=ASN1_object_size(1,v,mtag); \
|
||||
}
|
||||
|
||||
#define M_ASN1_I2D_len_EXP_set_opt(a,f,mtag,tag,v) \
|
||||
#define M_ASN1_I2D_len_EXP_SET_opt(a,f,mtag,tag,v) \
|
||||
if ((a != NULL) && (sk_num(a) != 0))\
|
||||
{ \
|
||||
v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL); \
|
||||
v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL,IS_SET); \
|
||||
ret+=ASN1_object_size(1,v,mtag); \
|
||||
}
|
||||
|
||||
#define M_ASN1_I2D_len_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \
|
||||
if ((a != NULL) && (sk_num(a) != 0))\
|
||||
{ \
|
||||
v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL, \
|
||||
IS_SEQUENCE); \
|
||||
ret+=ASN1_object_size(1,v,mtag); \
|
||||
}
|
||||
|
||||
@@ -304,20 +348,28 @@ err:\
|
||||
}
|
||||
|
||||
#define M_ASN1_I2D_put_SET(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SET,\
|
||||
V_ASN1_UNIVERSAL)
|
||||
#define M_ASN1_I2D_put_IMP_set(a,f,x) i2d_ASN1_SET(a,&p,f,x,\
|
||||
V_ASN1_CONTEXT_SPECIFIC)
|
||||
V_ASN1_UNIVERSAL,IS_SET)
|
||||
#define M_ASN1_I2D_put_IMP_SET(a,f,x) i2d_ASN1_SET(a,&p,f,x,\
|
||||
V_ASN1_CONTEXT_SPECIFIC,IS_SET)
|
||||
#define M_ASN1_I2D_put_IMP_SEQUENCE(a,f,x) i2d_ASN1_SET(a,&p,f,x,\
|
||||
V_ASN1_CONTEXT_SPECIFIC,IS_SEQUENCE)
|
||||
|
||||
#define M_ASN1_I2D_put_SEQ(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SEQUENCE,\
|
||||
V_ASN1_UNIVERSAL)
|
||||
#define M_ASN1_I2D_put_SEQUENCE(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SEQUENCE,\
|
||||
V_ASN1_UNIVERSAL,IS_SEQUENCE)
|
||||
|
||||
#define M_ASN1_I2D_put_SEQ_opt(a,f) \
|
||||
#define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \
|
||||
if ((a != NULL) && (sk_num(a) != 0)) \
|
||||
M_ASN1_I2D_put_SEQ(a,f);
|
||||
M_ASN1_I2D_put_SEQUENCE(a,f);
|
||||
|
||||
#define M_ASN1_I2D_put_IMP_set_opt(a,f,x) \
|
||||
#define M_ASN1_I2D_put_IMP_SET_opt(a,f,x) \
|
||||
if ((a != NULL) && (sk_num(a) != 0)) \
|
||||
{ i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC); }
|
||||
{ i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \
|
||||
IS_SET); }
|
||||
|
||||
#define M_ASN1_I2D_put_IMP_SEQUENCE_opt(a,f,x) \
|
||||
if ((a != NULL) && (sk_num(a) != 0)) \
|
||||
{ i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \
|
||||
IS_SEQUENCE); }
|
||||
|
||||
#define M_ASN1_I2D_put_EXP_opt(a,f,tag,v) \
|
||||
if (a != NULL) \
|
||||
@@ -326,11 +378,18 @@ err:\
|
||||
f(a,&p); \
|
||||
}
|
||||
|
||||
#define M_ASN1_I2D_put_EXP_set_opt(a,f,mtag,tag,v) \
|
||||
#define M_ASN1_I2D_put_EXP_SET_opt(a,f,mtag,tag,v) \
|
||||
if ((a != NULL) && (sk_num(a) != 0)) \
|
||||
{ \
|
||||
ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \
|
||||
i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL); \
|
||||
i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SET); \
|
||||
}
|
||||
|
||||
#define M_ASN1_I2D_put_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \
|
||||
if ((a != NULL) && (sk_num(a) != 0)) \
|
||||
{ \
|
||||
ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \
|
||||
i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \
|
||||
}
|
||||
|
||||
#define M_ASN1_I2D_seq_total() \
|
||||
|
||||
@@ -108,6 +108,8 @@ int indent;
|
||||
p="BOOLEAN";
|
||||
else if (tag == V_ASN1_INTEGER)
|
||||
p="INTEGER";
|
||||
else if (tag == V_ASN1_ENUMERATED)
|
||||
p="ENUMERATED";
|
||||
else if (tag == V_ASN1_BIT_STRING)
|
||||
p="BIT STRING";
|
||||
else if (tag == V_ASN1_OCTET_STRING)
|
||||
@@ -371,6 +373,38 @@ int indent;
|
||||
}
|
||||
ASN1_INTEGER_free(bs);
|
||||
}
|
||||
else if (tag == V_ASN1_ENUMERATED)
|
||||
{
|
||||
ASN1_ENUMERATED *bs;
|
||||
int i;
|
||||
|
||||
opp=op;
|
||||
bs=d2i_ASN1_ENUMERATED(NULL,&opp,len+hl);
|
||||
if (bs != NULL)
|
||||
{
|
||||
if (BIO_write(bp,":",1) <= 0) goto end;
|
||||
if (bs->type == V_ASN1_NEG_ENUMERATED)
|
||||
if (BIO_write(bp,"-",1) <= 0)
|
||||
goto end;
|
||||
for (i=0; i<bs->length; i++)
|
||||
{
|
||||
if (BIO_printf(bp,"%02X",
|
||||
bs->data[i]) <= 0)
|
||||
goto end;
|
||||
}
|
||||
if (bs->length == 0)
|
||||
{
|
||||
if (BIO_write(bp,"00",2) <= 0)
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (BIO_write(bp,"BAD ENUMERATED",11) <= 0)
|
||||
goto end;
|
||||
}
|
||||
ASN1_ENUMERATED_free(bs);
|
||||
}
|
||||
|
||||
if (!nl)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* perl/p5SSLeay.h */
|
||||
/* crypto/asn1/f_enum.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -55,42 +55,159 @@
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "EXTERN.h"
|
||||
#include "perl.h"
|
||||
#include "XSUB.h"
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
typedef struct datum_st
|
||||
{
|
||||
char *dptr;
|
||||
int dsize;
|
||||
} datum;
|
||||
|
||||
#include "crypto.h"
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "buffer.h"
|
||||
#include "bio.h"
|
||||
#include "evp.h"
|
||||
#include "err.h"
|
||||
#include "x509.h"
|
||||
#include "ssl.h"
|
||||
|
||||
#if 0
|
||||
#define pr_name(name) printf("%s\n",name)
|
||||
#define pr_name_d(name,p2) printf("%s %d\n",name,p2)
|
||||
#define pr_name_dd(name,p2,p3) printf("%s %d %d\n",name,p2,p3)
|
||||
#else
|
||||
#define pr_name(name)
|
||||
#define pr_name_d(name,p2)
|
||||
#define pr_name_dd(name,p2,p3)
|
||||
#endif
|
||||
/* Based on a_int.c: equivalent ENUMERATED functions */
|
||||
|
||||
SV *new_ref(char *type, char *obj, int mort);
|
||||
int ex_new(char *obj,SV *data,CRYPTO_EX_DATA *ad,int idx,long argl,char *argp);
|
||||
void ex_cleanup(char *obj,SV *data,CRYPTO_EX_DATA *ad,int idx,
|
||||
long argl,char *argp);
|
||||
int i2a_ASN1_ENUMERATED(bp, a)
|
||||
BIO *bp;
|
||||
ASN1_ENUMERATED *a;
|
||||
{
|
||||
int i,n=0;
|
||||
static char *h="0123456789ABCDEF";
|
||||
char buf[2];
|
||||
|
||||
if (a == NULL) return(0);
|
||||
|
||||
if (a->length == 0)
|
||||
{
|
||||
if (BIO_write(bp,"00",2) != 2) goto err;
|
||||
n=2;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i=0; i<a->length; i++)
|
||||
{
|
||||
if ((i != 0) && (i%35 == 0))
|
||||
{
|
||||
if (BIO_write(bp,"\\\n",2) != 2) goto err;
|
||||
n+=2;
|
||||
}
|
||||
buf[0]=h[((unsigned char)a->data[i]>>4)&0x0f];
|
||||
buf[1]=h[((unsigned char)a->data[i] )&0x0f];
|
||||
if (BIO_write(bp,buf,2) != 2) goto err;
|
||||
n+=2;
|
||||
}
|
||||
}
|
||||
return(n);
|
||||
err:
|
||||
return(-1);
|
||||
}
|
||||
|
||||
int a2i_ASN1_ENUMERATED(bp,bs,buf,size)
|
||||
BIO *bp;
|
||||
ASN1_ENUMERATED *bs;
|
||||
char *buf;
|
||||
int size;
|
||||
{
|
||||
int ret=0;
|
||||
int i,j,k,m,n,again,bufsize;
|
||||
unsigned char *s=NULL,*sp;
|
||||
unsigned char *bufp;
|
||||
int num=0,slen=0,first=1;
|
||||
|
||||
bs->type=V_ASN1_ENUMERATED;
|
||||
|
||||
bufsize=BIO_gets(bp,buf,size);
|
||||
for (;;)
|
||||
{
|
||||
if (bufsize < 1) goto err_sl;
|
||||
i=bufsize;
|
||||
if (buf[i-1] == '\n') buf[--i]='\0';
|
||||
if (i == 0) goto err_sl;
|
||||
if (buf[i-1] == '\r') buf[--i]='\0';
|
||||
if (i == 0) goto err_sl;
|
||||
again=(buf[i-1] == '\\');
|
||||
|
||||
for (j=0; j<i; j++)
|
||||
{
|
||||
if (!( ((buf[j] >= '0') && (buf[j] <= '9')) ||
|
||||
((buf[j] >= 'a') && (buf[j] <= 'f')) ||
|
||||
((buf[j] >= 'A') && (buf[j] <= 'F'))))
|
||||
{
|
||||
i=j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
buf[i]='\0';
|
||||
/* We have now cleared all the crap off the end of the
|
||||
* line */
|
||||
if (i < 2) goto err_sl;
|
||||
|
||||
bufp=(unsigned char *)buf;
|
||||
if (first)
|
||||
{
|
||||
first=0;
|
||||
if ((bufp[0] == '0') && (buf[1] == '0'))
|
||||
{
|
||||
bufp+=2;
|
||||
i-=2;
|
||||
}
|
||||
}
|
||||
k=0;
|
||||
i-=again;
|
||||
if (i%2 != 0)
|
||||
{
|
||||
ASN1err(ASN1_F_A2I_ASN1_ENUMERATED,ASN1_R_ODD_NUMBER_OF_CHARS);
|
||||
goto err;
|
||||
}
|
||||
i/=2;
|
||||
if (num+i > slen)
|
||||
{
|
||||
if (s == NULL)
|
||||
sp=(unsigned char *)Malloc(
|
||||
(unsigned int)num+i*2);
|
||||
else
|
||||
sp=(unsigned char *)Realloc(s,
|
||||
(unsigned int)num+i*2);
|
||||
if (sp == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_A2I_ASN1_ENUMERATED,ERR_R_MALLOC_FAILURE);
|
||||
if (s != NULL) Free((char *)s);
|
||||
goto err;
|
||||
}
|
||||
s=sp;
|
||||
slen=num+i*2;
|
||||
}
|
||||
for (j=0; j<i; j++,k+=2)
|
||||
{
|
||||
for (n=0; n<2; n++)
|
||||
{
|
||||
m=bufp[k+n];
|
||||
if ((m >= '0') && (m <= '9'))
|
||||
m-='0';
|
||||
else if ((m >= 'a') && (m <= 'f'))
|
||||
m=m-'a'+10;
|
||||
else if ((m >= 'A') && (m <= 'F'))
|
||||
m=m-'A'+10;
|
||||
else
|
||||
{
|
||||
ASN1err(ASN1_F_A2I_ASN1_ENUMERATED,ASN1_R_NON_HEX_CHARACTERS);
|
||||
goto err;
|
||||
}
|
||||
s[num+j]<<=4;
|
||||
s[num+j]|=m;
|
||||
}
|
||||
}
|
||||
num+=i;
|
||||
if (again)
|
||||
bufsize=BIO_gets(bp,buf,size);
|
||||
else
|
||||
break;
|
||||
}
|
||||
bs->length=num;
|
||||
bs->data=s;
|
||||
ret=1;
|
||||
err:
|
||||
if (0)
|
||||
{
|
||||
err_sl:
|
||||
ASN1err(ASN1_F_A2I_ASN1_ENUMERATED,ASN1_R_SHORT_LINE);
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
126
crypto/asn1/nsseq.c
Normal file
126
crypto/asn1/nsseq.c
Normal file
@@ -0,0 +1,126 @@
|
||||
/* nsseq.c */
|
||||
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||
* project 1999.
|
||||
*/
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1999 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* licensing@OpenSSL.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "asn1_mac.h"
|
||||
#include "err.h"
|
||||
#include "x509.h"
|
||||
#include "objects.h"
|
||||
|
||||
/* Netscape certificate sequence structure */
|
||||
|
||||
/*
|
||||
* ASN1err(ASN1_F_NETSCAPE_CERT_SEQUENCE_NEW,ERR_R_MALLOC_FAILURE);
|
||||
* ASN1err(ASN1_F_D2I_NETSCAPE_CERT_SEQUENCE,ERR_R_MALLOC_FAILURE);
|
||||
*/
|
||||
|
||||
int i2d_NETSCAPE_CERT_SEQUENCE(a,pp)
|
||||
NETSCAPE_CERT_SEQUENCE *a;
|
||||
unsigned char **pp;
|
||||
{
|
||||
int v = 0;
|
||||
M_ASN1_I2D_vars(a);
|
||||
M_ASN1_I2D_len (a->type, i2d_ASN1_OBJECT);
|
||||
M_ASN1_I2D_len_EXP_SEQUENCE_opt(a->certs, i2d_X509, 0,
|
||||
V_ASN1_SEQUENCE, v);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put (a->type, i2d_ASN1_OBJECT);
|
||||
M_ASN1_I2D_put_EXP_SEQUENCE_opt(a->certs, i2d_X509, 0,
|
||||
V_ASN1_SEQUENCE, v);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
NETSCAPE_CERT_SEQUENCE *NETSCAPE_CERT_SEQUENCE_new()
|
||||
{
|
||||
NETSCAPE_CERT_SEQUENCE *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
M_ASN1_New_Malloc(ret, NETSCAPE_CERT_SEQUENCE);
|
||||
/* Note hardcoded object type */
|
||||
ret->type = OBJ_nid2obj(NID_netscape_cert_sequence);
|
||||
ret->certs = NULL;
|
||||
return (ret);
|
||||
M_ASN1_New_Error(ASN1_F_NETSCAPE_CERT_SEQUENCE_NEW);
|
||||
}
|
||||
|
||||
NETSCAPE_CERT_SEQUENCE *d2i_NETSCAPE_CERT_SEQUENCE(a,pp,length)
|
||||
NETSCAPE_CERT_SEQUENCE **a;
|
||||
unsigned char **pp;
|
||||
long length;
|
||||
{
|
||||
M_ASN1_D2I_vars(a,NETSCAPE_CERT_SEQUENCE *,
|
||||
NETSCAPE_CERT_SEQUENCE_new);
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get (ret->type, d2i_ASN1_OBJECT);
|
||||
M_ASN1_D2I_get_EXP_set_opt(ret->certs, d2i_X509, X509_free, 0,
|
||||
V_ASN1_SEQUENCE);
|
||||
M_ASN1_D2I_Finish(a, NETSCAPE_CERT_SEQUENCE_free, ASN1_F_D2I_NETSCAPE_CERT_SEQUENCE);
|
||||
}
|
||||
|
||||
void NETSCAPE_CERT_SEQUENCE_free (a)
|
||||
NETSCAPE_CERT_SEQUENCE *a;
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_OBJECT_free(a->type);
|
||||
if(a->certs) sk_pop_free(a->certs, X509_free);
|
||||
Free ((char *)a);
|
||||
}
|
||||
@@ -267,6 +267,9 @@ PKCS7 *a;
|
||||
void PKCS7_content_free(a)
|
||||
PKCS7 *a;
|
||||
{
|
||||
if(a == NULL)
|
||||
return;
|
||||
|
||||
if (a->asn1 != NULL) Free((char *)a->asn1);
|
||||
|
||||
if (a->d.ptr != NULL)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user