Compare commits
303 Commits
OpenSSL_0_
...
OpenSSL-fi
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6d0a5219aa | ||
![]() |
63fc9883c5 | ||
![]() |
d1321464f6 | ||
![]() |
a0055fbef4 | ||
![]() |
2f9048b8a1 | ||
![]() |
d73ed541db | ||
![]() |
e6e5592a50 | ||
![]() |
663bbb6367 | ||
![]() |
98ced05c56 | ||
![]() |
5b75e1cff4 | ||
![]() |
f36a8c2060 | ||
![]() |
90ac9ec264 | ||
![]() |
fe5c4c885b | ||
![]() |
1950e8acea | ||
![]() |
437bafa5cc | ||
![]() |
7c78f06301 | ||
![]() |
b27278d0cf | ||
![]() |
24a69a8196 | ||
![]() |
b3049d696b | ||
![]() |
77b265f48c | ||
![]() |
735b9eeed5 | ||
![]() |
67c31c4b61 | ||
![]() |
0406ce2646 | ||
![]() |
76108ba7eb | ||
![]() |
4d27e3d339 | ||
![]() |
7d59e441ca | ||
![]() |
3e3c47d5d5 | ||
![]() |
03b7b4690c | ||
![]() |
0fd9322af1 | ||
![]() |
7016b1952e | ||
![]() |
ff3e014820 | ||
![]() |
50cd0f0eb3 | ||
![]() |
32098b7565 | ||
![]() |
bf4131fbf9 | ||
![]() |
2ac869590f | ||
![]() |
4742bc0f6f | ||
![]() |
02e483d236 | ||
![]() |
1a58139aaa | ||
![]() |
a32f4770e9 | ||
![]() |
086d475ffb | ||
![]() |
7f1288da93 | ||
![]() |
0a6e92a88f | ||
![]() |
36eaa70621 | ||
![]() |
d7dc9a7ce3 | ||
![]() |
319e19db9c | ||
![]() |
ef85b85b12 | ||
![]() |
4d4d27a2a0 | ||
![]() |
8f0d89092e | ||
![]() |
c4a2cab0bb | ||
![]() |
6d73d35f4f | ||
![]() |
f53e66af67 | ||
![]() |
5cbe626d26 | ||
![]() |
fe93a60b00 | ||
![]() |
5e10ca5618 | ||
![]() |
4e8da09800 | ||
![]() |
203ae57fe0 | ||
![]() |
529c33f1e8 | ||
![]() |
af18a34478 | ||
![]() |
da5c0127ac | ||
![]() |
ce0e12d29a | ||
![]() |
87339c6290 | ||
![]() |
0a22e7446b | ||
![]() |
b56cb7c6ea | ||
![]() |
cd5ab329f2 | ||
![]() |
80106dc5fb | ||
![]() |
0fa79cbe17 | ||
![]() |
be22102d82 | ||
![]() |
1ad95f8217 | ||
![]() |
5f1211834f | ||
![]() |
28feb1f8da | ||
![]() |
9596d1e63b | ||
![]() |
626bebeede | ||
![]() |
dfe42a131f | ||
![]() |
1970bc2703 | ||
![]() |
08debe11f8 | ||
![]() |
9c7e058216 | ||
![]() |
b01e8b2063 | ||
![]() |
100868d1cf | ||
![]() |
0712210f03 | ||
![]() |
8431a6aaf5 | ||
![]() |
2b4a783f66 | ||
![]() |
25df4a81cc | ||
![]() |
23830280e4 | ||
![]() |
bfdfc67b01 | ||
![]() |
4764a0543d | ||
![]() |
d92b0efbb8 | ||
![]() |
b329cc2410 | ||
![]() |
ed31fe68ff | ||
![]() |
8fa41c6696 | ||
![]() |
707a028c8b | ||
![]() |
9593bc46bf | ||
![]() |
5c65d38219 | ||
![]() |
1b8b2d9300 | ||
![]() |
4e1778b0d8 | ||
![]() |
982c67fbaa | ||
![]() |
2ef2463643 | ||
![]() |
585eb117d4 | ||
![]() |
7c27ac1030 | ||
![]() |
475631c31a | ||
![]() |
218ba8cb9d | ||
![]() |
e881c00515 | ||
![]() |
6c3fca2b10 | ||
![]() |
0225c7a41e | ||
![]() |
a334b0436d | ||
![]() |
af13a3949d | ||
![]() |
ffc35e73b4 | ||
![]() |
a197212e0f | ||
![]() |
8944220221 | ||
![]() |
5fd76ba57a | ||
![]() |
df50ec372e | ||
![]() |
49fa74385d | ||
![]() |
899f528c1a | ||
![]() |
5faa5a9476 | ||
![]() |
ddb0cb5bfd | ||
![]() |
b2d65cbac7 | ||
![]() |
6be8288928 | ||
![]() |
9fe07b7cf0 | ||
![]() |
0c86c87c60 | ||
![]() |
e20d6ef3d6 | ||
![]() |
27f50994ff | ||
![]() |
53c381105a | ||
![]() |
33d0ef8fde | ||
![]() |
b2acf7a572 | ||
![]() |
e8d2d9478d | ||
![]() |
23b3b61921 | ||
![]() |
d265676989 | ||
![]() |
69fc3dff96 | ||
![]() |
667731b635 | ||
![]() |
a416ca47ac | ||
![]() |
2714e2ac89 | ||
![]() |
1139eeecbc | ||
![]() |
1b936a5e37 | ||
![]() |
0cca0fe0c2 | ||
![]() |
56474376dc | ||
![]() |
3e511f167e | ||
![]() |
282af42404 | ||
![]() |
a81f337331 | ||
![]() |
1729dca9a8 | ||
![]() |
9719193222 | ||
![]() |
e6fa7c1276 | ||
![]() |
cf7053430d | ||
![]() |
ff03c6bc97 | ||
![]() |
82c8b6b74d | ||
![]() |
cb6fdc3a49 | ||
![]() |
8c3b5d5f27 | ||
![]() |
dc83f2e312 | ||
![]() |
6693e26927 | ||
![]() |
793364457b | ||
![]() |
6b05350495 | ||
![]() |
daec9a56a0 | ||
![]() |
5c77786a55 | ||
![]() |
42bc3582a9 | ||
![]() |
2050f6514f | ||
![]() |
5068d7dda4 | ||
![]() |
55768cf773 | ||
![]() |
6c69dcd9f5 | ||
![]() |
ad4297dd9c | ||
![]() |
aeb9ccfaad | ||
![]() |
79b335a4b5 | ||
![]() |
dcc309548e | ||
![]() |
8eae0ff0f7 | ||
![]() |
5c4a07551e | ||
![]() |
b443a0ea5d | ||
![]() |
1f4a5a3339 | ||
![]() |
20fb51b1a7 | ||
![]() |
551bfa60e0 | ||
![]() |
ab50cf18db | ||
![]() |
31c0a38482 | ||
![]() |
91c88deafe | ||
![]() |
a91cb15daa | ||
![]() |
d2890f6223 | ||
![]() |
1ce5bb27e4 | ||
![]() |
04262cee42 | ||
![]() |
a5a1e71e86 | ||
![]() |
06d2a382c4 | ||
![]() |
4630a51537 | ||
![]() |
01f2ee2bc6 | ||
![]() |
def5aefa7f | ||
![]() |
5ba7d69c66 | ||
![]() |
cf81dc74bd | ||
![]() |
46c646225d | ||
![]() |
d18c4d09d1 | ||
![]() |
e5ad779b69 | ||
![]() |
cb36743161 | ||
![]() |
fb3eab3562 | ||
![]() |
2724bcac2f | ||
![]() |
3431c07a66 | ||
![]() |
9abf011643 | ||
![]() |
75cdb055e6 | ||
![]() |
f4207058b8 | ||
![]() |
900b1eb869 | ||
![]() |
e3b61b1e57 | ||
![]() |
750779da07 | ||
![]() |
157f01a8ef | ||
![]() |
491923fde1 | ||
![]() |
273f5726a5 | ||
![]() |
a37778046d | ||
![]() |
8a087e57d2 | ||
![]() |
e384fd9418 | ||
![]() |
f6e32f9db4 | ||
![]() |
66bb600b05 | ||
![]() |
c3b2d69945 | ||
![]() |
619991cc3e | ||
![]() |
3c410172b7 | ||
![]() |
56319ad00e | ||
![]() |
f7832889d3 | ||
![]() |
46fdad292a | ||
![]() |
da99684a8e | ||
![]() |
2130ee35d9 | ||
![]() |
15f239a4a3 | ||
![]() |
223ab84726 | ||
![]() |
94d66c3182 | ||
![]() |
a0dd62bdb7 | ||
![]() |
fd6d2e0754 | ||
![]() |
4a4d3c02f2 | ||
![]() |
7abd533793 | ||
![]() |
b1816f93e1 | ||
![]() |
e1904f9eec | ||
![]() |
9f3d5018c4 | ||
![]() |
768729afbe | ||
![]() |
0c96e35c42 | ||
![]() |
72e2934909 | ||
![]() |
26d96f26da | ||
![]() |
5fcc83ed1e | ||
![]() |
9ecb20f1de | ||
![]() |
b611ff350c | ||
![]() |
7f790e0575 | ||
![]() |
dccf15ee25 | ||
![]() |
89d8a20f22 | ||
![]() |
782f8600fa | ||
![]() |
f2008fe3fd | ||
![]() |
70b3786ffe | ||
![]() |
b48fb91edd | ||
![]() |
8a19891b2a | ||
![]() |
f35d0948eb | ||
![]() |
d0f2c1bb81 | ||
![]() |
7ba410f9a5 | ||
![]() |
36c2be5645 | ||
![]() |
0869cd2676 | ||
![]() |
4ac5596a86 | ||
![]() |
3df76b15ed | ||
![]() |
9b3cce3d00 | ||
![]() |
c8a2f669f3 | ||
![]() |
04a2a836f7 | ||
![]() |
d39e69c95a | ||
![]() |
69ffdb2d46 | ||
![]() |
e301a26ade | ||
![]() |
2ed0cf8eef | ||
![]() |
1c2cbe6fcc | ||
![]() |
023616e32d | ||
![]() |
b2703470e0 | ||
![]() |
452cd79114 | ||
![]() |
9eaca0079f | ||
![]() |
bbaf3c2b40 | ||
![]() |
ce147f8998 | ||
![]() |
4e99f848d8 | ||
![]() |
358cf2f6e8 | ||
![]() |
407c2c1106 | ||
![]() |
2e8aaf94c2 | ||
![]() |
3108a80b09 | ||
![]() |
bfa3933c8b | ||
![]() |
40b4a633a1 | ||
![]() |
fc784cbc5c | ||
![]() |
d20b5c2043 | ||
![]() |
fdf45c44be | ||
![]() |
68b08c56c2 | ||
![]() |
4416eec8ca | ||
![]() |
709af3877d | ||
![]() |
8651ba5d45 | ||
![]() |
efbb2cb4e5 | ||
![]() |
dec45d606f | ||
![]() |
6dfd1801fe | ||
![]() |
d8242c65b3 | ||
![]() |
ee42430cc8 | ||
![]() |
da3fe316cf | ||
![]() |
c8214d6c8b | ||
![]() |
063b216760 | ||
![]() |
65f0a05325 | ||
![]() |
952b6955c0 | ||
![]() |
6f74afaa57 | ||
![]() |
3edefe670a | ||
![]() |
a461d307f2 | ||
![]() |
89a4dad179 | ||
![]() |
1ea2fda9dc | ||
![]() |
f41dcf3d50 | ||
![]() |
1e6031eeb7 | ||
![]() |
d9e61666c9 | ||
![]() |
2f07e0d591 | ||
![]() |
b0a3d8dd27 | ||
![]() |
a7100590fe | ||
![]() |
7b1ef38609 | ||
![]() |
3f5602ce04 | ||
![]() |
be0dccdd9e | ||
![]() |
50a4d84e79 | ||
![]() |
0135aa9888 | ||
![]() |
692e644df6 | ||
![]() |
3b72341958 | ||
![]() |
3a0278b211 | ||
![]() |
304ba9fa78 | ||
![]() |
4484703f5e | ||
![]() |
6b7751ac2c | ||
![]() |
7af4688a8f | ||
![]() |
d8360c3a8a |
@@ -11,10 +11,8 @@ maketest.log
|
|||||||
cctest
|
cctest
|
||||||
cctest.c
|
cctest.c
|
||||||
cctest.a
|
cctest.a
|
||||||
|
libcrypto.so.*
|
||||||
|
libssl.so.*
|
||||||
*.flc
|
*.flc
|
||||||
semantic.cache
|
semantic.cache
|
||||||
Makefile
|
Makefile
|
||||||
*.so*
|
|
||||||
*.dll*
|
|
||||||
*.sl*
|
|
||||||
*.dylib*
|
|
||||||
|
@@ -1,25 +0,0 @@
|
|||||||
The OpenSSL project depends on volunteer efforts and financial support from
|
|
||||||
the end user community. That support comes in the form of donations and paid
|
|
||||||
sponsorships, software support contracts, paid consulting services
|
|
||||||
and commissioned software development.
|
|
||||||
|
|
||||||
Since all these activities support the continued development and improvement
|
|
||||||
of OpenSSL we consider all these clients and customers as sponsors of the
|
|
||||||
OpenSSL project.
|
|
||||||
|
|
||||||
We would like to identify and thank the following such sponsors for their past
|
|
||||||
or current significant support of the OpenSSL project:
|
|
||||||
|
|
||||||
Very significant support:
|
|
||||||
|
|
||||||
OpenGear: www.opengear.com
|
|
||||||
|
|
||||||
Significant support:
|
|
||||||
|
|
||||||
PSW Group: www.psw.net
|
|
||||||
|
|
||||||
Please note that we ask permission to identify sponsors and that some sponsors
|
|
||||||
we consider eligible for inclusion here have requested to remain anonymous.
|
|
||||||
|
|
||||||
Additional sponsorship or financial support is always welcome: for more
|
|
||||||
information please contact the OpenSSL Software Foundation.
|
|
924
CHANGES
924
CHANGES
@@ -2,696 +2,311 @@
|
|||||||
OpenSSL CHANGES
|
OpenSSL CHANGES
|
||||||
_______________
|
_______________
|
||||||
|
|
||||||
Changes between 0.9.8r and 0.9.8s [4 Jan 2012]
|
Changes between 0.9.8e and 0.9.8f-fips [xx XXX xxxx]
|
||||||
|
|
||||||
*) Nadhem Alfardan and Kenny Paterson have discovered an extension
|
|
||||||
of the Vaudenay padding oracle attack on CBC mode encryption
|
|
||||||
which enables an efficient plaintext recovery attack against
|
|
||||||
the OpenSSL implementation of DTLS. Their attack exploits timing
|
|
||||||
differences arising during decryption processing. A research
|
|
||||||
paper describing this attack can be found at:
|
|
||||||
http://www.isg.rhul.ac.uk/~kp/dtls.pdf
|
|
||||||
Thanks go to Nadhem Alfardan and Kenny Paterson of the Information
|
|
||||||
Security Group at Royal Holloway, University of London
|
|
||||||
(www.isg.rhul.ac.uk) for discovering this flaw and to Robin Seggelmann
|
|
||||||
<seggelmann@fh-muenster.de> and Michael Tuexen <tuexen@fh-muenster.de>
|
|
||||||
for preparing the fix. (CVE-2011-4108)
|
|
||||||
[Robin Seggelmann, Michael Tuexen]
|
|
||||||
|
|
||||||
*) Stop policy check failure freeing same buffer twice. (CVE-2011-4109)
|
*) Add option --with-fipslibdir to specify location of fipscanister.lib
|
||||||
[Ben Laurie, Kasper <ekasper@google.com>]
|
and friends. When combined with fips build option fipscanister.lib is
|
||||||
|
not built but linked from the supplied directory. Always link fips
|
||||||
*) Clear bytes used for block padding of SSL 3.0 records.
|
utilities against fiscanister.lib only except in fipsdso builds.
|
||||||
(CVE-2011-4576)
|
|
||||||
[Adam Langley (Google)]
|
|
||||||
|
|
||||||
*) Only allow one SGC handshake restart for SSL/TLS. (CVE-2011-4619)
|
|
||||||
[Adam Langley (Google)]
|
|
||||||
|
|
||||||
*) Prevent malformed RFC3779 data triggering an assertion failure.
|
|
||||||
Thanks to Andrew Chi, BBN Technologies, for discovering the flaw
|
|
||||||
and Rob Austein <sra@hactrn.net> for fixing it. (CVE-2011-4577)
|
|
||||||
[Rob Austein <sra@hactrn.net>]
|
|
||||||
|
|
||||||
*) Fix ssl_ciph.c set-up race.
|
|
||||||
[Adam Langley (Google)]
|
|
||||||
|
|
||||||
*) Fix spurious failures in ecdsatest.c.
|
|
||||||
[Emilia K<>sper (Google)]
|
|
||||||
|
|
||||||
*) Fix the BIO_f_buffer() implementation (which was mixing different
|
|
||||||
interpretations of the '..._len' fields).
|
|
||||||
[Adam Langley (Google)]
|
|
||||||
|
|
||||||
*) Fix handling of BN_BLINDING: now BN_BLINDING_invert_ex (rather than
|
|
||||||
BN_BLINDING_invert_ex) calls BN_BLINDING_update, ensuring that concurrent
|
|
||||||
threads won't reuse the same blinding coefficients.
|
|
||||||
|
|
||||||
This also avoids the need to obtain the CRYPTO_LOCK_RSA_BLINDING
|
|
||||||
lock to call BN_BLINDING_invert_ex, and avoids one use of
|
|
||||||
BN_BLINDING_update for each BN_BLINDING structure (previously,
|
|
||||||
the last update always remained unused).
|
|
||||||
[Emilia K<>sper (Google)]
|
|
||||||
|
|
||||||
*) Fix SSL memory handling for (EC)DH ciphersuites, in particular
|
|
||||||
for multi-threaded use of ECDH.
|
|
||||||
[Adam Langley (Google)]
|
|
||||||
|
|
||||||
*) Fix x509_name_ex_d2i memory leak on bad inputs.
|
|
||||||
[Bodo Moeller]
|
|
||||||
|
|
||||||
*) Add protection against ECDSA timing attacks as mentioned in the paper
|
|
||||||
by Billy Bob Brumley and Nicola Tuveri, see:
|
|
||||||
|
|
||||||
http://eprint.iacr.org/2011/232.pdf
|
|
||||||
|
|
||||||
[Billy Bob Brumley and Nicola Tuveri]
|
|
||||||
|
|
||||||
Changes between 0.9.8q and 0.9.8r [8 Feb 2011]
|
|
||||||
|
|
||||||
*) Fix parsing of OCSP stapling ClientHello extension. CVE-2011-0014
|
|
||||||
[Neel Mehta, Adam Langley, Bodo Moeller (Google)]
|
|
||||||
|
|
||||||
*) Fix bug in string printing code: if *any* escaping is enabled we must
|
|
||||||
escape the escape character (backslash) or the resulting string is
|
|
||||||
ambiguous.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
Changes between 0.9.8p and 0.9.8q [2 Dec 2010]
|
*) Add SSE2 instruction support to WIN32 build. These will be compiled
|
||||||
|
by default and used if an appopriate CPU is detected. Some older versions
|
||||||
*) Disable code workaround for ancient and obsolete Netscape browsers
|
of NASM or MASM which don't support SSE2 will need to be updated.
|
||||||
and servers: an attacker can use it in a ciphersuite downgrade attack.
|
|
||||||
Thanks to Martin Rex for discovering this bug. CVE-2010-4180
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Fixed J-PAKE implementation error, originally discovered by
|
*) Tolerate DigestInfo structure with absent parameters in FIPS mode
|
||||||
Sebastien Martini, further info and confirmation from Stefan
|
(as required by several standards).
|
||||||
Arentz and Feng Hao. Note that this fix is a security fix. CVE-2010-4252
|
|
||||||
[Ben Laurie]
|
|
||||||
|
|
||||||
Changes between 0.9.8o and 0.9.8p [16 Nov 2010]
|
|
||||||
|
|
||||||
*) Fix extension code to avoid race conditions which can result in a buffer
|
|
||||||
overrun vulnerability: resumed sessions must not be modified as they can
|
|
||||||
be shared by multiple threads. CVE-2010-3864
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Fix for double free bug in ssl/s3_clnt.c CVE-2010-2939
|
*) Enhance mkfipsscr.pl to cope with different directory layouts. It now
|
||||||
|
relies on the filename and makes no assumptions about the pathname.
|
||||||
|
In the case of PSS it scans the file to determine the salt length.
|
||||||
|
Paths can be filtered. Also reports duplicate and missing files.
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Don't reencode certificate when calculating signature: cache and use
|
*) Updates to WIN32 build system. Make use of AES assembly language routines.
|
||||||
the original encoding instead. This makes signature verification of
|
Use assembly language routines in FIPS compilation.
|
||||||
some broken encodings work correctly.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) ec2_GF2m_simple_mul bugfix: compute correct result if the output EC_POINT
|
*) Use standard implementations of SHAx, DES, AES under crypto/ in FIPS
|
||||||
is also one of the inputs.
|
mode to avoid having to maintain two versions. This will also make use
|
||||||
[Emilia K<>sper <emilia.kasper@esat.kuleuven.be> (Google)]
|
of appropriate assembly language optimizations.
|
||||||
|
|
||||||
*) Don't repeatedly append PBE algorithms to table if they already exist.
|
|
||||||
Sort table on each new add. This effectively makes the table read only
|
|
||||||
after all algorithms are added and subsequent calls to PKCS12_pbe_add
|
|
||||||
etc are non-op.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
Changes between 0.9.8n and 0.9.8o [01 Jun 2010]
|
*) Check for selftest status in all crypto operations and exit with a
|
||||||
|
fatal error if selftest failed.
|
||||||
[NB: OpenSSL 0.9.8o and later 0.9.8 patch levels were released after
|
|
||||||
OpenSSL 1.0.0.]
|
|
||||||
|
|
||||||
*) Correct a typo in the CMS ASN1 module which can result in invalid memory
|
|
||||||
access or freeing data twice (CVE-2010-0742)
|
|
||||||
[Steve Henson, Ronald Moesbergen <intercommit@gmail.com>]
|
|
||||||
|
|
||||||
*) Add SHA2 algorithms to SSL_library_init(). SHA2 is becoming far more
|
|
||||||
common in certificates and some applications which only call
|
|
||||||
SSL_library_init and not OpenSSL_add_all_algorithms() will fail.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) VMS fixes:
|
*) New flag in EVP_CIPHER: EVP_CIPH_FLAG_DEFAULT_ASN1. This will
|
||||||
Reduce copying into .apps and .test in makevms.com
|
automatically use EVP_CIPHER_{get,set}_asn1_iv and avoid the
|
||||||
Don't try to use blank CA certificate in CA.com
|
need for any ASN1 dependencies in FIPS library. Move AES and 3DES
|
||||||
Allow use of C files from original directories in maketests.com
|
cipher definitions to fips library and modify AES and 3DES algorithm
|
||||||
[Steven M. Schweda" <sms@antinode.info>]
|
tests and self tests to use EVP.
|
||||||
|
|
||||||
Changes between 0.9.8m and 0.9.8n [24 Mar 2010]
|
|
||||||
|
|
||||||
*) When rejecting SSL/TLS records due to an incorrect version number, never
|
|
||||||
update s->server with a new major version number. As of
|
|
||||||
- OpenSSL 0.9.8m if 'short' is a 16-bit type,
|
|
||||||
- OpenSSL 0.9.8f if 'short' is longer than 16 bits,
|
|
||||||
the previous behavior could result in a read attempt at NULL when
|
|
||||||
receiving specific incorrect SSL/TLS records once record payload
|
|
||||||
protection is active. (CVE-2010-0740)
|
|
||||||
[Bodo Moeller, Adam Langley <agl@chromium.org>]
|
|
||||||
|
|
||||||
*) Fix for CVE-2010-0433 where some kerberos enabled versions of OpenSSL
|
|
||||||
could be crashed if the relevant tables were not present (e.g. chrooted).
|
|
||||||
[Tomas Hoger <thoger@redhat.com>]
|
|
||||||
|
|
||||||
Changes between 0.9.8l and 0.9.8m [25 Feb 2010]
|
|
||||||
|
|
||||||
*) Always check bn_wexpend() return values for failure. (CVE-2009-3245)
|
|
||||||
[Martin Olsson, Neel Mehta]
|
|
||||||
|
|
||||||
*) Fix X509_STORE locking: Every 'objs' access requires a lock (to
|
|
||||||
accommodate for stack sorting, always a write lock!).
|
|
||||||
[Bodo Moeller]
|
|
||||||
|
|
||||||
*) On some versions of WIN32 Heap32Next is very slow. This can cause
|
|
||||||
excessive delays in the RAND_poll(): over a minute. As a workaround
|
|
||||||
include a time check in the inner Heap32Next loop too.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) The code that handled flushing of data in SSL/TLS originally used the
|
*) Move EVP cipher code into enc_min.c to support a minimal implementation
|
||||||
BIO_CTRL_INFO ctrl to see if any data was pending first. This caused
|
for use by FIPS applications.
|
||||||
the problem outlined in PR#1949. The fix suggested there however can
|
|
||||||
trigger problems with buggy BIO_CTRL_WPENDING (e.g. some versions
|
|
||||||
of Apache). So instead simplify the code to flush unconditionally.
|
|
||||||
This should be fine since flushing with no data to flush is a no op.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Handle TLS versions 2.0 and later properly and correctly use the
|
*) Add algorithm config module. Currently just handles setting FIPS mode.
|
||||||
highest version of TLS/SSL supported. Although TLS >= 2.0 is some way
|
|
||||||
off ancient servers have a habit of sticking around for a while...
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Modify compression code so it frees up structures without using the
|
*) Rewrite self tests and pairwise tests to use EVP. Add more extensive
|
||||||
ex_data callbacks. This works around a problem where some applications
|
self tests for RSA in all digests and modes.
|
||||||
call CRYPTO_cleanup_all_ex_data() before application exit (e.g. when
|
|
||||||
restarting) then use compression (e.g. SSL with compression) later.
|
|
||||||
This results in significant per-connection memory leaks and
|
|
||||||
has caused some security issues including CVE-2008-1678 and
|
|
||||||
CVE-2009-4355.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Constify crypto/cast (i.e., <openssl/cast.h>): a CAST_KEY doesn't
|
*) New flags RSA_FIPS_METHOD and DSA_FIPS_METHOD to indicate a method is
|
||||||
change when encrypting or decrypting.
|
allowed in FIPS mode. Disable direct low level RSA and DSA signature
|
||||||
[Bodo Moeller]
|
operations in FIPS mode so all operations have to be made via EVP.
|
||||||
|
|
||||||
*) Add option SSL_OP_LEGACY_SERVER_CONNECT which will allow clients to
|
|
||||||
connect and renegotiate with servers which do not support RI.
|
|
||||||
Until RI is more widely deployed this option is enabled by default.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Add "missing" ssl ctrls to clear options and mode.
|
*) New flag EVP_MD_FLAG_SVCTX which passes EVP_MD_CTX and key to underlying
|
||||||
|
sign/verify method. This permits the method to perform finalization
|
||||||
|
and signing itself and have access to the EVP_MD_CTX structure in case
|
||||||
|
additional parameters are needed. Modify fips_{dsa,rsa}_{sign,verify}
|
||||||
|
to use EVP_MD_FLAG_SVCTX and support PSS and X9.31 RSA modes.
|
||||||
|
Modify RSA algorithm test programs to use new parameters.
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) If client attempts to renegotiate and doesn't support RI respond with
|
*) Add small standalone ASN1 encoder/decoder to handle DSA signature format.
|
||||||
a no_renegotiation alert as required by RFC5746. Some renegotiating
|
Modify test, algorithm test and selftest routines to use EVP for DSA.
|
||||||
TLS clients will continue a connection gracefully when they receive
|
Move FIPS implementation of EVP_sha*() and EVP_dss1() under fips-1.0.
|
||||||
the alert. Unfortunately OpenSSL mishandled this alert and would hang
|
|
||||||
waiting for a server hello which it will never receive. Now we treat a
|
|
||||||
received no_renegotiation alert as a fatal error. This is because
|
|
||||||
applications requesting a renegotiation might well expect it to succeed
|
|
||||||
and would have no code in place to handle the server denying it so the
|
|
||||||
only safe thing to do is to terminate the connection.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Add ctrl macro SSL_get_secure_renegotiation_support() which returns 1 if
|
*) Modify VC++ build system to rename .text and .rdata segments in
|
||||||
peer supports secure renegotiation and 0 otherwise. Print out peer
|
FIPS sources to .fipst${a,b,c}, and $fipsr${a,b,c} and place them
|
||||||
renegotiation support in s_client/s_server.
|
in a static library fipscanister.lib using a perl script. These are
|
||||||
|
then combined by the VC++ linker into a single segment in suffix
|
||||||
|
order but without the suffix (i.e. .fipstx, .fipsrd and .fipsda).
|
||||||
|
This serves the same purpose as fipscanister.o on other platforms
|
||||||
|
but has the advantage that it can be created using only standard VC++
|
||||||
|
utilities.
|
||||||
|
[Steve Henson and Andy Polyakov]
|
||||||
|
|
||||||
|
*) Modify WIN32 build system to forward references functions implemented
|
||||||
|
in FIPS DLL.
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Replace the highly broken and deprecated SPKAC certification method with
|
*) Move error library so that all lhash dependencies are in a separate
|
||||||
the updated NID creation version. This should correctly handle UTF8.
|
file. Include a simplified ERR_get_state() function for stand alone
|
||||||
|
FIPS applications. Include a initialization function OPENSSL_init()
|
||||||
|
to set all callbacks, automatically call OPENSSL_init() once when
|
||||||
|
a cipher or digest is added. This should mean that almost all applications
|
||||||
|
set the callbacks automatically. Exceptional cases can call OPENSSL_init()
|
||||||
|
manually like this:
|
||||||
|
|
||||||
|
#ifdef OPENSSL_HAVE_INIT
|
||||||
|
OPENSSL_init();
|
||||||
|
#endif
|
||||||
|
before starting any threads.
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Implement RFC5746. Re-enable renegotiation but require the extension
|
*) Collect common functions into header file "fips_utl.h".
|
||||||
as needed. Unfortunately, SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION
|
|
||||||
turns out to be a bad idea. It has been replaced by
|
|
||||||
SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION which can be set with
|
|
||||||
SSL_CTX_set_options(). This is really not recommended unless you
|
|
||||||
know what you are doing.
|
|
||||||
[Eric Rescorla <ekr@networkresonance.com>, Ben Laurie, Steve Henson]
|
|
||||||
|
|
||||||
*) Fixes to stateless session resumption handling. Use initial_ctx when
|
|
||||||
issuing and attempting to decrypt tickets in case it has changed during
|
|
||||||
servername handling. Use a non-zero length session ID when attempting
|
|
||||||
stateless session resumption: this makes it possible to determine if
|
|
||||||
a resumption has occurred immediately after receiving server hello
|
|
||||||
(several places in OpenSSL subtly assume this) instead of later in
|
|
||||||
the handshake.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) The functions ENGINE_ctrl(), OPENSSL_isservice(),
|
*) Only enable dynamic lock functionality in CRYPTO_lock() when it is really
|
||||||
CMS_get1_RecipientRequest() and RAND_bytes() can return <=0 on error
|
needed. Move some lock functionality into new file dyn_lck.c .
|
||||||
fixes for a few places where the return code is not checked
|
This further reduces FIPS dependencies allowing the complete removal
|
||||||
correctly.
|
of STACK and OBJ_bsearch().
|
||||||
[Julia Lawall <julia@diku.dk>]
|
|
||||||
|
|
||||||
*) Add --strict-warnings option to Configure script to include devteam
|
|
||||||
warnings in other configurations.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Add support for --libdir option and LIBDIR variable in makefiles. This
|
*) Reduce FIPS test program dependencies by providing stand alone
|
||||||
makes it possible to install openssl libraries in locations which
|
versions of some existing functions in libcrypto. Avoid use
|
||||||
have names other than "lib", for example "/usr/lib64" which some
|
of BIOs by converting to system stdio. Move some functions in FIPS
|
||||||
systems need.
|
files: e.g. all use of BIO_printf().
|
||||||
[Steve Henson, based on patch from Jeremy Utley]
|
|
||||||
|
|
||||||
*) Don't allow the use of leading 0x80 in OIDs. This is a violation of
|
|
||||||
X690 8.9.12 and can produce some misleading textual output of OIDs.
|
|
||||||
[Steve Henson, reported by Dan Kaminsky]
|
|
||||||
|
|
||||||
*) Delete MD2 from algorithm tables. This follows the recommendation in
|
|
||||||
several standards that it is not used in new applications due to
|
|
||||||
several cryptographic weaknesses. For binary compatibility reasons
|
|
||||||
the MD2 API is still compiled in by default.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Add compression id to {d2i,i2d}_SSL_SESSION so it is correctly saved
|
*) Modify build of libcrypto in FIPS mode by using a perl
|
||||||
and restored.
|
script "arx.pl" which calls the archiver specifically
|
||||||
|
excluding any FIPS dependencies in libcrypto.
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) Rename uni2asc and asc2uni functions to OPENSSL_uni2asc and
|
*) Port OpenSSL 0.9.7 FIPS code to 0.9.8. Convert to new
|
||||||
OPENSSL_asc2uni conditionally on Netware platforms to avoid a name
|
Makefile form. Update Configure. Convert and update
|
||||||
clash.
|
FIPS source files. Update libcrypto, libssl and apps
|
||||||
[Guenter <lists@gknw.net>]
|
with additional functionality from 0.9.7 FIPS code.
|
||||||
|
Update Windows build system.
|
||||||
*) Fix the server certificate chain building code to use X509_verify_cert(),
|
|
||||||
it used to have an ad-hoc builder which was unable to cope with anything
|
|
||||||
other than a simple chain.
|
|
||||||
[David Woodhouse <dwmw2@infradead.org>, Steve Henson]
|
|
||||||
|
|
||||||
*) Don't check self signed certificate signatures in X509_verify_cert()
|
|
||||||
by default (a flag can override this): it just wastes time without
|
|
||||||
adding any security. As a useful side effect self signed root CAs
|
|
||||||
with non-FIPS digests are now usable in FIPS mode.
|
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
*) In dtls1_process_out_of_seq_message() the check if the current message
|
Changes between 0.9.8e and 0.9.8f [23 Feb 2007]
|
||||||
is already buffered was missing. For every new message was memory
|
|
||||||
allocated, allowing an attacker to perform an denial of service attack
|
*) Mitigate branch prediction attacks, which can be practical if a
|
||||||
with sending out of seq handshake messages until there is no memory
|
single processor is shared, allowing a spy process to extract
|
||||||
left. Additionally every future messege was buffered, even if the
|
information. For detailed background information, see
|
||||||
sequence number made no sense and would be part of another handshake.
|
http://eprint.iacr.org/2007/039 (O. Aciicmez, S. Gueron,
|
||||||
So only messages with sequence numbers less than 10 in advance will be
|
J.-P. Seifert, "New Branch Prediction Vulnerabilities in OpenSSL
|
||||||
buffered. (CVE-2009-1378)
|
and Necessary Software Countermeasures"). The core of the change
|
||||||
[Robin Seggelmann, discovered by Daniel Mentz]
|
are new versions BN_div_no_branch() and
|
||||||
|
BN_mod_inverse_no_branch() of BN_div() and BN_mod_inverse(),
|
||||||
*) Records are buffered if they arrive with a future epoch to be
|
respectively, which are slower, but avoid the security-relevant
|
||||||
processed after finishing the corresponding handshake. There is
|
conditional branches. These are automatically called by BN_div()
|
||||||
currently no limitation to this buffer allowing an attacker to perform
|
and BN_mod_inverse() if the flag BN_FLG_CONSTTIME is set for the
|
||||||
a DOS attack with sending records with future epochs until there is no
|
modulus. Also, BN_is_bit_set() has been changed to remove a
|
||||||
memory left. This patch adds the pqueue_size() function to detemine
|
conditional branch.
|
||||||
the size of a buffer and limits the record buffer to 100 entries.
|
|
||||||
(CVE-2009-1377)
|
BN_FLG_CONSTTIME is the new name for the previous
|
||||||
[Robin Seggelmann, discovered by Daniel Mentz]
|
BN_FLG_EXP_CONSTTIME flag, since it now affects more than just
|
||||||
|
modular exponentiation. (Since OpenSSL 0.9.7h, setting this flag
|
||||||
*) Keep a copy of frag->msg_header.frag_len so it can be used after the
|
in the exponent causes BN_mod_exp_mont() to use the alternative
|
||||||
parent structure is freed. (CVE-2009-1379)
|
implementation in BN_mod_exp_mont_consttime().) The old name
|
||||||
[Daniel Mentz]
|
remains as a deprecated alias.
|
||||||
|
|
||||||
*) Handle non-blocking I/O properly in SSL_shutdown() call.
|
Similary, RSA_FLAG_NO_EXP_CONSTTIME is replaced by a more general
|
||||||
[Darryl Miles <darryl-mailinglists@netbauds.net>]
|
RSA_FLAG_NO_CONSTTIME flag since the RSA implementation now uses
|
||||||
|
constant-time implementations for more than just exponentiation.
|
||||||
*) Add 2.5.4.* OIDs
|
Here too the old name is kept as a deprecated alias.
|
||||||
[Ilya O. <vrghost@gmail.com>]
|
|
||||||
|
BN_BLINDING_new() will now use BN_dup() for the modulus so that
|
||||||
Changes between 0.9.8k and 0.9.8l [5 Nov 2009]
|
the BN_BLINDING structure gets an independent copy of the
|
||||||
|
modulus. This means that the previous "BIGNUM *m" argument to
|
||||||
*) Disable renegotiation completely - this fixes a severe security
|
BN_BLINDING_new() and to BN_BLINDING_create_param() now
|
||||||
problem (CVE-2009-3555) at the cost of breaking all
|
essentially becomes "const BIGNUM *m", although we can't actually
|
||||||
renegotiation. Renegotiation can be re-enabled by setting
|
change this in the header file before 0.9.9. It allows
|
||||||
SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION in s3->flags at
|
RSA_setup_blinding() to use BN_with_flags() on the modulus to
|
||||||
run-time. This is really not recommended unless you know what
|
enable BN_FLG_CONSTTIME.
|
||||||
you're doing.
|
|
||||||
[Ben Laurie]
|
[Matthew D Wood (Intel Corp)]
|
||||||
|
|
||||||
Changes between 0.9.8j and 0.9.8k [25 Mar 2009]
|
*) Mitigate branch prediction attacks, which can be practical if a
|
||||||
|
single processor is shared, allowing a spy process to extract
|
||||||
*) Don't set val to NULL when freeing up structures, it is freed up by
|
information. For detailed background information, see
|
||||||
underlying code. If sizeof(void *) > sizeof(long) this can result in
|
http://eprint.iacr.org/2007/039 (O. Aciicmez, S. Gueron,
|
||||||
zeroing past the valid field. (CVE-2009-0789)
|
J.-P. Seifert, "New Branch Prediction Vulnerabilities in OpenSSL
|
||||||
[Paolo Ganci <Paolo.Ganci@AdNovum.CH>]
|
and Necessary Software Countermeasures"). The core of the change
|
||||||
|
are new versions BN_div_no_branch() and
|
||||||
*) Fix bug where return value of CMS_SignerInfo_verify_content() was not
|
BN_mod_inverse_no_branch() of BN_div() and BN_mod_inverse(),
|
||||||
checked correctly. This would allow some invalid signed attributes to
|
respectively, which are slower, but avoid the security-relevant
|
||||||
appear to verify correctly. (CVE-2009-0591)
|
conditional branches. These are automatically called by BN_div()
|
||||||
[Ivan Nestlerode <inestlerode@us.ibm.com>]
|
and BN_mod_inverse() if the flag BN_FLG_CONSTTIME is set for one
|
||||||
|
of the input BIGNUMs. Also, BN_is_bit_set() has been changed to
|
||||||
*) Reject UniversalString and BMPString types with invalid lengths. This
|
remove a conditional branch.
|
||||||
prevents a crash in ASN1_STRING_print_ex() which assumes the strings have
|
|
||||||
a legal length. (CVE-2009-0590)
|
BN_FLG_CONSTTIME is the new name for the previous
|
||||||
[Steve Henson]
|
BN_FLG_EXP_CONSTTIME flag, since it now affects more than just
|
||||||
|
modular exponentiation. (Since OpenSSL 0.9.7h, setting this flag
|
||||||
*) Set S/MIME signing as the default purpose rather than setting it
|
in the exponent causes BN_mod_exp_mont() to use the alternative
|
||||||
unconditionally. This allows applications to override it at the store
|
implementation in BN_mod_exp_mont_consttime().) The old name
|
||||||
level.
|
remains as a deprecated alias.
|
||||||
[Steve Henson]
|
|
||||||
|
Similary, RSA_FLAG_NO_EXP_CONSTTIME is replaced by a more general
|
||||||
*) Permit restricted recursion of ASN1 strings. This is needed in practice
|
RSA_FLAG_NO_CONSTTIME flag since the RSA implementation now uses
|
||||||
to handle some structures.
|
constant-time implementations for more than just exponentiation.
|
||||||
[Steve Henson]
|
Here too the old name is kept as a deprecated alias.
|
||||||
|
|
||||||
*) Improve efficiency of mem_gets: don't search whole buffer each time
|
BN_BLINDING_new() will now use BN_dup() for the modulus so that
|
||||||
for a '\n'
|
the BN_BLINDING structure gets an independent copy of the
|
||||||
[Jeremy Shapiro <jnshapir@us.ibm.com>]
|
modulus. This means that the previous "BIGNUM *m" argument to
|
||||||
|
BN_BLINDING_new() and to BN_BLINDING_create_param() now
|
||||||
*) New -hex option for openssl rand.
|
essentially becomes "const BIGNUM *m", although we can't actually
|
||||||
[Matthieu Herrb]
|
change this in the header file before 0.9.9. It allows
|
||||||
|
RSA_setup_blinding() to use BN_with_flags() on the modulus to
|
||||||
*) Print out UTF8String and NumericString when parsing ASN1.
|
enable BN_FLG_CONSTTIME.
|
||||||
[Steve Henson]
|
|
||||||
|
[Matthew D Wood (Intel Corp)]
|
||||||
*) Support NumericString type for name components.
|
|
||||||
[Steve Henson]
|
*) Add the Korean symmetric 128-bit cipher SEED (see
|
||||||
|
http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp) and
|
||||||
*) Allow CC in the environment to override the automatically chosen
|
add SEED ciphersuites from RFC 4162:
|
||||||
compiler. Note that nothing is done to ensure flags work with the
|
|
||||||
chosen compiler.
|
TLS_RSA_WITH_SEED_CBC_SHA = "SEED-SHA"
|
||||||
[Ben Laurie]
|
TLS_DHE_DSS_WITH_SEED_CBC_SHA = "DHE-DSS-SEED-SHA"
|
||||||
|
TLS_DHE_RSA_WITH_SEED_CBC_SHA = "DHE-RSA-SEED-SHA"
|
||||||
Changes between 0.9.8i and 0.9.8j [07 Jan 2009]
|
TLS_DH_anon_WITH_SEED_CBC_SHA = "ADH-SEED-SHA"
|
||||||
|
|
||||||
*) Properly check EVP_VerifyFinal() and similar return values
|
To minimize changes between patchlevels in the OpenSSL 0.9.8
|
||||||
(CVE-2008-5077).
|
series, SEED remains excluded from compilation unless OpenSSL
|
||||||
[Ben Laurie, Bodo Moeller, Google Security Team]
|
is configured with 'enable-seed'.
|
||||||
|
[KISA, Bodo Moeller]
|
||||||
*) Enable TLS extensions by default.
|
|
||||||
[Ben Laurie]
|
*) Mitigate branch prediction attacks, which can be practical if a
|
||||||
|
single processor is shared, allowing a spy process to extract
|
||||||
*) Allow the CHIL engine to be loaded, whether the application is
|
information. For detailed background information, see
|
||||||
multithreaded or not. (This does not release the developer from the
|
http://eprint.iacr.org/2007/039 (O. Aciicmez, S. Gueron,
|
||||||
obligation to set up the dynamic locking callbacks.)
|
J.-P. Seifert, "New Branch Prediction Vulnerabilities in OpenSSL
|
||||||
[Sander Temme <sander@temme.net>]
|
and Necessary Software Countermeasures"). The core of the change
|
||||||
|
are new versions BN_div_no_branch() and
|
||||||
*) Use correct exit code if there is an error in dgst command.
|
BN_mod_inverse_no_branch() of BN_div() and BN_mod_inverse(),
|
||||||
[Steve Henson; problem pointed out by Roland Dirlewanger]
|
respectively, which are slower, but avoid the security-relevant
|
||||||
|
conditional branches. These are automatically called by BN_div()
|
||||||
*) Tweak Configure so that you need to say "experimental-jpake" to enable
|
and BN_mod_inverse() if the flag BN_FLG_CONSTTIME is set for one
|
||||||
JPAKE, and need to use -DOPENSSL_EXPERIMENTAL_JPAKE in applications.
|
of the input BIGNUMs. Also, BN_is_bit_set() has been changed to
|
||||||
[Bodo Moeller]
|
remove a conditional branch.
|
||||||
|
|
||||||
*) Add experimental JPAKE support, including demo authentication in
|
BN_FLG_CONSTTIME is the new name for the previous
|
||||||
s_client and s_server.
|
BN_FLG_EXP_CONSTTIME flag, since it now affects more than just
|
||||||
[Ben Laurie]
|
modular exponentiation. (Since OpenSSL 0.9.7h, setting this flag
|
||||||
|
in the exponent causes BN_mod_exp_mont() to use the alternative
|
||||||
*) Set the comparison function in v3_addr_canonize().
|
implementation in BN_mod_exp_mont_consttime().) The old name
|
||||||
[Rob Austein <sra@hactrn.net>]
|
remains as a deprecated alias.
|
||||||
|
|
||||||
*) Add support for XMPP STARTTLS in s_client.
|
Similary, RSA_FLAG_NO_EXP_CONSTTIME is replaced by a more general
|
||||||
[Philip Paeps <philip@freebsd.org>]
|
RSA_FLAG_NO_CONSTTIME flag since the RSA implementation now uses
|
||||||
|
constant-time implementations for more than just exponentiation.
|
||||||
*) Change the server-side SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG behavior
|
Here too the old name is kept as a deprecated alias.
|
||||||
to ensure that even with this option, only ciphersuites in the
|
|
||||||
server's preference list will be accepted. (Note that the option
|
BN_BLINDING_new() will now use BN_dup() for the modulus so that
|
||||||
applies only when resuming a session, so the earlier behavior was
|
the BN_BLINDING structure gets an independent copy of the
|
||||||
just about the algorithm choice for symmetric cryptography.)
|
modulus. This means that the previous "BIGNUM *m" argument to
|
||||||
[Bodo Moeller]
|
BN_BLINDING_new() and to BN_BLINDING_create_param() now
|
||||||
|
essentially becomes "const BIGNUM *m", although we can't actually
|
||||||
Changes between 0.9.8h and 0.9.8i [15 Sep 2008]
|
change this in the header file before 0.9.9. It allows
|
||||||
|
RSA_setup_blinding() to use BN_with_flags() on the modulus to
|
||||||
*) Fix NULL pointer dereference if a DTLS server received
|
enable BN_FLG_CONSTTIME.
|
||||||
ChangeCipherSpec as first record (CVE-2009-1386).
|
|
||||||
[PR #1679]
|
[Matthew D Wood (Intel Corp)]
|
||||||
|
|
||||||
*) Fix a state transitition in s3_srvr.c and d1_srvr.c
|
*) Add the Korean symmetric 128-bit cipher SEED (see
|
||||||
(was using SSL3_ST_CW_CLNT_HELLO_B, should be ..._ST_SW_SRVR_...).
|
http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp) and
|
||||||
[Nagendra Modadugu]
|
add SEED ciphersuites from RFC 4162:
|
||||||
|
|
||||||
*) The fix in 0.9.8c that supposedly got rid of unsafe
|
TLS_RSA_WITH_SEED_CBC_SHA = "SEED-SHA"
|
||||||
double-checked locking was incomplete for RSA blinding,
|
TLS_DHE_DSS_WITH_SEED_CBC_SHA = "DHE-DSS-SEED-SHA"
|
||||||
addressing just one layer of what turns out to have been
|
TLS_DHE_RSA_WITH_SEED_CBC_SHA = "DHE-RSA-SEED-SHA"
|
||||||
doubly unsafe triple-checked locking.
|
TLS_DH_anon_WITH_SEED_CBC_SHA = "ADH-SEED-SHA"
|
||||||
|
|
||||||
So now fix this for real by retiring the MONT_HELPER macro
|
To minimize changes between patchlevels in the OpenSSL 0.9.8
|
||||||
in crypto/rsa/rsa_eay.c.
|
series, SEED remains excluded from compilation unless OpenSSL
|
||||||
|
is configured with 'enable-seed'.
|
||||||
[Bodo Moeller; problem pointed out by Marius Schilder]
|
[KISA, Bodo Moeller]
|
||||||
|
|
||||||
*) Various precautionary measures:
|
*) Mitigate branch prediction attacks, which can be practical if a
|
||||||
|
single processor is shared, allowing a spy process to extract
|
||||||
- Avoid size_t integer overflow in HASH_UPDATE (md32_common.h).
|
information. For detailed background information, see
|
||||||
|
http://eprint.iacr.org/2007/039 (O. Aciicmez, S. Gueron,
|
||||||
- Avoid a buffer overflow in d2i_SSL_SESSION() (ssl_asn1.c).
|
J.-P. Seifert, "New Branch Prediction Vulnerabilities in OpenSSL
|
||||||
(NB: This would require knowledge of the secret session ticket key
|
and Necessary Software Countermeasures"). The core of the change
|
||||||
to exploit, in which case you'd be SOL either way.)
|
are new versions BN_div_no_branch() and
|
||||||
|
BN_mod_inverse_no_branch() of BN_div() and BN_mod_inverse(),
|
||||||
- Change bn_nist.c so that it will properly handle input BIGNUMs
|
respectively, which are slower, but avoid the security-relevant
|
||||||
outside the expected range.
|
conditional branches. These are automatically called by BN_div()
|
||||||
|
and BN_mod_inverse() if the flag BN_FLG_CONSTTIME is set for one
|
||||||
- Enforce the 'num' check in BN_div() (bn_div.c) for non-BN_DEBUG
|
of the input BIGNUMs. Also, BN_is_bit_set() has been changed to
|
||||||
builds.
|
remove a conditional branch.
|
||||||
|
|
||||||
[Neel Mehta, Bodo Moeller]
|
BN_FLG_CONSTTIME is the new name for the previous
|
||||||
|
BN_FLG_EXP_CONSTTIME flag, since it now affects more than just
|
||||||
*) Allow engines to be "soft loaded" - i.e. optionally don't die if
|
modular exponentiation. (Since OpenSSL 0.9.7h, setting this flag
|
||||||
the load fails. Useful for distros.
|
in the exponent causes BN_mod_exp_mont() to use the alternative
|
||||||
[Ben Laurie and the FreeBSD team]
|
implementation in BN_mod_exp_mont_consttime().) The old name
|
||||||
|
remains as a deprecated alias.
|
||||||
*) Add support for Local Machine Keyset attribute in PKCS#12 files.
|
|
||||||
[Steve Henson]
|
Similary, RSA_FLAG_NO_EXP_CONSTTIME is replaced by a more general
|
||||||
|
RSA_FLAG_NO_CONSTTIME flag since the RSA implementation now uses
|
||||||
*) Fix BN_GF2m_mod_arr() top-bit cleanup code.
|
constant-time implementations for more than just exponentiation.
|
||||||
[Huang Ying]
|
Here too the old name is kept as a deprecated alias.
|
||||||
|
|
||||||
*) Expand ENGINE to support engine supplied SSL client certificate functions.
|
BN_BLINDING_new() will now use BN_dup() for the modulus so that
|
||||||
|
the BN_BLINDING structure gets an independent copy of the
|
||||||
This work was sponsored by Logica.
|
modulus. This means that the previous "BIGNUM *m" argument to
|
||||||
[Steve Henson]
|
BN_BLINDING_new() and to BN_BLINDING_create_param() now
|
||||||
|
essentially becomes "const BIGNUM *m", although we can't actually
|
||||||
*) Add CryptoAPI ENGINE to support use of RSA and DSA keys held in Windows
|
change this in the header file before 0.9.9. It allows
|
||||||
keystores. Support for SSL/TLS client authentication too.
|
RSA_setup_blinding() to use BN_with_flags() on the modulus to
|
||||||
Not compiled unless enable-capieng specified to Configure.
|
enable BN_FLG_CONSTTIME.
|
||||||
|
|
||||||
This work was sponsored by Logica.
|
[Matthew D Wood (Intel Corp)]
|
||||||
[Steve Henson]
|
|
||||||
|
|
||||||
*) Fix bug in X509_ATTRIBUTE creation: dont set attribute using
|
|
||||||
ASN1_TYPE_set1 if MBSTRING flag set. This bug would crash certain
|
|
||||||
attribute creation routines such as certifcate requests and PKCS#12
|
|
||||||
files.
|
|
||||||
[Steve Henson]
|
|
||||||
|
|
||||||
Changes between 0.9.8g and 0.9.8h [28 May 2008]
|
|
||||||
|
|
||||||
*) Fix flaw if 'Server Key exchange message' is omitted from a TLS
|
|
||||||
handshake which could lead to a cilent crash as found using the
|
|
||||||
Codenomicon TLS test suite (CVE-2008-1672)
|
|
||||||
[Steve Henson, Mark Cox]
|
|
||||||
|
|
||||||
*) Fix double free in TLS server name extensions which could lead to
|
|
||||||
a remote crash found by Codenomicon TLS test suite (CVE-2008-0891)
|
|
||||||
[Joe Orton]
|
|
||||||
|
|
||||||
*) Clear error queue in SSL_CTX_use_certificate_chain_file()
|
|
||||||
|
|
||||||
Clear the error queue to ensure that error entries left from
|
|
||||||
older function calls do not interfere with the correct operation.
|
|
||||||
[Lutz Jaenicke, Erik de Castro Lopo]
|
|
||||||
|
|
||||||
*) Remove root CA certificates of commercial CAs:
|
|
||||||
|
|
||||||
The OpenSSL project does not recommend any specific CA and does not
|
|
||||||
have any policy with respect to including or excluding any CA.
|
|
||||||
Therefore it does not make any sense to ship an arbitrary selection
|
|
||||||
of root CA certificates with the OpenSSL software.
|
|
||||||
[Lutz Jaenicke]
|
|
||||||
|
|
||||||
*) RSA OAEP patches to fix two separate invalid memory reads.
|
|
||||||
The first one involves inputs when 'lzero' is greater than
|
|
||||||
'SHA_DIGEST_LENGTH' (it would read about SHA_DIGEST_LENGTH bytes
|
|
||||||
before the beginning of from). The second one involves inputs where
|
|
||||||
the 'db' section contains nothing but zeroes (there is a one-byte
|
|
||||||
invalid read after the end of 'db').
|
|
||||||
[Ivan Nestlerode <inestlerode@us.ibm.com>]
|
|
||||||
|
|
||||||
*) Partial backport from 0.9.9-dev:
|
|
||||||
|
|
||||||
Introduce bn_mul_mont (dedicated Montgomery multiplication
|
|
||||||
procedure) as a candidate for BIGNUM assembler implementation.
|
|
||||||
While 0.9.9-dev uses assembler for various architectures, only
|
|
||||||
x86_64 is available by default here in the 0.9.8 branch, and
|
|
||||||
32-bit x86 is available through a compile-time setting.
|
|
||||||
|
|
||||||
To try the 32-bit x86 assembler implementation, use Configure
|
|
||||||
option "enable-montasm" (which exists only for this backport).
|
|
||||||
|
|
||||||
As "enable-montasm" for 32-bit x86 disclaims code stability
|
|
||||||
anyway, in this constellation we activate additional code
|
|
||||||
backported from 0.9.9-dev for further performance improvements,
|
|
||||||
namely BN_from_montgomery_word. (To enable this otherwise,
|
|
||||||
e.g. x86_64, try "-DMONT_FROM_WORD___NON_DEFAULT_0_9_8_BUILD".)
|
|
||||||
|
|
||||||
[Andy Polyakov (backport partially by Bodo Moeller)]
|
|
||||||
|
|
||||||
*) Add TLS session ticket callback. This allows an application to set
|
|
||||||
TLS ticket cipher and HMAC keys rather than relying on hardcoded fixed
|
|
||||||
values. This is useful for key rollover for example where several key
|
|
||||||
sets may exist with different names.
|
|
||||||
[Steve Henson]
|
|
||||||
|
|
||||||
*) Reverse ENGINE-internal logic for caching default ENGINE handles.
|
|
||||||
This was broken until now in 0.9.8 releases, such that the only way
|
|
||||||
a registered ENGINE could be used (assuming it initialises
|
|
||||||
successfully on the host) was to explicitly set it as the default
|
|
||||||
for the relevant algorithms. This is in contradiction with 0.9.7
|
|
||||||
behaviour and the documentation. With this fix, when an ENGINE is
|
|
||||||
registered into a given algorithm's table of implementations, the
|
|
||||||
'uptodate' flag is reset so that auto-discovery will be used next
|
|
||||||
time a new context for that algorithm attempts to select an
|
|
||||||
implementation.
|
|
||||||
[Ian Lister (tweaked by Geoff Thorpe)]
|
|
||||||
|
|
||||||
*) Backport of CMS code to OpenSSL 0.9.8. This differs from the 0.9.9
|
|
||||||
implemention in the following ways:
|
|
||||||
|
|
||||||
Lack of EVP_PKEY_ASN1_METHOD means algorithm parameters have to be
|
|
||||||
hard coded.
|
|
||||||
|
|
||||||
Lack of BER streaming support means one pass streaming processing is
|
|
||||||
only supported if data is detached: setting the streaming flag is
|
|
||||||
ignored for embedded content.
|
|
||||||
|
|
||||||
CMS support is disabled by default and must be explicitly enabled
|
|
||||||
with the enable-cms configuration option.
|
|
||||||
[Steve Henson]
|
|
||||||
|
|
||||||
*) Update the GMP engine glue to do direct copies between BIGNUM and
|
|
||||||
mpz_t when openssl and GMP use the same limb size. Otherwise the
|
|
||||||
existing "conversion via a text string export" trick is still used.
|
|
||||||
[Paul Sheer <paulsheer@gmail.com>]
|
|
||||||
|
|
||||||
*) Zlib compression BIO. This is a filter BIO which compressed and
|
|
||||||
uncompresses any data passed through it.
|
|
||||||
[Steve Henson]
|
|
||||||
|
|
||||||
*) Add AES_wrap_key() and AES_unwrap_key() functions to implement
|
|
||||||
RFC3394 compatible AES key wrapping.
|
|
||||||
[Steve Henson]
|
|
||||||
|
|
||||||
*) Add utility functions to handle ASN1 structures. ASN1_STRING_set0():
|
|
||||||
sets string data without copying. X509_ALGOR_set0() and
|
|
||||||
X509_ALGOR_get0(): set and retrieve X509_ALGOR (AlgorithmIdentifier)
|
|
||||||
data. Attribute function X509at_get0_data_by_OBJ(): retrieves data
|
|
||||||
from an X509_ATTRIBUTE structure optionally checking it occurs only
|
|
||||||
once. ASN1_TYPE_set1(): set and ASN1_TYPE structure copying supplied
|
|
||||||
data.
|
|
||||||
[Steve Henson]
|
|
||||||
|
|
||||||
*) Fix BN flag handling in RSA_eay_mod_exp() and BN_MONT_CTX_set()
|
|
||||||
to get the expected BN_FLG_CONSTTIME behavior.
|
|
||||||
[Bodo Moeller (Google)]
|
|
||||||
|
|
||||||
*) Netware support:
|
|
||||||
|
|
||||||
- fixed wrong usage of ioctlsocket() when build for LIBC BSD sockets
|
|
||||||
- fixed do_tests.pl to run the test suite with CLIB builds too (CLIB_OPT)
|
|
||||||
- added some more tests to do_tests.pl
|
|
||||||
- fixed RunningProcess usage so that it works with newer LIBC NDKs too
|
|
||||||
- removed usage of BN_LLONG for CLIB builds to avoid runtime dependency
|
|
||||||
- added new Configure targets netware-clib-bsdsock, netware-clib-gcc,
|
|
||||||
netware-clib-bsdsock-gcc, netware-libc-bsdsock-gcc
|
|
||||||
- various changes to netware.pl to enable gcc-cross builds on Win32
|
|
||||||
platform
|
|
||||||
- changed crypto/bio/b_sock.c to work with macro functions (CLIB BSD)
|
|
||||||
- various changes to fix missing prototype warnings
|
|
||||||
- fixed x86nasm.pl to create correct asm files for NASM COFF output
|
|
||||||
- added AES, WHIRLPOOL and CPUID assembler code to build files
|
|
||||||
- added missing AES assembler make rules to mk1mf.pl
|
|
||||||
- fixed order of includes in apps/ocsp.c so that e_os.h settings apply
|
|
||||||
[Guenter Knauf <eflash@gmx.net>]
|
|
||||||
|
|
||||||
*) Implement certificate status request TLS extension defined in RFC3546.
|
|
||||||
A client can set the appropriate parameters and receive the encoded
|
|
||||||
OCSP response via a callback. A server can query the supplied parameters
|
|
||||||
and set the encoded OCSP response in the callback. Add simplified examples
|
|
||||||
to s_client and s_server.
|
|
||||||
[Steve Henson]
|
|
||||||
|
|
||||||
Changes between 0.9.8f and 0.9.8g [19 Oct 2007]
|
|
||||||
|
|
||||||
*) Fix various bugs:
|
|
||||||
+ Binary incompatibility of ssl_ctx_st structure
|
|
||||||
+ DTLS interoperation with non-compliant servers
|
|
||||||
+ Don't call get_session_cb() without proposed session
|
|
||||||
+ Fix ia64 assembler code
|
|
||||||
[Andy Polyakov, Steve Henson]
|
|
||||||
|
|
||||||
Changes between 0.9.8e and 0.9.8f [11 Oct 2007]
|
|
||||||
|
|
||||||
*) DTLS Handshake overhaul. There were longstanding issues with
|
|
||||||
OpenSSL DTLS implementation, which were making it impossible for
|
|
||||||
RFC 4347 compliant client to communicate with OpenSSL server.
|
|
||||||
Unfortunately just fixing these incompatibilities would "cut off"
|
|
||||||
pre-0.9.8f clients. To allow for hassle free upgrade post-0.9.8e
|
|
||||||
server keeps tolerating non RFC compliant syntax. The opposite is
|
|
||||||
not true, 0.9.8f client can not communicate with earlier server.
|
|
||||||
This update even addresses CVE-2007-4995.
|
|
||||||
[Andy Polyakov]
|
|
||||||
|
|
||||||
*) Changes to avoid need for function casts in OpenSSL: some compilers
|
|
||||||
(gcc 4.2 and later) reject their use.
|
|
||||||
[Kurt Roeckx <kurt@roeckx.be>, Peter Hartley <pdh@utter.chaos.org.uk>,
|
|
||||||
Steve Henson]
|
|
||||||
|
|
||||||
*) Add RFC4507 support to OpenSSL. This includes the corrections in
|
|
||||||
RFC4507bis. The encrypted ticket format is an encrypted encoded
|
|
||||||
SSL_SESSION structure, that way new session features are automatically
|
|
||||||
supported.
|
|
||||||
|
|
||||||
If a client application caches session in an SSL_SESSION structure
|
|
||||||
support is transparent because tickets are now stored in the encoded
|
|
||||||
SSL_SESSION.
|
|
||||||
|
|
||||||
The SSL_CTX structure automatically generates keys for ticket
|
|
||||||
protection in servers so again support should be possible
|
|
||||||
with no application modification.
|
|
||||||
|
|
||||||
If a client or server wishes to disable RFC4507 support then the option
|
|
||||||
SSL_OP_NO_TICKET can be set.
|
|
||||||
|
|
||||||
Add a TLS extension debugging callback to allow the contents of any client
|
|
||||||
or server extensions to be examined.
|
|
||||||
|
|
||||||
This work was sponsored by Google.
|
|
||||||
[Steve Henson]
|
|
||||||
|
|
||||||
*) Add initial support for TLS extensions, specifically for the server_name
|
|
||||||
extension so far. The SSL_SESSION, SSL_CTX, and SSL data structures now
|
|
||||||
have new members for a host name. The SSL data structure has an
|
|
||||||
additional member SSL_CTX *initial_ctx so that new sessions can be
|
|
||||||
stored in that context to allow for session resumption, even after the
|
|
||||||
SSL has been switched to a new SSL_CTX in reaction to a client's
|
|
||||||
server_name extension.
|
|
||||||
|
|
||||||
New functions (subject to change):
|
|
||||||
|
|
||||||
SSL_get_servername()
|
|
||||||
SSL_get_servername_type()
|
|
||||||
SSL_set_SSL_CTX()
|
|
||||||
|
|
||||||
New CTRL codes and macros (subject to change):
|
|
||||||
|
|
||||||
SSL_CTRL_SET_TLSEXT_SERVERNAME_CB
|
|
||||||
- SSL_CTX_set_tlsext_servername_callback()
|
|
||||||
SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG
|
|
||||||
- SSL_CTX_set_tlsext_servername_arg()
|
|
||||||
SSL_CTRL_SET_TLSEXT_HOSTNAME - SSL_set_tlsext_host_name()
|
|
||||||
|
|
||||||
openssl s_client has a new '-servername ...' option.
|
|
||||||
|
|
||||||
openssl s_server has new options '-servername_host ...', '-cert2 ...',
|
|
||||||
'-key2 ...', '-servername_fatal' (subject to change). This allows
|
|
||||||
testing the HostName extension for a specific single host name ('-cert'
|
|
||||||
and '-key' remain fallbacks for handshakes without HostName
|
|
||||||
negotiation). If the unrecogninzed_name alert has to be sent, this by
|
|
||||||
default is a warning; it becomes fatal with the '-servername_fatal'
|
|
||||||
option.
|
|
||||||
|
|
||||||
[Peter Sylvester, Remy Allais, Christophe Renou, Steve Henson]
|
|
||||||
|
|
||||||
*) Add AES and SSE2 assembly language support to VC++ build.
|
|
||||||
[Steve Henson]
|
|
||||||
|
|
||||||
*) Mitigate attack on final subtraction in Montgomery reduction.
|
|
||||||
[Andy Polyakov]
|
|
||||||
|
|
||||||
*) Fix crypto/ec/ec_mult.c to work properly with scalars of value 0
|
|
||||||
(which previously caused an internal error).
|
|
||||||
[Bodo Moeller]
|
|
||||||
|
|
||||||
*) Squeeze another 10% out of IGE mode when in != out.
|
*) Squeeze another 10% out of IGE mode when in != out.
|
||||||
[Ben Laurie]
|
[Ben Laurie]
|
||||||
@@ -766,10 +381,6 @@
|
|||||||
authentication-only ciphersuites.
|
authentication-only ciphersuites.
|
||||||
[Bodo Moeller]
|
[Bodo Moeller]
|
||||||
|
|
||||||
*) Update the SSL_get_shared_ciphers() fix CVE-2006-3738 which was
|
|
||||||
not complete and could lead to a possible single byte overflow
|
|
||||||
(CVE-2007-5135) [Ben Laurie]
|
|
||||||
|
|
||||||
Changes between 0.9.8d and 0.9.8e [23 Feb 2007]
|
Changes between 0.9.8d and 0.9.8e [23 Feb 2007]
|
||||||
|
|
||||||
*) Since AES128 and AES256 (and similarly Camellia128 and
|
*) Since AES128 and AES256 (and similarly Camellia128 and
|
||||||
@@ -1810,6 +1421,19 @@
|
|||||||
differing sizes.
|
differing sizes.
|
||||||
[Richard Levitte]
|
[Richard Levitte]
|
||||||
|
|
||||||
|
Changes between 0.9.7m and 0.9.7n [xx XXX xxxx]
|
||||||
|
|
||||||
|
*) In the SSL/TLS server implementation, be strict about session ID
|
||||||
|
context matching (which matters if an application uses a single
|
||||||
|
external cache for different purposes). Previously,
|
||||||
|
out-of-context reuse was forbidden only if SSL_VERIFY_PEER was
|
||||||
|
set. This did ensure strict client verification, but meant that,
|
||||||
|
with applications using a single external cache for quite
|
||||||
|
different requirements, clients could circumvent ciphersuite
|
||||||
|
restrictions for a given session ID context by starting a session
|
||||||
|
in a different context.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
Changes between 0.9.7l and 0.9.7m [23 Feb 2007]
|
Changes between 0.9.7l and 0.9.7m [23 Feb 2007]
|
||||||
|
|
||||||
*) Cleanse PEM buffers before freeing them since they may contain
|
*) Cleanse PEM buffers before freeing them since they may contain
|
||||||
|
163
ChangeLog.0_9_7-stable_not-in-head
Normal file
163
ChangeLog.0_9_7-stable_not-in-head
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
This file, together with ChangeLog.0_9_7-stable_not-in-head_FIPS,
|
||||||
|
provides a collection of those CVS change log entries for the
|
||||||
|
0.9.7 branch (OpenSSL_0_9_7-stable) that do not appear similarly in
|
||||||
|
0.9.8-dev (CVS head).
|
||||||
|
|
||||||
|
ChangeLog.0_9_7-stable_not-in-head_FIPS - "FIPS" related changes
|
||||||
|
ChangeLog.0_9_7-stable_not-in-head - everything else
|
||||||
|
|
||||||
|
Some obvious false positives have been eliminated: e.g., we do not
|
||||||
|
care about a simple "make update"; and we don't care about changes
|
||||||
|
identified to the 0.9.7 branch that were explicitly identified as
|
||||||
|
backports from head.
|
||||||
|
|
||||||
|
Eliminating all other entries (and finally this file and its
|
||||||
|
compantion), either as false positives or as things that should go
|
||||||
|
into 0.9.8, remains to be done. Any additional changes to 0.9.7 that
|
||||||
|
are not immediately put into 0.9.8, but belong there as well, should
|
||||||
|
be added to the end of this file.
|
||||||
|
|
||||||
|
|
||||||
|
2002-11-04 17:33 levitte
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
Configure (1.314.2.38), "Exp", lines: +4 -2
|
||||||
|
|
||||||
|
Return my normal debug targets to something not so extreme, and
|
||||||
|
make the extreme ones special (or 'extreme', if you will :-)).
|
||||||
|
|
||||||
|
2002-12-16 19:17 appro
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
crypto/bn/bn_lcl.h (1.23.2.3), "Exp", lines: +3 -0
|
||||||
|
crypto/bn/bn_mul.c (1.28.2.4), "Exp", lines: +84 -445
|
||||||
|
|
||||||
|
This is rollback to 0.9.6h bn_mul.c to address problem reported in
|
||||||
|
RT#272.
|
||||||
|
|
||||||
|
2003-07-27 15:46 ben
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
crypto/aes/aes.h (1.1.2.5), "Exp", lines: +3 -0
|
||||||
|
crypto/aes/aes_cfb.c (1.1.2.4), "Exp", lines: +57 -0
|
||||||
|
|
||||||
|
Add untested CFB-r mode. Will be tested soon.
|
||||||
|
|
||||||
|
2003-07-28 17:07 ben
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
Makefile.org (1.154.2.69), "Exp", lines: +5 -1
|
||||||
|
crypto/aes/aes.h (1.1.2.6), "Exp", lines: +3 -0
|
||||||
|
crypto/aes/aes_cfb.c (1.1.2.5), "Exp", lines: +19 -0
|
||||||
|
crypto/dsa/Makefile.ssl (1.49.2.6), "Exp", lines: +3 -2
|
||||||
|
crypto/err/Makefile.ssl (1.48.2.4), "Exp", lines: +17 -16
|
||||||
|
crypto/evp/e_aes.c (1.6.2.5), "Exp", lines: +8 -0
|
||||||
|
crypto/evp/e_des.c (1.5.2.2), "Exp", lines: +1 -1
|
||||||
|
crypto/evp/e_des3.c (1.8.2.3), "Exp", lines: +2 -2
|
||||||
|
crypto/evp/evp.h (1.86.2.11), "Exp", lines: +28 -11
|
||||||
|
crypto/evp/evp_locl.h (1.7.2.3), "Exp", lines: +2 -2
|
||||||
|
crypto/objects/obj_dat.h (1.49.2.13), "Exp", lines: +10 -5
|
||||||
|
crypto/objects/obj_mac.h (1.19.2.13), "Exp", lines: +5 -0
|
||||||
|
crypto/objects/obj_mac.num (1.15.2.9), "Exp", lines: +1 -0
|
||||||
|
crypto/objects/objects.txt (1.20.2.14), "Exp", lines: +4 -0
|
||||||
|
fips/Makefile.ssl (1.1.2.3), "Exp", lines: +7 -0
|
||||||
|
fips/aes/Makefile.ssl (1.1.2.2), "Exp", lines: +23 -1
|
||||||
|
fips/aes/fips_aesavs.c (1.1.2.3), "Exp", lines: +9 -1
|
||||||
|
test/Makefile.ssl (1.84.2.30), "Exp", lines: +101 -43
|
||||||
|
|
||||||
|
Add support for partial CFB modes, make tests work, update
|
||||||
|
dependencies.
|
||||||
|
|
||||||
|
2003-07-29 12:56 ben
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
crypto/aes/aes_cfb.c (1.1.2.6), "Exp", lines: +9 -6
|
||||||
|
crypto/evp/c_allc.c (1.8.2.3), "Exp", lines: +1 -0
|
||||||
|
crypto/evp/evp_test.c (1.14.2.11), "Exp", lines: +17 -8
|
||||||
|
crypto/evp/evptests.txt (1.9.2.2), "Exp", lines: +48 -1
|
||||||
|
|
||||||
|
Working CFB1 and test vectors.
|
||||||
|
|
||||||
|
2003-07-29 15:24 ben
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
crypto/evp/e_aes.c (1.6.2.6), "Exp", lines: +14 -0
|
||||||
|
crypto/objects/obj_dat.h (1.49.2.14), "Exp", lines: +15 -5
|
||||||
|
crypto/objects/obj_mac.h (1.19.2.14), "Exp", lines: +10 -0
|
||||||
|
crypto/objects/obj_mac.num (1.15.2.10), "Exp", lines: +2 -0
|
||||||
|
crypto/objects/objects.txt (1.20.2.15), "Exp", lines: +2 -0
|
||||||
|
fips/aes/Makefile.ssl (1.1.2.3), "Exp", lines: +1 -1
|
||||||
|
fips/aes/fips_aesavs.c (1.1.2.4), "Exp", lines: +34 -19
|
||||||
|
|
||||||
|
The rest of the keysizes for CFB1, working AES AVS test for CFB1.
|
||||||
|
|
||||||
|
2003-07-29 19:05 ben
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
crypto/aes/aes.h (1.1.2.7), "Exp", lines: +3 -0
|
||||||
|
crypto/aes/aes_cfb.c (1.1.2.7), "Exp", lines: +14 -0
|
||||||
|
crypto/evp/c_allc.c (1.8.2.4), "Exp", lines: +1 -0
|
||||||
|
crypto/evp/e_aes.c (1.6.2.7), "Exp", lines: +4 -9
|
||||||
|
crypto/evp/evptests.txt (1.9.2.3), "Exp", lines: +48 -0
|
||||||
|
crypto/objects/obj_dat.h (1.49.2.15), "Exp", lines: +20 -5
|
||||||
|
crypto/objects/obj_mac.h (1.19.2.15), "Exp", lines: +15 -0
|
||||||
|
crypto/objects/obj_mac.num (1.15.2.11), "Exp", lines: +3 -0
|
||||||
|
crypto/objects/objects.txt (1.20.2.16), "Exp", lines: +3 -0
|
||||||
|
fips/aes/fips_aesavs.c (1.1.2.7), "Exp", lines: +11 -0
|
||||||
|
|
||||||
|
AES CFB8.
|
||||||
|
|
||||||
|
2003-07-30 20:30 ben
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
Makefile.org (1.154.2.70), "Exp", lines: +16 -5
|
||||||
|
crypto/des/cfb_enc.c (1.7.2.1), "Exp", lines: +2 -1
|
||||||
|
crypto/des/des_enc.c (1.11.2.2), "Exp", lines: +4 -0
|
||||||
|
crypto/evp/e_aes.c (1.6.2.8), "Exp", lines: +7 -14
|
||||||
|
crypto/evp/e_des.c (1.5.2.3), "Exp", lines: +37 -1
|
||||||
|
crypto/evp/evp.h (1.86.2.12), "Exp", lines: +6 -0
|
||||||
|
crypto/evp/evp_locl.h (1.7.2.4), "Exp", lines: +9 -0
|
||||||
|
crypto/objects/obj_dat.h (1.49.2.16), "Exp", lines: +48 -23
|
||||||
|
crypto/objects/obj_mac.h (1.19.2.16), "Exp", lines: +31 -6
|
||||||
|
crypto/objects/obj_mac.num (1.15.2.12), "Exp", lines: +5 -0
|
||||||
|
crypto/objects/objects.txt (1.20.2.17), "Exp", lines: +12 -6
|
||||||
|
fips/Makefile.ssl (1.1.2.4), "Exp", lines: +8 -1
|
||||||
|
fips/fips_make_sha1 (1.1.2.3), "Exp", lines: +3 -0
|
||||||
|
fips/aes/Makefile.ssl (1.1.2.4), "Exp", lines: +1 -1
|
||||||
|
fips/des/.cvsignore (1.1.2.1), "Exp", lines: +3 -0
|
||||||
|
fips/des/Makefile.ssl (1.1.2.1), "Exp", lines: +96 -0
|
||||||
|
fips/des/fingerprint.sha1 (1.1.2.1), "Exp", lines: +2 -0
|
||||||
|
fips/des/fips_des_enc.c (1.1.2.1), "Exp", lines: +288 -0
|
||||||
|
fips/des/fips_des_locl.h (1.1.2.1), "Exp", lines: +428 -0
|
||||||
|
fips/des/fips_desmovs.c (1.1.2.1), "Exp", lines: +659 -0
|
||||||
|
|
||||||
|
Whoops, forgot FIPS DES, also add EVPs for DES CFB1 and 8.
|
||||||
|
|
||||||
|
2003-08-01 12:25 ben
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
crypto/des/cfb_enc.c (1.7.2.2), "Exp", lines: +45 -36
|
||||||
|
crypto/evp/c_allc.c (1.8.2.5), "Exp", lines: +2 -0
|
||||||
|
crypto/evp/e_des.c (1.5.2.4), "Exp", lines: +8 -3
|
||||||
|
crypto/evp/evptests.txt (1.9.2.4), "Exp", lines: +6 -0
|
||||||
|
|
||||||
|
Fix DES CFB-r.
|
||||||
|
|
||||||
|
2003-08-01 12:31 ben
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
crypto/evp/evptests.txt (1.9.2.5), "Exp", lines: +4 -0
|
||||||
|
|
||||||
|
DES CFB8 test.
|
||||||
|
|
||||||
|
2005-04-19 16:21 appro
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
Configure (1.314.2.117), "Exp", lines: +24 -21
|
||||||
|
Makefile.org (1.154.2.100), "Exp", lines: +1 -11
|
||||||
|
TABLE (1.99.2.52), "Exp", lines: +20 -20
|
||||||
|
apps/Makefile (1.1.4.15), "Exp", lines: +1 -1
|
||||||
|
test/Makefile (1.1.4.12), "Exp", lines: +1 -1
|
||||||
|
|
||||||
|
Enable shared link on HP-UX.
|
||||||
|
|
1494
ChangeLog.0_9_7-stable_not-in-head_FIPS
Normal file
1494
ChangeLog.0_9_7-stable_not-in-head_FIPS
Normal file
File diff suppressed because it is too large
Load Diff
302
Configure
302
Configure
@@ -12,7 +12,7 @@ print STDERR "Warning: perl module strict not found.\n" if ($@);
|
|||||||
|
|
||||||
# see INSTALL for instructions.
|
# see INSTALL for instructions.
|
||||||
|
|
||||||
my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimental-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [enable-montasm] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
|
my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
|
||||||
|
|
||||||
# Options:
|
# Options:
|
||||||
#
|
#
|
||||||
@@ -56,8 +56,6 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimenta
|
|||||||
# [no-]zlib [don't] compile support for zlib compression.
|
# [no-]zlib [don't] compile support for zlib compression.
|
||||||
# zlib-dynamic Like "zlib", but the zlib library is expected to be a shared
|
# zlib-dynamic Like "zlib", but the zlib library is expected to be a shared
|
||||||
# library and will be loaded in run-time by the OpenSSL library.
|
# library and will be loaded in run-time by the OpenSSL library.
|
||||||
# enable-montasm 0.9.8 branch only: enable Montgomery x86 assembler backport
|
|
||||||
# from 0.9.9
|
|
||||||
# 386 generate 80386 code
|
# 386 generate 80386 code
|
||||||
# no-sse2 disables IA-32 SSE2 code, above option implies no-sse2
|
# no-sse2 disables IA-32 SSE2 code, above option implies no-sse2
|
||||||
# no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
|
# no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
|
||||||
@@ -101,13 +99,6 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimenta
|
|||||||
# SHA512_ASM sha512_block is implemented in assembler
|
# SHA512_ASM sha512_block is implemented in assembler
|
||||||
# AES_ASM ASE_[en|de]crypt is implemented in assembler
|
# AES_ASM ASE_[en|de]crypt is implemented in assembler
|
||||||
|
|
||||||
# Minimum warning options... any contributions to OpenSSL should at least get
|
|
||||||
# past these.
|
|
||||||
|
|
||||||
my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED";
|
|
||||||
|
|
||||||
my $strict_warnings = 0;
|
|
||||||
|
|
||||||
my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
|
my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
|
||||||
|
|
||||||
# MD2_CHAR slags pentium pros
|
# MD2_CHAR slags pentium pros
|
||||||
@@ -125,15 +116,17 @@ my $tlib="-lnsl -lsocket";
|
|||||||
my $bits1="THIRTY_TWO_BIT ";
|
my $bits1="THIRTY_TWO_BIT ";
|
||||||
my $bits2="SIXTY_FOUR_BIT ";
|
my $bits2="SIXTY_FOUR_BIT ";
|
||||||
|
|
||||||
my $x86_elf_asm="x86cpuid-elf.o:bn86-elf.o co86-elf.o MAYBE-MO86-elf.o:dx86-elf.o yx86-elf.o:ax86-elf.o:bx86-elf.o:mx86-elf.o:sx86-elf.o s512sse2-elf.o:cx86-elf.o:rx86-elf.o rc4_skey.o:rm86-elf.o:r586-elf.o";
|
my $x86_elf_asm="x86cpuid-elf.o:bn86-elf.o co86-elf.o mo86-elf.o:dx86-elf.o yx86-elf.o:ax86-elf.o:bx86-elf.o:mx86-elf.o:sx86-elf.o s512sse2-elf.o:cx86-elf.o:rx86-elf.o:rm86-elf.o:r586-elf.o";
|
||||||
my $x86_coff_asm="x86cpuid-cof.o:bn86-cof.o co86-cof.o MAYBE-MO86-cof.o:dx86-cof.o yx86-cof.o:ax86-cof.o:bx86-cof.o:mx86-cof.o:sx86-cof.o s512sse2-cof.o:cx86-cof.o:rx86-cof.o rc4_skey.o:rm86-cof.o:r586-cof.o";
|
my $x86_coff_asm="x86cpuid-cof.o:bn86-cof.o co86-cof.o mo86-cof.o:dx86-cof.o yx86-cof.o:ax86-cof.o:bx86-cof.o:mx86-cof.o:sx86-cof.o s512sse2-cof.o:cx86-cof.o:rx86-cof.o:rm86-cof.o:r586-cof.o";
|
||||||
my $x86_out_asm="x86cpuid-out.o:bn86-out.o co86-out.o MAYBE-MO86-out.o:dx86-out.o yx86-out.o:ax86-out.o:bx86-out.o:mx86-out.o:sx86-out.o s512sse2-out.o:cx86-out.o:rx86-out.o rc4_skey.o:rm86-out.o:r586-out.o";
|
my $x86_out_asm="x86cpuid-out.o:bn86-out.o co86-out.o mo86-out.o:dx86-out.o yx86-out.o:ax86-out.o:bx86-out.o:mx86-out.o:sx86-out.o s512sse2-out.o:cx86-out.o:rx86-out.o:rm86-out.o:r586-out.o";
|
||||||
|
|
||||||
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o::aes-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o::";
|
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o::aes-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o::";
|
||||||
my $ia64_asm=":bn-ia64.o::aes_core.o aes_cbc.o aes-ia64.o:::sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o::";
|
|
||||||
|
|
||||||
my $no_asm="::::::::::";
|
my $no_asm="::::::::::";
|
||||||
|
|
||||||
|
my $ia64_asm=$no_asm;
|
||||||
|
my $s390x_asm=$no_asm;
|
||||||
|
|
||||||
# As for $BSDthreads. Idea is to maintain "collective" set of flags,
|
# As for $BSDthreads. Idea is to maintain "collective" set of flags,
|
||||||
# which would cover all BSD flavors. -pthread applies to them all,
|
# which would cover all BSD flavors. -pthread applies to them all,
|
||||||
# but is treated differently. OpenBSD expands is as -D_POSIX_THREAD
|
# but is treated differently. OpenBSD expands is as -D_POSIX_THREAD
|
||||||
@@ -161,16 +154,12 @@ my %table=(
|
|||||||
"debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown):::::bn86-elf.o co86-elf.o",
|
"debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown):::::bn86-elf.o co86-elf.o",
|
||||||
"debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
|
"debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
|
||||||
"debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
|
"debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
|
||||||
"debug-ben-debug", "gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -ggdb3 -O2 -pipe::(unknown)::::::",
|
"debug-ben-debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::::",
|
||||||
"debug-ben-debug-noopt", "gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -ggdb3 -pipe::(unknown)::::::",
|
|
||||||
"debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
|
"debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
|
||||||
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
||||||
"debug-bodo", "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
"debug-bodo", "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
||||||
"debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll",
|
"debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll",
|
||||||
"debug-steve64", "gcc:$gcc_devteam_warn -m64 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -m32 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
|
||||||
"debug-steve32", "gcc:$gcc_devteam_warn -m32 -DL_ENDIAN -DCONF_DEBUG -DDEBUG_SAFESTACK -g -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
|
||||||
"debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
|
||||||
"debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -m32 -g -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
|
|
||||||
"debug-steve-linux-pseudo64", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT:${no_asm}:dlfcn:linux-shared",
|
"debug-steve-linux-pseudo64", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT:${no_asm}:dlfcn:linux-shared",
|
||||||
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
@@ -181,9 +170,6 @@ my %table=(
|
|||||||
"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
|
"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
|
||||||
"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
|
||||||
"debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
|
||||||
"debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
|
||||||
"dist", "cc:-O::(unknown)::::::",
|
"dist", "cc:-O::(unknown)::::::",
|
||||||
|
|
||||||
# Basic configs that should work on any (32 and less bit) box
|
# Basic configs that should work on any (32 and less bit) box
|
||||||
@@ -209,33 +195,33 @@ my %table=(
|
|||||||
# actually recommend to consider using gcc shared build even with vendor
|
# actually recommend to consider using gcc shared build even with vendor
|
||||||
# compiler:-)
|
# compiler:-)
|
||||||
# <appro@fy.chalmers.se>
|
# <appro@fy.chalmers.se>
|
||||||
"solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### Solaris x86 with Sun C setups
|
#### Solaris x86 with Sun C setups
|
||||||
"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### SPARC Solaris with GNU C setups
|
#### SPARC Solaris with GNU C setups
|
||||||
"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# -m32 should be safe to add as long as driver recognizes -mcpu=ultrasparc
|
# -m32 should be safe to add as long as driver recognizes -mcpu=ultrasparc
|
||||||
"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
####
|
####
|
||||||
"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### SPARC Solaris with Sun C setups
|
#### SPARC Solaris with Sun C setups
|
||||||
# SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
|
# SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
|
||||||
# SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
|
# SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
|
||||||
# SC5.0 note: Compiler common patch 107357-01 or later is required!
|
# SC5.0 note: Compiler common patch 107357-01 or later is required!
|
||||||
"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
|
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
|
||||||
####
|
####
|
||||||
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### SunOS configs, assuming sparc for the gcc one.
|
#### SunOS configs, assuming sparc for the gcc one.
|
||||||
#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
|
#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
|
||||||
@@ -248,11 +234,11 @@ my %table=(
|
|||||||
#### IRIX 6.x configs
|
#### IRIX 6.x configs
|
||||||
# Only N32 and N64 ABIs are supported. If you need O32 ABI build, invoke
|
# Only N32 and N64 ABIs are supported. If you need O32 ABI build, invoke
|
||||||
# './Configure irix-cc -o32' manually.
|
# './Configure irix-cc -o32' manually.
|
||||||
"irix-mips3-gcc","gcc:-mabi=n32 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT::bn-mips3.o::::::::::dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"irix-mips3-gcc","gcc:-mabi=n32 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT:${no_asm}:dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT::bn-mips3.o::::::::::dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT:${no_asm}:dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# N64 ABI builds.
|
# N64 ABI builds.
|
||||||
"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::bn-mips3.o::::::::::dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${no_asm}:dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::bn-mips3.o::::::::::dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${no_asm}:dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### Unified HP-UX ANSI C configs.
|
#### Unified HP-UX ANSI C configs.
|
||||||
# Special notes:
|
# Special notes:
|
||||||
@@ -285,8 +271,8 @@ my %table=(
|
|||||||
# Since there is mention of this in shlib/hpux10-cc.sh
|
# Since there is mention of this in shlib/hpux10-cc.sh
|
||||||
"hpux-parisc-cc-o4","cc:-Ae +O4 +ESlit -z -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc-cc-o4","cc:-Ae +O4 +ESlit -z -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"hpux-parisc-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1::pa-risc2.o::::::::::dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
# More attempts at unified 10.X and 11.X targets for HP C compiler.
|
# More attempts at unified 10.X and 11.X targets for HP C compiler.
|
||||||
#
|
#
|
||||||
@@ -294,8 +280,8 @@ my %table=(
|
|||||||
# Kevin Steves <ks@hp.se>
|
# Kevin Steves <ks@hp.se>
|
||||||
"hpux-parisc-cc","cc:+O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc-cc","cc:+O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"hpux-parisc1_0-cc","cc:+DAportable +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc1_0-cc","cc:+DAportable +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2.o::::::::::dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"hpux64-parisc2-cc","cc:+DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux64-parisc2-cc","cc:+DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
# HP/UX IA-64 targets
|
# HP/UX IA-64 targets
|
||||||
"hpux-ia64-cc","cc:-Ae +DD32 +O2 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD32 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-ia64-cc","cc:-Ae +DD32 +O2 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD32 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
@@ -332,27 +318,28 @@ my %table=(
|
|||||||
# *-generic* is endian-neutral target, but ./config is free to
|
# *-generic* is endian-neutral target, but ./config is free to
|
||||||
# throw in -D[BL]_ENDIAN, whichever appropriate...
|
# throw in -D[BL]_ENDIAN, whichever appropriate...
|
||||||
"linux-generic32","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-generic32","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc32.o::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
#### IA-32 targets...
|
#### IA-32 targets...
|
||||||
"linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
|
"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
|
||||||
####
|
####
|
||||||
"linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc64.o::::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
"linux-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
#### SPARC Linux setups
|
#### SPARC Linux setups
|
||||||
# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
|
# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
|
||||||
# assisted with debugging of following two configs.
|
# assisted with debugging of following two configs.
|
||||||
"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# it's a real mess with -mcpu=ultrasparc option under Linux, but
|
# it's a real mess with -mcpu=ultrasparc option under Linux, but
|
||||||
# -Wa,-Av8plus should do the trick no matter what.
|
# -Wa,-Av8plus should do the trick no matter what.
|
||||||
"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# GCC 3.1 is a requirement
|
# GCC 3.1 is a requirement
|
||||||
"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
#### Alpha Linux with GNU C and Compaq C setups
|
#### Alpha Linux with GNU C and Compaq C setups
|
||||||
# Special notes:
|
# Special notes:
|
||||||
# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
|
# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
|
||||||
@@ -379,13 +366,13 @@ my %table=(
|
|||||||
"BSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall -g::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall -g::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"BSD-sparcv8", "gcc:-DB_ENDIAN -DTERMIOS -O3 -mv8 -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-sparcv8", "gcc:-DB_ENDIAN -DTERMIOS -O3 -mv8 -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
"BSD-generic64","gcc:-DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-generic64","gcc:-DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
|
# -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
|
||||||
# simply *happens* to work around a compiler bug in gcc 3.3.3,
|
# simply *happens* to work around a compiler bug in gcc 3.3.3,
|
||||||
# triggered by RIPEMD160 code.
|
# triggered by RIPEMD160 code.
|
||||||
"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"BSD-ia64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-ia64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
@@ -399,8 +386,7 @@ my %table=(
|
|||||||
|
|
||||||
# QNX
|
# QNX
|
||||||
"qnx4", "cc:-DL_ENDIAN -DTERMIO::(unknown):::${x86_gcc_des} ${x86_gcc_opts}:",
|
"qnx4", "cc:-DL_ENDIAN -DTERMIO::(unknown):::${x86_gcc_des} ${x86_gcc_opts}:",
|
||||||
"QNX6", "gcc:-DTERMIOS::::-lsocket::${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"qnx6", "cc:-DL_ENDIAN -DTERMIOS::(unknown)::-lsocket:${x86_gcc_des} ${x86_gcc_opts}:",
|
||||||
"QNX6-i386", "gcc:-DL_ENDIAN -DTERMIOS -O2 -Wall::::-lsocket:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
|
||||||
|
|
||||||
#### SCO/Caldera targets.
|
#### SCO/Caldera targets.
|
||||||
#
|
#
|
||||||
@@ -424,12 +410,12 @@ my %table=(
|
|||||||
|
|
||||||
#### IBM's AIX.
|
#### IBM's AIX.
|
||||||
"aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
|
"aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
|
||||||
"aix-gcc", "gcc:-O -DB_ENDIAN::-pthread:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
"aix-gcc", "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:${no_asm}:dlfcn:aix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
||||||
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
|
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${no_asm}:dlfcn:aix-shared::-maix64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
|
||||||
# Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
|
# Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
|
||||||
# at build time. $OBJECT_MODE is respected at ./config stage!
|
# at build time. $OBJECT_MODE is respected at ./config stage!
|
||||||
"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR:${no_asm}:dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
||||||
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
|
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${no_asm}:dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cray T90 and similar (SDSC)
|
# Cray T90 and similar (SDSC)
|
||||||
@@ -500,20 +486,15 @@ my %table=(
|
|||||||
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_coff_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_coff_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
||||||
"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
||||||
|
|
||||||
# NetWare from David Ward (dsward@novell.com)
|
# NetWare from David Ward (dsward@novell.com) - requires MetroWerks NLM development tools
|
||||||
# requires either MetroWerks NLM development tools, or gcc / nlmconv
|
|
||||||
# NetWare defaults socket bio to WinSock sockets. However,
|
|
||||||
# the builds can be configured to use BSD sockets instead.
|
|
||||||
# netware-clib => legacy CLib c-runtime support
|
# netware-clib => legacy CLib c-runtime support
|
||||||
"netware-clib", "mwccnlm::::::${x86_gcc_opts}::",
|
"netware-clib", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
|
||||||
"netware-clib-bsdsock", "mwccnlm::::::${x86_gcc_opts}::",
|
|
||||||
"netware-clib-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -I/ndk/ws295sdk/include -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::",
|
|
||||||
"netware-clib-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -DNETWARE_BSDSOCK -DNETDB_USE_INTERNET -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::",
|
|
||||||
# netware-libc => LibC/NKS support
|
# netware-libc => LibC/NKS support
|
||||||
|
# NetWare defaults socket bio to WinSock sockets. However, the LibC build can be
|
||||||
|
# configured to use BSD sockets instead.
|
||||||
"netware-libc", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
|
"netware-libc", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
|
||||||
"netware-libc-bsdsock", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
|
"netware-libc-bsdsock", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
|
||||||
"netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::",
|
"netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::",
|
||||||
"netware-libc-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -DNETWARE_BSDSOCK -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::",
|
|
||||||
|
|
||||||
# DJGPP
|
# DJGPP
|
||||||
"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:",
|
"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:",
|
||||||
@@ -526,12 +507,9 @@ my %table=(
|
|||||||
|
|
||||||
##### MacOS X (a.k.a. Rhapsody or Darwin) setup
|
##### MacOS X (a.k.a. Rhapsody or Darwin) setup
|
||||||
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
|
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
|
||||||
"darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"darwin-ppc-cc","cc:-O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc64.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"darwin-i386-cc","cc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
"darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
"debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
|
||||||
"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -fomit-frame-pointer -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
|
||||||
"debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
|
||||||
|
|
||||||
##### A/UX
|
##### A/UX
|
||||||
"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
|
"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
|
||||||
@@ -559,9 +537,7 @@ my %table=(
|
|||||||
|
|
||||||
my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A
|
my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A
|
||||||
VC-NT VC-CE VC-WIN32
|
VC-NT VC-CE VC-WIN32
|
||||||
BC-32 OS2-EMX
|
BC-32 OS2-EMX netware-clib netware-libc netware-libc-bsdsock);
|
||||||
netware-clib netware-clib-bsdsock
|
|
||||||
netware-libc netware-libc-bsdsock);
|
|
||||||
|
|
||||||
my $idx = 0;
|
my $idx = 0;
|
||||||
my $idx_cc = $idx++;
|
my $idx_cc = $idx++;
|
||||||
@@ -591,12 +567,11 @@ my $idx_ranlib = $idx++;
|
|||||||
my $idx_arflags = $idx++;
|
my $idx_arflags = $idx++;
|
||||||
|
|
||||||
my $prefix="";
|
my $prefix="";
|
||||||
my $libdir="";
|
|
||||||
my $openssldir="";
|
my $openssldir="";
|
||||||
my $exe_ext="";
|
my $exe_ext="";
|
||||||
my $install_prefix= "$ENV{'INSTALL_PREFIX'}";
|
my $install_prefix="$ENV{'INSTALL_PREFIX'}";
|
||||||
my $cross_compile_prefix="";
|
my $cross_compile_prefix="$ENV{'CROSS_COMPILE'}";
|
||||||
my $fipslibdir="/usr/local/ssl/fips-1.0/lib/";
|
my $fipslibdir="/usr/local/ssl/lib/fips-1.0/";
|
||||||
my $nofipscanistercheck=0;
|
my $nofipscanistercheck=0;
|
||||||
my $fipsdso=0;
|
my $fipsdso=0;
|
||||||
my $fipscanisterinternal="n";
|
my $fipscanisterinternal="n";
|
||||||
@@ -607,7 +582,6 @@ my $no_shared=0; # but "no-shared" is default
|
|||||||
my $zlib=1; # but "no-zlib" is default
|
my $zlib=1; # but "no-zlib" is default
|
||||||
my $no_krb5=0; # but "no-krb5" is implied unless "--with-krb5-..." is used
|
my $no_krb5=0; # but "no-krb5" is implied unless "--with-krb5-..." is used
|
||||||
my $no_rfc3779=1; # but "no-rfc3779" is default
|
my $no_rfc3779=1; # but "no-rfc3779" is default
|
||||||
my $montasm=1; # but "no-montasm" is default
|
|
||||||
my $no_asm=0;
|
my $no_asm=0;
|
||||||
my $no_dso=0;
|
my $no_dso=0;
|
||||||
my $no_gmp=0;
|
my $no_gmp=0;
|
||||||
@@ -628,7 +602,7 @@ my $fips_des_enc="fips_des_enc.o";
|
|||||||
my $aes_enc="aes_core.o aes_cbc.o";
|
my $aes_enc="aes_core.o aes_cbc.o";
|
||||||
my $bf_enc ="bf_enc.o";
|
my $bf_enc ="bf_enc.o";
|
||||||
my $cast_enc="c_enc.o";
|
my $cast_enc="c_enc.o";
|
||||||
my $rc4_enc="rc4_enc.o rc4_skey.o";
|
my $rc4_enc="rc4_enc.o";
|
||||||
my $rc5_enc="rc5_enc.o";
|
my $rc5_enc="rc5_enc.o";
|
||||||
my $md5_obj="";
|
my $md5_obj="";
|
||||||
my $sha1_obj="";
|
my $sha1_obj="";
|
||||||
@@ -641,14 +615,10 @@ my $fips=0;
|
|||||||
|
|
||||||
# All of the following is disabled by default (RC5 was enabled before 0.9.8):
|
# All of the following is disabled by default (RC5 was enabled before 0.9.8):
|
||||||
|
|
||||||
my %disabled = ( # "what" => "comment" [or special keyword "experimental"]
|
my %disabled = ( # "what" => "comment"
|
||||||
"camellia" => "default",
|
"camellia" => "default",
|
||||||
"capieng" => "default",
|
|
||||||
"cms" => "default",
|
|
||||||
"gmp" => "default",
|
"gmp" => "default",
|
||||||
"jpake" => "experimental",
|
|
||||||
"mdc2" => "default",
|
"mdc2" => "default",
|
||||||
"montasm" => "default", # explicit option in 0.9.8 only (implicitly enabled in 0.9.9)
|
|
||||||
"rc5" => "default",
|
"rc5" => "default",
|
||||||
"rfc3779" => "default",
|
"rfc3779" => "default",
|
||||||
"seed" => "default",
|
"seed" => "default",
|
||||||
@@ -656,20 +626,13 @@ my %disabled = ( # "what" => "comment" [or special keyword "experimental
|
|||||||
"zlib" => "default",
|
"zlib" => "default",
|
||||||
"zlib-dynamic" => "default"
|
"zlib-dynamic" => "default"
|
||||||
);
|
);
|
||||||
my @experimental = ();
|
|
||||||
|
|
||||||
# This is what $depflags will look like with the above defaults
|
# Additional "no-..." options will be collected in %disabled.
|
||||||
# (we need this to see if we should advise the user to run "make depend"):
|
# To remove something from %disabled, use e.g. "enable-rc5".
|
||||||
my $default_depflags = " -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_CMS -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED";
|
# For symmetry, "disable-..." is a synonym for "no-...".
|
||||||
|
|
||||||
|
# This is what $depflags will look like with the above default:
|
||||||
# Explicit "no-..." options will be collected in %disabled along with the defaults.
|
my $default_depflags = "-DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_GMP -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED ";
|
||||||
# To remove something from %disabled, use "enable-foo" (unless it's experimental).
|
|
||||||
# For symmetry, "disable-foo" is a synonym for "no-foo".
|
|
||||||
|
|
||||||
# For features called "experimental" here, a more explicit "experimental-foo" is needed to enable.
|
|
||||||
# We will collect such requests in @experimental.
|
|
||||||
# To avoid accidental use of experimental features, applications will have to use -DOPENSSL_EXPERIMENTAL_FOO.
|
|
||||||
|
|
||||||
|
|
||||||
my $no_sse2=0;
|
my $no_sse2=0;
|
||||||
@@ -678,7 +641,6 @@ my $no_sse2=0;
|
|||||||
|
|
||||||
my $flags;
|
my $flags;
|
||||||
my $depflags;
|
my $depflags;
|
||||||
my $openssl_experimental_defines;
|
|
||||||
my $openssl_algorithm_defines;
|
my $openssl_algorithm_defines;
|
||||||
my $openssl_thread_defines;
|
my $openssl_thread_defines;
|
||||||
my $openssl_sys_defines="";
|
my $openssl_sys_defines="";
|
||||||
@@ -699,7 +661,6 @@ while($argv_unprocessed)
|
|||||||
{
|
{
|
||||||
$flags="";
|
$flags="";
|
||||||
$depflags="";
|
$depflags="";
|
||||||
$openssl_experimental_defines="";
|
|
||||||
$openssl_algorithm_defines="";
|
$openssl_algorithm_defines="";
|
||||||
$openssl_thread_defines="";
|
$openssl_thread_defines="";
|
||||||
$openssl_sys_defines="";
|
$openssl_sys_defines="";
|
||||||
@@ -725,44 +686,30 @@ PROCESS_ARGS:
|
|||||||
|
|
||||||
if (/^no-(.+)$/ || /^disable-(.+)$/)
|
if (/^no-(.+)$/ || /^disable-(.+)$/)
|
||||||
{
|
{
|
||||||
if (!($disabled{$1} eq "experimental"))
|
if ($1 eq "ssl")
|
||||||
{
|
{
|
||||||
if ($1 eq "ssl")
|
$disabled{"ssl2"} = "option(ssl)";
|
||||||
{
|
$disabled{"ssl3"} = "option(ssl)";
|
||||||
$disabled{"ssl2"} = "option(ssl)";
|
}
|
||||||
$disabled{"ssl3"} = "option(ssl)";
|
elsif ($1 eq "tls")
|
||||||
}
|
{
|
||||||
elsif ($1 eq "tls")
|
$disabled{"tls1"} = "option(tls)"
|
||||||
{
|
}
|
||||||
$disabled{"tls1"} = "option(tls)"
|
else
|
||||||
}
|
{
|
||||||
else
|
$disabled{$1} = "option";
|
||||||
{
|
|
||||||
$disabled{$1} = "option";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif (/^enable-(.+)$/ || /^experimental-(.+)$/)
|
elsif (/^enable-(.+)$/)
|
||||||
{
|
{
|
||||||
my $algo = $1;
|
delete $disabled{$1};
|
||||||
if ($disabled{$algo} eq "experimental")
|
|
||||||
{
|
|
||||||
die "You are requesting an experimental feature; please say 'experimental-$algo' if you are sure\n"
|
|
||||||
unless (/^experimental-/);
|
|
||||||
push @experimental, $algo;
|
|
||||||
}
|
|
||||||
delete $disabled{$algo};
|
|
||||||
|
|
||||||
$threads = 1 if ($algo eq "threads");
|
$threads = 1 if ($1 eq "threads");
|
||||||
}
|
}
|
||||||
elsif (/^--test-sanity$/)
|
elsif (/^--test-sanity$/)
|
||||||
{
|
{
|
||||||
exit(&test_sanity());
|
exit(&test_sanity());
|
||||||
}
|
}
|
||||||
elsif (/^--strict-warnings/)
|
|
||||||
{
|
|
||||||
$strict_warnings = 1;
|
|
||||||
}
|
|
||||||
elsif (/^reconfigure/ || /^reconf/)
|
elsif (/^reconfigure/ || /^reconf/)
|
||||||
{
|
{
|
||||||
if (open(IN,"<$Makefile"))
|
if (open(IN,"<$Makefile"))
|
||||||
@@ -832,10 +779,6 @@ PROCESS_ARGS:
|
|||||||
{
|
{
|
||||||
$prefix=$1;
|
$prefix=$1;
|
||||||
}
|
}
|
||||||
elsif (/^--libdir=(.*)$/)
|
|
||||||
{
|
|
||||||
$libdir=$1;
|
|
||||||
}
|
|
||||||
elsif (/^--openssldir=(.*)$/)
|
elsif (/^--openssldir=(.*)$/)
|
||||||
{
|
{
|
||||||
$openssldir=$1;
|
$openssldir=$1;
|
||||||
@@ -943,10 +886,6 @@ if (defined($disabled{"md5"}) || defined($disabled{"sha"})
|
|||||||
$disabled{"tls1"} = "forced";
|
$disabled{"tls1"} = "forced";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined($disabled{"tls1"}))
|
|
||||||
{
|
|
||||||
$disabled{"tlsext"} = "forced";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($target eq "TABLE") {
|
if ($target eq "TABLE") {
|
||||||
foreach $target (sort keys %table) {
|
foreach $target (sort keys %table) {
|
||||||
@@ -973,10 +912,6 @@ print "Configuring for $target\n";
|
|||||||
|
|
||||||
my @fields = split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
|
my @fields = split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
|
||||||
my $cc = $fields[$idx_cc];
|
my $cc = $fields[$idx_cc];
|
||||||
# Allow environment CC to override compiler...
|
|
||||||
if($ENV{CC}) {
|
|
||||||
$cc = $ENV{CC};
|
|
||||||
}
|
|
||||||
my $cflags = $fields[$idx_cflags];
|
my $cflags = $fields[$idx_cflags];
|
||||||
my $unistd = $fields[$idx_unistd];
|
my $unistd = $fields[$idx_unistd];
|
||||||
my $thread_cflag = $fields[$idx_thread_cflag];
|
my $thread_cflag = $fields[$idx_thread_cflag];
|
||||||
@@ -999,8 +934,7 @@ my $shared_target = $fields[$idx_shared_target];
|
|||||||
my $shared_cflag = $fields[$idx_shared_cflag];
|
my $shared_cflag = $fields[$idx_shared_cflag];
|
||||||
my $shared_ldflag = $fields[$idx_shared_ldflag];
|
my $shared_ldflag = $fields[$idx_shared_ldflag];
|
||||||
my $shared_extension = $fields[$idx_shared_extension];
|
my $shared_extension = $fields[$idx_shared_extension];
|
||||||
my $ranlib = $ENV{'RANLIB'} || $fields[$idx_ranlib];
|
my $ranlib = $fields[$idx_ranlib];
|
||||||
my $ar = $ENV{'AR'} || "ar";
|
|
||||||
my $arflags = $fields[$idx_arflags];
|
my $arflags = $fields[$idx_arflags];
|
||||||
|
|
||||||
if ($fips)
|
if ($fips)
|
||||||
@@ -1011,15 +945,6 @@ if ($fips)
|
|||||||
"$cpuid_obj:$bn_obj:$aes_obj:$des_obj:$sha1_obj" eq "::::");
|
"$cpuid_obj:$bn_obj:$aes_obj:$des_obj:$sha1_obj" eq "::::");
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (sort @experimental)
|
|
||||||
{
|
|
||||||
my $ALGO;
|
|
||||||
($ALGO = $_) =~ tr/[a-z]/[A-Z]/;
|
|
||||||
|
|
||||||
# opensslconf.h will set OPENSSL_NO_... unless OPENSSL_EXPERIMENTAL_... is defined
|
|
||||||
$openssl_experimental_defines .= "#define OPENSSL_NO_$ALGO\n";
|
|
||||||
$cflags .= " -DOPENSSL_EXPERIMENTAL_$ALGO";
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (sort (keys %disabled))
|
foreach (sort (keys %disabled))
|
||||||
{
|
{
|
||||||
@@ -1035,8 +960,6 @@ foreach (sort (keys %disabled))
|
|||||||
{ $no_shared = 1; }
|
{ $no_shared = 1; }
|
||||||
elsif (/^zlib$/)
|
elsif (/^zlib$/)
|
||||||
{ $zlib = 0; }
|
{ $zlib = 0; }
|
||||||
elsif (/^montasm$/)
|
|
||||||
{ $montasm = 0; }
|
|
||||||
elsif (/^static-engine$/)
|
elsif (/^static-engine$/)
|
||||||
{ }
|
{ }
|
||||||
elsif (/^zlib-dynamic$/)
|
elsif (/^zlib-dynamic$/)
|
||||||
@@ -1070,7 +993,7 @@ foreach (sort (keys %disabled))
|
|||||||
push @skip, $algo;
|
push @skip, $algo;
|
||||||
print " (skip dir)";
|
print " (skip dir)";
|
||||||
|
|
||||||
$depflags .= " -DOPENSSL_NO_$ALGO";
|
$depflags .="-DOPENSSL_NO_$ALGO ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1078,6 +1001,7 @@ foreach (sort (keys %disabled))
|
|||||||
print "\n";
|
print "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
|
my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
|
||||||
|
|
||||||
$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin" && !is_msys());
|
$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin" && !is_msys());
|
||||||
@@ -1085,13 +1009,12 @@ $IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin" && !is_msys());
|
|||||||
$no_shared = 0 if ($fipsdso && !$IsMK1MF);
|
$no_shared = 0 if ($fipsdso && !$IsMK1MF);
|
||||||
|
|
||||||
$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
|
$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
|
||||||
$exe_ext=".nlm" if ($target =~ /netware/);
|
|
||||||
$exe_ext=".pm" if ($target =~ /vos/);
|
$exe_ext=".pm" if ($target =~ /vos/);
|
||||||
if ($openssldir eq "" and $prefix eq "")
|
if ($openssldir eq "" and $prefix eq "")
|
||||||
{
|
{
|
||||||
if ($fips)
|
if ($fips)
|
||||||
{
|
{
|
||||||
$openssldir="/usr/local/ssl/fips";
|
$openssldir="/usr/local/ssl/fips-1.0";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1100,17 +1023,12 @@ if ($openssldir eq "" and $prefix eq "")
|
|||||||
}
|
}
|
||||||
$prefix=$openssldir if $prefix eq "";
|
$prefix=$openssldir if $prefix eq "";
|
||||||
|
|
||||||
$libdir="lib" if $libdir eq "";
|
|
||||||
|
|
||||||
$default_ranlib= &which("ranlib") or $default_ranlib="true";
|
$default_ranlib= &which("ranlib") or $default_ranlib="true";
|
||||||
$perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")
|
$perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")
|
||||||
or $perl="perl";
|
or $perl="perl";
|
||||||
my $make = $ENV{'MAKE'} || "make";
|
|
||||||
|
|
||||||
$cross_compile_prefix=$ENV{'CROSS_COMPILE'} if $cross_compile_prefix eq "";
|
|
||||||
|
|
||||||
chop $openssldir if $openssldir =~ /\/$/;
|
chop $openssldir if $openssldir =~ /\/$/;
|
||||||
chop $prefix if $prefix =~ /.\/$/;
|
chop $prefix if $prefix =~ /\/$/;
|
||||||
|
|
||||||
$openssldir=$prefix . "/ssl" if $openssldir eq "";
|
$openssldir=$prefix . "/ssl" if $openssldir eq "";
|
||||||
$openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;
|
$openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;
|
||||||
@@ -1254,14 +1172,6 @@ if ($no_asm)
|
|||||||
$cflags=~s/\-D[BL]_ENDIAN// if ($fips);
|
$cflags=~s/\-D[BL]_ENDIAN// if ($fips);
|
||||||
$thread_cflags=~s/\-D[BL]_ENDIAN// if ($fips);
|
$thread_cflags=~s/\-D[BL]_ENDIAN// if ($fips);
|
||||||
}
|
}
|
||||||
if ($montasm)
|
|
||||||
{
|
|
||||||
$bn_obj =~ s/MAYBE-MO86-/mo86-/;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$bn_obj =~ s/MAYBE-MO86-[a-z.]*//;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$no_shared)
|
if (!$no_shared)
|
||||||
{
|
{
|
||||||
@@ -1327,6 +1237,7 @@ if ($target =~ /\-icc$/) # Intel C compiler
|
|||||||
while(<FD>) { $iccver=$1 if (/Version ([0-9]+)\./); }
|
while(<FD>) { $iccver=$1 if (/Version ([0-9]+)\./); }
|
||||||
close(FD);
|
close(FD);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($iccver>=8)
|
if ($iccver>=8)
|
||||||
{
|
{
|
||||||
# Eliminate unnecessary dependency from libirc.a. This is
|
# Eliminate unnecessary dependency from libirc.a. This is
|
||||||
@@ -1460,16 +1371,6 @@ if ($shlib_version_number =~ /(^[0-9]*)\.([0-9\.]*)/)
|
|||||||
$shlib_minor=$2;
|
$shlib_minor=$2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($strict_warnings)
|
|
||||||
{
|
|
||||||
my $wopt;
|
|
||||||
die "ERROR --strict-warnings requires gcc" unless ($cc =~ /gcc$/);
|
|
||||||
foreach $wopt (split /\s+/, $gcc_devteam_warn)
|
|
||||||
{
|
|
||||||
$cflags .= " $wopt" unless ($cflags =~ /$wopt/)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
open(IN,'<Makefile.org') || die "unable to read Makefile.org:$!\n";
|
open(IN,'<Makefile.org') || die "unable to read Makefile.org:$!\n";
|
||||||
unlink("$Makefile.new") || die "unable to remove old $Makefile.new:$!\n" if -e "$Makefile.new";
|
unlink("$Makefile.new") || die "unable to remove old $Makefile.new:$!\n" if -e "$Makefile.new";
|
||||||
open(OUT,">$Makefile.new") || die "unable to create $Makefile.new:$!\n";
|
open(OUT,">$Makefile.new") || die "unable to create $Makefile.new:$!\n";
|
||||||
@@ -1482,13 +1383,10 @@ while (<IN>)
|
|||||||
if ($sdirs) {
|
if ($sdirs) {
|
||||||
my $dir;
|
my $dir;
|
||||||
foreach $dir (@skip) {
|
foreach $dir (@skip) {
|
||||||
s/(\s)$dir\s/$1/;
|
s/([ ])$dir /\1/;
|
||||||
s/\s$dir$//;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$sdirs = 0 unless /\\$/;
|
$sdirs = 0 unless /\\$/;
|
||||||
s/fips // if (/^DIRS=/ && !$fips);
|
|
||||||
s/engines // if (/^DIRS=/ && $disabled{"engine"});
|
|
||||||
s/^VERSION=.*/VERSION=$version/;
|
s/^VERSION=.*/VERSION=$version/;
|
||||||
s/^MAJOR=.*/MAJOR=$major/;
|
s/^MAJOR=.*/MAJOR=$major/;
|
||||||
s/^MINOR=.*/MINOR=$minor/;
|
s/^MINOR=.*/MINOR=$minor/;
|
||||||
@@ -1499,7 +1397,6 @@ while (<IN>)
|
|||||||
s/^SHLIB_EXT=.*/SHLIB_EXT=$shared_extension/;
|
s/^SHLIB_EXT=.*/SHLIB_EXT=$shared_extension/;
|
||||||
s/^INSTALLTOP=.*$/INSTALLTOP=$prefix/;
|
s/^INSTALLTOP=.*$/INSTALLTOP=$prefix/;
|
||||||
s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/;
|
s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/;
|
||||||
s/^LIBDIR=.*$/LIBDIR=$libdir/;
|
|
||||||
s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/;
|
s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/;
|
||||||
s/^PLATFORM=.*$/PLATFORM=$target/;
|
s/^PLATFORM=.*$/PLATFORM=$target/;
|
||||||
s/^OPTIONS=.*$/OPTIONS=$options/;
|
s/^OPTIONS=.*$/OPTIONS=$options/;
|
||||||
@@ -1512,12 +1409,11 @@ while (<IN>)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
s/^CC=.*$/CC= $cc/;
|
s/^CC=.*$/CC= $cc/;
|
||||||
s/^AR=\s*ar/AR= $ar/;
|
|
||||||
s/^RANLIB=.*/RANLIB= $ranlib/;
|
s/^RANLIB=.*/RANLIB= $ranlib/;
|
||||||
}
|
}
|
||||||
s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
|
s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
|
||||||
s/^CFLAG=.*$/CFLAG= $cflags/;
|
s/^CFLAG=.*$/CFLAG= $cflags/;
|
||||||
s/^DEPFLAG=.*$/DEPFLAG=$depflags/;
|
s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
|
||||||
s/^PEX_LIBS=.*$/PEX_LIBS= $prelflags/;
|
s/^PEX_LIBS=.*$/PEX_LIBS= $prelflags/;
|
||||||
s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
|
s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
|
||||||
s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
|
s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
|
||||||
@@ -1660,7 +1556,6 @@ print OUT "/* WARNING: Generated automatically from opensslconf.h.in by Configur
|
|||||||
|
|
||||||
print OUT "/* OpenSSL was configured with the following options: */\n";
|
print OUT "/* OpenSSL was configured with the following options: */\n";
|
||||||
my $openssl_algorithm_defines_trans = $openssl_algorithm_defines;
|
my $openssl_algorithm_defines_trans = $openssl_algorithm_defines;
|
||||||
$openssl_experimental_defines =~ s/^\s*#\s*define\s+OPENSSL_NO_(.*)/#ifndef OPENSSL_EXPERIMENTAL_$1\n# ifndef OPENSSL_NO_$1\n# define OPENSSL_NO_$1\n# endif\n#endif/mg;
|
|
||||||
$openssl_algorithm_defines_trans =~ s/^\s*#\s*define\s+OPENSSL_(.*)/# if defined(OPENSSL_$1) \&\& !defined($1)\n# define $1\n# endif/mg;
|
$openssl_algorithm_defines_trans =~ s/^\s*#\s*define\s+OPENSSL_(.*)/# if defined(OPENSSL_$1) \&\& !defined($1)\n# define $1\n# endif/mg;
|
||||||
$openssl_algorithm_defines =~ s/^\s*#\s*define\s+(.*)/#ifndef $1\n# define $1\n#endif/mg;
|
$openssl_algorithm_defines =~ s/^\s*#\s*define\s+(.*)/#ifndef $1\n# define $1\n#endif/mg;
|
||||||
$openssl_algorithm_defines = " /* no ciphers excluded */\n" if $openssl_algorithm_defines eq "";
|
$openssl_algorithm_defines = " /* no ciphers excluded */\n" if $openssl_algorithm_defines eq "";
|
||||||
@@ -1669,10 +1564,8 @@ $openssl_sys_defines =~ s/^\s*#\s*define\s+(.*)/#ifndef $1\n# define $1\n#endif/
|
|||||||
$openssl_other_defines =~ s/^\s*#\s*define\s+(.*)/#ifndef $1\n# define $1\n#endif/mg;
|
$openssl_other_defines =~ s/^\s*#\s*define\s+(.*)/#ifndef $1\n# define $1\n#endif/mg;
|
||||||
print OUT $openssl_sys_defines;
|
print OUT $openssl_sys_defines;
|
||||||
print OUT "#ifndef OPENSSL_DOING_MAKEDEPEND\n\n";
|
print OUT "#ifndef OPENSSL_DOING_MAKEDEPEND\n\n";
|
||||||
print OUT $openssl_experimental_defines;
|
|
||||||
print OUT "\n";
|
|
||||||
print OUT $openssl_algorithm_defines;
|
print OUT $openssl_algorithm_defines;
|
||||||
print OUT "\n#endif /* OPENSSL_DOING_MAKEDEPEND */\n\n";
|
print OUT "\n#endif /* OPENSSL_DOING_MAKEDEPEND */\n";
|
||||||
print OUT $openssl_thread_defines;
|
print OUT $openssl_thread_defines;
|
||||||
print OUT $openssl_other_defines,"\n";
|
print OUT $openssl_other_defines,"\n";
|
||||||
|
|
||||||
@@ -1689,20 +1582,9 @@ print OUT "#define OPENSSL_CPUID_OBJ\n\n" if ($cpuid_obj);
|
|||||||
while (<IN>)
|
while (<IN>)
|
||||||
{
|
{
|
||||||
if (/^#define\s+OPENSSLDIR/)
|
if (/^#define\s+OPENSSLDIR/)
|
||||||
{
|
{ print OUT "#define OPENSSLDIR \"$openssldir\"\n"; }
|
||||||
my $foo = $openssldir;
|
|
||||||
$foo =~ s/\\/\\\\/g;
|
|
||||||
print OUT "#define OPENSSLDIR \"$foo\"\n";
|
|
||||||
}
|
|
||||||
elsif (/^#define\s+ENGINESDIR/)
|
elsif (/^#define\s+ENGINESDIR/)
|
||||||
{
|
{ print OUT "#define ENGINESDIR \"$prefix/lib/engines\"\n"; }
|
||||||
# $foo is to become "$prefix/lib$multilib/engines";
|
|
||||||
# as Makefile.org and engines/Makefile are adapted for
|
|
||||||
# $multilib suffix.
|
|
||||||
my $foo = "$prefix/lib/engines";
|
|
||||||
$foo =~ s/\\/\\\\/g;
|
|
||||||
print OUT "#define ENGINESDIR \"$foo\"\n";
|
|
||||||
}
|
|
||||||
elsif (/^#((define)|(undef))\s+OPENSSL_EXPORT_VAR_AS_FUNCTION/)
|
elsif (/^#((define)|(undef))\s+OPENSSL_EXPORT_VAR_AS_FUNCTION/)
|
||||||
{ printf OUT "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION\n"
|
{ printf OUT "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION\n"
|
||||||
if $export_var_as_fn;
|
if $export_var_as_fn;
|
||||||
@@ -1807,7 +1689,7 @@ if($IsMK1MF) {
|
|||||||
EOF
|
EOF
|
||||||
close(OUT);
|
close(OUT);
|
||||||
} else {
|
} else {
|
||||||
my $make_command = "$make PERL=\'$perl\'";
|
my $make_command = "make PERL=\'$perl\'";
|
||||||
my $make_targets = "";
|
my $make_targets = "";
|
||||||
$make_targets .= " links" if $symlink;
|
$make_targets .= " links" if $symlink;
|
||||||
$make_targets .= " depend" if $depflags ne $default_depflags && $make_depend;
|
$make_targets .= " depend" if $depflags ne $default_depflags && $make_depend;
|
||||||
@@ -1815,11 +1697,11 @@ EOF
|
|||||||
(system $make_command.$make_targets) == 0 or exit $?
|
(system $make_command.$make_targets) == 0 or exit $?
|
||||||
if $make_targets ne "";
|
if $make_targets ne "";
|
||||||
if ( $perl =~ m@^/@) {
|
if ( $perl =~ m@^/@) {
|
||||||
&dofile("tools/c_rehash",$perl,'^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";', '^my \$prefix;$', 'my $prefix = "' . $prefix . '";');
|
&dofile("tools/c_rehash",$perl,'^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";');
|
||||||
&dofile("apps/CA.pl",$perl,'^#!/', '#!%s');
|
&dofile("apps/CA.pl",$perl,'^#!/', '#!%s');
|
||||||
} else {
|
} else {
|
||||||
# No path for Perl known ...
|
# No path for Perl known ...
|
||||||
&dofile("tools/c_rehash",'/usr/local/bin/perl','^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";', '^my \$prefix;$', 'my $prefix = "' . $prefix . '";');
|
&dofile("tools/c_rehash",'/usr/local/bin/perl','^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";');
|
||||||
&dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s');
|
&dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s');
|
||||||
}
|
}
|
||||||
if ($depflags ne $default_depflags && !$make_depend) {
|
if ($depflags ne $default_depflags && !$make_depend) {
|
||||||
@@ -1834,7 +1716,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
# create the ms/version32.rc file if needed
|
# create the ms/version32.rc file if needed
|
||||||
if ($IsMK1MF && ($target !~ /^netware/)) {
|
if ($IsMK1MF) {
|
||||||
my ($v1, $v2, $v3, $v4);
|
my ($v1, $v2, $v3, $v4);
|
||||||
if ($version_num =~ /(^[0-9a-f]{1})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i) {
|
if ($version_num =~ /(^[0-9a-f]{1})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i) {
|
||||||
$v1=hex $1;
|
$v1=hex $1;
|
||||||
@@ -1936,7 +1818,7 @@ OpenSSL FIPS Object Module as identified by the CMVP
|
|||||||
(http://csrc.nist.gov/cryptval/) in any application requiring the use of FIPS
|
(http://csrc.nist.gov/cryptval/) in any application requiring the use of FIPS
|
||||||
140-2 validated software.
|
140-2 validated software.
|
||||||
|
|
||||||
This is an OpenSSL 0.9.8 test version.
|
This is an OpenSSL 0.9.8-fips test version.
|
||||||
|
|
||||||
See the file README.FIPS for details of how to build a test library.
|
See the file README.FIPS for details of how to build a test library.
|
||||||
|
|
||||||
|
161
FAQ
161
FAQ
@@ -32,8 +32,6 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* How do I install a CA certificate into a browser?
|
* How do I install a CA certificate into a browser?
|
||||||
* Why is OpenSSL x509 DN output not conformant to RFC2253?
|
* Why is OpenSSL x509 DN output not conformant to RFC2253?
|
||||||
* What is a "128 bit certificate"? Can I create one with OpenSSL?
|
* What is a "128 bit certificate"? Can I create one with OpenSSL?
|
||||||
* Why does OpenSSL set the authority key identifier extension incorrectly?
|
|
||||||
* How can I set up a bundle of commercial root CA certificates?
|
|
||||||
|
|
||||||
[BUILD] Questions about building and testing OpenSSL
|
[BUILD] Questions about building and testing OpenSSL
|
||||||
|
|
||||||
@@ -52,9 +50,6 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* Why does the OpenSSL test suite fail in sha512t on x86 CPU?
|
* Why does the OpenSSL test suite fail in sha512t on x86 CPU?
|
||||||
* Why does compiler fail to compile sha512.c?
|
* Why does compiler fail to compile sha512.c?
|
||||||
* Test suite still fails, what to do?
|
* Test suite still fails, what to do?
|
||||||
* I think I've found a bug, what should I do?
|
|
||||||
* I'm SURE I've found a bug, how do I report it?
|
|
||||||
* I've found a security issue, how do I report it?
|
|
||||||
|
|
||||||
[PROG] Questions about programming with OpenSSL
|
[PROG] Questions about programming with OpenSSL
|
||||||
|
|
||||||
@@ -71,9 +66,6 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* Why doesn't my server application receive a client certificate?
|
* Why doesn't my server application receive a client certificate?
|
||||||
* Why does compilation fail due to an undefined symbol NID_uniqueIdentifier?
|
* Why does compilation fail due to an undefined symbol NID_uniqueIdentifier?
|
||||||
* I think I've detected a memory leak, is this a bug?
|
* I think I've detected a memory leak, is this a bug?
|
||||||
* Why does Valgrind complain about the use of uninitialized data?
|
|
||||||
* Why doesn't a memory BIO work when a file does?
|
|
||||||
* Where are the declarations and implementations of d2i_X509() etc?
|
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
|
||||||
@@ -82,7 +74,7 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* Which is the current version of OpenSSL?
|
* Which is the current version of OpenSSL?
|
||||||
|
|
||||||
The current version is available from <URL: http://www.openssl.org>.
|
The current version is available from <URL: http://www.openssl.org>.
|
||||||
OpenSSL 1.0.0f was released on Jan 4th, 2012.
|
OpenSSL 0.9.8e was released on February 23rd, 2007.
|
||||||
|
|
||||||
In addition to the current stable release, you can also access daily
|
In addition to the current stable release, you can also access daily
|
||||||
snapshots of the OpenSSL development version at <URL:
|
snapshots of the OpenSSL development version at <URL:
|
||||||
@@ -98,17 +90,14 @@ explains how to install this library.
|
|||||||
|
|
||||||
OpenSSL includes a command line utility that can be used to perform a
|
OpenSSL includes a command line utility that can be used to perform a
|
||||||
variety of cryptographic functions. It is described in the openssl(1)
|
variety of cryptographic functions. It is described in the openssl(1)
|
||||||
manpage. Documentation for developers is currently being written. Many
|
manpage. Documentation for developers is currently being written. A
|
||||||
manual pages are available; overviews over libcrypto and
|
few manual pages already are available; overviews over libcrypto and
|
||||||
libssl are given in the crypto(3) and ssl(3) manpages.
|
libssl are given in the crypto(3) and ssl(3) manpages.
|
||||||
|
|
||||||
The OpenSSL manpages are installed in /usr/local/ssl/man/ (or a
|
The OpenSSL manpages are installed in /usr/local/ssl/man/ (or a
|
||||||
different directory if you specified one as described in INSTALL).
|
different directory if you specified one as described in INSTALL).
|
||||||
In addition, you can read the most current versions at
|
In addition, you can read the most current versions at
|
||||||
<URL: http://www.openssl.org/docs/>. Note that the online documents refer
|
<URL: http://www.openssl.org/docs/>.
|
||||||
to the very latest development versions of OpenSSL and may include features
|
|
||||||
not present in released versions. If in doubt refer to the documentation
|
|
||||||
that came with the version of OpenSSL you are using.
|
|
||||||
|
|
||||||
For information on parts of libcrypto that are not yet documented, you
|
For information on parts of libcrypto that are not yet documented, you
|
||||||
might want to read Ariel Glenn's documentation on SSLeay 0.9, OpenSSL's
|
might want to read Ariel Glenn's documentation on SSLeay 0.9, OpenSSL's
|
||||||
@@ -134,7 +123,7 @@ OpenSSL. Information on the OpenSSL mailing lists is available from
|
|||||||
* Where can I get a compiled version of OpenSSL?
|
* Where can I get a compiled version of OpenSSL?
|
||||||
|
|
||||||
You can finder pointers to binary distributions in
|
You can finder pointers to binary distributions in
|
||||||
<URL: http://www.openssl.org/related/binaries.html> .
|
http://www.openssl.org/related/binaries.html .
|
||||||
|
|
||||||
Some applications that use OpenSSL are distributed in binary form.
|
Some applications that use OpenSSL are distributed in binary form.
|
||||||
When using such an application, you don't need to install OpenSSL
|
When using such an application, you don't need to install OpenSSL
|
||||||
@@ -412,10 +401,10 @@ You can't generally create such a certificate using OpenSSL but there is no
|
|||||||
need to any more. Nowadays web browsers using unrestricted strong encryption
|
need to any more. Nowadays web browsers using unrestricted strong encryption
|
||||||
are generally available.
|
are generally available.
|
||||||
|
|
||||||
When there were tight restrictions on the export of strong encryption
|
When there were tight export restrictions on the export of strong encryption
|
||||||
software from the US only weak encryption algorithms could be freely exported
|
software from the US only weak encryption algorithms could be freely exported
|
||||||
(initially 40 bit and then 56 bit). It was widely recognised that this was
|
(initially 40 bit and then 56 bit). It was widely recognised that this was
|
||||||
inadequate. A relaxation of the rules allowed the use of strong encryption but
|
inadequate. A relaxation the rules allowed the use of strong encryption but
|
||||||
only to an authorised server.
|
only to an authorised server.
|
||||||
|
|
||||||
Two slighly different techniques were developed to support this, one used by
|
Two slighly different techniques were developed to support this, one used by
|
||||||
@@ -436,39 +425,6 @@ The export laws were later changed to allow almost unrestricted use of strong
|
|||||||
encryption so these certificates are now obsolete.
|
encryption so these certificates are now obsolete.
|
||||||
|
|
||||||
|
|
||||||
* Why does OpenSSL set the authority key identifier (AKID) extension incorrectly?
|
|
||||||
|
|
||||||
It doesn't: this extension is often the cause of confusion.
|
|
||||||
|
|
||||||
Consider a certificate chain A->B->C so that A signs B and B signs C. Suppose
|
|
||||||
certificate C contains AKID.
|
|
||||||
|
|
||||||
The purpose of this extension is to identify the authority certificate B. This
|
|
||||||
can be done either by including the subject key identifier of B or its issuer
|
|
||||||
name and serial number.
|
|
||||||
|
|
||||||
In this latter case because it is identifying certifcate B it must contain the
|
|
||||||
issuer name and serial number of B.
|
|
||||||
|
|
||||||
It is often wrongly assumed that it should contain the subject name of B. If it
|
|
||||||
did this would be redundant information because it would duplicate the issuer
|
|
||||||
name of C.
|
|
||||||
|
|
||||||
|
|
||||||
* How can I set up a bundle of commercial root CA certificates?
|
|
||||||
|
|
||||||
The OpenSSL software is shipped without any root CA certificate as the
|
|
||||||
OpenSSL project does not have any policy on including or excluding
|
|
||||||
any specific CA and does not intend to set up such a policy. Deciding
|
|
||||||
about which CAs to support is up to application developers or
|
|
||||||
administrators.
|
|
||||||
|
|
||||||
Other projects do have other policies so you can for example extract the CA
|
|
||||||
bundle used by Mozilla and/or modssl as described in this article:
|
|
||||||
|
|
||||||
<URL: http://www.mail-archive.com/modssl-users@modssl.org/msg16980.html>
|
|
||||||
|
|
||||||
|
|
||||||
[BUILD] =======================================================================
|
[BUILD] =======================================================================
|
||||||
|
|
||||||
* Why does the linker complain about undefined symbols?
|
* Why does the linker complain about undefined symbols?
|
||||||
@@ -508,7 +464,7 @@ when you run the test suite (using "make test"). The message returned is
|
|||||||
"bc: 1 not implemented".
|
"bc: 1 not implemented".
|
||||||
|
|
||||||
The best way to deal with this is to find another implementation of bc
|
The best way to deal with this is to find another implementation of bc
|
||||||
and compile/install it. GNU bc (see <URL: http://www.gnu.org/software/software.html>
|
and compile/install it. GNU bc (see http://www.gnu.org/software/software.html
|
||||||
for download instructions) can be safely used, for example.
|
for download instructions) can be safely used, for example.
|
||||||
|
|
||||||
|
|
||||||
@@ -519,7 +475,7 @@ that the OpenSSL bntest throws at it. This gets triggered when you run the
|
|||||||
test suite (using "make test"). The message returned is "bc: stack empty".
|
test suite (using "make test"). The message returned is "bc: stack empty".
|
||||||
|
|
||||||
The best way to deal with this is to find another implementation of bc
|
The best way to deal with this is to find another implementation of bc
|
||||||
and compile/install it. GNU bc (see <URL: http://www.gnu.org/software/software.html>
|
and compile/install it. GNU bc (see http://www.gnu.org/software/software.html
|
||||||
for download instructions) can be safely used, for example.
|
for download instructions) can be safely used, for example.
|
||||||
|
|
||||||
|
|
||||||
@@ -712,46 +668,6 @@ never make sense, and tend to emerge when you least expect them. In order
|
|||||||
to identify one, drop optimization level, e.g. by editing CFLAG line in
|
to identify one, drop optimization level, e.g. by editing CFLAG line in
|
||||||
top-level Makefile, recompile and re-run the test.
|
top-level Makefile, recompile and re-run the test.
|
||||||
|
|
||||||
* I think I've found a bug, what should I do?
|
|
||||||
|
|
||||||
If you are a new user then it is quite likely you haven't found a bug and
|
|
||||||
something is happening you aren't familiar with. Check this FAQ, the associated
|
|
||||||
documentation and the mailing lists for similar queries. If you are still
|
|
||||||
unsure whether it is a bug or not submit a query to the openssl-users mailing
|
|
||||||
list.
|
|
||||||
|
|
||||||
|
|
||||||
* I'm SURE I've found a bug, how do I report it?
|
|
||||||
|
|
||||||
Bug reports with no security implications should be sent to the request
|
|
||||||
tracker. This can be done by mailing the report to <rt@openssl.org> (or its
|
|
||||||
alias <openssl-bugs@openssl.org>), please note that messages sent to the
|
|
||||||
request tracker also appear in the public openssl-dev mailing list.
|
|
||||||
|
|
||||||
The report should be in plain text. Any patches should be sent as
|
|
||||||
plain text attachments because some mailers corrupt patches sent inline.
|
|
||||||
If your issue affects multiple versions of OpenSSL check any patches apply
|
|
||||||
cleanly and, if possible include patches to each affected version.
|
|
||||||
|
|
||||||
The report should be given a meaningful subject line briefly summarising the
|
|
||||||
issue. Just "bug in OpenSSL" or "bug in OpenSSL 0.9.8n" is not very helpful.
|
|
||||||
|
|
||||||
By sending reports to the request tracker the bug can then be given a priority
|
|
||||||
and assigned to the appropriate maintainer. The history of discussions can be
|
|
||||||
accessed and if the issue has been addressed or a reason why not. If patches
|
|
||||||
are only sent to openssl-dev they can be mislaid if a team member has to
|
|
||||||
wade through months of old messages to review the discussion.
|
|
||||||
|
|
||||||
See also <URL: http://www.openssl.org/support/rt.html>
|
|
||||||
|
|
||||||
|
|
||||||
* I've found a security issue, how do I report it?
|
|
||||||
|
|
||||||
If you think your bug has security implications then please send it to
|
|
||||||
openssl-security@openssl.org if you don't get a prompt reply at least
|
|
||||||
acknowledging receipt then resend or mail it directly to one of the
|
|
||||||
more active team members (e.g. Steve).
|
|
||||||
|
|
||||||
[PROG] ========================================================================
|
[PROG] ========================================================================
|
||||||
|
|
||||||
* Is OpenSSL thread-safe?
|
* Is OpenSSL thread-safe?
|
||||||
@@ -764,10 +680,8 @@ file.
|
|||||||
|
|
||||||
Multi-threaded applications must provide two callback functions to
|
Multi-threaded applications must provide two callback functions to
|
||||||
OpenSSL by calling CRYPTO_set_locking_callback() and
|
OpenSSL by calling CRYPTO_set_locking_callback() and
|
||||||
CRYPTO_set_id_callback(), for all versions of OpenSSL up to and
|
CRYPTO_set_id_callback(). This is described in the threads(3)
|
||||||
including 0.9.8[abc...]. As of version 1.0.0, CRYPTO_set_id_callback()
|
manpage.
|
||||||
and associated APIs are deprecated by CRYPTO_THREADID_set_callback()
|
|
||||||
and friends. This is described in the threads(3) manpage.
|
|
||||||
|
|
||||||
* I've compiled a program under Windows and it crashes: why?
|
* I've compiled a program under Windows and it crashes: why?
|
||||||
|
|
||||||
@@ -908,11 +822,11 @@ code itself (the hex digits after the second colon).
|
|||||||
|
|
||||||
* Why do I get errors about unknown algorithms?
|
* Why do I get errors about unknown algorithms?
|
||||||
|
|
||||||
The cause is forgetting to load OpenSSL's table of algorithms with
|
This can happen under several circumstances such as reading in an
|
||||||
OpenSSL_add_all_algorithms(). See the manual page for more information. This
|
encrypted private key or attempting to decrypt a PKCS#12 file. The cause
|
||||||
can cause several problems such as being unable to read in an encrypted
|
is forgetting to load OpenSSL's table of algorithms with
|
||||||
PEM file, unable to decrypt a PKCS#12 file or signature failure when
|
OpenSSL_add_all_algorithms(). See the manual page for more information.
|
||||||
verifying certificates.
|
|
||||||
|
|
||||||
* Why can't the OpenSSH configure script detect OpenSSL?
|
* Why can't the OpenSSH configure script detect OpenSSL?
|
||||||
|
|
||||||
@@ -980,46 +894,5 @@ thread-safe):
|
|||||||
ERR_free_strings(), EVP_cleanup() and CRYPTO_cleanup_all_ex_data().
|
ERR_free_strings(), EVP_cleanup() and CRYPTO_cleanup_all_ex_data().
|
||||||
|
|
||||||
|
|
||||||
* Why does Valgrind complain about the use of uninitialized data?
|
|
||||||
|
|
||||||
When OpenSSL's PRNG routines are called to generate random numbers the supplied
|
|
||||||
buffer contents are mixed into the entropy pool: so it technically does not
|
|
||||||
matter whether the buffer is initialized at this point or not. Valgrind (and
|
|
||||||
other test tools) will complain about this. When using Valgrind, make sure the
|
|
||||||
OpenSSL library has been compiled with the PURIFY macro defined (-DPURIFY)
|
|
||||||
to get rid of these warnings.
|
|
||||||
|
|
||||||
|
|
||||||
* Why doesn't a memory BIO work when a file does?
|
|
||||||
|
|
||||||
This can occur in several cases for example reading an S/MIME email message.
|
|
||||||
The reason is that a memory BIO can do one of two things when all the data
|
|
||||||
has been read from it.
|
|
||||||
|
|
||||||
The default behaviour is to indicate that no more data is available and that
|
|
||||||
the call should be retried, this is to allow the application to fill up the BIO
|
|
||||||
again if necessary.
|
|
||||||
|
|
||||||
Alternatively it can indicate that no more data is available and that EOF has
|
|
||||||
been reached.
|
|
||||||
|
|
||||||
If a memory BIO is to behave in the same way as a file this second behaviour
|
|
||||||
is needed. This must be done by calling:
|
|
||||||
|
|
||||||
BIO_set_mem_eof_return(bio, 0);
|
|
||||||
|
|
||||||
See the manual pages for more details.
|
|
||||||
|
|
||||||
|
|
||||||
* Where are the declarations and implementations of d2i_X509() etc?
|
|
||||||
|
|
||||||
These are defined and implemented by macros of the form:
|
|
||||||
|
|
||||||
|
|
||||||
DECLARE_ASN1_FUNCTIONS(X509) and IMPLEMENT_ASN1_FUNCTIONS(X509)
|
|
||||||
|
|
||||||
The implementation passes an ASN1 "template" defining the structure into an
|
|
||||||
ASN1 interpreter using generalised functions such as ASN1_item_d2i().
|
|
||||||
|
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
|
||||||
|
4
INSTALL
4
INSTALL
@@ -158,7 +158,7 @@
|
|||||||
standard headers). If it is a problem with OpenSSL itself, please
|
standard headers). If it is a problem with OpenSSL itself, please
|
||||||
report the problem to <openssl-bugs@openssl.org> (note that your
|
report the problem to <openssl-bugs@openssl.org> (note that your
|
||||||
message will be recorded in the request tracker publicly readable
|
message will be recorded in the request tracker publicly readable
|
||||||
via http://www.openssl.org/support/rt.html and will be forwarded to a
|
via http://www.openssl.org/support/rt2.html and will be forwarded to a
|
||||||
public mailing list). Include the output of "make report" in your message.
|
public mailing list). Include the output of "make report" in your message.
|
||||||
Please check out the request tracker. Maybe the bug was already
|
Please check out the request tracker. Maybe the bug was already
|
||||||
reported or has already been fixed.
|
reported or has already been fixed.
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
in Makefile.ssl and run "make clean; make". Please send a bug
|
in Makefile.ssl and run "make clean; make". Please send a bug
|
||||||
report to <openssl-bugs@openssl.org>, including the output of
|
report to <openssl-bugs@openssl.org>, including the output of
|
||||||
"make report" in order to be added to the request tracker at
|
"make report" in order to be added to the request tracker at
|
||||||
http://www.openssl.org/support/rt.html.
|
http://www.openssl.org/support/rt2.html.
|
||||||
|
|
||||||
4. If everything tests ok, install OpenSSL with
|
4. If everything tests ok, install OpenSSL with
|
||||||
|
|
||||||
|
130
INSTALL.NW
130
INSTALL.NW
@@ -8,62 +8,58 @@ Notes about building OpenSSL for NetWare.
|
|||||||
BUILD PLATFORM:
|
BUILD PLATFORM:
|
||||||
---------------
|
---------------
|
||||||
The build scripts (batch files, perl scripts, etc) have been developed and
|
The build scripts (batch files, perl scripts, etc) have been developed and
|
||||||
tested on W2K. The scripts should run fine on other Windows platforms
|
tested on W2K. The scripts should run fine on other Windows
|
||||||
(NT, Win9x, WinXP) but they have not been tested. They may require some
|
platforms (NT, Win9x, WinXP) but they haven't been tested. They may require
|
||||||
modifications.
|
some modifications.
|
||||||
|
|
||||||
|
|
||||||
Supported NetWare Platforms - NetWare 5.x, NetWare 6.x:
|
Supported NetWare Platforms - NetWare 5.x, NetWare 6.x:
|
||||||
-------------------------------------------------------
|
------------------------------------------
|
||||||
OpenSSL can either use the WinSock interfaces introduced in NetWare 5,
|
OpenSSL uses the WinSock interfaces introduced in NetWare 5. Therefore,
|
||||||
or the BSD socket interface. Previous versions of NetWare, 4.x and 3.x,
|
previous versions of NetWare, 4.x and 3.x, are not supported.
|
||||||
are only supported if OpenSSL is build for CLIB and BSD sockets;
|
|
||||||
WinSock builds only support NetWare 5 and up.
|
|
||||||
|
|
||||||
On NetWare there are two c-runtime libraries. There is the legacy CLIB
|
On NetWare there are two c-runtime libraries. There is the legacy CLIB
|
||||||
interfaces and the newer LIBC interfaces. Being ANSI-C libraries, the
|
interfaces and the newer LibC interfaces. Being ANSI-C libraries, the
|
||||||
functionality in CLIB and LIBC is similar but the LIBC interfaces are built
|
functionality in CLIB and LibC is similar but the LibC interfaces are built
|
||||||
using Novell Kernal Services (NKS) which is designed to leverage
|
using Novell Kernal Services (NKS) which is designed to leverage
|
||||||
multi-processor environments.
|
multi-processor environments.
|
||||||
|
|
||||||
The NetWare port of OpenSSL can be configured to build using CLIB or LIBC.
|
The NetWare port of OpenSSL can configured to build using CLIB or LibC. The
|
||||||
The CLIB build was developed and tested using NetWare 5.0 sp6.0a. The LIBC
|
CLIB build was developed and tested using NetWare 5.0 sp6.0a. The LibC
|
||||||
build was developed and tested using the NetWare 6.0 FCS.
|
build was developed and tested using the NetWare 6.0 FCS.
|
||||||
|
|
||||||
The necessary LIBC functionality ships with NetWare 6. However, earlier
|
The necessary LibC functionality ships with NetWare 6. However, earlier
|
||||||
NetWare 5.x versions will require updates in order to run the OpenSSL LIBC
|
NetWare 5.x versions will require updates in order to run the OpenSSL LibC
|
||||||
build (NetWare 5.1 SP8 is known to work).
|
build.
|
||||||
|
|
||||||
As of June 2005, the LIBC build can be configured to use BSD sockets instead
|
As of June 2005, the LibC build can be configured to use BSD sockets instead
|
||||||
of WinSock sockets. Call Configure (usually through netware\build.bat) using
|
of WinSock sockets. Call Configure (usually through netware\build.bat) using
|
||||||
a target of "netware-libc-bsdsock" instead of "netware-libc".
|
a target of "netware-libc-bsdsock" instead of "netware-libc".
|
||||||
|
|
||||||
As of June 2007, support for CLIB and BSD sockets is also now available
|
|
||||||
using a target of "netware-clib-bsdsock" instead of "netware-clib";
|
|
||||||
also gcc builds are now supported on both Linux and Win32 (post 0.9.8e).
|
|
||||||
|
|
||||||
REQUIRED TOOLS:
|
REQUIRED TOOLS:
|
||||||
---------------
|
---------------
|
||||||
Based upon the configuration and build options used, some or all of the
|
Based upon the configuration and build options used, some or all of the
|
||||||
following tools may be required:
|
following tools may be required:
|
||||||
|
|
||||||
|
|
||||||
* Perl for Win32 - required (http://www.activestate.com/ActivePerl)
|
* Perl for Win32 - required (http://www.activestate.com/ActivePerl)
|
||||||
Used to run the various perl scripts on the build platform.
|
Used to run the various perl scripts on the build platform.
|
||||||
|
|
||||||
|
|
||||||
* Perl 5.8.0 for NetWare v3.20 (or later) - required
|
* Perl 5.8.0 for NetWare v3.20 (or later) - required
|
||||||
(http://developer.novell.com) Used to run the test script on NetWare
|
(http://developer.novell.com) Used to run the test script on NetWare
|
||||||
after building.
|
after building.
|
||||||
|
|
||||||
* Compiler / Linker - required:
|
|
||||||
Metrowerks CodeWarrior PDK 2.1 (or later) for NetWare (commercial):
|
|
||||||
Provides command line tools used for building.
|
|
||||||
Tools:
|
|
||||||
mwccnlm.exe - C/C++ Compiler for NetWare
|
|
||||||
mwldnlm.exe - Linker for NetWare
|
|
||||||
mwasmnlm.exe - x86 assembler for NetWare (if using assembly option)
|
|
||||||
|
|
||||||
gcc / nlmconv Cross-Compiler, available from Novell Forge (free):
|
* Metrowerks CodeWarrior PDK 2.1 (or later) for NetWare - required:
|
||||||
http://forge.novell.com/modules/xfmod/project/?aunixnw
|
Provides command line tools used for building.
|
||||||
|
|
||||||
|
Tools:
|
||||||
|
mwccnlm.exe - C/C++ Compiler for NetWare
|
||||||
|
mwldnlm.exe - Linker for NetWare
|
||||||
|
mwasmnlm.exe - x86 assembler for NetWare (if using assembly option)
|
||||||
|
|
||||||
|
|
||||||
* Assemblers - optional:
|
* Assemblers - optional:
|
||||||
If you intend to build using the assembly options you will need an
|
If you intend to build using the assembly options you will need an
|
||||||
@@ -83,11 +79,11 @@ following tools may be required:
|
|||||||
In order to build you will need a make tool. Two make tools are
|
In order to build you will need a make tool. Two make tools are
|
||||||
supported, GNU make (gmake.exe) or Microsoft nmake.exe.
|
supported, GNU make (gmake.exe) or Microsoft nmake.exe.
|
||||||
|
|
||||||
make.exe - GNU make for Windows (version 3.75 used for development)
|
gmake.exe - GNU make for Windows (version 3.75 used for development)
|
||||||
http://gnuwin32.sourceforge.net/packages/make.htm
|
http://www.gnu.org/software/make/make.html
|
||||||
|
|
||||||
nmake.exe - Microsoft make (Version 6.00.8168.0 used for development)
|
nmake.exe - Microsoft make (Version 6.00.8168.0 used for development)
|
||||||
http://support.microsoft.com/kb/132084/EN-US/
|
|
||||||
|
|
||||||
* Novell Developer Kit (NDK) - required: (http://developer.novell.com)
|
* Novell Developer Kit (NDK) - required: (http://developer.novell.com)
|
||||||
|
|
||||||
@@ -127,14 +123,14 @@ following tools may be required:
|
|||||||
|
|
||||||
LIBC - BUILDS:
|
LIBC - BUILDS:
|
||||||
|
|
||||||
Libraries for C (LIBC) - LIBC headers and import files
|
Libraries for C (LibC) - LibC headers and import files
|
||||||
If you are going to build a LIBC version of OpenSSL, you will
|
If you are going to build a LibC version of OpenSSL, you will
|
||||||
need the LIBC headers and imports. The March 14, 2002 NDK release or
|
need the LibC headers and imports. The March 14, 2002 NDK release or
|
||||||
later is required.
|
later is required.
|
||||||
|
|
||||||
NOTE: The LIBC SDK includes the necessary WinSock2 support.
|
NOTE: The LibC SDK includes the necessary WinSock2 support. It
|
||||||
It is not necessary to download the WinSock2 NDK when building for
|
It is not necessary to download the WinSock2 Developer when building
|
||||||
LIBC. The LIBC SDK also includes the appropriate BSD socket support
|
for LibC. The LibC SDK also includes the appropriate BSD socket support
|
||||||
if configuring to use BSD sockets.
|
if configuring to use BSD sockets.
|
||||||
|
|
||||||
|
|
||||||
@@ -147,36 +143,33 @@ The set_env.bat file is a template you can use to set up the path
|
|||||||
and environment variables you will need to build. Modify the
|
and environment variables you will need to build. Modify the
|
||||||
various lines to point to YOUR tools and run set_env.bat.
|
various lines to point to YOUR tools and run set_env.bat.
|
||||||
|
|
||||||
netware\set_env.bat <target> [compiler]
|
netware\set_env.bat [target]
|
||||||
|
|
||||||
target - "netware-clib" - CLIB NetWare build
|
target - "netware-clib" - CLib NetWare build
|
||||||
- "netware-libc" - LIBC NetWare build
|
- "netware-libc" - LibC NetWare build
|
||||||
|
|
||||||
compiler - "gnuc" - GNU GCC Compiler
|
|
||||||
- "codewarrior" - MetroWerks CodeWarrior (default)
|
|
||||||
|
|
||||||
If you don't use set_env.bat, you will need to set up the following
|
If you don't use set_env.bat, you will need to set up the following
|
||||||
environment variables:
|
environment variables:
|
||||||
|
|
||||||
PATH - Set PATH to point to the tools you will use.
|
path - Set path to point to the tools you will use.
|
||||||
|
|
||||||
INCLUDE - The location of the NDK include files.
|
MWCIncludes - The location of the NDK include files.
|
||||||
|
|
||||||
CLIB ex: set INCLUDE=c:\ndk\nwsdk\include\nlm
|
CLIB ex: set MWCIncludes=c:\ndk\nwsdk\include\nlm
|
||||||
LIBC ex: set INCLUDE=c:\ndk\libc\include
|
LibC ex: set MWCIncludes=c:\ndk\libc\include
|
||||||
|
|
||||||
PRELUDE - The absolute path of the prelude object to link with. For
|
PRELUDE - The absolute path of the prelude object to link with. For
|
||||||
a CLIB build it is recommended you use the "clibpre.o" files shipped
|
a CLIB build it is recommended you use the "clibpre.o" files shipped
|
||||||
with the Metrowerks PDK for NetWare. For a LIBC build you should
|
with the Metrowerks PDK for NetWare. For a LibC build you should
|
||||||
use the "libcpre.o" file delivered with the LIBC NDK components.
|
use the "libcpre.o" file delivered with the LibC NDK components.
|
||||||
|
|
||||||
CLIB ex: set PRELUDE=c:\ndk\nwsdk\imports\clibpre.o
|
CLIB ex: set PRELUDE=c:\ndk\nwsdk\imports\clibpre.o
|
||||||
LIBC ex: set PRELUDE=c:\ndk\libc\imports\libcpre.o
|
LibC ex: set PRELUDE=c:\ndk\libc\imports\libcpre.o
|
||||||
|
|
||||||
IMPORTS - The locaton of the NDK import files.
|
IMPORTS - The locaton of the NDK import files.
|
||||||
|
|
||||||
CLIB ex: set IMPORTS=c:\ndk\nwsdk\imports
|
CLIB ex: set IMPORTS=c:\ndk\nwsdk\imports
|
||||||
LIBC ex: set IMPORTS=c:\ndk\libc\imports
|
LibC ex: set IMPORTS=c:\ndk\libc\imports
|
||||||
|
|
||||||
|
|
||||||
In order to build, you need to run the Perl scripts to configure the build
|
In order to build, you need to run the Perl scripts to configure the build
|
||||||
@@ -189,10 +182,9 @@ the assembly code. Always run build.bat from the "openssl" directory.
|
|||||||
|
|
||||||
netware\build [target] [debug opts] [assembly opts] [configure opts]
|
netware\build [target] [debug opts] [assembly opts] [configure opts]
|
||||||
|
|
||||||
target - "netware-clib" - CLIB NetWare build (WinSock Sockets)
|
target - "netware-clib" - CLib NetWare build (WinSock Sockets)
|
||||||
- "netware-clib-bsdsock" - CLIB NetWare build (BSD Sockets)
|
- "netware-libc" - LibC NetWare build (WinSock Sockets)
|
||||||
- "netware-libc" - LIBC NetWare build (WinSock Sockets)
|
- "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets)
|
||||||
- "netware-libc-bsdsock" - LIBC NetWare build (BSD Sockets)
|
|
||||||
|
|
||||||
debug opts - "debug" - build debug
|
debug opts - "debug" - build debug
|
||||||
|
|
||||||
@@ -201,27 +193,25 @@ the assembly code. Always run build.bat from the "openssl" directory.
|
|||||||
"no-asm" - don't use assembly
|
"no-asm" - don't use assembly
|
||||||
|
|
||||||
configure opts- all unrecognized arguments are passed to the
|
configure opts- all unrecognized arguments are passed to the
|
||||||
perl 'configure' script. See that script for
|
perl configure script
|
||||||
internal documentation regarding options that
|
|
||||||
are available.
|
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
|
|
||||||
CLIB build, debug, without assembly:
|
CLIB build, debug, without assembly:
|
||||||
netware\build.bat netware-clib debug no-asm
|
netware\build.bat netware-clib debug no-asm
|
||||||
|
|
||||||
LIBC build, non-debug, using NASM assembly, add mdc2 support:
|
LibC build, non-debug, using NASM assembly:
|
||||||
netware\build.bat netware-libc nw-nasm enable-mdc2
|
netware\build.bat netware-libc nw-nasm
|
||||||
|
|
||||||
LIBC build, BSD sockets, non-debug, without assembly:
|
LibC build, BSD sockets, non-debug, without assembly:
|
||||||
netware\build.bat netware-libc-bsdsock no-asm
|
netware\build.bat netware-libc-bsdsock no-asm
|
||||||
|
|
||||||
Running build.bat generates a make file to be processed by your make
|
Running build.bat generates a make file to be processed by your make
|
||||||
tool (gmake or nmake):
|
tool (gmake or nmake):
|
||||||
|
|
||||||
CLIB ex: gmake -f netware\nlm_clib_dbg.mak
|
CLIB ex: gmake -f netware\nlm_clib_dbg.mak
|
||||||
LIBC ex: gmake -f netware\nlm_libc.mak
|
LibC ex: gmake -f netware\nlm_libc.mak
|
||||||
LIBC ex: gmake -f netware\nlm_libc_bsdsock.mak
|
LibC ex: gmake -f netware\nlm_libc_bsdsock.mak
|
||||||
|
|
||||||
|
|
||||||
You can also run the build scripts manually if you do not want to use the
|
You can also run the build scripts manually if you do not want to use the
|
||||||
@@ -230,7 +220,7 @@ subdirectory (in the order listed below):
|
|||||||
|
|
||||||
perl configure no-asm [other config opts] [netware-clib|netware-libc|netware-libc-bsdsock]
|
perl configure no-asm [other config opts] [netware-clib|netware-libc|netware-libc-bsdsock]
|
||||||
configures no assembly build for specified netware environment
|
configures no assembly build for specified netware environment
|
||||||
(CLIB or LIBC).
|
(CLIB or LibC).
|
||||||
|
|
||||||
perl util\mkfiles.pl >MINFO
|
perl util\mkfiles.pl >MINFO
|
||||||
generates a listing of source files (used by mk1mf)
|
generates a listing of source files (used by mk1mf)
|
||||||
@@ -260,12 +250,12 @@ The output from the build is placed in the following directories:
|
|||||||
tmp_nw_clib - temporary build files
|
tmp_nw_clib - temporary build files
|
||||||
outinc_nw_clib - necesary include files
|
outinc_nw_clib - necesary include files
|
||||||
|
|
||||||
LIBC Debug build:
|
LibC Debug build:
|
||||||
out_nw_libc.dbg - static libs & test nlm(s)
|
out_nw_libc.dbg - static libs & test nlm(s)
|
||||||
tmp_nw_libc.dbg - temporary build files
|
tmp_nw_libc.dbg - temporary build files
|
||||||
outinc_nw_libc - necessary include files
|
outinc_nw_libc - necessary include files
|
||||||
|
|
||||||
LIBC Non-debug build:
|
LibC Non-debug build:
|
||||||
out_nw_libc - static libs & test nlm(s)
|
out_nw_libc - static libs & test nlm(s)
|
||||||
tmp_nw_libc - temporary build files
|
tmp_nw_libc - temporary build files
|
||||||
outinc_nw_libc - necesary include files
|
outinc_nw_libc - necesary include files
|
||||||
@@ -291,7 +281,7 @@ To run cpy_tests.bat:
|
|||||||
NetWare drive - drive letter of mapped drive
|
NetWare drive - drive letter of mapped drive
|
||||||
|
|
||||||
CLIB ex: netware\cpy_tests out_nw_clib m:
|
CLIB ex: netware\cpy_tests out_nw_clib m:
|
||||||
LIBC ex: netware\cpy_tests out_nw_libc m:
|
LibC ex: netware\cpy_tests out_nw_libc m:
|
||||||
|
|
||||||
|
|
||||||
The Perl script, "do_tests.pl", in the "OpenSSL" directory on the server
|
The Perl script, "do_tests.pl", in the "OpenSSL" directory on the server
|
||||||
@@ -366,9 +356,9 @@ clean up the resources!
|
|||||||
|
|
||||||
Multi-threaded Development
|
Multi-threaded Development
|
||||||
---------------------------
|
---------------------------
|
||||||
The NetWare version of OpenSSL is thread-safe, however multi-threaded
|
The NetWare version of OpenSSL is thread-safe however, multi-threaded
|
||||||
applications must provide the necessary locking function callbacks. This
|
applications must provide the necessary locking function callbacks. This
|
||||||
is described in doc\threads.doc. The file "openssl-x.x.x\crypto\threads\mttest.c"
|
is described in doc\threads.doc. The file "openssl\crypto\threads\mttest.c"
|
||||||
is a multi-threaded test program and demonstrates the locking functions.
|
is a multi-threaded test program and demonstrates the locking functions.
|
||||||
|
|
||||||
|
|
||||||
@@ -438,7 +428,7 @@ Makefile "vclean"
|
|||||||
------------------
|
------------------
|
||||||
The generated makefile has a "vclean" target which cleans up the build
|
The generated makefile has a "vclean" target which cleans up the build
|
||||||
directories. If you have been building successfully and suddenly
|
directories. If you have been building successfully and suddenly
|
||||||
experience problems, use "vclean" (gmake -f netware\nlm_xxxx.mak vclean) and retry.
|
experience problems, use "vclean" (gmake -f netware\nlm.mak vclean) and retry.
|
||||||
|
|
||||||
|
|
||||||
"Undefined Symbol" Linker errors
|
"Undefined Symbol" Linker errors
|
||||||
|
2
LICENSE
2
LICENSE
@@ -12,7 +12,7 @@
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
|
* Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
|
@@ -29,7 +29,7 @@ OSErr AppendErrorMessageToHandle(Handle inoutHandle);
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// A bunch of evil macros that would be unnecessary if I were always using C++ !
|
// A bunch of evil macros that would be uneccessary if I were always using C++ !
|
||||||
|
|
||||||
#define SetErrorMessageAndBailIfNil(theArg,theMessage) \
|
#define SetErrorMessageAndBailIfNil(theArg,theMessage) \
|
||||||
{ \
|
{ \
|
||||||
|
87
Makefile.org
87
Makefile.org
@@ -71,7 +71,6 @@ PERL= perl
|
|||||||
TAR= tar
|
TAR= tar
|
||||||
TARFLAGS= --no-recursion
|
TARFLAGS= --no-recursion
|
||||||
MAKEDEPPROG=makedepend
|
MAKEDEPPROG=makedepend
|
||||||
LIBDIR=lib
|
|
||||||
|
|
||||||
# We let the C compiler driver to take care of .s files. This is done in
|
# We let the C compiler driver to take care of .s files. This is done in
|
||||||
# order to be excused from maintaining a separate set of architecture
|
# order to be excused from maintaining a separate set of architecture
|
||||||
@@ -113,7 +112,7 @@ LIBZLIB=
|
|||||||
# $(INSTALLTOP) for this build make be different so hard
|
# $(INSTALLTOP) for this build make be different so hard
|
||||||
# code the path.
|
# code the path.
|
||||||
|
|
||||||
FIPSLIBDIR=/usr/local/ssl/$(LIBDIR)/
|
FIPSLIBDIR=/usr/local/ssl/lib/
|
||||||
|
|
||||||
# This is set to "y" if fipscanister.o is compiled internally as
|
# This is set to "y" if fipscanister.o is compiled internally as
|
||||||
# opposed to coming from an external validated location.
|
# opposed to coming from an external validated location.
|
||||||
@@ -143,7 +142,7 @@ SDIRS= \
|
|||||||
bn ec rsa dsa ecdsa dh ecdh dso engine \
|
bn ec rsa dsa ecdsa dh ecdh dso engine \
|
||||||
buffer bio stack lhash rand err \
|
buffer bio stack lhash rand err \
|
||||||
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
|
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
|
||||||
store cms pqueue jpake
|
store pqueue
|
||||||
# keep in mind that the above list is adjusted by ./Configure
|
# keep in mind that the above list is adjusted by ./Configure
|
||||||
# according to no-xxx arguments...
|
# according to no-xxx arguments...
|
||||||
|
|
||||||
@@ -173,7 +172,7 @@ SHARED_LDFLAGS=
|
|||||||
|
|
||||||
GENERAL= Makefile
|
GENERAL= Makefile
|
||||||
BASENAME= openssl
|
BASENAME= openssl
|
||||||
NAME= $(BASENAME)-$(VERSION)
|
NAME= $(BASENAME)-fips-$(VERSION)
|
||||||
TARFILE= $(NAME).tar
|
TARFILE= $(NAME).tar
|
||||||
WTARFILE= $(NAME)-win.tar
|
WTARFILE= $(NAME)-win.tar
|
||||||
EXHEADER= e_os2.h
|
EXHEADER= e_os2.h
|
||||||
@@ -201,10 +200,9 @@ BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
|
|||||||
CC='${CC}' CFLAG='${CFLAG}' \
|
CC='${CC}' CFLAG='${CFLAG}' \
|
||||||
AS='${CC}' ASFLAG='${CFLAG} -c' \
|
AS='${CC}' ASFLAG='${CFLAG} -c' \
|
||||||
AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}' \
|
AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}' \
|
||||||
SDIRS='${SDIRS}' LIBRPATH='${INSTALLTOP}/$(LIBDIR)' \
|
SDIRS='${SDIRS}' LIBRPATH='${INSTALLTOP}/lib' \
|
||||||
INSTALL_PREFIX='${INSTALL_PREFIX}' \
|
INSTALL_PREFIX='${INSTALL_PREFIX}' \
|
||||||
INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' \
|
INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' \
|
||||||
LIBDIR='${LIBDIR}' \
|
|
||||||
MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD ${MAKEDEPPROG}' \
|
MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD ${MAKEDEPPROG}' \
|
||||||
DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}' \
|
DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}' \
|
||||||
MAKEDEPPROG='${MAKEDEPPROG}' \
|
MAKEDEPPROG='${MAKEDEPPROG}' \
|
||||||
@@ -221,8 +219,7 @@ BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
|
|||||||
SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' \
|
SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' \
|
||||||
MD5_ASM_OBJ='${MD5_ASM_OBJ}' \
|
MD5_ASM_OBJ='${MD5_ASM_OBJ}' \
|
||||||
RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' \
|
RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' \
|
||||||
FIPSLIBDIR='${FIPSLIBDIR}' \
|
FIPSLIBDIR='${FIPSLIBDIR}' FIPSCANLIB='${FIPSCANLIB}' \
|
||||||
FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}" \
|
|
||||||
FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' \
|
FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' \
|
||||||
FIPS_EX_OBJ='${FIPS_EX_OBJ}' \
|
FIPS_EX_OBJ='${FIPS_EX_OBJ}' \
|
||||||
THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
|
THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
|
||||||
@@ -243,8 +240,7 @@ BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
|
|||||||
# subdirectories defined in $(DIRS). It requires that the target
|
# subdirectories defined in $(DIRS). It requires that the target
|
||||||
# is given through the shell variable `target'.
|
# is given through the shell variable `target'.
|
||||||
BUILD_CMD= if [ -d "$$dir" ]; then \
|
BUILD_CMD= if [ -d "$$dir" ]; then \
|
||||||
( [ $$target != all -a -z "$(FIPSCANLIB)" ] && FIPSCANLIB=/dev/null; \
|
( cd $$dir && echo "making $$target in $$dir..." && \
|
||||||
cd $$dir && echo "making $$target in $$dir..." && \
|
|
||||||
$(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
|
$(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
|
||||||
) || exit 1; \
|
) || exit 1; \
|
||||||
fi
|
fi
|
||||||
@@ -335,15 +331,15 @@ build_crypto:
|
|||||||
dir=crypto; target=all; $(BUILD_ONE_CMD)
|
dir=crypto; target=all; $(BUILD_ONE_CMD)
|
||||||
build_fips:
|
build_fips:
|
||||||
@dir=fips; target=all; [ -z "$(FIPSCANLIB)" ] || $(BUILD_ONE_CMD)
|
@dir=fips; target=all; [ -z "$(FIPSCANLIB)" ] || $(BUILD_ONE_CMD)
|
||||||
build_ssl: build_crypto
|
build_ssl:
|
||||||
@dir=ssl; target=all; $(BUILD_ONE_CMD)
|
@dir=ssl; target=all; $(BUILD_ONE_CMD)
|
||||||
build_engines: build_crypto
|
build_engines:
|
||||||
@dir=engines; target=all; $(BUILD_ONE_CMD)
|
@dir=engines; target=all; $(BUILD_ONE_CMD)
|
||||||
build_apps: build_libs
|
build_apps:
|
||||||
@dir=apps; target=all; $(BUILD_ONE_CMD)
|
@dir=apps; target=all; $(BUILD_ONE_CMD)
|
||||||
build_tests: build_libs
|
build_tests:
|
||||||
@dir=test; target=all; $(BUILD_ONE_CMD)
|
@dir=test; target=all; $(BUILD_ONE_CMD)
|
||||||
build_tools: build_libs
|
build_tools:
|
||||||
@dir=tools; target=all; $(BUILD_ONE_CMD)
|
@dir=tools; target=all; $(BUILD_ONE_CMD)
|
||||||
|
|
||||||
all_testapps: build_libs build_testapps
|
all_testapps: build_libs build_testapps
|
||||||
@@ -359,7 +355,7 @@ libcrypto$(SHLIB_EXT): libcrypto.a $(SHARED_FIPS)
|
|||||||
$(AR) libcrypto.a fips/fipscanister.o ; \
|
$(AR) libcrypto.a fips/fipscanister.o ; \
|
||||||
else \
|
else \
|
||||||
if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
|
if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
|
||||||
FIPSLD_CC="$(CC)"; CC=fips/fipsld; \
|
FIPSLD_CC=$(CC); CC=fips/fipsld; \
|
||||||
export CC FIPSLD_CC; \
|
export CC FIPSLD_CC; \
|
||||||
fi; \
|
fi; \
|
||||||
$(MAKE) -e SHLIBDIRS='crypto' build-shared; \
|
$(MAKE) -e SHLIBDIRS='crypto' build-shared; \
|
||||||
@@ -382,7 +378,7 @@ libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
|
|||||||
fips/fipscanister.o: build_fips
|
fips/fipscanister.o: build_fips
|
||||||
libfips$(SHLIB_EXT): fips/fipscanister.o
|
libfips$(SHLIB_EXT): fips/fipscanister.o
|
||||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||||
FIPSLD_CC="$(CC)"; CC=fips/fipsld; export CC FIPSLD_CC; \
|
FIPSLD_CC=$(CC); CC=fips/fipsld; export CC FIPSLD_CC; \
|
||||||
$(MAKE) -f Makefile.shared -e $(BUILDENV) \
|
$(MAKE) -f Makefile.shared -e $(BUILDENV) \
|
||||||
CC=$${CC} LIBNAME=fips THIS=$@ \
|
CC=$${CC} LIBNAME=fips THIS=$@ \
|
||||||
LIBEXTRAS=fips/fipscanister.o \
|
LIBEXTRAS=fips/fipscanister.o \
|
||||||
@@ -438,7 +434,7 @@ do_$(SHLIB_TARGET):
|
|||||||
libcrypto.pc: Makefile
|
libcrypto.pc: Makefile
|
||||||
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
||||||
echo 'exec_prefix=$${prefix}'; \
|
echo 'exec_prefix=$${prefix}'; \
|
||||||
echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
|
echo 'libdir=$${exec_prefix}/lib'; \
|
||||||
echo 'includedir=$${prefix}/include'; \
|
echo 'includedir=$${prefix}/include'; \
|
||||||
echo ''; \
|
echo ''; \
|
||||||
echo 'Name: OpenSSL-libcrypto'; \
|
echo 'Name: OpenSSL-libcrypto'; \
|
||||||
@@ -451,7 +447,7 @@ libcrypto.pc: Makefile
|
|||||||
libssl.pc: Makefile
|
libssl.pc: Makefile
|
||||||
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
||||||
echo 'exec_prefix=$${prefix}'; \
|
echo 'exec_prefix=$${prefix}'; \
|
||||||
echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
|
echo 'libdir=$${exec_prefix}/lib'; \
|
||||||
echo 'includedir=$${prefix}/include'; \
|
echo 'includedir=$${prefix}/include'; \
|
||||||
echo ''; \
|
echo ''; \
|
||||||
echo 'Name: OpenSSL'; \
|
echo 'Name: OpenSSL'; \
|
||||||
@@ -464,7 +460,7 @@ libssl.pc: Makefile
|
|||||||
openssl.pc: Makefile
|
openssl.pc: Makefile
|
||||||
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
||||||
echo 'exec_prefix=$${prefix}'; \
|
echo 'exec_prefix=$${prefix}'; \
|
||||||
echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
|
echo 'libdir=$${exec_prefix}/lib'; \
|
||||||
echo 'includedir=$${prefix}/include'; \
|
echo 'includedir=$${prefix}/include'; \
|
||||||
echo ''; \
|
echo ''; \
|
||||||
echo 'Name: OpenSSL'; \
|
echo 'Name: OpenSSL'; \
|
||||||
@@ -506,9 +502,6 @@ links:
|
|||||||
@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
|
@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
|
||||||
@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
|
@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
|
||||||
@set -e; target=links; $(RECURSIVE_BUILD_CMD)
|
@set -e; target=links; $(RECURSIVE_BUILD_CMD)
|
||||||
@if [ -z "$(FIPSCANLIB)" ]; then \
|
|
||||||
set -e; target=links; dir=fips ; $(BUILD_CMD) ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
gentests:
|
gentests:
|
||||||
@(cd test && echo "generating dummy tests (if needed)..." && \
|
@(cd test && echo "generating dummy tests (if needed)..." && \
|
||||||
@@ -526,7 +519,7 @@ rehash.time: certs apps
|
|||||||
export OPENSSL OPENSSL_DEBUG_MEMORY; \
|
export OPENSSL OPENSSL_DEBUG_MEMORY; \
|
||||||
$(PERL) tools/c_rehash certs) && \
|
$(PERL) tools/c_rehash certs) && \
|
||||||
touch rehash.time; \
|
touch rehash.time; \
|
||||||
fi
|
else :; fi
|
||||||
|
|
||||||
test: tests
|
test: tests
|
||||||
|
|
||||||
@@ -593,7 +586,7 @@ tar:
|
|||||||
$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
|
$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
|
||||||
tardy --user_number=0 --user_name=openssl \
|
tardy --user_number=0 --user_name=openssl \
|
||||||
--group_number=0 --group_name=openssl \
|
--group_number=0 --group_name=openssl \
|
||||||
--prefix=openssl-$(VERSION) - |\
|
--prefix=openssl-fips-$(VERSION) - |\
|
||||||
gzip --best >../$(TARFILE).gz; \
|
gzip --best >../$(TARFILE).gz; \
|
||||||
rm -f ../$(TARFILE).list; \
|
rm -f ../$(TARFILE).list; \
|
||||||
ls -l ../$(TARFILE).gz
|
ls -l ../$(TARFILE).gz
|
||||||
@@ -615,13 +608,13 @@ dist:
|
|||||||
dist_pem_h:
|
dist_pem_h:
|
||||||
(cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
|
(cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
|
||||||
|
|
||||||
install: all install_docs install_sw
|
install: all install_sw
|
||||||
|
|
||||||
install_sw:
|
install_sw:
|
||||||
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
|
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
|
||||||
$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
|
$(INSTALL_PREFIX)$(INSTALLTOP)/lib \
|
||||||
$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
|
$(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines \
|
||||||
$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
|
$(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \
|
||||||
$(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
|
$(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
|
||||||
$(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
|
$(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
|
||||||
$(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
|
$(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
|
||||||
@@ -636,10 +629,10 @@ install_sw:
|
|||||||
do \
|
do \
|
||||||
if [ -f "$$i" ]; then \
|
if [ -f "$$i" ]; then \
|
||||||
( echo installing $$i; \
|
( echo installing $$i; \
|
||||||
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
|
||||||
$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
|
||||||
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i ); \
|
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
|
||||||
fi; \
|
fi; \
|
||||||
done;
|
done;
|
||||||
@set -e; if [ -n "$(SHARED_LIBS)" ]; then \
|
@set -e; if [ -n "$(SHARED_LIBS)" ]; then \
|
||||||
@@ -649,22 +642,22 @@ install_sw:
|
|||||||
if [ -f "$$i" -o -f "$$i.a" ]; then \
|
if [ -f "$$i" -o -f "$$i.a" ]; then \
|
||||||
( echo installing $$i; \
|
( echo installing $$i; \
|
||||||
if [ "$(PLATFORM)" != "Cygwin" ]; then \
|
if [ "$(PLATFORM)" != "Cygwin" ]; then \
|
||||||
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
|
||||||
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
|
||||||
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
|
||||||
else \
|
else \
|
||||||
c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
|
c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
|
||||||
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
|
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
|
||||||
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
|
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
|
||||||
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
|
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
|
||||||
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
|
||||||
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
|
||||||
fi ); \
|
fi ); \
|
||||||
fi; \
|
fi; \
|
||||||
done; \
|
done; \
|
||||||
( here="`pwd`"; \
|
( here="`pwd`"; \
|
||||||
cd $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR); \
|
cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
|
||||||
$(MAKE) -f $$here/Makefile HERE="$$here" link-shared ); \
|
$(MAKE) -f $$here/Makefile HERE="$$here" link-shared ); \
|
||||||
if [ "$(INSTALLTOP)" != "/usr" ]; then \
|
if [ "$(INSTALLTOP)" != "/usr" ]; then \
|
||||||
echo 'OpenSSL shared libraries have been installed in:'; \
|
echo 'OpenSSL shared libraries have been installed in:'; \
|
||||||
@@ -673,12 +666,12 @@ install_sw:
|
|||||||
sed -e '1,/^$$/d' doc/openssl-shared.txt; \
|
sed -e '1,/^$$/d' doc/openssl-shared.txt; \
|
||||||
fi; \
|
fi; \
|
||||||
fi
|
fi
|
||||||
cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
|
cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/libcrypto.pc
|
||||||
cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
|
cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/libssl.pc
|
||||||
cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
|
cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc
|
||||||
|
|
||||||
install_docs:
|
install_docs:
|
||||||
@$(PERL) $(TOP)/util/mkdir-p.pl \
|
@$(PERL) $(TOP)/util/mkdir-p.pl \
|
||||||
@@ -686,7 +679,7 @@ install_docs:
|
|||||||
$(INSTALL_PREFIX)$(MANDIR)/man3 \
|
$(INSTALL_PREFIX)$(MANDIR)/man3 \
|
||||||
$(INSTALL_PREFIX)$(MANDIR)/man5 \
|
$(INSTALL_PREFIX)$(MANDIR)/man5 \
|
||||||
$(INSTALL_PREFIX)$(MANDIR)/man7
|
$(INSTALL_PREFIX)$(MANDIR)/man7
|
||||||
@pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
|
@pod2man="`cd util; ./pod2mantest $(PERL)`"; \
|
||||||
here="`pwd`"; \
|
here="`pwd`"; \
|
||||||
filecase=; \
|
filecase=; \
|
||||||
if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
|
if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
|
||||||
|
@@ -491,23 +491,23 @@ link_app.hpux:
|
|||||||
|
|
||||||
link_o.aix:
|
link_o.aix:
|
||||||
@ $(CALC_VERSIONS); \
|
@ $(CALC_VERSIONS); \
|
||||||
OBJECT_MODE=`expr "x$(SHARED_LDFLAGS)" : 'x\-[a-z]*\(64\)'` || :; \
|
OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]*\(64\)'` || :; \
|
||||||
OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
|
OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
|
||||||
SHLIB=lib$(LIBNAME).so; \
|
SHLIB=lib$(LIBNAME).so; \
|
||||||
SHLIB_SUFFIX=; \
|
SHLIB_SUFFIX=; \
|
||||||
ALLSYMSFLAGS=''; \
|
ALLSYMSFLAGS=''; \
|
||||||
NOALLSYMSFLAGS=''; \
|
NOALLSYMSFLAGS=''; \
|
||||||
SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-bexpall,-bnolibpath,-bM:SRE'; \
|
SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G,-bexpall,-bnolibpath,-bM:SRE'; \
|
||||||
$(LINK_SO_O);
|
$(LINK_SO_O);
|
||||||
link_a.aix:
|
link_a.aix:
|
||||||
@ $(CALC_VERSIONS); \
|
@ $(CALC_VERSIONS); \
|
||||||
OBJECT_MODE=`expr "x$(SHARED_LDFLAGS)" : 'x\-[a-z]*\(64\)'` || : ; \
|
OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]*\(64\)'` || : ; \
|
||||||
OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
|
OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
|
||||||
SHLIB=lib$(LIBNAME).so; \
|
SHLIB=lib$(LIBNAME).so; \
|
||||||
SHLIB_SUFFIX=; \
|
SHLIB_SUFFIX=; \
|
||||||
ALLSYMSFLAGS='-bnogc'; \
|
ALLSYMSFLAGS='-bnogc'; \
|
||||||
NOALLSYMSFLAGS=''; \
|
NOALLSYMSFLAGS=''; \
|
||||||
SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-bexpall,-bnolibpath,-bM:SRE'; \
|
SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G,-bexpall,-bnolibpath,-bM:SRE'; \
|
||||||
$(LINK_SO_A_VIA_O)
|
$(LINK_SO_A_VIA_O)
|
||||||
link_app.aix:
|
link_app.aix:
|
||||||
LDFLAGS="$(CFLAGS) -Wl,-brtl,-blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \
|
LDFLAGS="$(CFLAGS) -Wl,-brtl,-blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \
|
||||||
|
88
NEWS
88
NEWS
@@ -5,89 +5,6 @@
|
|||||||
This file gives a brief overview of the major changes between each OpenSSL
|
This file gives a brief overview of the major changes between each OpenSSL
|
||||||
release. For more details please read the CHANGES file.
|
release. For more details please read the CHANGES file.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8r and OpenSSL 0.9.8s:
|
|
||||||
|
|
||||||
o Fix for DTLS plaintext recovery attack CVE-2011-4108
|
|
||||||
o Fix policy check double free error CVE-2011-4109
|
|
||||||
o Clear block padding bytes of SSL 3.0 records CVE-2011-4576
|
|
||||||
o Only allow one SGC handshake restart for SSL/TLS CVE-2011-4619
|
|
||||||
o Check for malformed RFC3779 data CVE-2011-4577
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8q and OpenSSL 0.9.8r:
|
|
||||||
|
|
||||||
o Fix for security issue CVE-2011-0014
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8p and OpenSSL 0.9.8q:
|
|
||||||
|
|
||||||
o Fix for security issue CVE-2010-4180
|
|
||||||
o Fix for CVE-2010-4252
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8o and OpenSSL 0.9.8p:
|
|
||||||
|
|
||||||
o Fix for security issue CVE-2010-3864.
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8n and OpenSSL 0.9.8o:
|
|
||||||
|
|
||||||
o Fix for security issue CVE-2010-0742.
|
|
||||||
o Various DTLS fixes.
|
|
||||||
o Recognise SHA2 certificates if only SSL algorithms added.
|
|
||||||
o Fix for no-rc4 compilation.
|
|
||||||
o Chil ENGINE unload workaround.
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8m and OpenSSL 0.9.8n:
|
|
||||||
|
|
||||||
o CFB cipher definition fixes.
|
|
||||||
o Fix security issues CVE-2010-0740 and CVE-2010-0433.
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8l and OpenSSL 0.9.8m:
|
|
||||||
|
|
||||||
o Cipher definition fixes.
|
|
||||||
o Workaround for slow RAND_poll() on some WIN32 versions.
|
|
||||||
o Remove MD2 from algorithm tables.
|
|
||||||
o SPKAC handling fixes.
|
|
||||||
o Support for RFC5746 TLS renegotiation extension.
|
|
||||||
o Compression memory leak fixed.
|
|
||||||
o Compression session resumption fixed.
|
|
||||||
o Ticket and SNI coexistence fixes.
|
|
||||||
o Many fixes to DTLS handling.
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8k and OpenSSL 0.9.8l:
|
|
||||||
|
|
||||||
o Temporary work around for CVE-2009-3555: disable renegotiation.
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8j and OpenSSL 0.9.8k:
|
|
||||||
|
|
||||||
o Fix various build issues.
|
|
||||||
o Fix security issues (CVE-2009-0590, CVE-2009-0591, CVE-2009-0789)
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8i and OpenSSL 0.9.8j:
|
|
||||||
|
|
||||||
o Fix security issue (CVE-2008-5077)
|
|
||||||
o Merge FIPS 140-2 branch code.
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8g and OpenSSL 0.9.8h:
|
|
||||||
|
|
||||||
o CryptoAPI ENGINE support.
|
|
||||||
o Various precautionary measures.
|
|
||||||
o Fix for bugs affecting certificate request creation.
|
|
||||||
o Support for local machine keyset attribute in PKCS#12 files.
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8f and OpenSSL 0.9.8g:
|
|
||||||
|
|
||||||
o Backport of CMS functionality to 0.9.8.
|
|
||||||
o Fixes for bugs introduced with 0.9.8f.
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8e and OpenSSL 0.9.8f:
|
|
||||||
|
|
||||||
o Add gcc 4.2 support.
|
|
||||||
o Add support for AES and SSE2 assembly lanugauge optimization
|
|
||||||
for VC++ build.
|
|
||||||
o Support for RFC4507bis and server name extensions if explicitly
|
|
||||||
selected at compile time.
|
|
||||||
o DTLS improvements.
|
|
||||||
o RFC4507bis support.
|
|
||||||
o TLS Extensions support.
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8d and OpenSSL 0.9.8e:
|
Major changes between OpenSSL 0.9.8d and OpenSSL 0.9.8e:
|
||||||
|
|
||||||
o Various ciphersuite selection fixes.
|
o Various ciphersuite selection fixes.
|
||||||
@@ -193,11 +110,6 @@
|
|||||||
o Added initial support for Win64.
|
o Added initial support for Win64.
|
||||||
o Added alternate pkg-config files.
|
o Added alternate pkg-config files.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7l and OpenSSL 0.9.7m:
|
|
||||||
|
|
||||||
o FIPS 1.1.1 module linking.
|
|
||||||
o Various ciphersuite selection fixes.
|
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l:
|
Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l:
|
||||||
|
|
||||||
o Introduce limits to prevent malicious key DoS (CVE-2006-2940)
|
o Introduce limits to prevent malicious key DoS (CVE-2006-2940)
|
||||||
|
@@ -7,9 +7,8 @@ rem usage:
|
|||||||
rem build [target] [debug opts] [assembly opts] [configure opts]
|
rem build [target] [debug opts] [assembly opts] [configure opts]
|
||||||
rem
|
rem
|
||||||
rem target - "netware-clib" - CLib NetWare build (WinSock Sockets)
|
rem target - "netware-clib" - CLib NetWare build (WinSock Sockets)
|
||||||
rem - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets)
|
rem - "netware-libc" - LibC NKS NetWare build (WinSock Sockets)
|
||||||
rem - "netware-libc" - LibC NetWare build (WinSock Sockets)
|
rem - "netware-libc-bsdsock" - LibC NKS NetWare build (BSD Sockets)
|
||||||
rem - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets)
|
|
||||||
rem
|
rem
|
||||||
rem debug opts - "debug" - build debug
|
rem debug opts - "debug" - build debug
|
||||||
rem
|
rem
|
||||||
@@ -72,12 +71,10 @@ if "%1" == "nw-nasm" set NO_ASM=
|
|||||||
if "%1" == "nw-nasm" set ARG_PROCESSED=YES
|
if "%1" == "nw-nasm" set ARG_PROCESSED=YES
|
||||||
if "%1" == "nw-mwasm" set ASM_MODE=nw-mwasm
|
if "%1" == "nw-mwasm" set ASM_MODE=nw-mwasm
|
||||||
if "%1" == "nw-mwasm" set ASSEMBLER=Metrowerks
|
if "%1" == "nw-mwasm" set ASSEMBLER=Metrowerks
|
||||||
if "%1" == "nw-mwasm" set NO_ASM=
|
if "%1" == "nw-mwasm" set NO_ASM=
|
||||||
if "%1" == "nw-mwasm" set ARG_PROCESSED=YES
|
if "%1" == "nw-mwasm" set ARG_PROCESSED=YES
|
||||||
if "%1" == "netware-clib" set BLD_TARGET=netware-clib
|
if "%1" == "netware-clib" set BLD_TARGET=netware-clib
|
||||||
if "%1" == "netware-clib" set ARG_PROCESSED=YES
|
if "%1" == "netware-clib" set ARG_PROCESSED=YES
|
||||||
if "%1" == "netware-clib-bsdsock" set BLD_TARGET=netware-clib-bsdsock
|
|
||||||
if "%1" == "netware-clib-bsdsock" set ARG_PROCESSED=YES
|
|
||||||
if "%1" == "netware-libc" set BLD_TARGET=netware-libc
|
if "%1" == "netware-libc" set BLD_TARGET=netware-libc
|
||||||
if "%1" == "netware-libc" set ARG_PROCESSED=YES
|
if "%1" == "netware-libc" set ARG_PROCESSED=YES
|
||||||
if "%1" == "netware-libc-bsdsock" set BLD_TARGET=netware-libc-bsdsock
|
if "%1" == "netware-libc-bsdsock" set BLD_TARGET=netware-libc-bsdsock
|
||||||
@@ -97,7 +94,6 @@ if "%BLD_TARGET%" == "no_target" goto no_target
|
|||||||
rem build the nlm make file name which includes target and debug info
|
rem build the nlm make file name which includes target and debug info
|
||||||
set NLM_MAKE=
|
set NLM_MAKE=
|
||||||
if "%BLD_TARGET%" == "netware-clib" set NLM_MAKE=netware\nlm_clib
|
if "%BLD_TARGET%" == "netware-clib" set NLM_MAKE=netware\nlm_clib
|
||||||
if "%BLD_TARGET%" == "netware-clib-bsdsock" set NLM_MAKE=netware\nlm_clib_bsdsock
|
|
||||||
if "%BLD_TARGET%" == "netware-libc" set NLM_MAKE=netware\nlm_libc
|
if "%BLD_TARGET%" == "netware-libc" set NLM_MAKE=netware\nlm_libc
|
||||||
if "%BLD_TARGET%" == "netware-libc-bsdsock" set NLM_MAKE=netware\nlm_libc_bsdsock
|
if "%BLD_TARGET%" == "netware-libc-bsdsock" set NLM_MAKE=netware\nlm_libc_bsdsock
|
||||||
if "%DEBUG%" == "" set NLM_MAKE=%NLM_MAKE%.mak
|
if "%DEBUG%" == "" set NLM_MAKE=%NLM_MAKE%.mak
|
||||||
@@ -114,14 +110,7 @@ echo Generating x86 for %ASSEMBLER% assembler
|
|||||||
|
|
||||||
echo Bignum
|
echo Bignum
|
||||||
cd crypto\bn\asm
|
cd crypto\bn\asm
|
||||||
rem perl x86.pl %ASM_MODE% > bn-nw.asm
|
perl x86.pl %ASM_MODE% > bn-nw.asm
|
||||||
perl bn-586.pl %ASM_MODE% > bn-nw.asm
|
|
||||||
perl co-586.pl %ASM_MODE% > co-nw.asm
|
|
||||||
cd ..\..\..
|
|
||||||
|
|
||||||
echo AES
|
|
||||||
cd crypto\aes\asm
|
|
||||||
perl aes-586.pl %ASM_MODE% > a-nw.asm
|
|
||||||
cd ..\..\..
|
cd ..\..\..
|
||||||
|
|
||||||
echo DES
|
echo DES
|
||||||
@@ -171,11 +160,6 @@ cd crypto\rc5\asm
|
|||||||
perl rc5-586.pl %ASM_MODE% > r5-nw.asm
|
perl rc5-586.pl %ASM_MODE% > r5-nw.asm
|
||||||
cd ..\..\..
|
cd ..\..\..
|
||||||
|
|
||||||
echo CPUID
|
|
||||||
cd crypto
|
|
||||||
perl x86cpuid.pl %ASM_MODE% > x86cpuid-nw.asm
|
|
||||||
cd ..\
|
|
||||||
|
|
||||||
rem ===============================================================
|
rem ===============================================================
|
||||||
rem
|
rem
|
||||||
:do_config
|
:do_config
|
||||||
@@ -192,10 +176,8 @@ echo mk1mf.pl options: %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET%
|
|||||||
echo .
|
echo .
|
||||||
perl util\mk1mf.pl %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% >%NLM_MAKE%
|
perl util\mk1mf.pl %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% >%NLM_MAKE%
|
||||||
|
|
||||||
make -f %NLM_MAKE% vclean
|
|
||||||
echo .
|
|
||||||
echo The makefile "%NLM_MAKE%" has been created use your maketool to
|
echo The makefile "%NLM_MAKE%" has been created use your maketool to
|
||||||
echo build (ex: make -f %NLM_MAKE%)
|
echo build (ex: gmake -f %NLM_MAKE%)
|
||||||
goto end
|
goto end
|
||||||
|
|
||||||
rem ===============================================================
|
rem ===============================================================
|
||||||
@@ -207,9 +189,8 @@ echo .
|
|||||||
echo . usage: build [target] [debug opts] [assembly opts] [configure opts]
|
echo . usage: build [target] [debug opts] [assembly opts] [configure opts]
|
||||||
echo .
|
echo .
|
||||||
echo . target - "netware-clib" - CLib NetWare build (WinSock Sockets)
|
echo . target - "netware-clib" - CLib NetWare build (WinSock Sockets)
|
||||||
echo . - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets)
|
echo . - "netware-libc" - LibC NKS NetWare build (WinSock Sockets)
|
||||||
echo . - "netware-libc" - LibC NetWare build (WinSock Sockets)
|
echo . - "netware-libc-bsdsock" - LibC NKS NetWare build (BSD Sockets)
|
||||||
echo . - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets)
|
|
||||||
echo .
|
echo .
|
||||||
echo . debug opts - "debug" - build debug
|
echo . debug opts - "debug" - build debug
|
||||||
echo .
|
echo .
|
||||||
|
@@ -73,7 +73,6 @@ copy %loc%\test\testsid.pem %2\openssl\test\
|
|||||||
copy %loc%\test\testx509.pem %2\openssl\test\
|
copy %loc%\test\testx509.pem %2\openssl\test\
|
||||||
copy %loc%\test\v3-cert1.pem %2\openssl\test\
|
copy %loc%\test\v3-cert1.pem %2\openssl\test\
|
||||||
copy %loc%\test\v3-cert2.pem %2\openssl\test\
|
copy %loc%\test\v3-cert2.pem %2\openssl\test\
|
||||||
copy %loc%\crypto\evp\evptests.txt %2\openssl\test\
|
|
||||||
|
|
||||||
rem copy the apps directory stuff
|
rem copy the apps directory stuff
|
||||||
copy %loc%\apps\client.pem %2\openssl\apps\
|
copy %loc%\apps\client.pem %2\openssl\apps\
|
||||||
|
@@ -34,17 +34,12 @@ sub main()
|
|||||||
# delete all the output files in the output directory
|
# delete all the output files in the output directory
|
||||||
unlink <$output_path\\*.*>;
|
unlink <$output_path\\*.*>;
|
||||||
|
|
||||||
# open the main log file
|
# open the main log file
|
||||||
open(OUT, ">$log_file") || die "unable to open $log_file\n";
|
open(OUT, ">$log_file") || die "unable to open $log_file\n";
|
||||||
|
|
||||||
print( OUT "========================================================\n");
|
|
||||||
my $outFile = "$output_path\\version.out";
|
|
||||||
system("openssl2 version (CLIB_OPT)/>$outFile");
|
|
||||||
log_output("CHECKING FOR OPENSSL VERSION:", $outFile);
|
|
||||||
|
|
||||||
algorithm_tests();
|
algorithm_tests();
|
||||||
encryption_tests();
|
encryption_tests();
|
||||||
evp_tests();
|
|
||||||
pem_tests();
|
pem_tests();
|
||||||
verify_tests();
|
verify_tests();
|
||||||
ca_tests();
|
ca_tests();
|
||||||
@@ -61,10 +56,9 @@ sub algorithm_tests
|
|||||||
{
|
{
|
||||||
my $i;
|
my $i;
|
||||||
my $outFile;
|
my $outFile;
|
||||||
my @tests = ( rsa_test, destest, ideatest, bftest, bntest, shatest, sha1test,
|
my @tests = ( rsa_test, destest, ideatest, bftest, shatest, sha1test,
|
||||||
sha256t, sha512t, dsatest, md2test, md4test, md5test, mdc2test,
|
md5test, dsatest, md2test, mdc2test, rc2test, rc4test, randtest,
|
||||||
rc2test, rc4test, rc5test, randtest, rmdtest, dhtest, ecdhtest,
|
dhtest, exptest );
|
||||||
ecdsatest, ectest, exptest, casttest, hmactest );
|
|
||||||
|
|
||||||
print( "\nRUNNING CRYPTO ALGORITHM TESTS:\n\n");
|
print( "\nRUNNING CRYPTO ALGORITHM TESTS:\n\n");
|
||||||
|
|
||||||
@@ -74,16 +68,16 @@ sub algorithm_tests
|
|||||||
foreach $i (@tests)
|
foreach $i (@tests)
|
||||||
{
|
{
|
||||||
if (-e "$base_path\\$i.nlm")
|
if (-e "$base_path\\$i.nlm")
|
||||||
{
|
{
|
||||||
$outFile = "$output_path\\$i.out";
|
$outFile = "$output_path\\$i.out";
|
||||||
system("$i (CLIB_OPT)/>$outFile");
|
system("$i > $outFile");
|
||||||
log_desc("Test: $i\.nlm:");
|
log_desc("Test: $i\.nlm:");
|
||||||
log_output("", $outFile );
|
log_output("", $outFile );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log_desc("Test: $i\.nlm: file not found");
|
log_desc("Test: $i\.nlm: file not found");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,24 +109,24 @@ sub encryption_tests
|
|||||||
|
|
||||||
# do encryption
|
# do encryption
|
||||||
$outFile = "$output_path\\enc.out";
|
$outFile = "$output_path\\enc.out";
|
||||||
system("openssl2 $i -e -bufsize 113 -k test -in $input -out $cipher (CLIB_OPT)/>$outFile" );
|
system("openssl2 $i -e -bufsize 113 -k test -in $input -out $cipher > $outFile" );
|
||||||
log_output("Encrypting: $input --> $cipher", $outFile);
|
log_output("Encrypting: $input --> $cipher", $outFile);
|
||||||
|
|
||||||
# do decryption
|
# do decryption
|
||||||
$outFile = "$output_path\\dec.out";
|
$outFile = "$output_path\\dec.out";
|
||||||
system("openssl2 $i -d -bufsize 157 -k test -in $cipher -out $clear (CLIB_OPT)/>$outFile");
|
system("openssl2 $i -d -bufsize 157 -k test -in $cipher -out $clear > $outFile");
|
||||||
log_output("Decrypting: $cipher --> $clear", $outFile);
|
log_output("Decrypting: $cipher --> $clear", $outFile);
|
||||||
|
|
||||||
# compare files
|
# compare files
|
||||||
$x = compare_files( $input, $clear, 1);
|
$x = compare_files( $input, $clear, 1);
|
||||||
if ( $x == 0 )
|
if ( $x == 0 )
|
||||||
{
|
{
|
||||||
print( "\rSUCCESS - files match: $input, $clear\n");
|
print( "SUCCESS - files match: $input, $clear\n");
|
||||||
print( OUT "SUCCESS - files match: $input, $clear\n");
|
print( OUT "SUCCESS - files match: $input, $clear\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print( "\rERROR: files don't match\n");
|
print( "ERROR: files don't match\n");
|
||||||
print( OUT "ERROR: files don't match\n");
|
print( OUT "ERROR: files don't match\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,24 +136,24 @@ sub encryption_tests
|
|||||||
|
|
||||||
# do encryption B64
|
# do encryption B64
|
||||||
$outFile = "$output_path\\B64enc.out";
|
$outFile = "$output_path\\B64enc.out";
|
||||||
system("openssl2 $i -a -e -bufsize 113 -k test -in $input -out $cipher (CLIB_OPT)/>$outFile");
|
system("openssl2 $i -a -e -bufsize 113 -k test -in $input -out $cipher > $outFile");
|
||||||
log_output("Encrypting(B64): $cipher --> $clear", $outFile);
|
log_output("Encrypting(B64): $cipher --> $clear", $outFile);
|
||||||
|
|
||||||
# do decryption B64
|
# do decryption B64
|
||||||
$outFile = "$output_path\\B64dec.out";
|
$outFile = "$output_path\\B64dec.out";
|
||||||
system("openssl2 $i -a -d -bufsize 157 -k test -in $cipher -out $clear (CLIB_OPT)/>$outFile");
|
system("openssl2 $i -a -d -bufsize 157 -k test -in $cipher -out $clear > $outFile");
|
||||||
log_output("Decrypting(B64): $cipher --> $clear", $outFile);
|
log_output("Decrypting(B64): $cipher --> $clear", $outFile);
|
||||||
|
|
||||||
# compare files
|
# compare files
|
||||||
$x = compare_files( $input, $clear, 1);
|
$x = compare_files( $input, $clear, 1);
|
||||||
if ( $x == 0 )
|
if ( $x == 0 )
|
||||||
{
|
{
|
||||||
print( "\rSUCCESS - files match: $input, $clear\n");
|
print( "SUCCESS - files match: $input, $clear\n");
|
||||||
print( OUT "SUCCESS - files match: $input, $clear\n");
|
print( OUT "SUCCESS - files match: $input, $clear\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print( "\rERROR: files don't match\n");
|
print( "ERROR: files don't match\n");
|
||||||
print( OUT "ERROR: files don't match\n");
|
print( OUT "ERROR: files don't match\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,24 +199,24 @@ sub pem_tests
|
|||||||
|
|
||||||
if ($i ne "req" )
|
if ($i ne "req" )
|
||||||
{
|
{
|
||||||
system("openssl2 $i -in $input -out $tmp_out (CLIB_OPT)/>$outFile");
|
system("openssl2 $i -in $input -out $tmp_out > $outFile");
|
||||||
log_output( "openssl2 $i -in $input -out $tmp_out", $outFile);
|
log_output( "openssl2 $i -in $input -out $tmp_out", $outFile);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
system("openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config (CLIB_OPT)/>$outFile");
|
system("openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config > $outFile");
|
||||||
log_output( "openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config", $outFile );
|
log_output( "openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config", $outFile );
|
||||||
}
|
}
|
||||||
|
|
||||||
$x = compare_files( $input, $tmp_out);
|
$x = compare_files( $input, $tmp_out);
|
||||||
if ( $x == 0 )
|
if ( $x == 0 )
|
||||||
{
|
{
|
||||||
print( "\rSUCCESS - files match: $input, $tmp_out\n");
|
print( "SUCCESS - files match: $input, $tmp_out\n");
|
||||||
print( OUT "SUCCESS - files match: $input, $tmp_out\n");
|
print( OUT "SUCCESS - files match: $input, $tmp_out\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print( "\rERROR: files don't match\n");
|
print( "ERROR: files don't match\n");
|
||||||
print( OUT "ERROR: files don't match\n");
|
print( OUT "ERROR: files don't match\n");
|
||||||
}
|
}
|
||||||
do_wait();
|
do_wait();
|
||||||
@@ -237,8 +231,7 @@ sub verify_tests
|
|||||||
my $i;
|
my $i;
|
||||||
my $outFile = "$output_path\\verify.out";
|
my $outFile = "$output_path\\verify.out";
|
||||||
|
|
||||||
$cert_path =~ s/\\/\//g;
|
my @cert_files = <$cert_path\\*.pem>;
|
||||||
my @cert_files = <$cert_path/*.pem>;
|
|
||||||
|
|
||||||
print( "\nRUNNING VERIFY TESTS:\n\n");
|
print( "\nRUNNING VERIFY TESTS:\n\n");
|
||||||
|
|
||||||
@@ -249,7 +242,7 @@ sub verify_tests
|
|||||||
|
|
||||||
foreach $i (@cert_files)
|
foreach $i (@cert_files)
|
||||||
{
|
{
|
||||||
system("openssl2 verify -CAfile $tmp_cert $i (CLIB_OPT)/>$outFile");
|
system("openssl2 verify -CAfile $tmp_cert $i >$outFile");
|
||||||
log_desc("Verifying cert: $i");
|
log_desc("Verifying cert: $i");
|
||||||
log_output("openssl2 verify -CAfile $tmp_cert $i", $outFile);
|
log_output("openssl2 verify -CAfile $tmp_cert $i", $outFile);
|
||||||
}
|
}
|
||||||
@@ -270,103 +263,103 @@ sub ssl_tests
|
|||||||
print( OUT "\n========================================================\n");
|
print( OUT "\n========================================================\n");
|
||||||
print( OUT "SSL TESTS:\n\n");
|
print( OUT "SSL TESTS:\n\n");
|
||||||
|
|
||||||
system("ssltest -ssl2 (CLIB_OPT)/>$outFile");
|
system("ssltest -ssl2 >$outFile");
|
||||||
log_desc("Testing sslv2:");
|
log_desc("Testing sslv2:");
|
||||||
log_output("ssltest -ssl2", $outFile);
|
log_output("ssltest -ssl2", $outFile);
|
||||||
|
|
||||||
system("$ssltest -ssl2 -server_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -ssl2 -server_auth >$outFile");
|
||||||
log_desc("Testing sslv2 with server authentication:");
|
log_desc("Testing sslv2 with server authentication:");
|
||||||
log_output("$ssltest -ssl2 -server_auth", $outFile);
|
log_output("$ssltest -ssl2 -server_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -ssl2 -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -ssl2 -client_auth >$outFile");
|
||||||
log_desc("Testing sslv2 with client authentication:");
|
log_desc("Testing sslv2 with client authentication:");
|
||||||
log_output("$ssltest -ssl2 -client_auth", $outFile);
|
log_output("$ssltest -ssl2 -client_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -ssl2 -server_auth -client_auth >$outFile");
|
||||||
log_desc("Testing sslv2 with both client and server authentication:");
|
log_desc("Testing sslv2 with both client and server authentication:");
|
||||||
log_output("$ssltest -ssl2 -server_auth -client_auth", $outFile);
|
log_output("$ssltest -ssl2 -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -ssl3 (CLIB_OPT)/>$outFile");
|
system("ssltest -ssl3 >$outFile");
|
||||||
log_desc("Testing sslv3:");
|
log_desc("Testing sslv3:");
|
||||||
log_output("ssltest -ssl3", $outFile);
|
log_output("ssltest -ssl3", $outFile);
|
||||||
|
|
||||||
system("$ssltest -ssl3 -server_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -ssl3 -server_auth >$outFile");
|
||||||
log_desc("Testing sslv3 with server authentication:");
|
log_desc("Testing sslv3 with server authentication:");
|
||||||
log_output("$ssltest -ssl3 -server_auth", $outFile);
|
log_output("$ssltest -ssl3 -server_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -ssl3 -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -ssl3 -client_auth >$outFile");
|
||||||
log_desc("Testing sslv3 with client authentication:");
|
log_desc("Testing sslv3 with client authentication:");
|
||||||
log_output("$ssltest -ssl3 -client_auth", $outFile);
|
log_output("$ssltest -ssl3 -client_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -ssl3 -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -ssl3 -server_auth -client_auth >$outFile");
|
||||||
log_desc("Testing sslv3 with both client and server authentication:");
|
log_desc("Testing sslv3 with both client and server authentication:");
|
||||||
log_output("$ssltest -ssl3 -server_auth -client_auth", $outFile);
|
log_output("$ssltest -ssl3 -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest (CLIB_OPT)/>$outFile");
|
system("ssltest >$outFile");
|
||||||
log_desc("Testing sslv2/sslv3:");
|
log_desc("Testing sslv2/sslv3:");
|
||||||
log_output("ssltest", $outFile);
|
log_output("ssltest", $outFile);
|
||||||
|
|
||||||
system("$ssltest -server_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -server_auth >$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with server authentication:");
|
log_desc("Testing sslv2/sslv3 with server authentication:");
|
||||||
log_output("$ssltest -server_auth", $outFile);
|
log_output("$ssltest -server_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -client_auth >$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with client authentication:");
|
log_desc("Testing sslv2/sslv3 with client authentication:");
|
||||||
log_output("$ssltest -client_auth ", $outFile);
|
log_output("$ssltest -client_auth ", $outFile);
|
||||||
|
|
||||||
system("$ssltest -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -server_auth -client_auth >$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with both client and server authentication:");
|
log_desc("Testing sslv2/sslv3 with both client and server authentication:");
|
||||||
log_output("$ssltest -server_auth -client_auth", $outFile);
|
log_output("$ssltest -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl2 (CLIB_OPT)/>$outFile");
|
system("ssltest -bio_pair -ssl2 >$outFile");
|
||||||
log_desc("Testing sslv2 via BIO pair:");
|
log_desc("Testing sslv2 via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -ssl2", $outFile);
|
log_output("ssltest -bio_pair -ssl2", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -dhe1024dsa -v (CLIB_OPT)/>$outFile");
|
system("ssltest -bio_pair -dhe1024dsa -v >$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with 1024 bit DHE via BIO pair:");
|
log_desc("Testing sslv2/sslv3 with 1024 bit DHE via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -dhe1024dsa -v", $outFile);
|
log_output("ssltest -bio_pair -dhe1024dsa -v", $outFile);
|
||||||
|
|
||||||
system("$ssltest -bio_pair -ssl2 -server_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -bio_pair -ssl2 -server_auth >$outFile");
|
||||||
log_desc("Testing sslv2 with server authentication via BIO pair:");
|
log_desc("Testing sslv2 with server authentication via BIO pair:");
|
||||||
log_output("$ssltest -bio_pair -ssl2 -server_auth", $outFile);
|
log_output("$ssltest -bio_pair -ssl2 -server_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -bio_pair -ssl2 -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -bio_pair -ssl2 -client_auth >$outFile");
|
||||||
log_desc("Testing sslv2 with client authentication via BIO pair:");
|
log_desc("Testing sslv2 with client authentication via BIO pair:");
|
||||||
log_output("$ssltest -bio_pair -ssl2 -client_auth", $outFile);
|
log_output("$ssltest -bio_pair -ssl2 -client_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -bio_pair -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -bio_pair -ssl2 -server_auth -client_auth >$outFile");
|
||||||
log_desc("Testing sslv2 with both client and server authentication via BIO pair:");
|
log_desc("Testing sslv2 with both client and server authentication via BIO pair:");
|
||||||
log_output("$ssltest -bio_pair -ssl2 -server_auth -client_auth", $outFile);
|
log_output("$ssltest -bio_pair -ssl2 -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl3 (CLIB_OPT)/>$outFile");
|
system("ssltest -bio_pair -ssl3 >$outFile");
|
||||||
log_desc("Testing sslv3 via BIO pair:");
|
log_desc("Testing sslv3 via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -ssl3", $outFile);
|
log_output("ssltest -bio_pair -ssl3", $outFile);
|
||||||
|
|
||||||
system("$ssltest -bio_pair -ssl3 -server_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -bio_pair -ssl3 -server_auth >$outFile");
|
||||||
log_desc("Testing sslv3 with server authentication via BIO pair:");
|
log_desc("Testing sslv3 with server authentication via BIO pair:");
|
||||||
log_output("$ssltest -bio_pair -ssl3 -server_auth", $outFile);
|
log_output("$ssltest -bio_pair -ssl3 -server_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -bio_pair -ssl3 -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -bio_pair -ssl3 -client_auth >$outFile");
|
||||||
log_desc("Testing sslv3 with client authentication via BIO pair:");
|
log_desc("Testing sslv3 with client authentication via BIO pair:");
|
||||||
log_output("$ssltest -bio_pair -ssl3 -client_auth", $outFile);
|
log_output("$ssltest -bio_pair -ssl3 -client_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -bio_pair -ssl3 -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -bio_pair -ssl3 -server_auth -client_auth >$outFile");
|
||||||
log_desc("Testing sslv3 with both client and server authentication via BIO pair:");
|
log_desc("Testing sslv3 with both client and server authentication via BIO pair:");
|
||||||
log_output("$ssltest -bio_pair -ssl3 -server_auth -client_auth", $outFile);
|
log_output("$ssltest -bio_pair -ssl3 -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair (CLIB_OPT)/>$outFile");
|
system("ssltest -bio_pair >$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 via BIO pair:");
|
log_desc("Testing sslv2/sslv3 via BIO pair:");
|
||||||
log_output("ssltest -bio_pair", $outFile);
|
log_output("ssltest -bio_pair", $outFile);
|
||||||
|
|
||||||
system("$ssltest -bio_pair -server_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -bio_pair -server_auth >$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with server authentication via BIO pair:");
|
log_desc("Testing sslv2/sslv3 with server authentication via BIO pair:");
|
||||||
log_output("$ssltest -bio_pair -server_auth", $outFile);
|
log_output("$ssltest -bio_pair -server_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -bio_pair -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -bio_pair -client_auth >$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with client authentication via BIO pair:");
|
log_desc("Testing sslv2/sslv3 with client authentication via BIO pair:");
|
||||||
log_output("$ssltest -bio_pair -client_auth", $outFile);
|
log_output("$ssltest -bio_pair -client_auth", $outFile);
|
||||||
|
|
||||||
system("$ssltest -bio_pair -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
system("$ssltest -bio_pair -server_auth -client_auth >$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with both client and server authentication via BIO pair:");
|
log_desc("Testing sslv2/sslv3 with both client and server authentication via BIO pair:");
|
||||||
log_output("$ssltest -bio_pair -server_auth -client_auth", $outFile);
|
log_output("$ssltest -bio_pair -server_auth -client_auth", $outFile);
|
||||||
}
|
}
|
||||||
@@ -396,43 +389,43 @@ sub ca_tests
|
|||||||
print( OUT "\n========================================================\n");
|
print( OUT "\n========================================================\n");
|
||||||
print( OUT "CA TESTS:\n");
|
print( OUT "CA TESTS:\n");
|
||||||
|
|
||||||
system("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new (CLIB_OPT)/>$outFile");
|
system("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new >$outFile");
|
||||||
log_desc("Make a certificate request using req:");
|
log_desc("Make a certificate request using req:");
|
||||||
log_output("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new", $outFile);
|
log_output("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new", $outFile);
|
||||||
|
|
||||||
system("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey (CLIB_OPT)/>$outFile");
|
system("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey >$outFile");
|
||||||
log_desc("Convert the certificate request into a self signed certificate using x509:");
|
log_desc("Convert the certificate request into a self signed certificate using x509:");
|
||||||
log_output("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey", $outFile);
|
log_output("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey", $outFile);
|
||||||
|
|
||||||
system("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2 (CLIB_OPT)/>$outFile");
|
system("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2 >$outFile");
|
||||||
log_desc("Convert a certificate into a certificate request using 'x509':");
|
log_desc("Convert a certificate into a certificate request using 'x509':");
|
||||||
log_output("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2", $outFile);
|
log_output("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2", $outFile);
|
||||||
|
|
||||||
system("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout (CLIB_OPT)/>$outFile");
|
system("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout >$outFile");
|
||||||
log_output("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout", $outFile);
|
log_output("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout", $outFile);
|
||||||
|
|
||||||
system("openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout (CLIB_OPT)/>$outFile");
|
system("openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout >$outFile");
|
||||||
log_output( "openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout", $outFile);
|
log_output( "openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout", $outFile);
|
||||||
|
|
||||||
system("openssl2 verify -CAfile $CAcert $CAcert (CLIB_OPT)/>$outFile");
|
system("openssl2 verify -CAfile $CAcert $CAcert >$outFile");
|
||||||
log_output("openssl2 verify -CAfile $CAcert $CAcert", $outFile);
|
log_output("openssl2 verify -CAfile $CAcert $CAcert", $outFile);
|
||||||
|
|
||||||
system("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new (CLIB_OPT)/>$outFile");
|
system("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new >$outFile");
|
||||||
log_desc("Make another certificate request using req:");
|
log_desc("Make another certificate request using req:");
|
||||||
log_output("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new", $outFile);
|
log_output("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new", $outFile);
|
||||||
|
|
||||||
system("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial (CLIB_OPT)/>$outFile");
|
system("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial >$outFile");
|
||||||
log_desc("Sign certificate request with the just created CA via x509:");
|
log_desc("Sign certificate request with the just created CA via x509:");
|
||||||
log_output("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial", $outFile);
|
log_output("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial", $outFile);
|
||||||
|
|
||||||
system("openssl2 verify -CAfile $CAcert $Ucert (CLIB_OPT)/>$outFile");
|
system("openssl2 verify -CAfile $CAcert $Ucert >$outFile");
|
||||||
log_output("openssl2 verify -CAfile $CAcert $Ucert", $outFile);
|
log_output("openssl2 verify -CAfile $CAcert $Ucert", $outFile);
|
||||||
|
|
||||||
system("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert (CLIB_OPT)/>$outFile");
|
system("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert >$outFile");
|
||||||
log_desc("Certificate details");
|
log_desc("Certificate details");
|
||||||
log_output("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert", $outFile);
|
log_output("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert", $outFile);
|
||||||
|
|
||||||
print(OUT "--\n");
|
print(OUT "-- \n");
|
||||||
print(OUT "The generated CA certificate is $CAcert\n");
|
print(OUT "The generated CA certificate is $CAcert\n");
|
||||||
print(OUT "The generated CA private key is $CAkey\n");
|
print(OUT "The generated CA private key is $CAkey\n");
|
||||||
print(OUT "The current CA signing serial number is in $CAserial\n");
|
print(OUT "The current CA signing serial number is in $CAserial\n");
|
||||||
@@ -442,29 +435,6 @@ sub ca_tests
|
|||||||
print(OUT "--\n");
|
print(OUT "--\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
############################################################################
|
|
||||||
sub evp_tests
|
|
||||||
{
|
|
||||||
my $i = 'evp_test';
|
|
||||||
|
|
||||||
print( "\nRUNNING EVP TESTS:\n\n");
|
|
||||||
|
|
||||||
print( OUT "\n========================================================\n");
|
|
||||||
print( OUT "EVP TESTS:\n\n");
|
|
||||||
|
|
||||||
if (-e "$base_path\\$i.nlm")
|
|
||||||
{
|
|
||||||
my $outFile = "$output_path\\$i.out";
|
|
||||||
system("$i $test_path\\evptests.txt (CLIB_OPT)/>$outFile");
|
|
||||||
log_desc("Test: $i\.nlm:");
|
|
||||||
log_output("", $outFile );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
log_desc("Test: $i\.nlm: file not found");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
sub log_output( $ $ )
|
sub log_output( $ $ )
|
||||||
{
|
{
|
||||||
@@ -475,7 +445,7 @@ sub log_output( $ $ )
|
|||||||
|
|
||||||
if ($desc)
|
if ($desc)
|
||||||
{
|
{
|
||||||
print("\r$desc\n");
|
print("$desc\n");
|
||||||
print(OUT "$desc\n");
|
print(OUT "$desc\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,8 +457,8 @@ sub log_output( $ $ )
|
|||||||
# copy test output to log file
|
# copy test output to log file
|
||||||
open(IN, "<$file");
|
open(IN, "<$file");
|
||||||
while (<IN>)
|
while (<IN>)
|
||||||
{
|
{
|
||||||
print(OUT $_);
|
print(OUT $_);
|
||||||
if ( $_ =~ /ERROR/ )
|
if ( $_ =~ /ERROR/ )
|
||||||
{
|
{
|
||||||
$error = 1;
|
$error = 1;
|
||||||
@@ -515,13 +485,13 @@ sub log_output( $ $ )
|
|||||||
$key = getc;
|
$key = getc;
|
||||||
print("\n");
|
print("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
# Several of the testing scripts run a loop loading the
|
# Several of the testing scripts run a loop loading the
|
||||||
# same NLM with different options.
|
# same NLM with different options.
|
||||||
# On slow NetWare machines there appears to be some delay in the
|
# On slow NetWare machines there appears to be some delay in the
|
||||||
# OS actually unloading the test nlms and the OS complains about.
|
# OS actually unloading the test nlms and the OS complains about.
|
||||||
# the NLM already being loaded. This additional pause is to
|
# the NLM already being loaded. This additional pause is to
|
||||||
# to help provide a little more time for unloading before trying to
|
# to help provide a little more time for unloading before trying to
|
||||||
# load again.
|
# load again.
|
||||||
sleep(1);
|
sleep(1);
|
||||||
}
|
}
|
||||||
@@ -592,7 +562,7 @@ sub do_wait()
|
|||||||
############################################################################
|
############################################################################
|
||||||
sub make_tmp_cert_file()
|
sub make_tmp_cert_file()
|
||||||
{
|
{
|
||||||
my @cert_files = <$cert_path/*.pem>;
|
my @cert_files = <$cert_path\\*.pem>;
|
||||||
|
|
||||||
# delete the file if it already exists
|
# delete the file if it already exists
|
||||||
unlink($tmp_cert);
|
unlink($tmp_cert);
|
||||||
@@ -600,7 +570,7 @@ sub make_tmp_cert_file()
|
|||||||
open( TMP_CERT, ">$tmp_cert") || die "\nunable to open $tmp_cert\n";
|
open( TMP_CERT, ">$tmp_cert") || die "\nunable to open $tmp_cert\n";
|
||||||
|
|
||||||
print("building temporary cert file\n");
|
print("building temporary cert file\n");
|
||||||
|
|
||||||
# create a temporary cert file that contains all the certs
|
# create a temporary cert file that contains all the certs
|
||||||
foreach $i (@cert_files)
|
foreach $i (@cert_files)
|
||||||
{
|
{
|
||||||
|
@@ -16,97 +16,75 @@ if "a%1" == "a" goto usage
|
|||||||
|
|
||||||
set LIBC_BUILD=
|
set LIBC_BUILD=
|
||||||
set CLIB_BUILD=
|
set CLIB_BUILD=
|
||||||
set GNUC=
|
|
||||||
|
|
||||||
if "%1" == "netware-clib" set CLIB_BUILD=Y
|
if "%1" == "netware-clib" set CLIB_BUILD=Y
|
||||||
if "%1" == "netware-clib" set LIBC_BUILD=
|
if "%1" == "netware-clib" set LIBC_BUILD=
|
||||||
|
|
||||||
if "%1" == "netware-libc" set LIBC_BUILD=Y
|
if "%1" == "netware-libc" set LIBC_BUILD=Y
|
||||||
if "%1" == "netware-libc" set CLIB_BUILD=
|
if "%1" == "netware-libc" set CLIB_BUILD=
|
||||||
|
|
||||||
if "%2" == "gnuc" set GNUC=Y
|
|
||||||
if "%2" == "codewarrior" set GNUC=
|
|
||||||
|
|
||||||
rem Location of tools (compiler, linker, etc)
|
rem Location of tools (compiler, linker, etc)
|
||||||
if "%NDKBASE%" == "" set NDKBASE=c:\Novell
|
set TOOLS=d:\i_drive\tools
|
||||||
|
|
||||||
rem If Perl for Win32 is not already in your path, add it here
|
rem If Perl for Win32 is not already in your path, add it here
|
||||||
set PERL_PATH=
|
set PERL_PATH=
|
||||||
|
|
||||||
rem Define path to the Metrowerks command line tools
|
rem Define path to the Metrowerks command line tools
|
||||||
rem or GNU Crosscompiler gcc / nlmconv
|
|
||||||
rem ( compiler, assembler, linker)
|
rem ( compiler, assembler, linker)
|
||||||
if "%GNUC%" == "Y" set COMPILER_PATH=c:\usr\i586-netware\bin;c:\usr\bin
|
set METROWERKS_PATH=%TOOLS%\codewar\pdk_21\tools\command line tools
|
||||||
if "%GNUC%" == "" set COMPILER_PATH=c:\prg\cwcmdl40
|
rem set METROWERKS_PATH=%TOOLS%\codewar\PDK_40\Other Metrowerks Tools\Command Line Tools
|
||||||
|
|
||||||
rem If using gnu make define path to utility
|
rem If using gnu make define path to utility
|
||||||
rem set GNU_MAKE_PATH=%NDKBASE%\gnu
|
set GNU_MAKE_PATH=%TOOLS%\gnu
|
||||||
set GNU_MAKE_PATH=c:\prg\tools
|
|
||||||
|
|
||||||
rem If using ms nmake define path to nmake
|
rem If using ms nmake define path to nmake
|
||||||
rem set MS_NMAKE_PATH=%NDKBASE%\msvc\600\bin
|
set MS_NMAKE_PATH=%TOOLS%\msvc\600\bin
|
||||||
|
|
||||||
rem If using NASM assembler define path
|
rem If using NASM assembler define path
|
||||||
rem set NASM_PATH=%NDKBASE%\nasm
|
set NASM_PATH=%TOOLS%\nasm
|
||||||
set NASM_PATH=c:\prg\tools
|
|
||||||
|
|
||||||
rem Update path to include tool paths
|
rem Update path to include tool paths
|
||||||
set path=%path%;%COMPILER_PATH%
|
set path=%path%;%METROWERKS_PATH%
|
||||||
if not "%GNU_MAKE_PATH%" == "" set path=%path%;%GNU_MAKE_PATH%
|
if not "%GNU_MAKE_PATH%" == "" set path=%path%;%GNU_MAKE_PATH%
|
||||||
if not "%MS_NMAKE_PATH%" == "" set path=%path%;%MS_NMAKE_PATH%
|
if not "%MS_NMAKE_PATH%" == "" set path=%path%;%MS_NMAKE_PATH%
|
||||||
if not "%NASM_PATH%" == "" set path=%path%;%NASM_PATH%
|
if not "%NASM_PATH%" == "" set path=%path%;%NASM_PATH%
|
||||||
if not "%PERL_PATH%" == "" set path=%path%;%PERL_PATH%
|
if not "%PERL_PATH%" == "" set path=%path%;%PERL_PATH%
|
||||||
|
|
||||||
rem Set INCLUDES to location of Novell NDK includes
|
rem Set MWCIncludes to location of Novell NDK includes
|
||||||
if "%LIBC_BUILD%" == "Y" set INCLUDE=%NDKBASE%\ndk\libc\include;%NDKBASE%\ndk\libc\include\winsock
|
if "%LIBC_BUILD%" == "Y" set MWCIncludes=%TOOLS%\ndk\libc\include;%TOOLS%\ndk\libc\include\winsock;.\engines
|
||||||
if "%CLIB_BUILD%" == "Y" set INCLUDE=%NDKBASE%\ndk\nwsdk\include\nlm;%NDKBASE%\ws295sdk\include
|
if "%CLIB_BUILD%" == "Y" set MWCIncludes=%TOOLS%\ndk\nwsdk\include\nlm;.\engines
|
||||||
|
set include=
|
||||||
|
|
||||||
rem Set Imports to location of Novell NDK import files
|
rem Set Imports to location of Novell NDK import files
|
||||||
if "%LIBC_BUILD%" == "Y" set IMPORTS=%NDKBASE%\ndk\libc\imports
|
if "%LIBC_BUILD%" == "Y" set IMPORTS=%TOOLS%\ndk\libc\imports
|
||||||
if "%CLIB_BUILD%" == "Y" set IMPORTS=%NDKBASE%\ndk\nwsdk\imports
|
if "%CLIB_BUILD%" == "Y" set IMPORTS=%TOOLS%\ndk\nwsdk\imports
|
||||||
|
|
||||||
rem Set PRELUDE to the absolute path of the prelude object to link with in
|
rem Set PRELUDE to the absolute path of the prelude object to link with in
|
||||||
rem the Metrowerks NetWare PDK - NOTE: for Clib builds "clibpre.o" is
|
rem the Metrowerks NetWare PDK - NOTE: for Clib builds "clibpre.o" is
|
||||||
rem recommended, for LibC NKS builds libcpre.o must be used
|
rem recommended, for LibC NKS builds libcpre.o must be used
|
||||||
if "%GNUC%" == "Y" goto gnuc
|
|
||||||
if "%LIBC_BUILD%" == "Y" set PRELUDE=%IMPORTS%\libcpre.o
|
if "%LIBC_BUILD%" == "Y" set PRELUDE=%IMPORTS%\libcpre.o
|
||||||
rem if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\clibpre.o
|
if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\clibpre.o
|
||||||
if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\prelude.o
|
|
||||||
echo using MetroWerks CodeWarrior
|
|
||||||
goto info
|
|
||||||
|
|
||||||
:gnuc
|
|
||||||
if "%LIBC_BUILD%" == "Y" set PRELUDE=%IMPORTS%\libcpre.gcc.o
|
|
||||||
rem if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\clibpre.gcc.o
|
|
||||||
if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\prelude.gcc.o
|
|
||||||
echo using GNU GCC Compiler
|
|
||||||
|
|
||||||
:info
|
|
||||||
echo.
|
|
||||||
|
|
||||||
if "%LIBC_BUILD%" == "Y" echo Enviroment configured for LibC build
|
if "%LIBC_BUILD%" == "Y" echo Enviroment configured for LibC build
|
||||||
if "%LIBC_BUILD%" == "Y" echo use "netware\build.bat netware-libc ..."
|
if "%LIBC_BUILD%" == "Y" echo use "netware\build.bat netware-libc ..."
|
||||||
|
|
||||||
if "%CLIB_BUILD%" == "Y" echo Enviroment configured for CLib build
|
if "%CLIB_BUILD%" == "Y" echo Enviroment configured for CLib build
|
||||||
if "%CLIB_BUILD%" == "Y" echo use "netware\build.bat netware-clib ..."
|
if "%CLIB_BUILD%" == "Y" echo use "netware\build.bat netware-clib ..."
|
||||||
|
|
||||||
goto end
|
goto end
|
||||||
|
|
||||||
:usage
|
:usage
|
||||||
rem ===============================================================
|
rem ===============================================================
|
||||||
echo.
|
echo .
|
||||||
echo No target build specified!
|
echo . No target build specified!
|
||||||
echo.
|
echo .
|
||||||
echo usage: set_env [target] [compiler]
|
echo . usage: set_env [target]
|
||||||
echo.
|
echo .
|
||||||
echo target - "netware-clib" - Clib build
|
echo . target - "netware-clib" - Clib build
|
||||||
echo - "netware-libc" - LibC build
|
echo . - "netware-libc" - LibC build
|
||||||
echo.
|
echo .
|
||||||
echo compiler - "gnuc" - GNU GCC Compiler
|
|
||||||
echo - "codewarrior" - MetroWerks CodeWarrior (default)
|
|
||||||
echo.
|
|
||||||
|
|
||||||
:end
|
:end
|
||||||
echo.
|
|
||||||
|
|
||||||
|
|
||||||
|
4
PROBLEMS
4
PROBLEMS
@@ -36,9 +36,7 @@ may differ on your machine.
|
|||||||
|
|
||||||
|
|
||||||
As long as Apple doesn't fix the problem with ld, this problem building
|
As long as Apple doesn't fix the problem with ld, this problem building
|
||||||
OpenSSL will remain as is. Well, the problem was addressed in 0.9.8f by
|
OpenSSL will remain as is.
|
||||||
passing -Wl,-search_paths_first, but it's unknown if the flag was
|
|
||||||
supported from the initial MacOS X release.
|
|
||||||
|
|
||||||
|
|
||||||
* Parallell make leads to errors
|
* Parallell make leads to errors
|
||||||
|
35
README
35
README
@@ -1,10 +1,16 @@
|
|||||||
|
|
||||||
OpenSSL 0.9.8s 4 Jan 2012
|
OpenSSL 0.9.8f-fips-dev test version
|
||||||
|
|
||||||
Copyright (c) 1998-2011 The OpenSSL Project
|
Copyright (c) 1998-2007 The OpenSSL Project
|
||||||
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
WARNING
|
||||||
|
-------
|
||||||
|
|
||||||
|
This version of OpenSSL is an initial port of the FIPS 140-2 code to OpenSSL
|
||||||
|
0.9.8. See the file README.FIPS for brief usage details.
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
@@ -112,6 +118,8 @@
|
|||||||
should be contacted if that algorithm is to be used; their web page is
|
should be contacted if that algorithm is to be used; their web page is
|
||||||
http://www.ascom.ch/.
|
http://www.ascom.ch/.
|
||||||
|
|
||||||
|
The MDC2 algorithm is patented by IBM.
|
||||||
|
|
||||||
NTT and Mitsubishi have patents and pending patents on the Camellia
|
NTT and Mitsubishi have patents and pending patents on the Camellia
|
||||||
algorithm, but allow use at no charge without requiring an explicit
|
algorithm, but allow use at no charge without requiring an explicit
|
||||||
licensing agreement: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
|
licensing agreement: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
|
||||||
@@ -137,9 +145,6 @@
|
|||||||
SUPPORT
|
SUPPORT
|
||||||
-------
|
-------
|
||||||
|
|
||||||
See the OpenSSL website www.openssl.org for details of how to obtain
|
|
||||||
commercial technical support.
|
|
||||||
|
|
||||||
If you have any problems with OpenSSL then please take the following steps
|
If you have any problems with OpenSSL then please take the following steps
|
||||||
first:
|
first:
|
||||||
|
|
||||||
@@ -162,14 +167,10 @@
|
|||||||
- Stack Traceback (if the application dumps core)
|
- Stack Traceback (if the application dumps core)
|
||||||
|
|
||||||
Report the bug to the OpenSSL project via the Request Tracker
|
Report the bug to the OpenSSL project via the Request Tracker
|
||||||
(http://www.openssl.org/support/rt.html) by mail to:
|
(http://www.openssl.org/support/rt2.html) by mail to:
|
||||||
|
|
||||||
openssl-bugs@openssl.org
|
openssl-bugs@openssl.org
|
||||||
|
|
||||||
Note that the request tracker should NOT be used for general assistance
|
|
||||||
or support queries. Just because something doesn't work the way you expect
|
|
||||||
does not mean it is necessarily a bug in OpenSSL.
|
|
||||||
|
|
||||||
Note that mail to openssl-bugs@openssl.org is recorded in the publicly
|
Note that mail to openssl-bugs@openssl.org is recorded in the publicly
|
||||||
readable request tracker database and is forwarded to a public
|
readable request tracker database and is forwarded to a public
|
||||||
mailing list. Confidential mail may be sent to openssl-security@openssl.org
|
mailing list. Confidential mail may be sent to openssl-security@openssl.org
|
||||||
@@ -180,22 +181,10 @@
|
|||||||
|
|
||||||
Development is coordinated on the openssl-dev mailing list (see
|
Development is coordinated on the openssl-dev mailing list (see
|
||||||
http://www.openssl.org for information on subscribing). If you
|
http://www.openssl.org for information on subscribing). If you
|
||||||
would like to submit a patch, send it to openssl-bugs@openssl.org with
|
would like to submit a patch, send it to openssl-dev@openssl.org with
|
||||||
the string "[PATCH]" in the subject. Please be sure to include a
|
the string "[PATCH]" in the subject. Please be sure to include a
|
||||||
textual explanation of what your patch does.
|
textual explanation of what your patch does.
|
||||||
|
|
||||||
If you are unsure as to whether a feature will be useful for the general
|
|
||||||
OpenSSL community please discuss it on the openssl-dev mailing list first.
|
|
||||||
Someone may be already working on the same thing or there may be a good
|
|
||||||
reason as to why that feature isn't implemented.
|
|
||||||
|
|
||||||
Patches should be as up to date as possible, preferably relative to the
|
|
||||||
current CVS or the last snapshot. They should follow the coding style of
|
|
||||||
OpenSSL and compile without warnings. Some of the core team developer targets
|
|
||||||
can be used for testing purposes, (debug-steve64, debug-geoff etc). OpenSSL
|
|
||||||
compiles on many varied platforms: try to ensure you only use portable
|
|
||||||
features.
|
|
||||||
|
|
||||||
Note: For legal reasons, contributions from the US can be accepted only
|
Note: For legal reasons, contributions from the US can be accepted only
|
||||||
if a TSU notification and a copy of the patch are sent to crypt@bis.doc.gov
|
if a TSU notification and a copy of the patch are sent to crypt@bis.doc.gov
|
||||||
(formerly BXA) with a copy to the ENC Encryption Request Coordinator;
|
(formerly BXA) with a copy to the ENC Encryption Request Coordinator;
|
||||||
|
35
README.FIPS
Normal file
35
README.FIPS
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
|
||||||
|
Brief instructions on using OpenSSL 0.9.8 FIPS test branch.
|
||||||
|
|
||||||
|
To avoid any confusion that this might generate a validate library just
|
||||||
|
supplying "fips" on the command line wont work. Additional options are
|
||||||
|
needed...
|
||||||
|
|
||||||
|
To build fipscanister and produce a usable distribution the configuration
|
||||||
|
option "fipscanisterbuild" is used to either the config or Configure scripts.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
./config fipscanisterbuild
|
||||||
|
|
||||||
|
This builds static libraries in a way similar to the FIPS 1.1.1 distro.
|
||||||
|
|
||||||
|
To build the shared library fipscanister version use the configuration
|
||||||
|
options "fipsdso".
|
||||||
|
|
||||||
|
Note that the fipscanister.o file is totally incompatible with the version
|
||||||
|
produced by the FIPS 1.1.1 distribution and cannot be made to work with
|
||||||
|
it.
|
||||||
|
|
||||||
|
Both options should also work under Windows and VC++. With this version the
|
||||||
|
use of MinGW is unnecessary and the normal VC++ build procedure can be
|
||||||
|
followed *except* the GNU linker "ld.exe" (for example from MinGW) must be
|
||||||
|
accessible somewhere on the PATH. For example:
|
||||||
|
|
||||||
|
perl Configure VC-WIN32 fipsdso
|
||||||
|
ms\do_masm
|
||||||
|
nmake -f ms\ntdll.mak
|
||||||
|
|
||||||
|
Note that any warnings from a Windows version of "tar" about being unable to
|
||||||
|
create symbolic links can be ignored.
|
||||||
|
|
||||||
|
|
26
STATUS
26
STATUS
@@ -1,30 +1,10 @@
|
|||||||
|
|
||||||
OpenSSL STATUS Last modified at
|
OpenSSL STATUS Last modified at
|
||||||
______________ $Date: 2012/01/04 19:20:48 $
|
______________ $Date: 2007/02/23 12:12:27 $
|
||||||
|
|
||||||
DEVELOPMENT STATE
|
DEVELOPMENT STATE
|
||||||
|
|
||||||
o OpenSSL 1.1.0: Under development...
|
o OpenSSL 0.9.9: Under development...
|
||||||
o OpenSSL 1.0.1: Under development...
|
|
||||||
o OpenSSL 1.0.0d: Released on February 8nd, 2011
|
|
||||||
o OpenSSL 1.0.0c: Released on December 2nd, 2010
|
|
||||||
o OpenSSL 1.0.0b: Released on November 16th, 2010
|
|
||||||
o OpenSSL 1.0.0a: Released on June 1st, 2010
|
|
||||||
o OpenSSL 1.0.0: Released on March 29th, 2010
|
|
||||||
o OpenSSL 0.9.8s: Released on January 4th, 2012
|
|
||||||
o OpenSSL 0.9.8r: Released on February 8nd, 2011
|
|
||||||
o OpenSSL 0.9.8q: Released on December 2nd, 2010
|
|
||||||
o OpenSSL 0.9.8p: Released on November 16th, 2010
|
|
||||||
o OpenSSL 0.9.8o: Released on June 1st, 2010
|
|
||||||
o OpenSSL 0.9.8n: Released on March 24th, 2010
|
|
||||||
o OpenSSL 0.9.8m: Released on February 25th, 2010
|
|
||||||
o OpenSSL 0.9.8l: Released on November 5th, 2009
|
|
||||||
o OpenSSL 0.9.8k: Released on March 25th, 2009
|
|
||||||
o OpenSSL 0.9.8j: Released on January 7th, 2009
|
|
||||||
o OpenSSL 0.9.8i: Released on September 15th, 2008
|
|
||||||
o OpenSSL 0.9.8h: Released on May 28th, 2008
|
|
||||||
o OpenSSL 0.9.8g: Released on October 19th, 2007
|
|
||||||
o OpenSSL 0.9.8f: Released on October 11th, 2007
|
|
||||||
o OpenSSL 0.9.8e: Released on February 23rd, 2007
|
o OpenSSL 0.9.8e: Released on February 23rd, 2007
|
||||||
o OpenSSL 0.9.8d: Released on September 28th, 2006
|
o OpenSSL 0.9.8d: Released on September 28th, 2006
|
||||||
o OpenSSL 0.9.8c: Released on September 5th, 2006
|
o OpenSSL 0.9.8c: Released on September 5th, 2006
|
||||||
@@ -67,7 +47,7 @@
|
|||||||
o OpenSSL 0.9.2b: Released on March 22th, 1999
|
o OpenSSL 0.9.2b: Released on March 22th, 1999
|
||||||
o OpenSSL 0.9.1c: Released on December 23th, 1998
|
o OpenSSL 0.9.1c: Released on December 23th, 1998
|
||||||
|
|
||||||
[See also http://www.openssl.org/support/rt.html]
|
[See also http://www.openssl.org/support/rt2.html]
|
||||||
|
|
||||||
RELEASE SHOWSTOPPERS
|
RELEASE SHOWSTOPPERS
|
||||||
|
|
||||||
|
@@ -12,14 +12,6 @@ $ WRITE SYS$OUTPUT "Should be the directory where you want things installed.
|
|||||||
$ EXIT
|
$ EXIT
|
||||||
$ ENDIF
|
$ ENDIF
|
||||||
$
|
$
|
||||||
$ IF (F$GETSYI("CPU").LT.128)
|
|
||||||
$ THEN
|
|
||||||
$ ARCH := VAX
|
|
||||||
$ ELSE
|
|
||||||
$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
|
|
||||||
$ IF (ARCH .EQS. "") THEN ARCH = "UNK"
|
|
||||||
$ ENDIF
|
|
||||||
$
|
|
||||||
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
|
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
|
||||||
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
|
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
|
||||||
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
||||||
@@ -27,7 +19,13 @@ $ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
|||||||
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
|
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
|
||||||
$
|
$
|
||||||
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
|
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
|
||||||
|
$ DEFINE/NOLOG WRK_SSLVLIB WRK_SSLROOT:[VAX_LIB]
|
||||||
|
$ DEFINE/NOLOG WRK_SSLALIB WRK_SSLROOT:[ALPHA_LIB]
|
||||||
$ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE]
|
$ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE]
|
||||||
|
$ DEFINE/NOLOG WRK_SSLVEXE WRK_SSLROOT:[VAX_EXE]
|
||||||
|
$ DEFINE/NOLOG WRK_SSLAEXE WRK_SSLROOT:[ALPHA_EXE]
|
||||||
|
$ DEFINE/NOLOG WRK_SSLCERTS WRK_SSLROOT:[CERTS]
|
||||||
|
$ DEFINE/NOLOG WRK_SSLPRIVATE WRK_SSLROOT:[PRIVATE]
|
||||||
$
|
$
|
||||||
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
|
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
|
||||||
CREATE/DIR/LOG WRK_SSLROOT:[000000]
|
CREATE/DIR/LOG WRK_SSLROOT:[000000]
|
||||||
@@ -41,7 +39,7 @@ $ IF F$SEARCH("WRK_SSLINCLUDE:vms_idhacks.h") .NES. "" THEN -
|
|||||||
$
|
$
|
||||||
$ OPEN/WRITE SF WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM
|
$ OPEN/WRITE SF WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM
|
||||||
$ WRITE SYS$OUTPUT "%OPEN-I-CREATED, ",F$SEARCH("WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM")," created."
|
$ WRITE SYS$OUTPUT "%OPEN-I-CREATED, ",F$SEARCH("WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM")," created."
|
||||||
$ WRITE SF "$! Startup file for Openssl"
|
$ WRITE SF "$! Startup file for Openssl 0.9.2-RL 15-Mar-1999"
|
||||||
$ WRITE SF "$!"
|
$ WRITE SF "$!"
|
||||||
$ WRITE SF "$! Do not edit this file, as it will be regenerated during next installation."
|
$ WRITE SF "$! Do not edit this file, as it will be regenerated during next installation."
|
||||||
$ WRITE SF "$! Instead, add or change SSLROOT:[VMS]OPENSSL_SYSTARTUP.COM"
|
$ WRITE SF "$! Instead, add or change SSLROOT:[VMS]OPENSSL_SYSTARTUP.COM"
|
||||||
@@ -49,13 +47,8 @@ $ WRITE SF "$!"
|
|||||||
$ WRITE SF "$! P1 a qualifier to DEFINE. For example ""/SYSTEM"" to get the logical names"
|
$ WRITE SF "$! P1 a qualifier to DEFINE. For example ""/SYSTEM"" to get the logical names"
|
||||||
$ WRITE SF "$! defined in the system logical name table."
|
$ WRITE SF "$! defined in the system logical name table."
|
||||||
$ WRITE SF "$!"
|
$ WRITE SF "$!"
|
||||||
$ WRITE SF "$ IF (F$GETSYI(""CPU"").LT.128)"
|
$ WRITE SF "$ ARCH = ""VAX"""
|
||||||
$ WRITE SF "$ THEN"
|
$ WRITE SF "$ IF F$GETSYI(""CPU"") .GE. 128 THEN ARCH = ""ALPHA"""
|
||||||
$ WRITE SF "$ ARCH := VAX"
|
|
||||||
$ WRITE SF "$ ELSE"
|
|
||||||
$ WRITE SF "$ ARCH = F$EDIT( F$GETSYI( ""ARCH_NAME""), ""UPCASE"")"
|
|
||||||
$ WRITE SF "$ IF (ARCH .EQS. """") THEN ARCH = ""UNK"""
|
|
||||||
$ WRITE SF "$ ENDIF"
|
|
||||||
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLROOT ",ROOT,".] /TRANS=CONC"
|
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLROOT ",ROOT,".] /TRANS=CONC"
|
||||||
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLLIB SSLROOT:['ARCH'_LIB]"
|
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLLIB SSLROOT:['ARCH'_LIB]"
|
||||||
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLINCLUDE SSLROOT:[INCLUDE]"
|
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLINCLUDE SSLROOT:[INCLUDE]"
|
||||||
|
@@ -3,10 +3,10 @@ $!
|
|||||||
$! No command line parameters. This should be run at the start of the source
|
$! No command line parameters. This should be run at the start of the source
|
||||||
$! tree (the same directory where one finds INSTALL.VMS).
|
$! tree (the same directory where one finds INSTALL.VMS).
|
||||||
$!
|
$!
|
||||||
$! Input: [.UTIL]LIBEAY.NUM,[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB
|
$! Input: [.UTIL]LIBEAY.NUM,[.AXP.EXE.CRYPTO]LIBCRYPTO.OLB
|
||||||
$! [.UTIL]SSLEAY.NUM,[.xxx.EXE.SSL]LIBSSL.OLB
|
$! [.UTIL]SSLEAY.NUM,[.AXP.EXE.SSL]LIBSSL.OLB
|
||||||
$! Output: [.xxx.EXE.CRYPTO]LIBCRYPTO.OPT,.MAP,.EXE
|
$! Output: [.AXP.EXE.CRYPTO]LIBCRYPTO.OPT,.MAP,.EXE
|
||||||
$! [.xxx.EXE.SSL]LIBSSL.OPT,.MAP,.EXE
|
$! [.AXP.EXE.SSL]LIBSSL.OPT,.MAP,.EXE
|
||||||
$!
|
$!
|
||||||
$! So far, tests have only been made on VMS for Alpha. VAX will come in time.
|
$! So far, tests have only been made on VMS for Alpha. VAX will come in time.
|
||||||
$! ===========================================================================
|
$! ===========================================================================
|
||||||
@@ -19,41 +19,31 @@ $ write sys$error "ERROR: Couldn't find any library version info..."
|
|||||||
$ exit
|
$ exit
|
||||||
$ endif
|
$ endif
|
||||||
$
|
$
|
||||||
$ if (f$getsyi("cpu").lt.128)
|
$ if f$getsyi("CPU") .ge. 128
|
||||||
$ then
|
$ then
|
||||||
$ arch := VAX
|
|
||||||
$ else
|
|
||||||
$ arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
|
|
||||||
$ if (arch .eqs. "") then arch = "UNK"
|
|
||||||
$ endif
|
|
||||||
$
|
|
||||||
$ if arch .nes. "VAX"
|
|
||||||
$ then
|
|
||||||
$ arch_vax = 0
|
|
||||||
$ libid = "Crypto"
|
$ libid = "Crypto"
|
||||||
$ libnum = "[.UTIL]LIBEAY.NUM"
|
$ libnum = "[.UTIL]LIBEAY.NUM"
|
||||||
$ libdir = "[.''ARCH'.EXE.CRYPTO]"
|
$ libdir = "[.AXP.EXE.CRYPTO]"
|
||||||
$ libolb = "''libdir'LIBCRYPTO.OLB"
|
$ libolb = "''libdir'LIBCRYPTO.OLB"
|
||||||
$ libopt = "''libdir'LIBCRYPTO.OPT"
|
$ libopt = "''libdir'LIBCRYPTO.OPT"
|
||||||
$ libmap = "''libdir'LIBCRYPTO.MAP"
|
$ libmap = "''libdir'LIBCRYPTO.MAP"
|
||||||
$ libgoal= "''libdir'LIBCRYPTO.EXE"
|
$ libgoal= "''libdir'LIBCRYPTO.EXE"
|
||||||
$ libref = ""
|
$ libref = ""
|
||||||
$ gosub create_nonvax_shr
|
$ gosub create_axp_shr
|
||||||
$ libid = "SSL"
|
$ libid = "SSL"
|
||||||
$ libnum = "[.UTIL]SSLEAY.NUM"
|
$ libnum = "[.UTIL]SSLEAY.NUM"
|
||||||
$ libdir = "[.''ARCH'.EXE.SSL]"
|
$ libdir = "[.AXP.EXE.SSL]"
|
||||||
$ libolb = "''libdir'LIBSSL.OLB"
|
$ libolb = "''libdir'LIBSSL.OLB"
|
||||||
$ libopt = "''libdir'LIBSSL.OPT"
|
$ libopt = "''libdir'LIBSSL.OPT"
|
||||||
$ libmap = "''libdir'LIBSSL.MAP"
|
$ libmap = "''libdir'LIBSSL.MAP"
|
||||||
$ libgoal= "''libdir'LIBSSL.EXE"
|
$ libgoal= "''libdir'LIBSSL.EXE"
|
||||||
$ libref = "[.''ARCH'.EXE.CRYPTO]LIBCRYPTO.EXE"
|
$ libref = "[.AXP.EXE.CRYPTO]LIBCRYPTO.EXE"
|
||||||
$ gosub create_nonvax_shr
|
$ gosub create_axp_shr
|
||||||
$ else
|
$ else
|
||||||
$ arch_vax = 1
|
|
||||||
$ libtit = "CRYPTO_TRANSFER_VECTOR"
|
$ libtit = "CRYPTO_TRANSFER_VECTOR"
|
||||||
$ libid = "Crypto"
|
$ libid = "Crypto"
|
||||||
$ libnum = "[.UTIL]LIBEAY.NUM"
|
$ libnum = "[.UTIL]LIBEAY.NUM"
|
||||||
$ libdir = "[.''ARCH'.EXE.CRYPTO]"
|
$ libdir = "[.VAX.EXE.CRYPTO]"
|
||||||
$ libmar = "''libdir'LIBCRYPTO.MAR"
|
$ libmar = "''libdir'LIBCRYPTO.MAR"
|
||||||
$ libolb = "''libdir'LIBCRYPTO.OLB"
|
$ libolb = "''libdir'LIBCRYPTO.OLB"
|
||||||
$ libopt = "''libdir'LIBCRYPTO.OPT"
|
$ libopt = "''libdir'LIBCRYPTO.OPT"
|
||||||
@@ -66,22 +56,22 @@ $ gosub create_vax_shr
|
|||||||
$ libtit = "SSL_TRANSFER_VECTOR"
|
$ libtit = "SSL_TRANSFER_VECTOR"
|
||||||
$ libid = "SSL"
|
$ libid = "SSL"
|
||||||
$ libnum = "[.UTIL]SSLEAY.NUM"
|
$ libnum = "[.UTIL]SSLEAY.NUM"
|
||||||
$ libdir = "[.''ARCH'.EXE.SSL]"
|
$ libdir = "[.VAX.EXE.SSL]"
|
||||||
$ libmar = "''libdir'LIBSSL.MAR"
|
$ libmar = "''libdir'LIBSSL.MAR"
|
||||||
$ libolb = "''libdir'LIBSSL.OLB"
|
$ libolb = "''libdir'LIBSSL.OLB"
|
||||||
$ libopt = "''libdir'LIBSSL.OPT"
|
$ libopt = "''libdir'LIBSSL.OPT"
|
||||||
$ libobj = "''libdir'LIBSSL.OBJ"
|
$ libobj = "''libdir'LIBSSL.OBJ"
|
||||||
$ libmap = "''libdir'LIBSSL.MAP"
|
$ libmap = "''libdir'LIBSSL.MAP"
|
||||||
$ libgoal= "''libdir'LIBSSL.EXE"
|
$ libgoal= "''libdir'LIBSSL.EXE"
|
||||||
$ libref = "[.''ARCH'.EXE.CRYPTO]LIBCRYPTO.EXE"
|
$ libref = "[.VAX.EXE.CRYPTO]LIBCRYPTO.EXE"
|
||||||
$ libvec = "LIBSSL"
|
$ libvec = "LIBSSL"
|
||||||
$ gosub create_vax_shr
|
$ gosub create_vax_shr
|
||||||
$ endif
|
$ endif
|
||||||
$ exit
|
$ exit
|
||||||
$
|
$
|
||||||
$! ----- Soubroutines to build the shareable libraries
|
$! ----- Soubroutines to actually build the shareable libraries
|
||||||
$! For each supported architecture, there's a main shareable library
|
$! The way things work, there's a main shareable library creator for each
|
||||||
$! creator, which is called from the main code above.
|
$! supported architecture, which is called from the main code above.
|
||||||
$! The creator will define a number of variables to tell the next levels of
|
$! The creator will define a number of variables to tell the next levels of
|
||||||
$! subroutines what routines to use to write to the option files, call the
|
$! subroutines what routines to use to write to the option files, call the
|
||||||
$! main processor, read_func_num, and when that is done, it will write version
|
$! main processor, read_func_num, and when that is done, it will write version
|
||||||
@@ -107,10 +97,10 @@ $! read_func_num depends on the following variables from the creator:
|
|||||||
$! libwriter The name of the writer routine to call for each .num file line
|
$! libwriter The name of the writer routine to call for each .num file line
|
||||||
$! -----
|
$! -----
|
||||||
$
|
$
|
||||||
$! ----- Subroutines for non-VAX
|
$! ----- Subroutines for AXP
|
||||||
$! -----
|
$! -----
|
||||||
$! The creator routine
|
$! The creator routine
|
||||||
$ create_nonvax_shr:
|
$ create_axp_shr:
|
||||||
$ open/write opt 'libopt'
|
$ open/write opt 'libopt'
|
||||||
$ write opt "identification=""",libid," ",libverstr,""""
|
$ write opt "identification=""",libid," ",libverstr,""""
|
||||||
$ write opt libolb,"/lib"
|
$ write opt libolb,"/lib"
|
||||||
@@ -118,7 +108,7 @@ $ if libref .nes. "" then write opt libref,"/SHARE"
|
|||||||
$ write opt "SYMBOL_VECTOR=(-"
|
$ write opt "SYMBOL_VECTOR=(-"
|
||||||
$ libfirstentry := true
|
$ libfirstentry := true
|
||||||
$ libwrch := opt
|
$ libwrch := opt
|
||||||
$ libwriter := write_nonvax_transfer_entry
|
$ libwriter := write_axp_transfer_entry
|
||||||
$ textcount = 0
|
$ textcount = 0
|
||||||
$ gosub read_func_num
|
$ gosub read_func_num
|
||||||
$ write opt ")"
|
$ write opt ")"
|
||||||
@@ -128,7 +118,7 @@ $ link/map='libmap'/full/share='libgoal' 'libopt'/option
|
|||||||
$ return
|
$ return
|
||||||
$
|
$
|
||||||
$! The record writer routine
|
$! The record writer routine
|
||||||
$ write_nonvax_transfer_entry:
|
$ write_axp_transfer_entry:
|
||||||
$ if libentry .eqs. ".dummy" then return
|
$ if libentry .eqs. ".dummy" then return
|
||||||
$ if info_kind .eqs. "VARIABLE"
|
$ if info_kind .eqs. "VARIABLE"
|
||||||
$ then
|
$ then
|
||||||
@@ -154,7 +144,7 @@ $ libfirstentry := false
|
|||||||
$ textcount = textcount + textcount_this
|
$ textcount = textcount + textcount_this
|
||||||
$ return
|
$ return
|
||||||
$
|
$
|
||||||
$! ----- Subroutines for VAX
|
$! ----- Subroutines for AXP
|
||||||
$! -----
|
$! -----
|
||||||
$! The creator routine
|
$! The creator routine
|
||||||
$ create_vax_shr:
|
$ create_vax_shr:
|
||||||
@@ -274,15 +264,8 @@ $ truesum = truesum + 1
|
|||||||
$ if plat_entry .eqs. "!EXPORT_VAR_AS_FUNCTION" then -
|
$ if plat_entry .eqs. "!EXPORT_VAR_AS_FUNCTION" then -
|
||||||
$ falsesum = falsesum + 1
|
$ falsesum = falsesum + 1
|
||||||
$ endif
|
$ endif
|
||||||
$!
|
$ if plat_entry .eqs. "VMS" then truesum = truesum + 1
|
||||||
$ if ((plat_entry .eqs. "VMS") .or. -
|
$ if plat_entry .eqs. "!VMS" then falsesum = falsesum + 1
|
||||||
(arch_vax .and. (plat_entry .eqs. "VMSVAX"))) then -
|
|
||||||
truesum = truesum + 1
|
|
||||||
$!
|
|
||||||
$ if ((plat_entry .eqs. "!VMS") .or. -
|
|
||||||
(arch_vax .and. (plat_entry .eqs. "!VMSVAX"))) then -
|
|
||||||
falsesum = falsesum + 1
|
|
||||||
$!
|
|
||||||
$ goto loop1
|
$ goto loop1
|
||||||
$ endif
|
$ endif
|
||||||
$ endloop1:
|
$ endloop1:
|
||||||
|
@@ -8,39 +8,31 @@ $!
|
|||||||
$!
|
$!
|
||||||
$! Slightly modified by Richard Levitte <richard@levitte.org>
|
$! Slightly modified by Richard Levitte <richard@levitte.org>
|
||||||
$!
|
$!
|
||||||
$!
|
|
||||||
$! Always define OPENSSL. Others are optional (non-null P1).
|
|
||||||
$!
|
|
||||||
$ OPENSSL :== $SSLEXE:OPENSSL
|
$ OPENSSL :== $SSLEXE:OPENSSL
|
||||||
$
|
$ VERIFY :== $SSLEXE:OPENSSL VERIFY
|
||||||
$ IF (P1 .NES. "")
|
$ ASN1PARSE:== $SSLEXE:OPENSSL ASN1PARS
|
||||||
$ THEN
|
$ REQ :== $SSLEXE:OPENSSL REQ
|
||||||
$ VERIFY :== $SSLEXE:OPENSSL VERIFY
|
$ DGST :== $SSLEXE:OPENSSL DGST
|
||||||
$ ASN1PARSE:== $SSLEXE:OPENSSL ASN1PARS
|
$ DH :== $SSLEXE:OPENSSL DH
|
||||||
$! REQ could conflict with REQUEST.
|
$ ENC :== $SSLEXE:OPENSSL ENC
|
||||||
$ OREQ :== $SSLEXE:OPENSSL REQ
|
$ GENDH :== $SSLEXE:OPENSSL GENDH
|
||||||
$ DGST :== $SSLEXE:OPENSSL DGST
|
$ ERRSTR :== $SSLEXE:OPENSSL ERRSTR
|
||||||
$ DH :== $SSLEXE:OPENSSL DH
|
$ CA :== $SSLEXE:OPENSSL CA
|
||||||
$ ENC :== $SSLEXE:OPENSSL ENC
|
$ CRL :== $SSLEXE:OPENSSL CRL
|
||||||
$ GENDH :== $SSLEXE:OPENSSL GENDH
|
$ RSA :== $SSLEXE:OPENSSL RSA
|
||||||
$ ERRSTR :== $SSLEXE:OPENSSL ERRSTR
|
$ DSA :== $SSLEXE:OPENSSL DSA
|
||||||
$ CA :== $SSLEXE:OPENSSL CA
|
$ DSAPARAM :== $SSLEXE:OPENSSL DSAPARAM
|
||||||
$ CRL :== $SSLEXE:OPENSSL CRL
|
$ X509 :== $SSLEXE:OPENSSL X509
|
||||||
$ RSA :== $SSLEXE:OPENSSL RSA
|
$ GENRSA :== $SSLEXE:OPENSSL GENRSA
|
||||||
$ DSA :== $SSLEXE:OPENSSL DSA
|
$ GENDSA :== $SSLEXE:OPENSSL GENDSA
|
||||||
$ DSAPARAM :== $SSLEXE:OPENSSL DSAPARAM
|
$ S_SERVER :== $SSLEXE:OPENSSL S_SERVER
|
||||||
$ X509 :== $SSLEXE:OPENSSL X509
|
$ S_CLIENT :== $SSLEXE:OPENSSL S_CLIENT
|
||||||
$ GENRSA :== $SSLEXE:OPENSSL GENRSA
|
$ SPEED :== $SSLEXE:OPENSSL SPEED
|
||||||
$ GENDSA :== $SSLEXE:OPENSSL GENDSA
|
$ S_TIME :== $SSLEXE:OPENSSL S_TIME
|
||||||
$ S_SERVER :== $SSLEXE:OPENSSL S_SERVER
|
$ VERSION :== $SSLEXE:OPENSSL VERSION
|
||||||
$ S_CLIENT :== $SSLEXE:OPENSSL S_CLIENT
|
$ PKCS7 :== $SSLEXE:OPENSSL PKCS7
|
||||||
$ SPEED :== $SSLEXE:OPENSSL SPEED
|
$ CRL2PKCS7:== $SSLEXE:OPENSSL CRL2P7
|
||||||
$ S_TIME :== $SSLEXE:OPENSSL S_TIME
|
$ SESS_ID :== $SSLEXE:OPENSSL SESS_ID
|
||||||
$ VERSION :== $SSLEXE:OPENSSL VERSION
|
$ CIPHERS :== $SSLEXE:OPENSSL CIPHERS
|
||||||
$ PKCS7 :== $SSLEXE:OPENSSL PKCS7
|
$ NSEQ :== $SSLEXE:OPENSSL NSEQ
|
||||||
$ CRL2PKCS7:== $SSLEXE:OPENSSL CRL2P7
|
$ PKCS12 :== $SSLEXE:OPENSSL PKCS12
|
||||||
$ SESS_ID :== $SSLEXE:OPENSSL SESS_ID
|
|
||||||
$ CIPHERS :== $SSLEXE:OPENSSL CIPHERS
|
|
||||||
$ NSEQ :== $SSLEXE:OPENSSL NSEQ
|
|
||||||
$ PKCS12 :== $SSLEXE:OPENSSL PKCS12
|
|
||||||
$ ENDIF
|
|
||||||
|
@@ -114,8 +114,8 @@ $!
|
|||||||
$ IF F$SEARCH(CATOP+".private"+CAKEY) .EQS. ""
|
$ IF F$SEARCH(CATOP+".private"+CAKEY) .EQS. ""
|
||||||
$ THEN
|
$ THEN
|
||||||
$ READ '__INPUT' FILE -
|
$ READ '__INPUT' FILE -
|
||||||
/PROMPT="CA certificate filename (or enter to create): "
|
/PROMT="CA certificate filename (or enter to create)"
|
||||||
$ IF (FILE .NES. "") .AND. (F$SEARCH(FILE) .NES. "")
|
$ IF F$SEARCH(FILE) .NES. ""
|
||||||
$ THEN
|
$ THEN
|
||||||
$ COPY 'FILE' 'CATOP'.private'CAKEY'
|
$ COPY 'FILE' 'CATOP'.private'CAKEY'
|
||||||
$ RET=$STATUS
|
$ RET=$STATUS
|
||||||
|
121
apps/CA.sh
121
apps/CA.sh
@@ -5,10 +5,10 @@
|
|||||||
# things easier between now and when Eric is convinced to fix it :-)
|
# things easier between now and when Eric is convinced to fix it :-)
|
||||||
#
|
#
|
||||||
# CA -newca ... will setup the right stuff
|
# CA -newca ... will setup the right stuff
|
||||||
# CA -newreq ... will generate a certificate request
|
# CA -newreq ... will generate a certificate request
|
||||||
# CA -sign ... will sign the generated request and output
|
# CA -sign ... will sign the generated request and output
|
||||||
#
|
#
|
||||||
# At the end of that grab newreq.pem and newcert.pem (one has the key
|
# 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
|
# 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.
|
# you want/need ... I'll make even this a little cleaner later.
|
||||||
#
|
#
|
||||||
@@ -16,8 +16,8 @@
|
|||||||
# 12-Jan-96 tjh Added more things ... including CA -signcert which
|
# 12-Jan-96 tjh Added more things ... including CA -signcert which
|
||||||
# converts a certificate to a request and then signs it.
|
# converts a certificate to a request and then signs it.
|
||||||
# 10-Jan-96 eay Fixed a few more bugs and added the SSLEAY_CONFIG
|
# 10-Jan-96 eay Fixed a few more bugs and added the SSLEAY_CONFIG
|
||||||
# environment variable so this can be driven from
|
# environment variable so this can be driven from
|
||||||
# a script.
|
# a script.
|
||||||
# 25-Jul-96 eay Cleaned up filenames some more.
|
# 25-Jul-96 eay Cleaned up filenames some more.
|
||||||
# 11-Jun-96 eay Fixed a few filename missmatches.
|
# 11-Jun-96 eay Fixed a few filename missmatches.
|
||||||
# 03-May-96 eay Modified to use 'ssleay cmd' instead of 'cmd'.
|
# 03-May-96 eay Modified to use 'ssleay cmd' instead of 'cmd'.
|
||||||
@@ -29,87 +29,52 @@
|
|||||||
|
|
||||||
# default openssl.cnf file has setup as per the following
|
# default openssl.cnf file has setup as per the following
|
||||||
# demoCA ... where everything is stored
|
# demoCA ... where everything is stored
|
||||||
cp_pem() {
|
|
||||||
infile=$1
|
|
||||||
outfile=$2
|
|
||||||
bound=$3
|
|
||||||
flag=0
|
|
||||||
exec <$infile;
|
|
||||||
while read line; do
|
|
||||||
if [ $flag -eq 1 ]; then
|
|
||||||
echo $line|grep "^-----END.*$bound" 2>/dev/null 1>/dev/null
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
echo $line >>$outfile
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo $line >>$outfile
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo $line|grep "^-----BEGIN.*$bound" 2>/dev/null 1>/dev/null
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo $line >$outfile
|
|
||||||
flag=1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
echo "usage: $0 -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -z "$OPENSSL" ]; then OPENSSL=openssl; fi
|
if [ -z "$OPENSSL" ]; then OPENSSL=openssl; fi
|
||||||
|
|
||||||
if [ -z "$DAYS" ] ; then DAYS="-days 365" ; fi # 1 year
|
DAYS="-days 365" # 1 year
|
||||||
CADAYS="-days 1095" # 3 years
|
CADAYS="-days 1095" # 3 years
|
||||||
REQ="$OPENSSL req $SSLEAY_CONFIG"
|
REQ="$OPENSSL req $SSLEAY_CONFIG"
|
||||||
CA="$OPENSSL ca $SSLEAY_CONFIG"
|
CA="$OPENSSL ca $SSLEAY_CONFIG"
|
||||||
VERIFY="$OPENSSL verify"
|
VERIFY="$OPENSSL verify"
|
||||||
X509="$OPENSSL x509"
|
X509="$OPENSSL x509"
|
||||||
PKCS12="openssl pkcs12"
|
|
||||||
|
|
||||||
if [ -z "$CATOP" ] ; then CATOP=./demoCA ; fi
|
CATOP=./demoCA
|
||||||
CAKEY=./cakey.pem
|
CAKEY=./cakey.pem
|
||||||
CAREQ=./careq.pem
|
CAREQ=./careq.pem
|
||||||
CACERT=./cacert.pem
|
CACERT=./cacert.pem
|
||||||
|
|
||||||
RET=0
|
for i
|
||||||
|
do
|
||||||
while [ "$1" != "" ] ; do
|
case $i in
|
||||||
case $1 in
|
|
||||||
-\?|-h|-help)
|
-\?|-h|-help)
|
||||||
usage
|
echo "usage: CA -newcert|-newreq|-newca|-sign|-verify" >&2
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
-newcert)
|
-newcert)
|
||||||
# create a certificate
|
# create a certificate
|
||||||
$REQ -new -x509 -keyout newkey.pem -out newcert.pem $DAYS
|
$REQ -new -x509 -keyout newkey.pem -out newcert.pem $DAYS
|
||||||
RET=$?
|
RET=$?
|
||||||
echo "Certificate is in newcert.pem, private key is in newkey.pem"
|
echo "Certificate is in newcert.pem, private key is in newkey.pem"
|
||||||
;;
|
;;
|
||||||
-newreq)
|
-newreq)
|
||||||
# create a certificate request
|
# create a certificate request
|
||||||
$REQ -new -keyout newkey.pem -out newreq.pem $DAYS
|
$REQ -new -keyout newkey.pem -out newreq.pem $DAYS
|
||||||
RET=$?
|
RET=$?
|
||||||
echo "Request is in newreq.pem, private key is in newkey.pem"
|
echo "Request is in newreq.pem, private key is in newkey.pem"
|
||||||
;;
|
;;
|
||||||
-newreq-nodes)
|
-newca)
|
||||||
# create a certificate request
|
|
||||||
$REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS
|
|
||||||
RET=$?
|
|
||||||
echo "Request (and private key) is in newreq.pem"
|
|
||||||
;;
|
|
||||||
-newca)
|
|
||||||
# if explicitly asked for or it doesn't exist then setup the directory
|
# if explicitly asked for or it doesn't exist then setup the directory
|
||||||
# structure that Eric likes to manage things
|
# structure that Eric likes to manage things
|
||||||
NEW="1"
|
NEW="1"
|
||||||
if [ "$NEW" -o ! -f ${CATOP}/serial ]; then
|
if [ "$NEW" -o ! -f ${CATOP}/serial ]; then
|
||||||
# create the directory hierarchy
|
# create the directory hierarchy
|
||||||
mkdir -p ${CATOP}
|
mkdir ${CATOP}
|
||||||
mkdir -p ${CATOP}/certs
|
mkdir ${CATOP}/certs
|
||||||
mkdir -p ${CATOP}/crl
|
mkdir ${CATOP}/crl
|
||||||
mkdir -p ${CATOP}/newcerts
|
mkdir ${CATOP}/newcerts
|
||||||
mkdir -p ${CATOP}/private
|
mkdir ${CATOP}/private
|
||||||
|
echo "00" > ${CATOP}/serial
|
||||||
touch ${CATOP}/index.txt
|
touch ${CATOP}/index.txt
|
||||||
fi
|
fi
|
||||||
if [ ! -f ${CATOP}/private/$CAKEY ]; then
|
if [ ! -f ${CATOP}/private/$CAKEY ]; then
|
||||||
@@ -118,60 +83,37 @@ case $1 in
|
|||||||
|
|
||||||
# ask user for existing CA certificate
|
# ask user for existing CA certificate
|
||||||
if [ "$FILE" ]; then
|
if [ "$FILE" ]; then
|
||||||
cp_pem $FILE ${CATOP}/private/$CAKEY PRIVATE
|
cp $FILE ${CATOP}/private/$CAKEY
|
||||||
cp_pem $FILE ${CATOP}/$CACERT CERTIFICATE
|
|
||||||
RET=$?
|
RET=$?
|
||||||
if [ ! -f "${CATOP}/serial" ]; then
|
|
||||||
$X509 -in ${CATOP}/$CACERT -noout -next_serial \
|
|
||||||
-out ${CATOP}/serial
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
echo "Making CA certificate ..."
|
echo "Making CA certificate ..."
|
||||||
$REQ -new -keyout ${CATOP}/private/$CAKEY \
|
$REQ -new -keyout ${CATOP}/private/$CAKEY \
|
||||||
-out ${CATOP}/$CAREQ
|
-out ${CATOP}/$CAREQ
|
||||||
$CA -create_serial -out ${CATOP}/$CACERT $CADAYS -batch \
|
$CA -out ${CATOP}/$CACERT $CADAYS -batch \
|
||||||
-keyfile ${CATOP}/private/$CAKEY -selfsign \
|
-keyfile ${CATOP}/private/$CAKEY -selfsign \
|
||||||
-extensions v3_ca \
|
-infiles ${CATOP}/$CAREQ
|
||||||
-infiles ${CATOP}/$CAREQ
|
|
||||||
RET=$?
|
RET=$?
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
-xsign)
|
-xsign)
|
||||||
$CA -policy policy_anything -infiles newreq.pem
|
$CA -policy policy_anything -infiles newreq.pem
|
||||||
RET=$?
|
RET=$?
|
||||||
;;
|
;;
|
||||||
-pkcs12)
|
-sign|-signreq)
|
||||||
if [ -z "$2" ] ; then
|
|
||||||
CNAME="My Certificate"
|
|
||||||
else
|
|
||||||
CNAME="$2"
|
|
||||||
fi
|
|
||||||
$PKCS12 -in newcert.pem -inkey newreq.pem -certfile ${CATOP}/$CACERT \
|
|
||||||
-out newcert.p12 -export -name "$CNAME"
|
|
||||||
RET=$?
|
|
||||||
exit $RET
|
|
||||||
;;
|
|
||||||
-sign|-signreq)
|
|
||||||
$CA -policy policy_anything -out newcert.pem -infiles newreq.pem
|
$CA -policy policy_anything -out newcert.pem -infiles newreq.pem
|
||||||
RET=$?
|
RET=$?
|
||||||
cat newcert.pem
|
cat newcert.pem
|
||||||
echo "Signed certificate is in newcert.pem"
|
echo "Signed certificate is in newcert.pem"
|
||||||
;;
|
;;
|
||||||
-signCA)
|
-signcert)
|
||||||
$CA -policy policy_anything -out newcert.pem -extensions v3_ca -infiles newreq.pem
|
|
||||||
RET=$?
|
|
||||||
echo "Signed CA certificate is in newcert.pem"
|
|
||||||
;;
|
|
||||||
-signcert)
|
|
||||||
echo "Cert passphrase will be requested twice - bug?"
|
echo "Cert passphrase will be requested twice - bug?"
|
||||||
$X509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem
|
$X509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem
|
||||||
$CA -policy policy_anything -out newcert.pem -infiles tmp.pem
|
$CA -policy policy_anything -out newcert.pem -infiles tmp.pem
|
||||||
RET=$?
|
|
||||||
cat newcert.pem
|
cat newcert.pem
|
||||||
echo "Signed certificate is in newcert.pem"
|
echo "Signed certificate is in newcert.pem"
|
||||||
;;
|
;;
|
||||||
-verify)
|
-verify)
|
||||||
shift
|
shift
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
$VERIFY -CAfile $CATOP/$CACERT newcert.pem
|
$VERIFY -CAfile $CATOP/$CACERT newcert.pem
|
||||||
@@ -185,14 +127,13 @@ case $1 in
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
exit $RET
|
exit 0
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown arg $i" >&2
|
echo "Unknown arg $i";
|
||||||
usage
|
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
shift
|
|
||||||
done
|
done
|
||||||
exit $RET
|
exit $RET
|
||||||
|
|
||||||
|
682
apps/Makefile
682
apps/Makefile
File diff suppressed because it is too large
Load Diff
255
apps/apps.c
255
apps/apps.c
@@ -115,7 +115,6 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <assert.h>
|
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
@@ -130,9 +129,6 @@
|
|||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
#endif
|
#endif
|
||||||
#include <openssl/bn.h>
|
#include <openssl/bn.h>
|
||||||
#ifndef OPENSSL_NO_JPAKE
|
|
||||||
#include <openssl/jpake.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define NON_MAIN
|
#define NON_MAIN
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
@@ -351,12 +347,13 @@ void program_name(char *in, char *out, int size)
|
|||||||
|
|
||||||
int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
|
int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
|
||||||
{
|
{
|
||||||
int num,i;
|
int num,len,i;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
*argc=0;
|
*argc=0;
|
||||||
*argv=NULL;
|
*argv=NULL;
|
||||||
|
|
||||||
|
len=strlen(buf);
|
||||||
i=0;
|
i=0;
|
||||||
if (arg->count == 0)
|
if (arg->count == 0)
|
||||||
{
|
{
|
||||||
@@ -865,17 +862,10 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
|
|||||||
if (format == FORMAT_ENGINE)
|
if (format == FORMAT_ENGINE)
|
||||||
{
|
{
|
||||||
if (!e)
|
if (!e)
|
||||||
BIO_printf(err,"no engine specified\n");
|
BIO_printf(bio_err,"no engine specified\n");
|
||||||
else
|
else
|
||||||
{
|
|
||||||
pkey = ENGINE_load_private_key(e, file,
|
pkey = ENGINE_load_private_key(e, file,
|
||||||
ui_method, &cb_data);
|
ui_method, &cb_data);
|
||||||
if (!pkey)
|
|
||||||
{
|
|
||||||
BIO_printf(err,"cannot load %s from engine\n",key_descrip);
|
|
||||||
ERR_print_errors(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -925,11 +915,8 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
|
|||||||
}
|
}
|
||||||
end:
|
end:
|
||||||
if (key != NULL) BIO_free(key);
|
if (key != NULL) BIO_free(key);
|
||||||
if (pkey == NULL)
|
if (pkey == NULL)
|
||||||
{
|
|
||||||
BIO_printf(err,"unable to load %s\n", key_descrip);
|
BIO_printf(err,"unable to load %s\n", key_descrip);
|
||||||
ERR_print_errors(err);
|
|
||||||
}
|
|
||||||
return(pkey);
|
return(pkey);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2023,7 +2010,7 @@ int parse_yesno(const char *str, int def)
|
|||||||
case 'y': /* yes */
|
case 'y': /* yes */
|
||||||
case 'Y': /* YES */
|
case 'Y': /* YES */
|
||||||
case '1': /* 1 */
|
case '1': /* 1 */
|
||||||
ret = 1;
|
ret = 0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ret = def;
|
ret = def;
|
||||||
@@ -2270,8 +2257,6 @@ int args_verify(char ***pargs, int *pargc,
|
|||||||
flags |= X509_V_FLAG_X509_STRICT;
|
flags |= X509_V_FLAG_X509_STRICT;
|
||||||
else if (!strcmp(arg, "-policy_print"))
|
else if (!strcmp(arg, "-policy_print"))
|
||||||
flags |= X509_V_FLAG_NOTIFY_POLICY;
|
flags |= X509_V_FLAG_NOTIFY_POLICY;
|
||||||
else if (!strcmp(arg, "-check_ss_sig"))
|
|
||||||
flags |= X509_V_FLAG_CHECK_SS_SIGNATURE;
|
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@@ -2348,233 +2333,3 @@ void policies_print(BIO *out, X509_STORE_CTX *ctx)
|
|||||||
if (free_out)
|
if (free_out)
|
||||||
BIO_free(out);
|
BIO_free(out);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_JPAKE
|
|
||||||
|
|
||||||
static JPAKE_CTX *jpake_init(const char *us, const char *them,
|
|
||||||
const char *secret)
|
|
||||||
{
|
|
||||||
BIGNUM *p = NULL;
|
|
||||||
BIGNUM *g = NULL;
|
|
||||||
BIGNUM *q = NULL;
|
|
||||||
BIGNUM *bnsecret = BN_new();
|
|
||||||
JPAKE_CTX *ctx;
|
|
||||||
|
|
||||||
/* Use a safe prime for p (that we found earlier) */
|
|
||||||
BN_hex2bn(&p, "F9E5B365665EA7A05A9C534502780FEE6F1AB5BD4F49947FD036DBD7E905269AF46EF28B0FC07487EE4F5D20FB3C0AF8E700F3A2FA3414970CBED44FEDFF80CE78D800F184BB82435D137AADA2C6C16523247930A63B85661D1FC817A51ACD96168E95898A1F83A79FFB529368AA7833ABD1B0C3AEDDB14D2E1A2F71D99F763F");
|
|
||||||
g = BN_new();
|
|
||||||
BN_set_word(g, 2);
|
|
||||||
q = BN_new();
|
|
||||||
BN_rshift1(q, p);
|
|
||||||
|
|
||||||
BN_bin2bn((const unsigned char *)secret, strlen(secret), bnsecret);
|
|
||||||
|
|
||||||
ctx = JPAKE_CTX_new(us, them, p, g, q, bnsecret);
|
|
||||||
BN_free(bnsecret);
|
|
||||||
BN_free(q);
|
|
||||||
BN_free(g);
|
|
||||||
BN_free(p);
|
|
||||||
|
|
||||||
return ctx;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jpake_send_part(BIO *conn, const JPAKE_STEP_PART *p)
|
|
||||||
{
|
|
||||||
BN_print(conn, p->gx);
|
|
||||||
BIO_puts(conn, "\n");
|
|
||||||
BN_print(conn, p->zkpx.gr);
|
|
||||||
BIO_puts(conn, "\n");
|
|
||||||
BN_print(conn, p->zkpx.b);
|
|
||||||
BIO_puts(conn, "\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jpake_send_step1(BIO *bconn, JPAKE_CTX *ctx)
|
|
||||||
{
|
|
||||||
JPAKE_STEP1 s1;
|
|
||||||
|
|
||||||
JPAKE_STEP1_init(&s1);
|
|
||||||
JPAKE_STEP1_generate(&s1, ctx);
|
|
||||||
jpake_send_part(bconn, &s1.p1);
|
|
||||||
jpake_send_part(bconn, &s1.p2);
|
|
||||||
(void)BIO_flush(bconn);
|
|
||||||
JPAKE_STEP1_release(&s1);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jpake_send_step2(BIO *bconn, JPAKE_CTX *ctx)
|
|
||||||
{
|
|
||||||
JPAKE_STEP2 s2;
|
|
||||||
|
|
||||||
JPAKE_STEP2_init(&s2);
|
|
||||||
JPAKE_STEP2_generate(&s2, ctx);
|
|
||||||
jpake_send_part(bconn, &s2);
|
|
||||||
(void)BIO_flush(bconn);
|
|
||||||
JPAKE_STEP2_release(&s2);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jpake_send_step3a(BIO *bconn, JPAKE_CTX *ctx)
|
|
||||||
{
|
|
||||||
JPAKE_STEP3A s3a;
|
|
||||||
|
|
||||||
JPAKE_STEP3A_init(&s3a);
|
|
||||||
JPAKE_STEP3A_generate(&s3a, ctx);
|
|
||||||
BIO_write(bconn, s3a.hhk, sizeof s3a.hhk);
|
|
||||||
(void)BIO_flush(bconn);
|
|
||||||
JPAKE_STEP3A_release(&s3a);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jpake_send_step3b(BIO *bconn, JPAKE_CTX *ctx)
|
|
||||||
{
|
|
||||||
JPAKE_STEP3B s3b;
|
|
||||||
|
|
||||||
JPAKE_STEP3B_init(&s3b);
|
|
||||||
JPAKE_STEP3B_generate(&s3b, ctx);
|
|
||||||
BIO_write(bconn, s3b.hk, sizeof s3b.hk);
|
|
||||||
(void)BIO_flush(bconn);
|
|
||||||
JPAKE_STEP3B_release(&s3b);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void readbn(BIGNUM **bn, BIO *bconn)
|
|
||||||
{
|
|
||||||
char buf[10240];
|
|
||||||
int l;
|
|
||||||
|
|
||||||
l = BIO_gets(bconn, buf, sizeof buf);
|
|
||||||
assert(l > 0);
|
|
||||||
assert(buf[l-1] == '\n');
|
|
||||||
buf[l-1] = '\0';
|
|
||||||
BN_hex2bn(bn, buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jpake_receive_part(JPAKE_STEP_PART *p, BIO *bconn)
|
|
||||||
{
|
|
||||||
readbn(&p->gx, bconn);
|
|
||||||
readbn(&p->zkpx.gr, bconn);
|
|
||||||
readbn(&p->zkpx.b, bconn);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jpake_receive_step1(JPAKE_CTX *ctx, BIO *bconn)
|
|
||||||
{
|
|
||||||
JPAKE_STEP1 s1;
|
|
||||||
|
|
||||||
JPAKE_STEP1_init(&s1);
|
|
||||||
jpake_receive_part(&s1.p1, bconn);
|
|
||||||
jpake_receive_part(&s1.p2, bconn);
|
|
||||||
if(!JPAKE_STEP1_process(ctx, &s1))
|
|
||||||
{
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
JPAKE_STEP1_release(&s1);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jpake_receive_step2(JPAKE_CTX *ctx, BIO *bconn)
|
|
||||||
{
|
|
||||||
JPAKE_STEP2 s2;
|
|
||||||
|
|
||||||
JPAKE_STEP2_init(&s2);
|
|
||||||
jpake_receive_part(&s2, bconn);
|
|
||||||
if(!JPAKE_STEP2_process(ctx, &s2))
|
|
||||||
{
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
JPAKE_STEP2_release(&s2);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jpake_receive_step3a(JPAKE_CTX *ctx, BIO *bconn)
|
|
||||||
{
|
|
||||||
JPAKE_STEP3A s3a;
|
|
||||||
int l;
|
|
||||||
|
|
||||||
JPAKE_STEP3A_init(&s3a);
|
|
||||||
l = BIO_read(bconn, s3a.hhk, sizeof s3a.hhk);
|
|
||||||
assert(l == sizeof s3a.hhk);
|
|
||||||
if(!JPAKE_STEP3A_process(ctx, &s3a))
|
|
||||||
{
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
JPAKE_STEP3A_release(&s3a);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jpake_receive_step3b(JPAKE_CTX *ctx, BIO *bconn)
|
|
||||||
{
|
|
||||||
JPAKE_STEP3B s3b;
|
|
||||||
int l;
|
|
||||||
|
|
||||||
JPAKE_STEP3B_init(&s3b);
|
|
||||||
l = BIO_read(bconn, s3b.hk, sizeof s3b.hk);
|
|
||||||
assert(l == sizeof s3b.hk);
|
|
||||||
if(!JPAKE_STEP3B_process(ctx, &s3b))
|
|
||||||
{
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
JPAKE_STEP3B_release(&s3b);
|
|
||||||
}
|
|
||||||
|
|
||||||
void jpake_client_auth(BIO *out, BIO *conn, const char *secret)
|
|
||||||
{
|
|
||||||
JPAKE_CTX *ctx;
|
|
||||||
BIO *bconn;
|
|
||||||
|
|
||||||
BIO_puts(out, "Authenticating with JPAKE\n");
|
|
||||||
|
|
||||||
ctx = jpake_init("client", "server", secret);
|
|
||||||
|
|
||||||
bconn = BIO_new(BIO_f_buffer());
|
|
||||||
BIO_push(bconn, conn);
|
|
||||||
|
|
||||||
jpake_send_step1(bconn, ctx);
|
|
||||||
jpake_receive_step1(ctx, bconn);
|
|
||||||
jpake_send_step2(bconn, ctx);
|
|
||||||
jpake_receive_step2(ctx, bconn);
|
|
||||||
jpake_send_step3a(bconn, ctx);
|
|
||||||
jpake_receive_step3b(ctx, bconn);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The problem is that you must use the derived key in the
|
|
||||||
* session key or you are subject to man-in-the-middle
|
|
||||||
* attacks.
|
|
||||||
*/
|
|
||||||
BIO_puts(out, "JPAKE authentication succeeded (N.B. This version can"
|
|
||||||
" be MitMed. See the version in HEAD for how to do it"
|
|
||||||
" properly)\n");
|
|
||||||
|
|
||||||
BIO_pop(bconn);
|
|
||||||
BIO_free(bconn);
|
|
||||||
}
|
|
||||||
|
|
||||||
void jpake_server_auth(BIO *out, BIO *conn, const char *secret)
|
|
||||||
{
|
|
||||||
JPAKE_CTX *ctx;
|
|
||||||
BIO *bconn;
|
|
||||||
|
|
||||||
BIO_puts(out, "Authenticating with JPAKE\n");
|
|
||||||
|
|
||||||
ctx = jpake_init("server", "client", secret);
|
|
||||||
|
|
||||||
bconn = BIO_new(BIO_f_buffer());
|
|
||||||
BIO_push(bconn, conn);
|
|
||||||
|
|
||||||
jpake_receive_step1(ctx, bconn);
|
|
||||||
jpake_send_step1(bconn, ctx);
|
|
||||||
jpake_receive_step2(ctx, bconn);
|
|
||||||
jpake_send_step2(bconn, ctx);
|
|
||||||
jpake_receive_step3a(ctx, bconn);
|
|
||||||
jpake_send_step3b(bconn, ctx);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The problem is that you must use the derived key in the
|
|
||||||
* session key or you are subject to man-in-the-middle
|
|
||||||
* attacks.
|
|
||||||
*/
|
|
||||||
BIO_puts(out, "JPAKE authentication succeeded (N.B. This version can"
|
|
||||||
" be MitMed. See the version in HEAD for how to do it"
|
|
||||||
" properly)\n");
|
|
||||||
|
|
||||||
BIO_pop(bconn);
|
|
||||||
BIO_free(bconn);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
19
apps/apps.h
19
apps/apps.h
@@ -122,9 +122,6 @@
|
|||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_OCSP
|
|
||||||
#include <openssl/ocsp.h>
|
|
||||||
#endif
|
|
||||||
#include <openssl/ossl_typ.h>
|
#include <openssl/ossl_typ.h>
|
||||||
|
|
||||||
int app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn);
|
int app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn);
|
||||||
@@ -234,12 +231,6 @@ extern int in_FIPS_mode;
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef OPENSSL_SYSNAME_WIN32
|
|
||||||
# define openssl_fdset(a,b) FD_SET((unsigned int)a, b)
|
|
||||||
#else
|
|
||||||
# define openssl_fdset(a,b) FD_SET(a, b)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct args_st
|
typedef struct args_st
|
||||||
{
|
{
|
||||||
char **data;
|
char **data;
|
||||||
@@ -287,12 +278,6 @@ X509_STORE *setup_verify(BIO *bp, char *CAfile, char *CApath);
|
|||||||
ENGINE *setup_engine(BIO *err, const char *engine, int debug);
|
ENGINE *setup_engine(BIO *err, const char *engine, int debug);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_OCSP
|
|
||||||
OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
|
|
||||||
char *host, char *path, char *port, int use_ssl,
|
|
||||||
int req_timeout);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int load_config(BIO *err, CONF *cnf);
|
int load_config(BIO *err, CONF *cnf);
|
||||||
char *make_config_name(void);
|
char *make_config_name(void);
|
||||||
|
|
||||||
@@ -338,10 +323,6 @@ X509_NAME *parse_name(char *str, long chtype, int multirdn);
|
|||||||
int args_verify(char ***pargs, int *pargc,
|
int args_verify(char ***pargs, int *pargc,
|
||||||
int *badarg, BIO *err, X509_VERIFY_PARAM **pm);
|
int *badarg, BIO *err, X509_VERIFY_PARAM **pm);
|
||||||
void policies_print(BIO *out, X509_STORE_CTX *ctx);
|
void policies_print(BIO *out, X509_STORE_CTX *ctx);
|
||||||
#ifndef OPENSSL_NO_JPAKE
|
|
||||||
void jpake_client_auth(BIO *out, BIO *conn, const char *secret);
|
|
||||||
void jpake_server_auth(BIO *out, BIO *conn, const char *secret);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define FORMAT_UNDEF 0
|
#define FORMAT_UNDEF 0
|
||||||
#define FORMAT_ASN1 1
|
#define FORMAT_ASN1 1
|
||||||
|
@@ -56,7 +56,7 @@
|
|||||||
* [including the GNU Public Licence.]
|
* [including the GNU Public Licence.]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* A nice addition from Dr Stephen Henson <steve@openssl.org> to
|
/* A nice addition from Dr Stephen Henson <shenson@bigfoot.com> to
|
||||||
* add the -strparse option which parses nested binary structures
|
* add the -strparse option which parses nested binary structures
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -408,7 +408,6 @@ static int do_generate(BIO *bio, char *genstr, char *genconf, BUF_MEM *buf)
|
|||||||
|
|
||||||
atyp = ASN1_generate_nconf(genstr, cnf);
|
atyp = ASN1_generate_nconf(genstr, cnf);
|
||||||
NCONF_free(cnf);
|
NCONF_free(cnf);
|
||||||
cnf = NULL;
|
|
||||||
|
|
||||||
if (!atyp)
|
if (!atyp)
|
||||||
return -1;
|
return -1;
|
||||||
|
80
apps/ca.c
80
apps/ca.c
@@ -83,7 +83,7 @@
|
|||||||
# else
|
# else
|
||||||
# include <unixlib.h>
|
# include <unixlib.h>
|
||||||
# endif
|
# endif
|
||||||
# elif !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_NETWARE) && !defined(__TANDEM)
|
# elif !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_NETWARE)
|
||||||
# include <sys/file.h>
|
# include <sys/file.h>
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
@@ -216,6 +216,7 @@ static int certify_spkac(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
|
|||||||
char *startdate, char *enddate, long days, char *ext_sect,
|
char *startdate, char *enddate, long days, char *ext_sect,
|
||||||
CONF *conf, int verbose, unsigned long certopt,
|
CONF *conf, int verbose, unsigned long certopt,
|
||||||
unsigned long nameopt, int default_op, int ext_copy);
|
unsigned long nameopt, int default_op, int ext_copy);
|
||||||
|
static int fix_data(int nid, int *type);
|
||||||
static void write_new_certificate(BIO *bp, X509 *x, int output_der, int notext);
|
static void write_new_certificate(BIO *bp, X509 *x, int output_der, int notext);
|
||||||
static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
|
static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
|
||||||
STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial,char *subj,unsigned long chtype, int multirdn,
|
STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial,char *subj,unsigned long chtype, int multirdn,
|
||||||
@@ -226,7 +227,7 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
|
|||||||
static int do_revoke(X509 *x509, CA_DB *db, int ext, char *extval);
|
static int do_revoke(X509 *x509, CA_DB *db, int ext, char *extval);
|
||||||
static int get_certificate_status(const char *ser_status, CA_DB *db);
|
static int get_certificate_status(const char *ser_status, CA_DB *db);
|
||||||
static int do_updatedb(CA_DB *db);
|
static int do_updatedb(CA_DB *db);
|
||||||
static int check_time_format(const char *str);
|
static int check_time_format(char *str);
|
||||||
char *make_revocation_str(int rev_type, char *rev_arg);
|
char *make_revocation_str(int rev_type, char *rev_arg);
|
||||||
int make_revoked(X509_REVOKED *rev, const char *str);
|
int make_revoked(X509_REVOKED *rev, const char *str);
|
||||||
int old_entry_print(BIO *bp, ASN1_OBJECT *obj, ASN1_STRING *str);
|
int old_entry_print(BIO *bp, ASN1_OBJECT *obj, ASN1_STRING *str);
|
||||||
@@ -857,8 +858,8 @@ bad:
|
|||||||
perror(outdir);
|
perror(outdir);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
#ifdef S_ISDIR
|
#ifdef S_IFDIR
|
||||||
if (!S_ISDIR(sb.st_mode))
|
if (!(sb.st_mode & S_IFDIR))
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"%s need to be a directory\n",outdir);
|
BIO_printf(bio_err,"%s need to be a directory\n",outdir);
|
||||||
perror(outdir);
|
perror(outdir);
|
||||||
@@ -894,7 +895,7 @@ bad:
|
|||||||
BIO_printf(bio_err," in entry %d\n", i+1);
|
BIO_printf(bio_err," in entry %d\n", i+1);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
if (!check_time_format(pp[DB_exp_date]))
|
if (!check_time_format((char *)pp[DB_exp_date]))
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"entry %d: invalid expiry date\n",i+1);
|
BIO_printf(bio_err,"entry %d: invalid expiry date\n",i+1);
|
||||||
goto err;
|
goto err;
|
||||||
@@ -1248,12 +1249,7 @@ bad:
|
|||||||
BIO_printf(bio_err,"\n%d out of %d certificate requests certified, commit? [y/n]",total_done,total);
|
BIO_printf(bio_err,"\n%d out of %d certificate requests certified, commit? [y/n]",total_done,total);
|
||||||
(void)BIO_flush(bio_err);
|
(void)BIO_flush(bio_err);
|
||||||
buf[0][0]='\0';
|
buf[0][0]='\0';
|
||||||
if (!fgets(buf[0],10,stdin))
|
fgets(buf[0],10,stdin);
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"CERTIFICATION CANCELED: I/O error\n");
|
|
||||||
ret=0;
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
if ((buf[0][0] != 'y') && (buf[0][0] != 'Y'))
|
if ((buf[0][0] != 'y') && (buf[0][0] != 'Y'))
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"CERTIFICATION CANCELED\n");
|
BIO_printf(bio_err,"CERTIFICATION CANCELED\n");
|
||||||
@@ -2095,7 +2091,7 @@ again2:
|
|||||||
}
|
}
|
||||||
|
|
||||||
BIO_printf(bio_err,"Certificate is to be certified until ");
|
BIO_printf(bio_err,"Certificate is to be certified until ");
|
||||||
ASN1_TIME_print(bio_err,X509_get_notAfter(ret));
|
ASN1_UTCTIME_print(bio_err,X509_get_notAfter(ret));
|
||||||
if (days) BIO_printf(bio_err," (%ld days)",days);
|
if (days) BIO_printf(bio_err," (%ld days)",days);
|
||||||
BIO_printf(bio_err, "\n");
|
BIO_printf(bio_err, "\n");
|
||||||
|
|
||||||
@@ -2105,12 +2101,7 @@ again2:
|
|||||||
BIO_printf(bio_err,"Sign the certificate? [y/n]:");
|
BIO_printf(bio_err,"Sign the certificate? [y/n]:");
|
||||||
(void)BIO_flush(bio_err);
|
(void)BIO_flush(bio_err);
|
||||||
buf[0]='\0';
|
buf[0]='\0';
|
||||||
if (!fgets(buf,sizeof(buf)-1,stdin))
|
fgets(buf,sizeof(buf)-1,stdin);
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"CERTIFICATE WILL NOT BE CERTIFIED: I/O error\n");
|
|
||||||
ok=0;
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
if (!((buf[0] == 'y') || (buf[0] == 'Y')))
|
if (!((buf[0] == 'y') || (buf[0] == 'Y')))
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"CERTIFICATE WILL NOT BE CERTIFIED\n");
|
BIO_printf(bio_err,"CERTIFICATE WILL NOT BE CERTIFIED\n");
|
||||||
@@ -2326,9 +2317,25 @@ static int certify_spkac(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!X509_NAME_add_entry_by_NID(n, nid, chtype,
|
/*
|
||||||
(unsigned char *)buf, -1, -1, 0))
|
if ((nid == NID_pkcs9_emailAddress) && (email_dn == 0))
|
||||||
|
continue;
|
||||||
|
*/
|
||||||
|
|
||||||
|
j=ASN1_PRINTABLE_type((unsigned char *)buf,-1);
|
||||||
|
if (fix_data(nid, &j) == 0)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"invalid characters in string %s\n",buf);
|
||||||
goto err;
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ne=X509_NAME_ENTRY_create_by_NID(&ne,nid,j,
|
||||||
|
(unsigned char *)buf,
|
||||||
|
strlen(buf))) == NULL)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
if (!X509_NAME_add_entry(n,ne,-1, 0)) goto err;
|
||||||
}
|
}
|
||||||
if (spki == NULL)
|
if (spki == NULL)
|
||||||
{
|
{
|
||||||
@@ -2371,17 +2378,29 @@ err:
|
|||||||
return(ok);
|
return(ok);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int check_time_format(const char *str)
|
static int fix_data(int nid, int *type)
|
||||||
{
|
{
|
||||||
ASN1_TIME tm;
|
if (nid == NID_pkcs9_emailAddress)
|
||||||
|
*type=V_ASN1_IA5STRING;
|
||||||
|
if ((nid == NID_commonName) && (*type == V_ASN1_IA5STRING))
|
||||||
|
*type=V_ASN1_T61STRING;
|
||||||
|
if ((nid == NID_pkcs9_challengePassword) && (*type == V_ASN1_IA5STRING))
|
||||||
|
*type=V_ASN1_T61STRING;
|
||||||
|
if ((nid == NID_pkcs9_unstructuredName) && (*type == V_ASN1_T61STRING))
|
||||||
|
return(0);
|
||||||
|
if (nid == NID_pkcs9_unstructuredName)
|
||||||
|
*type=V_ASN1_IA5STRING;
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int check_time_format(char *str)
|
||||||
|
{
|
||||||
|
ASN1_UTCTIME tm;
|
||||||
|
|
||||||
tm.data=(unsigned char *)str;
|
tm.data=(unsigned char *)str;
|
||||||
tm.length=strlen(str);
|
tm.length=strlen(str);
|
||||||
tm.type=V_ASN1_UTCTIME;
|
tm.type=V_ASN1_UTCTIME;
|
||||||
if (ASN1_TIME_check(&tm))
|
return(ASN1_UTCTIME_check(&tm));
|
||||||
return 1;
|
|
||||||
tm.type=V_ASN1_GENERALIZEDTIME;
|
|
||||||
return ASN1_TIME_check(&tm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int do_revoke(X509 *x509, CA_DB *db, int type, char *value)
|
static int do_revoke(X509 *x509, CA_DB *db, int type, char *value)
|
||||||
@@ -2863,22 +2882,13 @@ int old_entry_print(BIO *bp, ASN1_OBJECT *obj, ASN1_STRING *str)
|
|||||||
p=(char *)str->data;
|
p=(char *)str->data;
|
||||||
for (j=str->length; j>0; j--)
|
for (j=str->length; j>0; j--)
|
||||||
{
|
{
|
||||||
#ifdef CHARSET_EBCDIC
|
|
||||||
if ((*p >= 0x20) && (*p <= 0x7e))
|
|
||||||
BIO_printf(bp,"%c",os_toebcdic[*p]);
|
|
||||||
#else
|
|
||||||
if ((*p >= ' ') && (*p <= '~'))
|
if ((*p >= ' ') && (*p <= '~'))
|
||||||
BIO_printf(bp,"%c",*p);
|
BIO_printf(bp,"%c",*p);
|
||||||
#endif
|
|
||||||
else if (*p & 0x80)
|
else if (*p & 0x80)
|
||||||
BIO_printf(bp,"\\0x%02X",*p);
|
BIO_printf(bp,"\\0x%02X",*p);
|
||||||
else if ((unsigned char)*p == 0xf7)
|
else if ((unsigned char)*p == 0xf7)
|
||||||
BIO_printf(bp,"^?");
|
BIO_printf(bp,"^?");
|
||||||
#ifdef CHARSET_EBCDIC
|
|
||||||
else BIO_printf(bp,"^%c",os_toebcdic[*p+0x40]);
|
|
||||||
#else
|
|
||||||
else BIO_printf(bp,"^%c",*p+'@');
|
else BIO_printf(bp,"^%c",*p+'@');
|
||||||
#endif
|
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
BIO_printf(bp,"'\n");
|
BIO_printf(bp,"'\n");
|
||||||
|
1347
apps/cms.c
1347
apps/cms.c
File diff suppressed because it is too large
Load Diff
21
apps/crl.c
21
apps/crl.c
@@ -85,7 +85,6 @@ static const char *crl_usage[]={
|
|||||||
" -issuer - print issuer DN\n",
|
" -issuer - print issuer DN\n",
|
||||||
" -lastupdate - lastUpdate field\n",
|
" -lastupdate - lastUpdate field\n",
|
||||||
" -nextupdate - nextUpdate field\n",
|
" -nextupdate - nextUpdate field\n",
|
||||||
" -crlnumber - print CRL number\n",
|
|
||||||
" -noout - no CRL output\n",
|
" -noout - no CRL output\n",
|
||||||
" -CAfile name - verify CRL using certificates in file \"name\"\n",
|
" -CAfile name - verify CRL using certificates in file \"name\"\n",
|
||||||
" -CApath dir - verify CRL using certificates in \"dir\"\n",
|
" -CApath dir - verify CRL using certificates in \"dir\"\n",
|
||||||
@@ -108,7 +107,7 @@ int MAIN(int argc, char **argv)
|
|||||||
int informat,outformat;
|
int informat,outformat;
|
||||||
char *infile=NULL,*outfile=NULL;
|
char *infile=NULL,*outfile=NULL;
|
||||||
int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0;
|
int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0;
|
||||||
int fingerprint = 0, crlnumber = 0;
|
int fingerprint = 0;
|
||||||
const char **pp;
|
const char **pp;
|
||||||
X509_STORE *store = NULL;
|
X509_STORE *store = NULL;
|
||||||
X509_STORE_CTX ctx;
|
X509_STORE_CTX ctx;
|
||||||
@@ -207,8 +206,6 @@ int MAIN(int argc, char **argv)
|
|||||||
noout= ++num;
|
noout= ++num;
|
||||||
else if (strcmp(*argv,"-fingerprint") == 0)
|
else if (strcmp(*argv,"-fingerprint") == 0)
|
||||||
fingerprint= ++num;
|
fingerprint= ++num;
|
||||||
else if (strcmp(*argv,"-crlnumber") == 0)
|
|
||||||
crlnumber= ++num;
|
|
||||||
else if ((md_alg=EVP_get_digestbyname(*argv + 1)))
|
else if ((md_alg=EVP_get_digestbyname(*argv + 1)))
|
||||||
{
|
{
|
||||||
/* ok */
|
/* ok */
|
||||||
@@ -284,21 +281,7 @@ bad:
|
|||||||
{
|
{
|
||||||
print_name(bio_out, "issuer=", X509_CRL_get_issuer(x), nmflag);
|
print_name(bio_out, "issuer=", X509_CRL_get_issuer(x), nmflag);
|
||||||
}
|
}
|
||||||
if (crlnumber == i)
|
|
||||||
{
|
|
||||||
ASN1_INTEGER *crlnum;
|
|
||||||
crlnum = X509_CRL_get_ext_d2i(x, NID_crl_number,
|
|
||||||
NULL, NULL);
|
|
||||||
BIO_printf(bio_out,"crlNumber=");
|
|
||||||
if (crlnum)
|
|
||||||
{
|
|
||||||
i2a_ASN1_INTEGER(bio_out, crlnum);
|
|
||||||
ASN1_INTEGER_free(crlnum);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
BIO_puts(bio_out, "<NONE>");
|
|
||||||
BIO_printf(bio_out,"\n");
|
|
||||||
}
|
|
||||||
if (hash == i)
|
if (hash == i)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_out,"%08lx\n",
|
BIO_printf(bio_out,"%08lx\n",
|
||||||
|
@@ -84,7 +84,7 @@ int MAIN(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
ENGINE *e = NULL;
|
ENGINE *e = NULL;
|
||||||
unsigned char *buf=NULL;
|
unsigned char *buf=NULL;
|
||||||
int i,err=1;
|
int i,err=0;
|
||||||
const EVP_MD *md=NULL,*m;
|
const EVP_MD *md=NULL,*m;
|
||||||
BIO *in=NULL,*inp;
|
BIO *in=NULL,*inp;
|
||||||
BIO *bmd=NULL;
|
BIO *bmd=NULL;
|
||||||
@@ -215,8 +215,6 @@ ERR_load_crypto_strings();
|
|||||||
debug=1;
|
debug=1;
|
||||||
else if (strcmp(*argv,"-non-fips-allow") == 0)
|
else if (strcmp(*argv,"-non-fips-allow") == 0)
|
||||||
non_fips_allow=1;
|
non_fips_allow=1;
|
||||||
else if (!strcmp(*argv,"-fips-fingerprint"))
|
|
||||||
hmac_key = "etaonrishdlcupfm";
|
|
||||||
else if (!strcmp(*argv,"-hmac"))
|
else if (!strcmp(*argv,"-hmac"))
|
||||||
{
|
{
|
||||||
if (--argc < 1)
|
if (--argc < 1)
|
||||||
@@ -254,7 +252,6 @@ ERR_load_crypto_strings();
|
|||||||
BIO_printf(bio_err,"-keyform arg key file format (PEM or ENGINE)\n");
|
BIO_printf(bio_err,"-keyform arg key file format (PEM or ENGINE)\n");
|
||||||
BIO_printf(bio_err,"-signature file signature to verify\n");
|
BIO_printf(bio_err,"-signature file signature to verify\n");
|
||||||
BIO_printf(bio_err,"-binary output in binary form\n");
|
BIO_printf(bio_err,"-binary output in binary form\n");
|
||||||
BIO_printf(bio_err,"-hmac key create hashed MAC with key\n");
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
BIO_printf(bio_err,"-engine e use engine e, possibly a hardware device.\n");
|
BIO_printf(bio_err,"-engine e use engine e, possibly a hardware device.\n");
|
||||||
#endif
|
#endif
|
||||||
@@ -415,7 +412,6 @@ ERR_load_crypto_strings();
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
name=OBJ_nid2sn(md->type);
|
name=OBJ_nid2sn(md->type);
|
||||||
err = 0;
|
|
||||||
for (i=0; i<argc; i++)
|
for (i=0; i<argc; i++)
|
||||||
{
|
{
|
||||||
char *tmp,*tofree=NULL;
|
char *tmp,*tofree=NULL;
|
||||||
|
@@ -88,6 +88,9 @@ int MAIN(int, char **);
|
|||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
DH *dh=NULL;
|
DH *dh=NULL;
|
||||||
int i,badops=0,text=0;
|
int i,badops=0,text=0;
|
||||||
BIO *in=NULL,*out=NULL;
|
BIO *in=NULL,*out=NULL;
|
||||||
@@ -186,7 +189,7 @@ bad:
|
|||||||
ERR_load_crypto_strings();
|
ERR_load_crypto_strings();
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
in=BIO_new(BIO_s_file());
|
in=BIO_new(BIO_s_file());
|
||||||
|
@@ -149,6 +149,9 @@ int MAIN(int, char **);
|
|||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
DH *dh=NULL;
|
DH *dh=NULL;
|
||||||
int i,badops=0,text=0;
|
int i,badops=0,text=0;
|
||||||
#ifndef OPENSSL_NO_DSA
|
#ifndef OPENSSL_NO_DSA
|
||||||
@@ -267,7 +270,7 @@ bad:
|
|||||||
ERR_load_crypto_strings();
|
ERR_load_crypto_strings();
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (g && !num)
|
if (g && !num)
|
||||||
|
42
apps/dsa.c
42
apps/dsa.c
@@ -65,11 +65,11 @@
|
|||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#include <openssl/bio.h>
|
#include <openssl/bio.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
|
#include <openssl/dsa.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/bn.h>
|
#include <openssl/bn.h>
|
||||||
#include <openssl/dsa.h>
|
|
||||||
|
|
||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG dsa_main
|
#define PROG dsa_main
|
||||||
@@ -96,7 +96,9 @@ int MAIN(int, char **);
|
|||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
ENGINE *e = NULL;
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
int ret=1;
|
int ret=1;
|
||||||
DSA *dsa=NULL;
|
DSA *dsa=NULL;
|
||||||
int i,badops=0;
|
int i,badops=0;
|
||||||
@@ -238,27 +240,37 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
in=BIO_new(BIO_s_file());
|
||||||
out=BIO_new(BIO_s_file());
|
out=BIO_new(BIO_s_file());
|
||||||
if (out == NULL)
|
if ((in == NULL) || (out == NULL))
|
||||||
{
|
{
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
BIO_printf(bio_err,"read DSA key\n");
|
if (infile == NULL)
|
||||||
{
|
BIO_set_fp(in,stdin,BIO_NOCLOSE);
|
||||||
EVP_PKEY *pkey;
|
else
|
||||||
if (pubin)
|
{
|
||||||
pkey = load_pubkey(bio_err, infile, informat, 1,
|
if (BIO_read_filename(in,infile) <= 0)
|
||||||
passin, e, "Public Key");
|
{
|
||||||
else
|
perror(infile);
|
||||||
pkey = load_key(bio_err, infile, informat, 1,
|
goto end;
|
||||||
passin, e, "Private Key");
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (pkey != NULL)
|
BIO_printf(bio_err,"read DSA key\n");
|
||||||
dsa = pkey == NULL ? NULL : EVP_PKEY_get1_DSA(pkey);
|
if (informat == FORMAT_ASN1) {
|
||||||
EVP_PKEY_free(pkey);
|
if(pubin) dsa=d2i_DSA_PUBKEY_bio(in,NULL);
|
||||||
}
|
else dsa=d2i_DSAPrivateKey_bio(in,NULL);
|
||||||
|
} else if (informat == FORMAT_PEM) {
|
||||||
|
if(pubin) dsa=PEM_read_bio_DSA_PUBKEY(in,NULL, NULL, NULL);
|
||||||
|
else dsa=PEM_read_bio_DSAPrivateKey(in,NULL,NULL,passin);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"bad input format specified for key\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
if (dsa == NULL)
|
if (dsa == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"unable to load Key\n");
|
BIO_printf(bio_err,"unable to load Key\n");
|
||||||
|
@@ -111,6 +111,9 @@ int MAIN(int, char **);
|
|||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
DSA *dsa=NULL;
|
DSA *dsa=NULL;
|
||||||
int i,badops=0,text=0;
|
int i,badops=0,text=0;
|
||||||
BIO *in=NULL,*out=NULL;
|
BIO *in=NULL,*out=NULL;
|
||||||
@@ -275,7 +278,7 @@ bad:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (need_rand)
|
if (need_rand)
|
||||||
@@ -354,10 +357,12 @@ bad:
|
|||||||
if (C)
|
if (C)
|
||||||
{
|
{
|
||||||
unsigned char *data;
|
unsigned char *data;
|
||||||
int l,len,bits_p;
|
int l,len,bits_p,bits_q,bits_g;
|
||||||
|
|
||||||
len=BN_num_bytes(dsa->p);
|
len=BN_num_bytes(dsa->p);
|
||||||
bits_p=BN_num_bits(dsa->p);
|
bits_p=BN_num_bits(dsa->p);
|
||||||
|
bits_q=BN_num_bits(dsa->q);
|
||||||
|
bits_g=BN_num_bits(dsa->g);
|
||||||
data=(unsigned char *)OPENSSL_malloc(len+20);
|
data=(unsigned char *)OPENSSL_malloc(len+20);
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
{
|
{
|
||||||
@@ -470,10 +475,4 @@ static int MS_CALLBACK dsa_cb(int p, int n, BN_GENCB *cb)
|
|||||||
#endif
|
#endif
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#else /* !OPENSSL_NO_DSA */
|
|
||||||
|
|
||||||
# if PEDANTIC
|
|
||||||
static void *dummy=&dummy;
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -85,6 +85,9 @@ int MAIN(int, char **);
|
|||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
EC_KEY *eckey = NULL;
|
EC_KEY *eckey = NULL;
|
||||||
const EC_GROUP *group;
|
const EC_GROUP *group;
|
||||||
@@ -241,7 +244,7 @@ bad:
|
|||||||
" the ec parameters are encoded\n");
|
" the ec parameters are encoded\n");
|
||||||
BIO_printf(bio_err, " in the asn1 der "
|
BIO_printf(bio_err, " in the asn1 der "
|
||||||
"encoding\n");
|
"encoding\n");
|
||||||
BIO_printf(bio_err, " possible values:"
|
BIO_printf(bio_err, " possilbe values:"
|
||||||
" named_curve (default)\n");
|
" named_curve (default)\n");
|
||||||
BIO_printf(bio_err," "
|
BIO_printf(bio_err," "
|
||||||
"explicit\n");
|
"explicit\n");
|
||||||
@@ -251,7 +254,7 @@ bad:
|
|||||||
ERR_load_crypto_strings();
|
ERR_load_crypto_strings();
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(!app_passwd(bio_err, passargin, passargout, &passin, &passout))
|
if(!app_passwd(bio_err, passargin, passargout, &passin, &passout))
|
||||||
|
@@ -129,6 +129,9 @@ int MAIN(int argc, char **argv)
|
|||||||
char *infile = NULL, *outfile = NULL, *prog;
|
char *infile = NULL, *outfile = NULL, *prog;
|
||||||
BIO *in = NULL, *out = NULL;
|
BIO *in = NULL, *out = NULL;
|
||||||
int informat, outformat, noout = 0, C = 0, ret = 1;
|
int informat, outformat, noout = 0, C = 0, ret = 1;
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
char *engine = NULL;
|
char *engine = NULL;
|
||||||
|
|
||||||
BIGNUM *ec_p = NULL, *ec_a = NULL, *ec_b = NULL,
|
BIGNUM *ec_p = NULL, *ec_a = NULL, *ec_b = NULL,
|
||||||
@@ -337,7 +340,7 @@ bad:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (list_curves)
|
if (list_curves)
|
||||||
|
15
apps/enc.c
15
apps/enc.c
@@ -100,6 +100,9 @@ int MAIN(int, char **);
|
|||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
static const char magic[]="Salted__";
|
static const char magic[]="Salted__";
|
||||||
char mbuf[sizeof magic-1];
|
char mbuf[sizeof magic-1];
|
||||||
char *strbuf=NULL;
|
char *strbuf=NULL;
|
||||||
@@ -223,12 +226,7 @@ int MAIN(int argc, char **argv)
|
|||||||
goto bad;
|
goto bad;
|
||||||
}
|
}
|
||||||
buf[0]='\0';
|
buf[0]='\0';
|
||||||
if (!fgets(buf,sizeof buf,infile))
|
fgets(buf,sizeof buf,infile);
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"unable to read key from '%s'\n",
|
|
||||||
file);
|
|
||||||
goto bad;
|
|
||||||
}
|
|
||||||
fclose(infile);
|
fclose(infile);
|
||||||
i=strlen(buf);
|
i=strlen(buf);
|
||||||
if ((i > 0) &&
|
if ((i > 0) &&
|
||||||
@@ -308,7 +306,7 @@ bad:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (md && (dgst=EVP_get_digestbyname(md)) == NULL)
|
if (md && (dgst=EVP_get_digestbyname(md)) == NULL)
|
||||||
@@ -535,8 +533,7 @@ bad:
|
|||||||
BIO_printf(bio_err,"invalid hex iv value\n");
|
BIO_printf(bio_err,"invalid hex iv value\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
if ((hiv == NULL) && (str == NULL)
|
if ((hiv == NULL) && (str == NULL))
|
||||||
&& EVP_CIPHER_iv_length(cipher) != 0)
|
|
||||||
{
|
{
|
||||||
/* No IV was explicitly set and no IV was generated
|
/* No IV was explicitly set and no IV was generated
|
||||||
* during EVP_BytesToKey. Hence the IV is undefined,
|
* during EVP_BytesToKey. Hence the IV is undefined,
|
||||||
|
@@ -56,6 +56,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -65,7 +66,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
|
|
||||||
@@ -252,7 +252,7 @@ static int util_verbose(ENGINE *e, int verbose, BIO *bio_out, const char *indent
|
|||||||
/* Now decide on the output */
|
/* Now decide on the output */
|
||||||
if(xpos == 0)
|
if(xpos == 0)
|
||||||
/* Do an indent */
|
/* Do an indent */
|
||||||
xpos = BIO_puts(bio_out, indent);
|
xpos = BIO_printf(bio_out, indent);
|
||||||
else
|
else
|
||||||
/* Otherwise prepend a ", " */
|
/* Otherwise prepend a ", " */
|
||||||
xpos += BIO_printf(bio_out, ", ");
|
xpos += BIO_printf(bio_out, ", ");
|
||||||
@@ -263,7 +263,7 @@ static int util_verbose(ENGINE *e, int verbose, BIO *bio_out, const char *indent
|
|||||||
(xpos + (int)strlen(name) > line_wrap))
|
(xpos + (int)strlen(name) > line_wrap))
|
||||||
{
|
{
|
||||||
BIO_printf(bio_out, "\n");
|
BIO_printf(bio_out, "\n");
|
||||||
xpos = BIO_puts(bio_out, indent);
|
xpos = BIO_printf(bio_out, indent);
|
||||||
}
|
}
|
||||||
xpos += BIO_printf(bio_out, "%s", name);
|
xpos += BIO_printf(bio_out, "%s", name);
|
||||||
}
|
}
|
||||||
|
@@ -89,6 +89,9 @@ int MAIN(int, char **);
|
|||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
BN_GENCB cb;
|
BN_GENCB cb;
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
DH *dh=NULL;
|
DH *dh=NULL;
|
||||||
int ret=1,num=DEFBITS;
|
int ret=1,num=DEFBITS;
|
||||||
int g=2;
|
int g=2;
|
||||||
@@ -160,7 +163,7 @@ bad:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
out=BIO_new(BIO_s_file());
|
out=BIO_new(BIO_s_file());
|
||||||
|
@@ -78,6 +78,9 @@ int MAIN(int, char **);
|
|||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
DSA *dsa=NULL;
|
DSA *dsa=NULL;
|
||||||
int ret=1;
|
int ret=1;
|
||||||
char *outfile=NULL;
|
char *outfile=NULL;
|
||||||
@@ -203,7 +206,7 @@ bad:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(!app_passwd(bio_err, NULL, passargout, NULL, &passout)) {
|
if(!app_passwd(bio_err, NULL, passargout, NULL, &passout)) {
|
||||||
@@ -276,10 +279,4 @@ end:
|
|||||||
apps_shutdown();
|
apps_shutdown();
|
||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
}
|
}
|
||||||
#else /* !OPENSSL_NO_DSA */
|
|
||||||
|
|
||||||
# if PEDANTIC
|
|
||||||
static void *dummy=&dummy;
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -89,6 +89,9 @@ int MAIN(int, char **);
|
|||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
BN_GENCB cb;
|
BN_GENCB cb;
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
int ret=1;
|
int ret=1;
|
||||||
int i,num=DEFBITS;
|
int i,num=DEFBITS;
|
||||||
long l;
|
long l;
|
||||||
@@ -103,9 +106,9 @@ int MAIN(int argc, char **argv)
|
|||||||
char *inrand=NULL;
|
char *inrand=NULL;
|
||||||
BIO *out=NULL;
|
BIO *out=NULL;
|
||||||
BIGNUM *bn = BN_new();
|
BIGNUM *bn = BN_new();
|
||||||
RSA *rsa = NULL;
|
RSA *rsa = RSA_new();
|
||||||
|
|
||||||
if(!bn) goto err;
|
if(!bn || !rsa) goto err;
|
||||||
|
|
||||||
apps_startup();
|
apps_startup();
|
||||||
BN_GENCB_set(&cb, genrsa_cb, bio_err);
|
BN_GENCB_set(&cb, genrsa_cb, bio_err);
|
||||||
@@ -232,7 +235,7 @@ bad:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (outfile == NULL)
|
if (outfile == NULL)
|
||||||
@@ -266,10 +269,6 @@ bad:
|
|||||||
BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n",
|
BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n",
|
||||||
num);
|
num);
|
||||||
|
|
||||||
rsa = RSA_new();
|
|
||||||
if (!rsa)
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
if (use_x931)
|
if (use_x931)
|
||||||
{
|
{
|
||||||
BIGNUM *pubexp;
|
BIGNUM *pubexp;
|
||||||
|
@@ -5,23 +5,13 @@ $! Time of creation: 22-MAY-1998 10:13
|
|||||||
$!
|
$!
|
||||||
$! P1 root of the directory tree
|
$! P1 root of the directory tree
|
||||||
$!
|
$!
|
||||||
$
|
|
||||||
$ IF P1 .EQS. ""
|
$ IF P1 .EQS. ""
|
||||||
$ THEN
|
$ THEN
|
||||||
$ WRITE SYS$OUTPUT "First argument missing."
|
$ WRITE SYS$OUTPUT "First argument missing."
|
||||||
$ WRITE SYS$OUTPUT -
|
$ WRITE SYS$OUTPUT "Should be the directory where you want things installed."
|
||||||
"Should be the directory where you want things installed."
|
|
||||||
$ EXIT
|
$ EXIT
|
||||||
$ ENDIF
|
$ ENDIF
|
||||||
$
|
$
|
||||||
$ IF (F$GETSYI("CPU").LT.128)
|
|
||||||
$ THEN
|
|
||||||
$ ARCH := VAX
|
|
||||||
$ ELSE
|
|
||||||
$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
|
|
||||||
$ IF (ARCH .EQS. "") THEN ARCH = "UNK"
|
|
||||||
$ ENDIF
|
|
||||||
$
|
|
||||||
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
|
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
|
||||||
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
|
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
|
||||||
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
||||||
@@ -29,16 +19,23 @@ $ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
|||||||
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
|
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
|
||||||
$
|
$
|
||||||
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
|
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
|
||||||
$ DEFINE/NOLOG WRK_SSLEXE WRK_SSLROOT:['ARCH'_EXE]
|
$ DEFINE/NOLOG WRK_SSLVEXE WRK_SSLROOT:[VAX_EXE]
|
||||||
|
$ DEFINE/NOLOG WRK_SSLAEXE WRK_SSLROOT:[ALPHA_EXE]
|
||||||
|
$ DEFINE/NOLOG WRK_SSLLIB WRK_SSLROOT:[LIB]
|
||||||
$
|
$
|
||||||
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
|
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
|
||||||
CREATE/DIR/LOG WRK_SSLROOT:[000000]
|
CREATE/DIR/LOG WRK_SSLROOT:[000000]
|
||||||
$ IF F$PARSE("WRK_SSLEXE:") .EQS. "" THEN -
|
$ IF F$PARSE("WRK_SSLVEXE:") .EQS. "" THEN -
|
||||||
CREATE/DIR/LOG WRK_SSLEXE:
|
CREATE/DIR/LOG WRK_SSLVEXE:
|
||||||
|
$ IF F$PARSE("WRK_SSLAEXE:") .EQS. "" THEN -
|
||||||
|
CREATE/DIR/LOG WRK_SSLAEXE:
|
||||||
|
$ IF F$PARSE("WRK_SSLLIB:") .EQS. "" THEN -
|
||||||
|
CREATE/DIR/LOG WRK_SSLLIB:
|
||||||
$
|
$
|
||||||
$ EXE := openssl
|
$ EXE := openssl
|
||||||
$
|
$
|
||||||
$ EXE_DIR := [-.'ARCH'.EXE.APPS]
|
$ VEXE_DIR := [-.VAX.EXE.APPS]
|
||||||
|
$ AEXE_DIR := [-.AXP.EXE.APPS]
|
||||||
$
|
$
|
||||||
$ I = 0
|
$ I = 0
|
||||||
$ LOOP_EXE:
|
$ LOOP_EXE:
|
||||||
@@ -46,18 +43,25 @@ $ E = F$EDIT(F$ELEMENT(I, ",", EXE),"TRIM")
|
|||||||
$ I = I + 1
|
$ I = I + 1
|
||||||
$ IF E .EQS. "," THEN GOTO LOOP_EXE_END
|
$ IF E .EQS. "," THEN GOTO LOOP_EXE_END
|
||||||
$ SET NOON
|
$ SET NOON
|
||||||
$ IF F$SEARCH(EXE_DIR+E+".EXE") .NES. ""
|
$ IF F$SEARCH(VEXE_DIR+E+".EXE") .NES. ""
|
||||||
$ THEN
|
$ THEN
|
||||||
$ COPY 'EXE_DIR''E'.EXE WRK_SSLEXE:'E'.EXE/log
|
$ COPY 'VEXE_DIR''E'.EXE WRK_SSLVEXE:'E'.EXE/log
|
||||||
$ SET FILE/PROT=W:RE WRK_SSLEXE:'E'.EXE
|
$ SET FILE/PROT=W:RE WRK_SSLVEXE:'E'.EXE
|
||||||
|
$ ENDIF
|
||||||
|
$ IF F$SEARCH(AEXE_DIR+E+".EXE") .NES. ""
|
||||||
|
$ THEN
|
||||||
|
$ COPY 'AEXE_DIR''E'.EXE WRK_SSLAEXE:'E'.EXE/log
|
||||||
|
$ SET FILE/PROT=W:RE WRK_SSLAEXE:'E'.EXE
|
||||||
$ ENDIF
|
$ ENDIF
|
||||||
$ SET ON
|
$ SET ON
|
||||||
$ GOTO LOOP_EXE
|
$ GOTO LOOP_EXE
|
||||||
$ LOOP_EXE_END:
|
$ LOOP_EXE_END:
|
||||||
$
|
$
|
||||||
$ SET NOON
|
$ SET NOON
|
||||||
$ COPY CA.COM WRK_SSLEXE:CA.COM/LOG
|
$ COPY CA.COM WRK_SSLAEXE:CA.COM/LOG
|
||||||
$ SET FILE/PROT=W:RE WRK_SSLEXE:CA.COM
|
$ SET FILE/PROT=W:RE WRK_SSLAEXE:CA.COM
|
||||||
|
$ COPY CA.COM WRK_SSLVEXE:CA.COM/LOG
|
||||||
|
$ SET FILE/PROT=W:RE WRK_SSLVEXE:CA.COM
|
||||||
$ COPY OPENSSL-VMS.CNF WRK_SSLROOT:[000000]OPENSSL.CNF/LOG
|
$ COPY OPENSSL-VMS.CNF WRK_SSLROOT:[000000]OPENSSL.CNF/LOG
|
||||||
$ SET FILE/PROT=W:R WRK_SSLROOT:[000000]OPENSSL.CNF
|
$ SET FILE/PROT=W:R WRK_SSLROOT:[000000]OPENSSL.CNF
|
||||||
$ SET ON
|
$ SET ON
|
||||||
|
@@ -6,12 +6,11 @@ $! A-Com Computing, Inc.
|
|||||||
$! byer@mail.all-net.net
|
$! byer@mail.all-net.net
|
||||||
$!
|
$!
|
||||||
$! Changes by Richard Levitte <richard@levitte.org>
|
$! Changes by Richard Levitte <richard@levitte.org>
|
||||||
$! Zoltan Arpadffy <zoli@polarhome.com>
|
|
||||||
$!
|
$!
|
||||||
$! This command files compiles and creates all the various different
|
$! This command files compiles and creates all the various different
|
||||||
$! "application" programs for the different types of encryption for OpenSSL.
|
$! "application" programs for the different types of encryption for OpenSSL.
|
||||||
$! The EXE's are placed in the directory [.xxx.EXE.APPS] where "xxx" denotes
|
$! The EXE's are placed in the directory [.xxx.EXE.APPS] where "xxx" denotes
|
||||||
$! ALPHA, IA64 or VAX, depending on your machine architecture.
|
$! either AXP or VAX depending on your machine architecture.
|
||||||
$!
|
$!
|
||||||
$! It was written so it would try to determine what "C" compiler to
|
$! It was written so it would try to determine what "C" compiler to
|
||||||
$! use or you can specify which "C" compiler to use.
|
$! use or you can specify which "C" compiler to use.
|
||||||
@@ -47,21 +46,20 @@ $ TCPIP_LIB = ""
|
|||||||
$!
|
$!
|
||||||
$! Check What Architecture We Are Using.
|
$! Check What Architecture We Are Using.
|
||||||
$!
|
$!
|
||||||
$ IF (F$GETSYI("CPU").LT.128)
|
$ IF (F$GETSYI("CPU").GE.128)
|
||||||
$ THEN
|
$ THEN
|
||||||
$!
|
$!
|
||||||
$! The Architecture Is VAX.
|
$! The Architecture Is AXP.
|
||||||
$!
|
$!
|
||||||
$ ARCH := VAX
|
$ ARCH := AXP
|
||||||
$!
|
$!
|
||||||
$! Else...
|
$! Else...
|
||||||
$!
|
$!
|
||||||
$ ELSE
|
$ ELSE
|
||||||
$!
|
$!
|
||||||
$! The Architecture Is Alpha, IA64 or whatever comes in the future.
|
$! The Architecture Is VAX.
|
||||||
$!
|
$!
|
||||||
$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
|
$ ARCH := VAX
|
||||||
$ IF (ARCH .EQS. "") THEN ARCH = "UNK"
|
|
||||||
$!
|
$!
|
||||||
$! End The Architecture Check.
|
$! End The Architecture Check.
|
||||||
$!
|
$!
|
||||||
@@ -70,22 +68,10 @@ $!
|
|||||||
$! Define what programs should be compiled
|
$! Define what programs should be compiled
|
||||||
$!
|
$!
|
||||||
$ PROGRAMS := OPENSSL
|
$ PROGRAMS := OPENSSL
|
||||||
$!
|
$!$ PROGRAMS := VERIFY,ASN1PARS,REQ,DGST,DH,ENC,PASSWD,GENDH,ERRSTR,CA,CRL,-
|
||||||
$! Define The CRYPTO Library.
|
$! RSA,DSA,DSAPARAM,-
|
||||||
$!
|
$! X509,GENRSA,GENDSA,S_SERVER,S_CLIENT,SPEED,-
|
||||||
$ CRYPTO_LIB := SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO.OLB
|
$! S_TIME,VERSION,PKCS7,CRL2P7,SESS_ID,CIPHERS,NSEQ,
|
||||||
$!
|
|
||||||
$! Define The SSL Library.
|
|
||||||
$!
|
|
||||||
$ SSL_LIB := SYS$DISK:[-.'ARCH'.EXE.SSL]LIBSSL.OLB
|
|
||||||
$!
|
|
||||||
$! Define The OBJ Directory.
|
|
||||||
$!
|
|
||||||
$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.APPS]
|
|
||||||
$!
|
|
||||||
$! Define The EXE Directory.
|
|
||||||
$!
|
|
||||||
$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.APPS]
|
|
||||||
$!
|
$!
|
||||||
$! Check To Make Sure We Have Valid Command Line Parameters.
|
$! Check To Make Sure We Have Valid Command Line Parameters.
|
||||||
$!
|
$!
|
||||||
@@ -99,6 +85,18 @@ $! Tell The User What Kind of Machine We Run On.
|
|||||||
$!
|
$!
|
||||||
$ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine."
|
$ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine."
|
||||||
$!
|
$!
|
||||||
|
$! Define The CRYPTO Library.
|
||||||
|
$!
|
||||||
|
$ CRYPTO_LIB := SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO.OLB
|
||||||
|
$!
|
||||||
|
$! Define The SSL Library.
|
||||||
|
$!
|
||||||
|
$ SSL_LIB := SYS$DISK:[-.'ARCH'.EXE.SSL]LIBSSL.OLB
|
||||||
|
$!
|
||||||
|
$! Define The OBJ Directory.
|
||||||
|
$!
|
||||||
|
$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.APPS]
|
||||||
|
$!
|
||||||
$! Check To See If The OBJ Directory Exists.
|
$! Check To See If The OBJ Directory Exists.
|
||||||
$!
|
$!
|
||||||
$ IF (F$PARSE(OBJ_DIR).EQS."")
|
$ IF (F$PARSE(OBJ_DIR).EQS."")
|
||||||
@@ -112,6 +110,10 @@ $! End The OBJ Directory Check.
|
|||||||
$!
|
$!
|
||||||
$ ENDIF
|
$ ENDIF
|
||||||
$!
|
$!
|
||||||
|
$! Define The EXE Directory.
|
||||||
|
$!
|
||||||
|
$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.APPS]
|
||||||
|
$!
|
||||||
$! Check To See If The EXE Directory Exists.
|
$! Check To See If The EXE Directory Exists.
|
||||||
$!
|
$!
|
||||||
$ IF (F$PARSE(EXE_DIR).EQS."")
|
$ IF (F$PARSE(EXE_DIR).EQS."")
|
||||||
@@ -134,172 +136,140 @@ $!
|
|||||||
$ GOSUB CHECK_OPT_FILE
|
$ GOSUB CHECK_OPT_FILE
|
||||||
$!
|
$!
|
||||||
$! Define The Application Files.
|
$! Define The Application Files.
|
||||||
$! NOTE: Some might think this list ugly. However, it's made this way to
|
|
||||||
$! reflect the E_OBJ variable in Makefile as closely as possible, thereby
|
|
||||||
$! making it fairly easy to verify that the lists are the same.
|
|
||||||
$!
|
$!
|
||||||
$ LIB_OPENSSL = "VERIFY,ASN1PARS,REQ,DGST,DH,DHPARAM,ENC,PASSWD,GENDH,ERRSTR,"+-
|
$ LIB_FILES = "VERIFY;ASN1PARS;REQ;DGST;DH;DHPARAM;ENC;PASSWD;GENDH;ERRSTR;"+-
|
||||||
"CA,PKCS7,CRL2P7,CRL,"+-
|
"CA;PKCS7;CRL2P7;CRL;"+-
|
||||||
"RSA,RSAUTL,DSA,DSAPARAM,EC,ECPARAM,"+-
|
"RSA;RSAUTL;DSA;DSAPARAM;EC;ECPARAM;"+-
|
||||||
"X509,GENRSA,GENDSA,S_SERVER,S_CLIENT,SPEED,"+-
|
"X509;GENRSA;GENDSA;S_SERVER;S_CLIENT;SPEED;"+-
|
||||||
"S_TIME,APPS,S_CB,S_SOCKET,APP_RAND,VERSION,SESS_ID,"+-
|
"S_TIME;APPS;S_CB;S_SOCKET;APP_RAND;VERSION;SESS_ID;"+-
|
||||||
"CIPHERS,NSEQ,PKCS12,PKCS8,SPKAC,SMIME,RAND,ENGINE,"+-
|
"CIPHERS;NSEQ;PKCS12;PKCS8;SPKAC;SMIME;RAND;ENGINE;OCSP;PRIME"
|
||||||
"OCSP,PRIME,CMS"
|
|
||||||
$ TCPIP_PROGRAMS = ",,"
|
$ TCPIP_PROGRAMS = ",,"
|
||||||
$ IF COMPILER .EQS. "VAXC" THEN -
|
$ IF COMPILER .EQS. "VAXC" THEN -
|
||||||
TCPIP_PROGRAMS = ",OPENSSL,"
|
TCPIP_PROGRAMS = ",OPENSSL,"
|
||||||
$!
|
$!
|
||||||
$! Setup exceptional compilations
|
$! Setup exceptional compilations
|
||||||
$!
|
$!
|
||||||
$ COMPILEWITH_CC2 = ",S_SOCKET,S_SERVER,S_CLIENT,"
|
$ COMPILEWITH_CC2 = ",S_SERVER,S_CLIENT,"
|
||||||
$!
|
$!
|
||||||
$ PHASE := LIB
|
$ PHASE := LIB
|
||||||
$!
|
$!
|
||||||
$ RESTART:
|
$ RESTART:
|
||||||
$!
|
$!
|
||||||
$! Define An App Counter And Set It To "0".
|
$! Define A File Counter And Set It To "0".
|
||||||
$!
|
$!
|
||||||
$ APP_COUNTER = 0
|
$ FILE_COUNTER = 0
|
||||||
$!
|
$!
|
||||||
$! Top Of The App Loop.
|
$! Top Of The File Loop.
|
||||||
$!
|
$!
|
||||||
$ NEXT_APP:
|
$ NEXT_FILE:
|
||||||
$!
|
$!
|
||||||
$! Make The Application File Name
|
$! O.K, Extract The File Name From The File List.
|
||||||
$!
|
$!
|
||||||
$ CURRENT_APP = F$EDIT(F$ELEMENT(APP_COUNTER,",",PROGRAMS),"TRIM")
|
$ FILE_NAME0 = F$EDIT(F$ELEMENT(FILE_COUNTER,";",'PHASE'_FILES),"TRIM")
|
||||||
|
$ FILE_NAME = F$EDIT(F$ELEMENT(0,",",FILE_NAME0),"TRIM")
|
||||||
|
$ EXTRA_OBJ = FILE_NAME0 - FILE_NAME
|
||||||
$!
|
$!
|
||||||
$! Create The Executable File Name.
|
$! Check To See If We Are At The End Of The File List.
|
||||||
$!
|
$!
|
||||||
$ EXE_FILE = EXE_DIR + CURRENT_APP + ".EXE"
|
$ IF (FILE_NAME0.EQS.";")
|
||||||
$!
|
|
||||||
$! Check To See If We Are At The End Of The File List.
|
|
||||||
$!
|
|
||||||
$ IF (CURRENT_APP.EQS.",")
|
|
||||||
$ THEN
|
$ THEN
|
||||||
$ IF (PHASE.EQS."LIB")
|
$ IF (PHASE.EQS."LIB")
|
||||||
$ THEN
|
$ THEN
|
||||||
$ PHASE := APP
|
$ PHASE := APP
|
||||||
$ GOTO RESTART
|
$ GOTO RESTART
|
||||||
$ ELSE
|
$ ELSE
|
||||||
$ GOTO APP_DONE
|
$ GOTO FILE_DONE
|
||||||
$ ENDIF
|
$ ENDIF
|
||||||
$ ENDIF
|
$ ENDIF
|
||||||
$!
|
$!
|
||||||
$! Increment The Counter.
|
$! Increment The Counter.
|
||||||
$!
|
$!
|
||||||
$ APP_COUNTER = APP_COUNTER + 1
|
$ FILE_COUNTER = FILE_COUNTER + 1
|
||||||
$!
|
$!
|
||||||
$! Decide if we're building the object files or not.
|
$! Check to see if this program should actually be compiled
|
||||||
|
$!
|
||||||
|
$ IF PHASE .EQS. "APP" .AND. -
|
||||||
|
","+PROGRAMS+"," - (","+F$EDIT(FILE_NAME,"UPCASE")+",") .EQS. ","+PROGRAMS+","
|
||||||
|
$ THEN
|
||||||
|
$ GOTO NEXT_FILE
|
||||||
|
$ ENDIF
|
||||||
|
$!
|
||||||
|
$! Create The Source File Name.
|
||||||
|
$!
|
||||||
|
$ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME + ".C"
|
||||||
|
$!
|
||||||
|
$! Create The Object File Name.
|
||||||
|
$!
|
||||||
|
$ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ"
|
||||||
|
$!
|
||||||
|
$! Create The Executable File Name.
|
||||||
|
$!
|
||||||
|
$ EXE_FILE = EXE_DIR + FILE_NAME + ".EXE"
|
||||||
|
$ ON WARNING THEN GOTO NEXT_FILE
|
||||||
|
$!
|
||||||
|
$! Check To See If The File We Want To Compile Actually Exists.
|
||||||
|
$!
|
||||||
|
$ IF (F$SEARCH(SOURCE_FILE).EQS."")
|
||||||
|
$ THEN
|
||||||
|
$!
|
||||||
|
$! Tell The User That The File Dosen't Exist.
|
||||||
|
$!
|
||||||
|
$ WRITE SYS$OUTPUT ""
|
||||||
|
$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist."
|
||||||
|
$ WRITE SYS$OUTPUT ""
|
||||||
|
$!
|
||||||
|
$! Exit The Build.
|
||||||
|
$!
|
||||||
|
$ GOTO EXIT
|
||||||
|
$!
|
||||||
|
$! End The File Exist Check.
|
||||||
|
$!
|
||||||
|
$ ENDIF
|
||||||
|
$!
|
||||||
|
$! Tell The User What We Are Building.
|
||||||
$!
|
$!
|
||||||
$ IF (PHASE.EQS."LIB")
|
$ IF (PHASE.EQS."LIB")
|
||||||
$ THEN
|
$ THEN
|
||||||
|
$ WRITE SYS$OUTPUT "Compiling The ",FILE_NAME,".C File."
|
||||||
|
$ ELSE
|
||||||
|
$ WRITE SYS$OUTPUT "Building The ",FILE_NAME," Application Program."
|
||||||
|
$ ENDIF
|
||||||
$!
|
$!
|
||||||
$! Define A Library File Counter And Set It To "-1".
|
$! Compile The File.
|
||||||
$! -1 Means The Application File Name Is To Be Used.
|
|
||||||
$!
|
$!
|
||||||
$ LIB_COUNTER = -1
|
$ ON ERROR THEN GOTO NEXT_FILE
|
||||||
|
$ IF COMPILEWITH_CC2 - FILE_NAME .NES. COMPILEWITH_CC2
|
||||||
|
$ THEN
|
||||||
|
$ CC2/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
|
||||||
|
$ ELSE
|
||||||
|
$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
|
||||||
|
$ ENDIF
|
||||||
$!
|
$!
|
||||||
$! Create a .OPT file for the object files
|
$ ON WARNING THEN GOTO NEXT_FILE
|
||||||
$!
|
$!
|
||||||
$ OPEN/WRITE OBJECTS 'EXE_DIR''CURRENT_APP'.OPT
|
$ IF (PHASE.EQS."LIB")
|
||||||
$!
|
$ THEN
|
||||||
$! Top Of The File Loop.
|
$ GOTO NEXT_FILE
|
||||||
$!
|
|
||||||
$ NEXT_LIB:
|
|
||||||
$!
|
|
||||||
$! O.K, Extract The File Name From The File List.
|
|
||||||
$!
|
|
||||||
$ IF LIB_COUNTER .GE. 0
|
|
||||||
$ THEN
|
|
||||||
$ FILE_NAME = F$EDIT(F$ELEMENT(LIB_COUNTER,",",LIB_'CURRENT_APP'),"TRIM")
|
|
||||||
$ ELSE
|
|
||||||
$ FILE_NAME = CURRENT_APP
|
|
||||||
$ ENDIF
|
|
||||||
$!
|
|
||||||
$! Check To See If We Are At The End Of The File List.
|
|
||||||
$!
|
|
||||||
$ IF (FILE_NAME.EQS.",")
|
|
||||||
$ THEN
|
|
||||||
$ CLOSE OBJECTS
|
|
||||||
$ GOTO NEXT_APP
|
|
||||||
$ ENDIF
|
|
||||||
$!
|
|
||||||
$! Increment The Counter.
|
|
||||||
$!
|
|
||||||
$ LIB_COUNTER = LIB_COUNTER + 1
|
|
||||||
$!
|
|
||||||
$! Create The Source File Name.
|
|
||||||
$!
|
|
||||||
$ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME + ".C"
|
|
||||||
$!
|
|
||||||
$! Create The Object File Name.
|
|
||||||
$!
|
|
||||||
$ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ"
|
|
||||||
$ ON WARNING THEN GOTO NEXT_LIB
|
|
||||||
$!
|
|
||||||
$! Check To See If The File We Want To Compile Actually Exists.
|
|
||||||
$!
|
|
||||||
$ IF (F$SEARCH(SOURCE_FILE).EQS."")
|
|
||||||
$ THEN
|
|
||||||
$!
|
|
||||||
$! Tell The User That The File Dosen't Exist.
|
|
||||||
$!
|
|
||||||
$ WRITE SYS$OUTPUT ""
|
|
||||||
$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist."
|
|
||||||
$ WRITE SYS$OUTPUT ""
|
|
||||||
$!
|
|
||||||
$! Exit The Build.
|
|
||||||
$!
|
|
||||||
$ GOTO EXIT
|
|
||||||
$!
|
|
||||||
$! End The File Exist Check.
|
|
||||||
$!
|
|
||||||
$ ENDIF
|
|
||||||
$!
|
|
||||||
$! Tell The User What We Are Building.
|
|
||||||
$!
|
|
||||||
$ IF (PHASE.EQS."LIB")
|
|
||||||
$ THEN
|
|
||||||
$ WRITE SYS$OUTPUT "Compiling The ",FILE_NAME,".C File."
|
|
||||||
$ ELSE
|
|
||||||
$ WRITE SYS$OUTPUT "Building The ",FILE_NAME," Application Program."
|
|
||||||
$ ENDIF
|
|
||||||
$!
|
|
||||||
$! Compile The File.
|
|
||||||
$!
|
|
||||||
$ ON ERROR THEN GOTO NEXT_LIB
|
|
||||||
$ IF COMPILEWITH_CC2 - FILE_NAME .NES. COMPILEWITH_CC2
|
|
||||||
$ THEN
|
|
||||||
$ CC2/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
|
|
||||||
$ ELSE
|
|
||||||
$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
|
|
||||||
$ ENDIF
|
|
||||||
$ WRITE OBJECTS OBJECT_FILE
|
|
||||||
$!
|
|
||||||
$ GOTO NEXT_LIB
|
|
||||||
$ ENDIF
|
$ ENDIF
|
||||||
$!
|
$!
|
||||||
$! Check if this program works well without a TCPIP library
|
$! Check if this program works well without a TCPIP library
|
||||||
$!
|
$!
|
||||||
$ IF TCPIP_LIB .EQS. "" .AND. TCPIP_PROGRAMS - CURRENT_APP .NES. TCPIP_PROGRAMS
|
$ IF TCPIP_LIB .EQS. "" .AND. TCPIP_PROGRAMS - FILE_NAME .NES. TCPIP_PROGRAMS
|
||||||
$ THEN
|
$ THEN
|
||||||
$ WRITE SYS$OUTPUT CURRENT_APP," needs a TCP/IP library. Can't link. Skipping..."
|
$ WRITE SYS$OUTPUT FILE_NAME," needs a TCP/IP library. Can't link. Skipping..."
|
||||||
$ GOTO NEXT_APP
|
$ GOTO NEXT_FILE
|
||||||
$ ENDIF
|
$ ENDIF
|
||||||
$!
|
$!
|
||||||
$! Link The Program.
|
$! Link The Program.
|
||||||
$! Check To See If We Are To Link With A Specific TCP/IP Library.
|
$! Check To See If We Are To Link With A Specific TCP/IP Library.
|
||||||
$!
|
$!
|
||||||
$ ON WARNING THEN GOTO NEXT_APP
|
|
||||||
$!
|
|
||||||
$ IF (TCPIP_LIB.NES."")
|
$ IF (TCPIP_LIB.NES."")
|
||||||
$ THEN
|
$ THEN
|
||||||
$!
|
$!
|
||||||
$! Don't Link With The RSAREF Routines And TCP/IP Library.
|
$! Don't Link With The RSAREF Routines And TCP/IP Library.
|
||||||
$!
|
$!
|
||||||
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
|
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
|
||||||
'EXE_DIR''CURRENT_APP'.OPT/OPTION, -
|
'OBJECT_FILE''EXTRA_OBJ', -
|
||||||
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
|
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
|
||||||
'TCPIP_LIB','OPT_FILE'/OPTION
|
'TCPIP_LIB','OPT_FILE'/OPTION
|
||||||
$!
|
$!
|
||||||
@@ -310,7 +280,7 @@ $!
|
|||||||
$! Don't Link With The RSAREF Routines And Link With A TCP/IP Library.
|
$! Don't Link With The RSAREF Routines And Link With A TCP/IP Library.
|
||||||
$!
|
$!
|
||||||
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
|
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
|
||||||
'EXE_DIR''CURRENT_APP'.OPT/OPTION, -
|
'OBJECT_FILE''EXTRA_OBJ', -
|
||||||
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
|
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
|
||||||
'OPT_FILE'/OPTION
|
'OPT_FILE'/OPTION
|
||||||
$!
|
$!
|
||||||
@@ -320,11 +290,11 @@ $ ENDIF
|
|||||||
$!
|
$!
|
||||||
$! Go Back And Do It Again.
|
$! Go Back And Do It Again.
|
||||||
$!
|
$!
|
||||||
$ GOTO NEXT_APP
|
$ GOTO NEXT_FILE
|
||||||
$!
|
$!
|
||||||
$! All Done With This File.
|
$! All Done With This File.
|
||||||
$!
|
$!
|
||||||
$ APP_DONE:
|
$ FILE_DONE:
|
||||||
$ EXIT:
|
$ EXIT:
|
||||||
$!
|
$!
|
||||||
$! All Done, Time To Clean Up And Exit.
|
$! All Done, Time To Clean Up And Exit.
|
||||||
@@ -425,19 +395,19 @@ $! Else...
|
|||||||
$!
|
$!
|
||||||
$ ELSE
|
$ ELSE
|
||||||
$!
|
$!
|
||||||
$! Create The non-VAX Linker Option File.
|
$! Create The AXP Linker Option File.
|
||||||
$!
|
$!
|
||||||
$ CREATE 'OPT_FILE'
|
$ CREATE 'OPT_FILE'
|
||||||
$DECK
|
$DECK
|
||||||
!
|
!
|
||||||
! Default System Options File For non-VAX To Link Agianst
|
! Default System Options File For AXP To Link Agianst
|
||||||
! The Sharable C Runtime Library.
|
! The Sharable C Runtime Library.
|
||||||
!
|
!
|
||||||
SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
|
SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
|
||||||
SYS$SHARE:CMA$OPEN_RTL/SHARE
|
SYS$SHARE:CMA$OPEN_RTL/SHARE
|
||||||
$EOD
|
$EOD
|
||||||
$!
|
$!
|
||||||
$! End The DEC C Option File Check.
|
$! End The VAX/AXP DEC C Option File Check.
|
||||||
$!
|
$!
|
||||||
$ ENDIF
|
$ ENDIF
|
||||||
$!
|
$!
|
||||||
@@ -586,7 +556,7 @@ $ ELSE
|
|||||||
$!
|
$!
|
||||||
$! Check To See If We Have VAXC Or DECC.
|
$! Check To See If We Have VAXC Or DECC.
|
||||||
$!
|
$!
|
||||||
$ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
|
$ IF (ARCH.EQS."AXP").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
|
||||||
$ THEN
|
$ THEN
|
||||||
$!
|
$!
|
||||||
$! Looks Like DECC, Set To Use DECC.
|
$! Looks Like DECC, Set To Use DECC.
|
||||||
@@ -696,7 +666,7 @@ $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
|
|||||||
$!
|
$!
|
||||||
$! Define The Linker Options File Name.
|
$! Define The Linker Options File Name.
|
||||||
$!
|
$!
|
||||||
$ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT"
|
$ OPT_FILE = "SYS$DISK:[]VAX_DECC_OPTIONS.OPT"
|
||||||
$!
|
$!
|
||||||
$! End DECC Check.
|
$! End DECC Check.
|
||||||
$!
|
$!
|
||||||
@@ -717,9 +687,9 @@ $!
|
|||||||
$! Compile Using VAXC.
|
$! Compile Using VAXC.
|
||||||
$!
|
$!
|
||||||
$ CC = "CC"
|
$ CC = "CC"
|
||||||
$ IF ARCH.NES."VAX"
|
$ IF ARCH.EQS."AXP"
|
||||||
$ THEN
|
$ THEN
|
||||||
$ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!"
|
$ WRITE SYS$OUTPUT "There is no VAX C on Alpha!"
|
||||||
$ EXIT
|
$ EXIT
|
||||||
$ ENDIF
|
$ ENDIF
|
||||||
$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
|
$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
|
||||||
@@ -733,7 +703,7 @@ $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
|
|||||||
$!
|
$!
|
||||||
$! Define The Linker Options File Name.
|
$! Define The Linker Options File Name.
|
||||||
$!
|
$!
|
||||||
$ OPT_FILE = "''EXE_DIR'VAX_VAXC_OPTIONS.OPT"
|
$ OPT_FILE = "SYS$DISK:[]VAX_VAXC_OPTIONS.OPT"
|
||||||
$!
|
$!
|
||||||
$! End VAXC Check
|
$! End VAXC Check
|
||||||
$!
|
$!
|
||||||
@@ -760,7 +730,7 @@ $ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
|
|||||||
$!
|
$!
|
||||||
$! Define The Linker Options File Name.
|
$! Define The Linker Options File Name.
|
||||||
$!
|
$!
|
||||||
$ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT"
|
$ OPT_FILE = "SYS$DISK:[]VAX_GNUC_OPTIONS.OPT"
|
||||||
$!
|
$!
|
||||||
$! End The GNU C Check.
|
$! End The GNU C Check.
|
||||||
$!
|
$!
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* nseq.c */
|
/* nseq.c */
|
||||||
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||||
* project 1999.
|
* project 1999.
|
||||||
*/
|
*/
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
|
214
apps/ocsp.c
214
apps/ocsp.c
@@ -1,5 +1,5 @@
|
|||||||
/* ocsp.c */
|
/* ocsp.c */
|
||||||
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||||
* project 2000.
|
* project 2000.
|
||||||
*/
|
*/
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
@@ -56,14 +56,15 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#ifndef OPENSSL_NO_OCSP
|
#ifndef OPENSSL_NO_OCSP
|
||||||
#define USE_SOCKETS
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "apps.h" /* needs to be included before the openssl headers! */
|
#include "apps.h"
|
||||||
#include <openssl/e_os2.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ocsp.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
|
#include <openssl/ssl.h>
|
||||||
|
#include <openssl/bn.h>
|
||||||
|
|
||||||
/* Maximum leeway in validity period: default 5 minutes */
|
/* Maximum leeway in validity period: default 5 minutes */
|
||||||
#define MAX_VALIDITY_PERIOD (5 * 60)
|
#define MAX_VALIDITY_PERIOD (5 * 60)
|
||||||
@@ -85,8 +86,6 @@ static char **lookup_serial(CA_DB *db, ASN1_INTEGER *ser);
|
|||||||
static BIO *init_responder(char *port);
|
static BIO *init_responder(char *port);
|
||||||
static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio, char *port);
|
static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio, char *port);
|
||||||
static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp);
|
static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp);
|
||||||
static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, char *path,
|
|
||||||
OCSP_REQUEST *req, int req_timeout);
|
|
||||||
|
|
||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG ocsp_main
|
#define PROG ocsp_main
|
||||||
@@ -113,11 +112,11 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO *acbio = NULL, *cbio = NULL;
|
BIO *acbio = NULL, *cbio = NULL;
|
||||||
BIO *derbio = NULL;
|
BIO *derbio = NULL;
|
||||||
BIO *out = NULL;
|
BIO *out = NULL;
|
||||||
int req_timeout = -1;
|
|
||||||
int req_text = 0, resp_text = 0;
|
int req_text = 0, resp_text = 0;
|
||||||
long nsec = MAX_VALIDITY_PERIOD, maxage = -1;
|
long nsec = MAX_VALIDITY_PERIOD, maxage = -1;
|
||||||
char *CAfile = NULL, *CApath = NULL;
|
char *CAfile = NULL, *CApath = NULL;
|
||||||
X509_STORE *store = NULL;
|
X509_STORE *store = NULL;
|
||||||
|
SSL_CTX *ctx = NULL;
|
||||||
STACK_OF(X509) *sign_other = NULL, *verify_other = NULL, *rother = NULL;
|
STACK_OF(X509) *sign_other = NULL, *verify_other = NULL, *rother = NULL;
|
||||||
char *sign_certfile = NULL, *verify_certfile = NULL, *rcertfile = NULL;
|
char *sign_certfile = NULL, *verify_certfile = NULL, *rcertfile = NULL;
|
||||||
unsigned long sign_flags = 0, verify_flags = 0, rflags = 0;
|
unsigned long sign_flags = 0, verify_flags = 0, rflags = 0;
|
||||||
@@ -155,22 +154,6 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else badarg = 1;
|
else badarg = 1;
|
||||||
}
|
}
|
||||||
else if (!strcmp(*args, "-timeout"))
|
|
||||||
{
|
|
||||||
if (args[1])
|
|
||||||
{
|
|
||||||
args++;
|
|
||||||
req_timeout = atol(*args);
|
|
||||||
if (req_timeout < 0)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,
|
|
||||||
"Illegal timeout value %s\n",
|
|
||||||
*args);
|
|
||||||
badarg = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else badarg = 1;
|
|
||||||
}
|
|
||||||
else if (!strcmp(*args, "-url"))
|
else if (!strcmp(*args, "-url"))
|
||||||
{
|
{
|
||||||
if (args[1])
|
if (args[1])
|
||||||
@@ -720,14 +703,52 @@ int MAIN(int argc, char **argv)
|
|||||||
else if (host)
|
else if (host)
|
||||||
{
|
{
|
||||||
#ifndef OPENSSL_NO_SOCK
|
#ifndef OPENSSL_NO_SOCK
|
||||||
resp = process_responder(bio_err, req, host, path,
|
cbio = BIO_new_connect(host);
|
||||||
port, use_ssl, req_timeout);
|
|
||||||
if (!resp)
|
|
||||||
goto end;
|
|
||||||
#else
|
#else
|
||||||
BIO_printf(bio_err, "Error creating connect BIO - sockets not supported.\n");
|
BIO_printf(bio_err, "Error creating connect BIO - sockets not supported.\n");
|
||||||
goto end;
|
goto end;
|
||||||
#endif
|
#endif
|
||||||
|
if (!cbio)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "Error creating connect BIO\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
if (port) BIO_set_conn_port(cbio, port);
|
||||||
|
if (use_ssl == 1)
|
||||||
|
{
|
||||||
|
BIO *sbio;
|
||||||
|
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
||||||
|
ctx = SSL_CTX_new(SSLv23_client_method());
|
||||||
|
#elif !defined(OPENSSL_NO_SSL3)
|
||||||
|
ctx = SSL_CTX_new(SSLv3_client_method());
|
||||||
|
#elif !defined(OPENSSL_NO_SSL2)
|
||||||
|
ctx = SSL_CTX_new(SSLv2_client_method());
|
||||||
|
#else
|
||||||
|
BIO_printf(bio_err, "SSL is disabled\n");
|
||||||
|
goto end;
|
||||||
|
#endif
|
||||||
|
if (ctx == NULL)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "Error creating SSL context.\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
|
||||||
|
sbio = BIO_new_ssl(ctx, 1);
|
||||||
|
cbio = BIO_push(sbio, cbio);
|
||||||
|
}
|
||||||
|
if (BIO_do_connect(cbio) <= 0)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "Error connecting BIO\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
resp = OCSP_sendreq_bio(cbio, path, req);
|
||||||
|
BIO_free_all(cbio);
|
||||||
|
cbio = NULL;
|
||||||
|
if (!resp)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "Error querying OCSP responsder\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (respin)
|
else if (respin)
|
||||||
{
|
{
|
||||||
@@ -876,6 +897,7 @@ end:
|
|||||||
OPENSSL_free(host);
|
OPENSSL_free(host);
|
||||||
OPENSSL_free(port);
|
OPENSSL_free(port);
|
||||||
OPENSSL_free(path);
|
OPENSSL_free(path);
|
||||||
|
SSL_CTX_free(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
@@ -1099,7 +1121,6 @@ static char **lookup_serial(CA_DB *db, ASN1_INTEGER *ser)
|
|||||||
char *itmp, *row[DB_NUMBER],**rrow;
|
char *itmp, *row[DB_NUMBER],**rrow;
|
||||||
for (i = 0; i < DB_NUMBER; i++) row[i] = NULL;
|
for (i = 0; i < DB_NUMBER; i++) row[i] = NULL;
|
||||||
bn = ASN1_INTEGER_to_BN(ser,NULL);
|
bn = ASN1_INTEGER_to_BN(ser,NULL);
|
||||||
OPENSSL_assert(bn); /* FIXME: should report an error at this point and abort */
|
|
||||||
if (BN_is_zero(bn))
|
if (BN_is_zero(bn))
|
||||||
itmp = BUF_strdup("00");
|
itmp = BUF_strdup("00");
|
||||||
else
|
else
|
||||||
@@ -1210,137 +1231,4 @@ static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, char *path,
|
|
||||||
OCSP_REQUEST *req, int req_timeout)
|
|
||||||
{
|
|
||||||
int fd;
|
|
||||||
int rv;
|
|
||||||
OCSP_REQ_CTX *ctx = NULL;
|
|
||||||
OCSP_RESPONSE *rsp = NULL;
|
|
||||||
fd_set confds;
|
|
||||||
struct timeval tv;
|
|
||||||
|
|
||||||
if (req_timeout != -1)
|
|
||||||
BIO_set_nbio(cbio, 1);
|
|
||||||
|
|
||||||
rv = BIO_do_connect(cbio);
|
|
||||||
|
|
||||||
if ((rv <= 0) && ((req_timeout == -1) || !BIO_should_retry(cbio)))
|
|
||||||
{
|
|
||||||
BIO_puts(err, "Error connecting BIO\n");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (req_timeout == -1)
|
|
||||||
return OCSP_sendreq_bio(cbio, path, req);
|
|
||||||
|
|
||||||
if (BIO_get_fd(cbio, &fd) <= 0)
|
|
||||||
{
|
|
||||||
BIO_puts(err, "Can't get connection fd\n");
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rv <= 0)
|
|
||||||
{
|
|
||||||
FD_ZERO(&confds);
|
|
||||||
openssl_fdset(fd, &confds);
|
|
||||||
tv.tv_usec = 0;
|
|
||||||
tv.tv_sec = req_timeout;
|
|
||||||
rv = select(fd + 1, NULL, (void *)&confds, NULL, &tv);
|
|
||||||
if (rv == 0)
|
|
||||||
{
|
|
||||||
BIO_puts(err, "Timeout on connect\n");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ctx = OCSP_sendreq_new(cbio, path, req, -1);
|
|
||||||
if (!ctx)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
rv = OCSP_sendreq_nbio(&rsp, ctx);
|
|
||||||
if (rv != -1)
|
|
||||||
break;
|
|
||||||
FD_ZERO(&confds);
|
|
||||||
openssl_fdset(fd, &confds);
|
|
||||||
tv.tv_usec = 0;
|
|
||||||
tv.tv_sec = req_timeout;
|
|
||||||
if (BIO_should_read(cbio))
|
|
||||||
rv = select(fd + 1, (void *)&confds, NULL, NULL, &tv);
|
|
||||||
else if (BIO_should_write(cbio))
|
|
||||||
rv = select(fd + 1, NULL, (void *)&confds, NULL, &tv);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
BIO_puts(err, "Unexpected retry condition\n");
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
if (rv == 0)
|
|
||||||
{
|
|
||||||
BIO_puts(err, "Timeout on request\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (rv == -1)
|
|
||||||
{
|
|
||||||
BIO_puts(err, "Select error\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
err:
|
|
||||||
if (ctx)
|
|
||||||
OCSP_REQ_CTX_free(ctx);
|
|
||||||
|
|
||||||
return rsp;
|
|
||||||
}
|
|
||||||
|
|
||||||
OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
|
|
||||||
char *host, char *path, char *port, int use_ssl,
|
|
||||||
int req_timeout)
|
|
||||||
{
|
|
||||||
BIO *cbio = NULL;
|
|
||||||
SSL_CTX *ctx = NULL;
|
|
||||||
OCSP_RESPONSE *resp = NULL;
|
|
||||||
cbio = BIO_new_connect(host);
|
|
||||||
if (!cbio)
|
|
||||||
{
|
|
||||||
BIO_printf(err, "Error creating connect BIO\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
if (port) BIO_set_conn_port(cbio, port);
|
|
||||||
if (use_ssl == 1)
|
|
||||||
{
|
|
||||||
BIO *sbio;
|
|
||||||
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
|
||||||
ctx = SSL_CTX_new(SSLv23_client_method());
|
|
||||||
#elif !defined(OPENSSL_NO_SSL3)
|
|
||||||
ctx = SSL_CTX_new(SSLv3_client_method());
|
|
||||||
#elif !defined(OPENSSL_NO_SSL2)
|
|
||||||
ctx = SSL_CTX_new(SSLv2_client_method());
|
|
||||||
#else
|
|
||||||
BIO_printf(err, "SSL is disabled\n");
|
|
||||||
goto end;
|
|
||||||
#endif
|
|
||||||
if (ctx == NULL)
|
|
||||||
{
|
|
||||||
BIO_printf(err, "Error creating SSL context.\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
|
|
||||||
sbio = BIO_new_ssl(ctx, 1);
|
|
||||||
cbio = BIO_push(sbio, cbio);
|
|
||||||
}
|
|
||||||
resp = query_responder(err, cbio, path, req, req_timeout);
|
|
||||||
if (!resp)
|
|
||||||
BIO_printf(bio_err, "Error querying OCSP responsder\n");
|
|
||||||
end:
|
|
||||||
if (ctx)
|
|
||||||
SSL_CTX_free(ctx);
|
|
||||||
if (cbio)
|
|
||||||
BIO_free_all(cbio);
|
|
||||||
return resp;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -8,9 +8,8 @@
|
|||||||
HOME = .
|
HOME = .
|
||||||
RANDFILE = $ENV::HOME/.rnd
|
RANDFILE = $ENV::HOME/.rnd
|
||||||
|
|
||||||
# Extra OBJECT IDENTIFIER info:
|
# Uncomment out to enable OpenSSL configuration see config(3)
|
||||||
#oid_file = $ENV::HOME/.oid
|
# openssl_conf = openssl_init
|
||||||
oid_section = new_oids
|
|
||||||
|
|
||||||
# To use this configuration file with the "-extfile" option of the
|
# To use this configuration file with the "-extfile" option of the
|
||||||
# "openssl x509" utility, name here the section containing the
|
# "openssl x509" utility, name here the section containing the
|
||||||
@@ -19,13 +18,22 @@ oid_section = new_oids
|
|||||||
# (Alternatively, use a configuration file that has only
|
# (Alternatively, use a configuration file that has only
|
||||||
# X.509v3 extensions in its main [= default] section.)
|
# X.509v3 extensions in its main [= default] section.)
|
||||||
|
|
||||||
|
[openssl_init]
|
||||||
|
# Extra OBJECT IDENTIFIER info:
|
||||||
|
oid_section = new_oids
|
||||||
|
alg_section = algs
|
||||||
|
|
||||||
[ new_oids ]
|
[ new_oids ]
|
||||||
|
|
||||||
# We can add new OIDs in here for use by 'ca' and 'req'.
|
# We can add new OIDs in here for use by any config aware application
|
||||||
# Add a simple OID like this:
|
# Add a simple OID like this:
|
||||||
# testoid1=1.2.3.4
|
# shortname=Long Object Identifier Name, 1.2.3.4
|
||||||
# Or use config file substitution like this:
|
# Or use config file substitution like this:
|
||||||
# testoid2=${testoid1}.5.6
|
# testoid2=OID2 LONG NAME, ${testoid1}.5.6, OTHER OID
|
||||||
|
|
||||||
|
[ algs ]
|
||||||
|
# Algorithm configuration options. Currently just fips_mode
|
||||||
|
fips_mode = no
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
[ ca ]
|
[ ca ]
|
||||||
@@ -141,7 +149,7 @@ localityName = Locality Name (eg, city)
|
|||||||
organizationalUnitName = Organizational Unit Name (eg, section)
|
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||||
#organizationalUnitName_default =
|
#organizationalUnitName_default =
|
||||||
|
|
||||||
commonName = Common Name (e.g. server FQDN or YOUR name)
|
commonName = Common Name (eg, YOUR name)
|
||||||
commonName_max = 64
|
commonName_max = 64
|
||||||
|
|
||||||
emailAddress = Email Address
|
emailAddress = Email Address
|
||||||
|
@@ -235,19 +235,16 @@ int main(int Argc, char *Argv[])
|
|||||||
|
|
||||||
in_FIPS_mode = 0;
|
in_FIPS_mode = 0;
|
||||||
|
|
||||||
if(getenv("OPENSSL_FIPS")) {
|
|
||||||
#ifdef OPENSSL_FIPS
|
#ifdef OPENSSL_FIPS
|
||||||
|
if(getenv("OPENSSL_FIPS")) {
|
||||||
if (!FIPS_mode_set(1)) {
|
if (!FIPS_mode_set(1)) {
|
||||||
ERR_load_crypto_strings();
|
ERR_load_crypto_strings();
|
||||||
ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
|
ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
|
||||||
EXIT(1);
|
EXIT(1);
|
||||||
}
|
}
|
||||||
in_FIPS_mode = 1;
|
in_FIPS_mode = 1;
|
||||||
#else
|
|
||||||
fprintf(stderr, "FIPS mode not supported.\n");
|
|
||||||
EXIT(1);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (bio_err == NULL)
|
if (bio_err == NULL)
|
||||||
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
|
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
|
||||||
@@ -336,8 +333,7 @@ int main(int Argc, char *Argv[])
|
|||||||
else prompt="OpenSSL> ";
|
else prompt="OpenSSL> ";
|
||||||
fputs(prompt,stdout);
|
fputs(prompt,stdout);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
if (!fgets(p,n,stdin))
|
fgets(p,n,stdin);
|
||||||
goto end;
|
|
||||||
if (p[0] == '\0') goto end;
|
if (p[0] == '\0') goto end;
|
||||||
i=strlen(p);
|
i=strlen(p);
|
||||||
if (i <= 1) break;
|
if (i <= 1) break;
|
||||||
|
@@ -8,9 +8,8 @@
|
|||||||
HOME = .
|
HOME = .
|
||||||
RANDFILE = $ENV::HOME/.rnd
|
RANDFILE = $ENV::HOME/.rnd
|
||||||
|
|
||||||
# Extra OBJECT IDENTIFIER info:
|
# Uncomment out to enable OpenSSL configuration see config(3)
|
||||||
#oid_file = $ENV::HOME/.oid
|
# openssl_conf = openssl_init
|
||||||
oid_section = new_oids
|
|
||||||
|
|
||||||
# To use this configuration file with the "-extfile" option of the
|
# To use this configuration file with the "-extfile" option of the
|
||||||
# "openssl x509" utility, name here the section containing the
|
# "openssl x509" utility, name here the section containing the
|
||||||
@@ -19,13 +18,22 @@ oid_section = new_oids
|
|||||||
# (Alternatively, use a configuration file that has only
|
# (Alternatively, use a configuration file that has only
|
||||||
# X.509v3 extensions in its main [= default] section.)
|
# X.509v3 extensions in its main [= default] section.)
|
||||||
|
|
||||||
|
[openssl_init]
|
||||||
|
# Extra OBJECT IDENTIFIER info:
|
||||||
|
oid_section = new_oids
|
||||||
|
alg_section = algs
|
||||||
|
|
||||||
[ new_oids ]
|
[ new_oids ]
|
||||||
|
|
||||||
# We can add new OIDs in here for use by 'ca' and 'req'.
|
# We can add new OIDs in here for use by any config aware application
|
||||||
# Add a simple OID like this:
|
# Add a simple OID like this:
|
||||||
# testoid1=1.2.3.4
|
# shortname=Long Object Identifier Name, 1.2.3.4
|
||||||
# Or use config file substitution like this:
|
# Or use config file substitution like this:
|
||||||
# testoid2=${testoid1}.5.6
|
# testoid2=OID2 LONG NAME, ${testoid1}.5.6, OTHER OID
|
||||||
|
|
||||||
|
[ algs ]
|
||||||
|
# Algorithm configuration options. Currently just fips_mode
|
||||||
|
fips_mode = no
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
[ ca ]
|
[ ca ]
|
||||||
@@ -141,7 +149,7 @@ localityName = Locality Name (eg, city)
|
|||||||
organizationalUnitName = Organizational Unit Name (eg, section)
|
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||||
#organizationalUnitName_default =
|
#organizationalUnitName_default =
|
||||||
|
|
||||||
commonName = Common Name (e.g. server FQDN or YOUR name)
|
commonName = Common Name (eg, YOUR name)
|
||||||
commonName_max = 64
|
commonName_max = 64
|
||||||
|
|
||||||
emailAddress = Email Address
|
emailAddress = Email Address
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* pkcs12.c */
|
/* pkcs12.c */
|
||||||
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||||
* project.
|
* project.
|
||||||
*/
|
*/
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
@@ -68,12 +68,6 @@
|
|||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/pkcs12.h>
|
#include <openssl/pkcs12.h>
|
||||||
|
|
||||||
#ifdef OPENSSL_SYS_NETWARE
|
|
||||||
/* Rename these functions to avoid name clashes on NetWare OS */
|
|
||||||
#define uni2asc OPENSSL_uni2asc
|
|
||||||
#define asc2uni OPENSSL_asc2uni
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PROG pkcs12_main
|
#define PROG pkcs12_main
|
||||||
|
|
||||||
const EVP_CIPHER *enc;
|
const EVP_CIPHER *enc;
|
||||||
@@ -106,7 +100,6 @@ int MAIN(int argc, char **argv)
|
|||||||
char **args;
|
char **args;
|
||||||
char *name = NULL;
|
char *name = NULL;
|
||||||
char *csp_name = NULL;
|
char *csp_name = NULL;
|
||||||
int add_lmk = 0;
|
|
||||||
PKCS12 *p12 = NULL;
|
PKCS12 *p12 = NULL;
|
||||||
char pass[50], macpass[50];
|
char pass[50], macpass[50];
|
||||||
int export_cert = 0;
|
int export_cert = 0;
|
||||||
@@ -238,9 +231,7 @@ int MAIN(int argc, char **argv)
|
|||||||
args++;
|
args++;
|
||||||
name = *args;
|
name = *args;
|
||||||
} else badarg = 1;
|
} else badarg = 1;
|
||||||
} else if (!strcmp (*args, "-LMK"))
|
} else if (!strcmp (*args, "-CSP")) {
|
||||||
add_lmk = 1;
|
|
||||||
else if (!strcmp (*args, "-CSP")) {
|
|
||||||
if (args[1]) {
|
if (args[1]) {
|
||||||
args++;
|
args++;
|
||||||
csp_name = *args;
|
csp_name = *args;
|
||||||
@@ -354,8 +345,6 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err, "-rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
BIO_printf(bio_err, "-rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
||||||
BIO_printf(bio_err, " load the file (or the files in the directory) into\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, " the random number generator\n");
|
||||||
BIO_printf(bio_err, "-CSP name Microsoft CSP name\n");
|
|
||||||
BIO_printf(bio_err, "-LMK Add local machine keyset attribute to private key\n");
|
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -495,7 +484,7 @@ int MAIN(int argc, char **argv)
|
|||||||
X509_keyid_set1(ucert, NULL, 0);
|
X509_keyid_set1(ucert, NULL, 0);
|
||||||
X509_alias_set1(ucert, NULL, 0);
|
X509_alias_set1(ucert, NULL, 0);
|
||||||
/* Remove from list */
|
/* Remove from list */
|
||||||
(void)sk_X509_delete(certs, i);
|
sk_X509_delete(certs, i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -580,9 +569,7 @@ int MAIN(int argc, char **argv)
|
|||||||
if (csp_name && key)
|
if (csp_name && key)
|
||||||
EVP_PKEY_add1_attr_by_NID(key, NID_ms_csp_name,
|
EVP_PKEY_add1_attr_by_NID(key, NID_ms_csp_name,
|
||||||
MBSTRING_ASC, (unsigned char *)csp_name, -1);
|
MBSTRING_ASC, (unsigned char *)csp_name, -1);
|
||||||
|
|
||||||
if (add_lmk && key)
|
|
||||||
EVP_PKEY_add1_attr_by_NID(key, NID_LocalKeySet, 0, NULL, -1);
|
|
||||||
|
|
||||||
#ifdef CRYPTO_MDEBUG
|
#ifdef CRYPTO_MDEBUG
|
||||||
CRYPTO_pop_info();
|
CRYPTO_pop_info();
|
||||||
@@ -659,7 +646,7 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
if (!twopass) BUF_strlcpy(macpass, pass, sizeof macpass);
|
if (!twopass) BUF_strlcpy(macpass, pass, sizeof macpass);
|
||||||
|
|
||||||
if ((options & INFO) && p12->mac) BIO_printf (bio_err, "MAC Iteration %ld\n", p12->mac->iter ? ASN1_INTEGER_get (p12->mac->iter) : 1);
|
if (options & INFO) BIO_printf (bio_err, "MAC Iteration %ld\n", p12->mac->iter ? ASN1_INTEGER_get (p12->mac->iter) : 1);
|
||||||
if(macver) {
|
if(macver) {
|
||||||
#ifdef CRYPTO_MDEBUG
|
#ifdef CRYPTO_MDEBUG
|
||||||
CRYPTO_push_info("verify MAC");
|
CRYPTO_push_info("verify MAC");
|
||||||
|
@@ -82,6 +82,9 @@ int MAIN(int, char **);
|
|||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
PKCS7 *p7=NULL;
|
PKCS7 *p7=NULL;
|
||||||
int i,badops=0;
|
int i,badops=0;
|
||||||
BIO *in=NULL,*out=NULL;
|
BIO *in=NULL,*out=NULL;
|
||||||
@@ -177,7 +180,7 @@ bad:
|
|||||||
ERR_load_crypto_strings();
|
ERR_load_crypto_strings();
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
in=BIO_new(BIO_s_file());
|
in=BIO_new(BIO_s_file());
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* pkcs8.c */
|
/* pkcs8.c */
|
||||||
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||||
* project 1999-2004.
|
* project 1999-2004.
|
||||||
*/
|
*/
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
|
@@ -28,7 +28,6 @@ extern int speed_main(int argc,char *argv[]);
|
|||||||
extern int s_time_main(int argc,char *argv[]);
|
extern int s_time_main(int argc,char *argv[]);
|
||||||
extern int version_main(int argc,char *argv[]);
|
extern int version_main(int argc,char *argv[]);
|
||||||
extern int pkcs7_main(int argc,char *argv[]);
|
extern int pkcs7_main(int argc,char *argv[]);
|
||||||
extern int cms_main(int argc,char *argv[]);
|
|
||||||
extern int crl2pkcs7_main(int argc,char *argv[]);
|
extern int crl2pkcs7_main(int argc,char *argv[]);
|
||||||
extern int sess_id_main(int argc,char *argv[]);
|
extern int sess_id_main(int argc,char *argv[]);
|
||||||
extern int ciphers_main(int argc,char *argv[]);
|
extern int ciphers_main(int argc,char *argv[]);
|
||||||
@@ -110,9 +109,6 @@ FUNCTION functions[] = {
|
|||||||
#endif
|
#endif
|
||||||
{FUNC_TYPE_GENERAL,"version",version_main},
|
{FUNC_TYPE_GENERAL,"version",version_main},
|
||||||
{FUNC_TYPE_GENERAL,"pkcs7",pkcs7_main},
|
{FUNC_TYPE_GENERAL,"pkcs7",pkcs7_main},
|
||||||
#ifndef OPENSSL_NO_CMS
|
|
||||||
{FUNC_TYPE_GENERAL,"cms",cms_main},
|
|
||||||
#endif
|
|
||||||
{FUNC_TYPE_GENERAL,"crl2pkcs7",crl2pkcs7_main},
|
{FUNC_TYPE_GENERAL,"crl2pkcs7",crl2pkcs7_main},
|
||||||
{FUNC_TYPE_GENERAL,"sess_id",sess_id_main},
|
{FUNC_TYPE_GENERAL,"sess_id",sess_id_main},
|
||||||
#if !defined(OPENSSL_NO_SOCK) && !(defined(OPENSSL_NO_SSL2) && defined(OPENSSL_NO_SSL3))
|
#if !defined(OPENSSL_NO_SOCK) && !(defined(OPENSSL_NO_SSL2) && defined(OPENSSL_NO_SSL3))
|
||||||
|
@@ -43,8 +43,6 @@ foreach (@ARGV)
|
|||||||
{ print "#ifndef OPENSSL_NO_DH\n${str}#endif\n"; }
|
{ print "#ifndef OPENSSL_NO_DH\n${str}#endif\n"; }
|
||||||
elsif ( ($_ =~ /^pkcs12$/))
|
elsif ( ($_ =~ /^pkcs12$/))
|
||||||
{ print "#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_SHA1)\n${str}#endif\n"; }
|
{ print "#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_SHA1)\n${str}#endif\n"; }
|
||||||
elsif ( ($_ =~ /^cms$/))
|
|
||||||
{ print "#ifndef OPENSSL_NO_CMS\n${str}#endif\n"; }
|
|
||||||
else
|
else
|
||||||
{ print $str; }
|
{ print $str; }
|
||||||
}
|
}
|
||||||
|
32
apps/rand.c
32
apps/rand.c
@@ -68,8 +68,7 @@
|
|||||||
|
|
||||||
/* -out file - write to file
|
/* -out file - write to file
|
||||||
* -rand file:file - PRNG seed files
|
* -rand file:file - PRNG seed files
|
||||||
* -base64 - base64 encode output
|
* -base64 - encode output
|
||||||
* -hex - hex encode output
|
|
||||||
* num - write 'num' bytes
|
* num - write 'num' bytes
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -77,12 +76,14 @@ int MAIN(int, char **);
|
|||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
int i, r, ret = 1;
|
int i, r, ret = 1;
|
||||||
int badopt;
|
int badopt;
|
||||||
char *outfile = NULL;
|
char *outfile = NULL;
|
||||||
char *inrand = NULL;
|
char *inrand = NULL;
|
||||||
int base64 = 0;
|
int base64 = 0;
|
||||||
int hex = 0;
|
|
||||||
BIO *out = NULL;
|
BIO *out = NULL;
|
||||||
int num = -1;
|
int num = -1;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
@@ -132,13 +133,6 @@ int MAIN(int argc, char **argv)
|
|||||||
else
|
else
|
||||||
badopt = 1;
|
badopt = 1;
|
||||||
}
|
}
|
||||||
else if (strcmp(argv[i], "-hex") == 0)
|
|
||||||
{
|
|
||||||
if (!hex)
|
|
||||||
hex = 1;
|
|
||||||
else
|
|
||||||
badopt = 1;
|
|
||||||
}
|
|
||||||
else if (isdigit((unsigned char)argv[i][0]))
|
else if (isdigit((unsigned char)argv[i][0]))
|
||||||
{
|
{
|
||||||
if (num < 0)
|
if (num < 0)
|
||||||
@@ -154,9 +148,6 @@ int MAIN(int argc, char **argv)
|
|||||||
badopt = 1;
|
badopt = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hex && base64)
|
|
||||||
badopt = 1;
|
|
||||||
|
|
||||||
if (num < 0)
|
if (num < 0)
|
||||||
badopt = 1;
|
badopt = 1;
|
||||||
|
|
||||||
@@ -169,13 +160,12 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err, "-engine e - use engine e, possibly a hardware device.\n");
|
BIO_printf(bio_err, "-engine e - use engine e, possibly a hardware device.\n");
|
||||||
#endif
|
#endif
|
||||||
BIO_printf(bio_err, "-rand file%cfile%c... - seed PRNG from files\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
BIO_printf(bio_err, "-rand file%cfile%c... - seed PRNG from files\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
||||||
BIO_printf(bio_err, "-base64 - base64 encode output\n");
|
BIO_printf(bio_err, "-base64 - encode output\n");
|
||||||
BIO_printf(bio_err, "-hex - hex encode output\n");
|
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
setup_engine(bio_err, engine, 0);
|
e = setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
app_RAND_load_file(NULL, bio_err, (inrand != NULL));
|
app_RAND_load_file(NULL, bio_err, (inrand != NULL));
|
||||||
@@ -220,17 +210,9 @@ int MAIN(int argc, char **argv)
|
|||||||
r = RAND_bytes(buf, chunk);
|
r = RAND_bytes(buf, chunk);
|
||||||
if (r <= 0)
|
if (r <= 0)
|
||||||
goto err;
|
goto err;
|
||||||
if (!hex)
|
BIO_write(out, buf, chunk);
|
||||||
BIO_write(out, buf, chunk);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (i = 0; i < chunk; i++)
|
|
||||||
BIO_printf(out, "%02x", buf[i]);
|
|
||||||
}
|
|
||||||
num -= chunk;
|
num -= chunk;
|
||||||
}
|
}
|
||||||
if (hex)
|
|
||||||
BIO_puts(out, "\n");
|
|
||||||
(void)BIO_flush(out);
|
(void)BIO_flush(out);
|
||||||
|
|
||||||
app_RAND_write_file(NULL, bio_err);
|
app_RAND_write_file(NULL, bio_err);
|
||||||
|
15
apps/req.c
15
apps/req.c
@@ -719,7 +719,8 @@ bad:
|
|||||||
message */
|
message */
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
else
|
if (EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA ||
|
||||||
|
EVP_PKEY_type(pkey->type) == EVP_PKEY_EC)
|
||||||
{
|
{
|
||||||
char *randfile = NCONF_get_string(req_conf,SECTION,"RANDFILE");
|
char *randfile = NCONF_get_string(req_conf,SECTION,"RANDFILE");
|
||||||
if (randfile == NULL)
|
if (randfile == NULL)
|
||||||
@@ -1433,17 +1434,11 @@ start2: for (;;)
|
|||||||
|
|
||||||
BIO_snprintf(buf,sizeof buf,"%s_min",type);
|
BIO_snprintf(buf,sizeof buf,"%s_min",type);
|
||||||
if (!NCONF_get_number(req_conf,attr_sect,buf, &n_min))
|
if (!NCONF_get_number(req_conf,attr_sect,buf, &n_min))
|
||||||
{
|
|
||||||
ERR_clear_error();
|
|
||||||
n_min = -1;
|
n_min = -1;
|
||||||
}
|
|
||||||
|
|
||||||
BIO_snprintf(buf,sizeof buf,"%s_max",type);
|
BIO_snprintf(buf,sizeof buf,"%s_max",type);
|
||||||
if (!NCONF_get_number(req_conf,attr_sect,buf, &n_max))
|
if (!NCONF_get_number(req_conf,attr_sect,buf, &n_max))
|
||||||
{
|
|
||||||
ERR_clear_error();
|
|
||||||
n_max = -1;
|
n_max = -1;
|
||||||
}
|
|
||||||
|
|
||||||
if (!add_attribute_object(req,
|
if (!add_attribute_object(req,
|
||||||
v->value,def,value,nid,n_min,n_max, chtype))
|
v->value,def,value,nid,n_min,n_max, chtype))
|
||||||
@@ -1544,8 +1539,7 @@ start:
|
|||||||
buf[0]='\0';
|
buf[0]='\0';
|
||||||
if (!batch)
|
if (!batch)
|
||||||
{
|
{
|
||||||
if (!fgets(buf,sizeof buf,stdin))
|
fgets(buf,sizeof buf,stdin);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1603,8 +1597,7 @@ start:
|
|||||||
buf[0]='\0';
|
buf[0]='\0';
|
||||||
if (!batch)
|
if (!batch)
|
||||||
{
|
{
|
||||||
if (!fgets(buf,sizeof buf,stdin))
|
fgets(buf,sizeof buf,stdin);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* rsautl.c */
|
/* rsautl.c */
|
||||||
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||||
* project 2000.
|
* project 2000.
|
||||||
*/
|
*/
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
@@ -119,36 +119,24 @@ int MAIN(int argc, char **argv)
|
|||||||
while(argc >= 1)
|
while(argc >= 1)
|
||||||
{
|
{
|
||||||
if (!strcmp(*argv,"-in")) {
|
if (!strcmp(*argv,"-in")) {
|
||||||
if (--argc < 1)
|
if (--argc < 1) badarg = 1;
|
||||||
badarg = 1;
|
infile= *(++argv);
|
||||||
else
|
|
||||||
infile= *(++argv);
|
|
||||||
} else if (!strcmp(*argv,"-out")) {
|
} else if (!strcmp(*argv,"-out")) {
|
||||||
if (--argc < 1)
|
if (--argc < 1) badarg = 1;
|
||||||
badarg = 1;
|
outfile= *(++argv);
|
||||||
else
|
|
||||||
outfile= *(++argv);
|
|
||||||
} else if(!strcmp(*argv, "-inkey")) {
|
} else if(!strcmp(*argv, "-inkey")) {
|
||||||
if (--argc < 1)
|
if (--argc < 1) badarg = 1;
|
||||||
badarg = 1;
|
keyfile = *(++argv);
|
||||||
else
|
|
||||||
keyfile = *(++argv);
|
|
||||||
} else if (!strcmp(*argv,"-passin")) {
|
} else if (!strcmp(*argv,"-passin")) {
|
||||||
if (--argc < 1)
|
if (--argc < 1) badarg = 1;
|
||||||
badarg = 1;
|
passargin= *(++argv);
|
||||||
else
|
|
||||||
passargin= *(++argv);
|
|
||||||
} else if (strcmp(*argv,"-keyform") == 0) {
|
} else if (strcmp(*argv,"-keyform") == 0) {
|
||||||
if (--argc < 1)
|
if (--argc < 1) badarg = 1;
|
||||||
badarg = 1;
|
keyform=str2fmt(*(++argv));
|
||||||
else
|
|
||||||
keyform=str2fmt(*(++argv));
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
} else if(!strcmp(*argv, "-engine")) {
|
} else if(!strcmp(*argv, "-engine")) {
|
||||||
if (--argc < 1)
|
if (--argc < 1) badarg = 1;
|
||||||
badarg = 1;
|
engine = *(++argv);
|
||||||
else
|
|
||||||
engine = *(++argv);
|
|
||||||
#endif
|
#endif
|
||||||
} else if(!strcmp(*argv, "-pubin")) {
|
} else if(!strcmp(*argv, "-pubin")) {
|
||||||
key_type = KEY_PUBKEY;
|
key_type = KEY_PUBKEY;
|
||||||
|
@@ -167,10 +167,4 @@ long MS_CALLBACK bio_dump_callback(BIO *bio, int cmd, const char *argp,
|
|||||||
#ifdef HEADER_SSL_H
|
#ifdef HEADER_SSL_H
|
||||||
void MS_CALLBACK apps_ssl_info_callback(const SSL *s, int where, int ret);
|
void MS_CALLBACK apps_ssl_info_callback(const SSL *s, int where, int ret);
|
||||||
void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg);
|
void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg);
|
||||||
void MS_CALLBACK tlsext_cb(SSL *s, int client_server, int type,
|
|
||||||
unsigned char *data, int len,
|
|
||||||
void *arg);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int MS_CALLBACK generate_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len);
|
|
||||||
int MS_CALLBACK verify_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned int cookie_len);
|
|
||||||
|
164
apps/s_cb.c
164
apps/s_cb.c
@@ -117,17 +117,12 @@
|
|||||||
#undef NON_MAIN
|
#undef NON_MAIN
|
||||||
#undef USE_SOCKETS
|
#undef USE_SOCKETS
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/rand.h>
|
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
#include "s_apps.h"
|
#include "s_apps.h"
|
||||||
|
|
||||||
#define COOKIE_SECRET_LENGTH 16
|
|
||||||
|
|
||||||
int verify_depth=0;
|
int verify_depth=0;
|
||||||
int verify_error=X509_V_OK;
|
int verify_error=X509_V_OK;
|
||||||
unsigned char cookie_secret[COOKIE_SECRET_LENGTH];
|
|
||||||
int cookie_initialized=0;
|
|
||||||
|
|
||||||
int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
|
int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
|
||||||
{
|
{
|
||||||
@@ -343,12 +338,6 @@ void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
str_version = "???";
|
str_version = "???";
|
||||||
case DTLS1_VERSION:
|
|
||||||
str_version = "DTLS 1.0 ";
|
|
||||||
break;
|
|
||||||
case DTLS1_BAD_VER:
|
|
||||||
str_version = "DTLS 1.0 (bad) ";
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (version == SSL2_VERSION)
|
if (version == SSL2_VERSION)
|
||||||
@@ -412,10 +401,7 @@ void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (version == SSL3_VERSION ||
|
if (version == SSL3_VERSION || version == TLS1_VERSION)
|
||||||
version == TLS1_VERSION ||
|
|
||||||
version == DTLS1_VERSION ||
|
|
||||||
version == DTLS1_BAD_VER)
|
|
||||||
{
|
{
|
||||||
switch (content_type)
|
switch (content_type)
|
||||||
{
|
{
|
||||||
@@ -554,9 +540,6 @@ void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *
|
|||||||
case 15:
|
case 15:
|
||||||
str_details1 = ", CertificateVerify";
|
str_details1 = ", CertificateVerify";
|
||||||
break;
|
break;
|
||||||
case 3:
|
|
||||||
str_details1 = ", HelloVerifyRequest";
|
|
||||||
break;
|
|
||||||
case 16:
|
case 16:
|
||||||
str_details1 = ", ClientKeyExchange";
|
str_details1 = ", ClientKeyExchange";
|
||||||
break;
|
break;
|
||||||
@@ -592,148 +575,3 @@ void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *
|
|||||||
}
|
}
|
||||||
(void)BIO_flush(bio);
|
(void)BIO_flush(bio);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MS_CALLBACK tlsext_cb(SSL *s, int client_server, int type,
|
|
||||||
unsigned char *data, int len,
|
|
||||||
void *arg)
|
|
||||||
{
|
|
||||||
BIO *bio = arg;
|
|
||||||
char *extname;
|
|
||||||
|
|
||||||
switch(type)
|
|
||||||
{
|
|
||||||
case TLSEXT_TYPE_server_name:
|
|
||||||
extname = "server name";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TLSEXT_TYPE_max_fragment_length:
|
|
||||||
extname = "max fragment length";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TLSEXT_TYPE_client_certificate_url:
|
|
||||||
extname = "client certificate URL";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TLSEXT_TYPE_trusted_ca_keys:
|
|
||||||
extname = "trusted CA keys";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TLSEXT_TYPE_truncated_hmac:
|
|
||||||
extname = "truncated HMAC";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TLSEXT_TYPE_status_request:
|
|
||||||
extname = "status request";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TLSEXT_TYPE_elliptic_curves:
|
|
||||||
extname = "elliptic curves";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TLSEXT_TYPE_ec_point_formats:
|
|
||||||
extname = "EC point formats";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TLSEXT_TYPE_session_ticket:
|
|
||||||
extname = "server ticket";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TLSEXT_TYPE_renegotiate:
|
|
||||||
extname = "renegotiate";
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
extname = "unknown";
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
BIO_printf(bio, "TLS %s extension \"%s\" (id=%d), len=%d\n",
|
|
||||||
client_server ? "server": "client",
|
|
||||||
extname, type, len);
|
|
||||||
BIO_dump(bio, (char *)data, len);
|
|
||||||
(void)BIO_flush(bio);
|
|
||||||
}
|
|
||||||
|
|
||||||
int MS_CALLBACK generate_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len)
|
|
||||||
{
|
|
||||||
unsigned char *buffer, result[EVP_MAX_MD_SIZE];
|
|
||||||
unsigned int length, resultlength;
|
|
||||||
struct sockaddr_in peer;
|
|
||||||
|
|
||||||
/* Initialize a random secret */
|
|
||||||
if (!cookie_initialized)
|
|
||||||
{
|
|
||||||
if (!RAND_bytes(cookie_secret, COOKIE_SECRET_LENGTH))
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"error setting random cookie secret\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
cookie_initialized = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Read peer information */
|
|
||||||
(void)BIO_dgram_get_peer(SSL_get_rbio(ssl), &peer);
|
|
||||||
|
|
||||||
/* Create buffer with peer's address and port */
|
|
||||||
length = sizeof(peer.sin_addr);
|
|
||||||
length += sizeof(peer.sin_port);
|
|
||||||
buffer = OPENSSL_malloc(length);
|
|
||||||
|
|
||||||
if (buffer == NULL)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"out of memory\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy(buffer, &peer.sin_addr, sizeof(peer.sin_addr));
|
|
||||||
memcpy(buffer + sizeof(peer.sin_addr), &peer.sin_port, sizeof(peer.sin_port));
|
|
||||||
|
|
||||||
/* Calculate HMAC of buffer using the secret */
|
|
||||||
HMAC(EVP_sha1(), cookie_secret, COOKIE_SECRET_LENGTH,
|
|
||||||
buffer, length, result, &resultlength);
|
|
||||||
OPENSSL_free(buffer);
|
|
||||||
|
|
||||||
memcpy(cookie, result, resultlength);
|
|
||||||
*cookie_len = resultlength;
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int MS_CALLBACK verify_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned int cookie_len)
|
|
||||||
{
|
|
||||||
unsigned char *buffer, result[EVP_MAX_MD_SIZE];
|
|
||||||
unsigned int length, resultlength;
|
|
||||||
struct sockaddr_in peer;
|
|
||||||
|
|
||||||
/* If secret isn't initialized yet, the cookie can't be valid */
|
|
||||||
if (!cookie_initialized)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* Read peer information */
|
|
||||||
(void)BIO_dgram_get_peer(SSL_get_rbio(ssl), &peer);
|
|
||||||
|
|
||||||
/* Create buffer with peer's address and port */
|
|
||||||
length = sizeof(peer.sin_addr);
|
|
||||||
length += sizeof(peer.sin_port);
|
|
||||||
buffer = (unsigned char*) OPENSSL_malloc(length);
|
|
||||||
|
|
||||||
if (buffer == NULL)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"out of memory\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy(buffer, &peer.sin_addr, sizeof(peer.sin_addr));
|
|
||||||
memcpy(buffer + sizeof(peer.sin_addr), &peer.sin_port, sizeof(peer.sin_port));
|
|
||||||
|
|
||||||
/* Calculate HMAC of buffer using the secret */
|
|
||||||
HMAC(EVP_sha1(), cookie_secret, COOKIE_SECRET_LENGTH,
|
|
||||||
buffer, length, result, &resultlength);
|
|
||||||
OPENSSL_free(buffer);
|
|
||||||
|
|
||||||
if (cookie_len == resultlength && memcmp(result, cookie, resultlength) == 0)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
304
apps/s_client.c
304
apps/s_client.c
@@ -134,7 +134,6 @@ typedef unsigned int u_int;
|
|||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
#include <openssl/ocsp.h>
|
|
||||||
#include "s_apps.h"
|
#include "s_apps.h"
|
||||||
#include "timeouts.h"
|
#include "timeouts.h"
|
||||||
|
|
||||||
@@ -172,18 +171,11 @@ static int c_nbio=0;
|
|||||||
#endif
|
#endif
|
||||||
static int c_Pause=0;
|
static int c_Pause=0;
|
||||||
static int c_debug=0;
|
static int c_debug=0;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
static int c_tlsextdebug=0;
|
|
||||||
static int c_status_req=0;
|
|
||||||
#endif
|
|
||||||
static int c_msg=0;
|
static int c_msg=0;
|
||||||
static int c_showcerts=0;
|
static int c_showcerts=0;
|
||||||
|
|
||||||
static void sc_usage(void);
|
static void sc_usage(void);
|
||||||
static void print_stuff(BIO *berr,SSL *con,int full);
|
static void print_stuff(BIO *berr,SSL *con,int full);
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
static int ocsp_resp_cb(SSL *s, void *arg);
|
|
||||||
#endif
|
|
||||||
static BIO *bio_c_out=NULL;
|
static BIO *bio_c_out=NULL;
|
||||||
static int c_quiet=0;
|
static int c_quiet=0;
|
||||||
static int c_ign_eof=0;
|
static int c_ign_eof=0;
|
||||||
@@ -221,12 +213,11 @@ static void sc_usage(void)
|
|||||||
BIO_printf(bio_err," -crlf - convert LF from terminal into CRLF\n");
|
BIO_printf(bio_err," -crlf - convert LF from terminal into CRLF\n");
|
||||||
BIO_printf(bio_err," -quiet - no s_client output\n");
|
BIO_printf(bio_err," -quiet - no s_client output\n");
|
||||||
BIO_printf(bio_err," -ign_eof - ignore input eof (default when -quiet)\n");
|
BIO_printf(bio_err," -ign_eof - ignore input eof (default when -quiet)\n");
|
||||||
BIO_printf(bio_err," -no_ign_eof - don't ignore input eof\n");
|
|
||||||
BIO_printf(bio_err," -ssl2 - just use SSLv2\n");
|
BIO_printf(bio_err," -ssl2 - just use SSLv2\n");
|
||||||
BIO_printf(bio_err," -ssl3 - just use SSLv3\n");
|
BIO_printf(bio_err," -ssl3 - just use SSLv3\n");
|
||||||
BIO_printf(bio_err," -tls1 - just use TLSv1\n");
|
BIO_printf(bio_err," -tls1 - just use TLSv1\n");
|
||||||
BIO_printf(bio_err," -dtls1 - just use DTLSv1\n");
|
BIO_printf(bio_err," -dtls1 - just use DTLSv1\n");
|
||||||
BIO_printf(bio_err," -mtu - set the link layer MTU\n");
|
BIO_printf(bio_err," -mtu - set the MTU\n");
|
||||||
BIO_printf(bio_err," -no_tls1/-no_ssl3/-no_ssl2 - turn off that protocol\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," -bugs - Switch on all SSL implementation bug workarounds\n");
|
||||||
BIO_printf(bio_err," -serverpref - Use server's cipher preferences (only SSLv2)\n");
|
BIO_printf(bio_err," -serverpref - Use server's cipher preferences (only SSLv2)\n");
|
||||||
@@ -235,59 +226,28 @@ static void sc_usage(void)
|
|||||||
BIO_printf(bio_err," -starttls prot - use the STARTTLS command before starting TLS\n");
|
BIO_printf(bio_err," -starttls prot - use the STARTTLS command before starting TLS\n");
|
||||||
BIO_printf(bio_err," for those protocols that support it, where\n");
|
BIO_printf(bio_err," for those protocols that support it, where\n");
|
||||||
BIO_printf(bio_err," 'prot' defines which one to assume. Currently,\n");
|
BIO_printf(bio_err," 'prot' defines which one to assume. Currently,\n");
|
||||||
BIO_printf(bio_err," only \"smtp\", \"pop3\", \"imap\", \"ftp\" and \"xmpp\"\n");
|
BIO_printf(bio_err," only \"smtp\", \"pop3\", \"imap\", and \"ftp\" are supported.\n");
|
||||||
BIO_printf(bio_err," are supported.\n");
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
BIO_printf(bio_err," -engine id - Initialise and use the specified engine\n");
|
BIO_printf(bio_err," -engine id - Initialise and use the specified engine\n");
|
||||||
#endif
|
#endif
|
||||||
BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
||||||
BIO_printf(bio_err," -sess_out arg - file to write SSL session to\n");
|
|
||||||
BIO_printf(bio_err," -sess_in arg - file to read SSL session from\n");
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
BIO_printf(bio_err," -servername host - Set TLS extension servername in ClientHello\n");
|
|
||||||
BIO_printf(bio_err," -tlsextdebug - hex dump of all TLS extensions received\n");
|
|
||||||
BIO_printf(bio_err," -status - request certificate status from server\n");
|
|
||||||
BIO_printf(bio_err," -no_ticket - disable use of RFC4507bis session tickets\n");
|
|
||||||
#endif
|
|
||||||
BIO_printf(bio_err," -legacy_renegotiation - enable use of legacy renegotiation (dangerous)\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
|
|
||||||
/* This is a context that we pass to callbacks */
|
|
||||||
typedef struct tlsextctx_st {
|
|
||||||
BIO * biodebug;
|
|
||||||
int ack;
|
|
||||||
} tlsextctx;
|
|
||||||
|
|
||||||
|
|
||||||
static int MS_CALLBACK ssl_servername_cb(SSL *s, int *ad, void *arg)
|
|
||||||
{
|
|
||||||
tlsextctx * p = (tlsextctx *) arg;
|
|
||||||
const char * hn= SSL_get_servername(s, TLSEXT_NAMETYPE_host_name);
|
|
||||||
if (SSL_get_servername_type(s) != -1)
|
|
||||||
p->ack = !SSL_session_reused(s) && hn != NULL;
|
|
||||||
else
|
|
||||||
BIO_printf(bio_err,"Can't use SSL_get_servername\n");
|
|
||||||
|
|
||||||
return SSL_TLSEXT_ERR_OK;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
PROTO_OFF = 0,
|
PROTO_OFF = 0,
|
||||||
PROTO_SMTP,
|
PROTO_SMTP,
|
||||||
PROTO_POP3,
|
PROTO_POP3,
|
||||||
PROTO_IMAP,
|
PROTO_IMAP,
|
||||||
PROTO_FTP,
|
PROTO_FTP
|
||||||
PROTO_XMPP
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int off=0, clr = 0;
|
int off=0;
|
||||||
SSL *con=NULL,*con2=NULL;
|
SSL *con=NULL,*con2=NULL;
|
||||||
X509_STORE *store = NULL;
|
X509_STORE *store = NULL;
|
||||||
int s,k,width,state=0;
|
int s,k,width,state=0;
|
||||||
@@ -319,31 +279,18 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO *sbio;
|
BIO *sbio;
|
||||||
char *inrand=NULL;
|
char *inrand=NULL;
|
||||||
int mbuf_len=0;
|
int mbuf_len=0;
|
||||||
struct timeval timeout, *timeoutp;
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
char *engine_id=NULL;
|
char *engine_id=NULL;
|
||||||
char *ssl_client_engine_id=NULL;
|
|
||||||
ENGINE *ssl_client_engine=NULL;
|
|
||||||
#endif
|
|
||||||
ENGINE *e=NULL;
|
ENGINE *e=NULL;
|
||||||
|
#endif
|
||||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE)
|
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE)
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
char *servername = NULL;
|
|
||||||
tlsextctx tlsextcbp =
|
|
||||||
{NULL,0};
|
|
||||||
#endif
|
|
||||||
char *sess_in = NULL;
|
|
||||||
char *sess_out = NULL;
|
|
||||||
struct sockaddr peer;
|
struct sockaddr peer;
|
||||||
int peerlen = sizeof(peer);
|
int peerlen = sizeof(peer);
|
||||||
int enable_timeouts = 0 ;
|
int enable_timeouts = 0 ;
|
||||||
long socket_mtu = 0;
|
long mtu = 0;
|
||||||
#ifndef OPENSSL_NO_JPAKE
|
|
||||||
char *jpake_secret = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
||||||
meth=SSLv23_client_method();
|
meth=SSLv23_client_method();
|
||||||
@@ -414,16 +361,6 @@ int MAIN(int argc, char **argv)
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
cert_file= *(++argv);
|
cert_file= *(++argv);
|
||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-sess_out") == 0)
|
|
||||||
{
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
sess_out = *(++argv);
|
|
||||||
}
|
|
||||||
else if (strcmp(*argv,"-sess_in") == 0)
|
|
||||||
{
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
sess_in = *(++argv);
|
|
||||||
}
|
|
||||||
else if (strcmp(*argv,"-certform") == 0)
|
else if (strcmp(*argv,"-certform") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
@@ -444,18 +381,10 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-ign_eof") == 0)
|
else if (strcmp(*argv,"-ign_eof") == 0)
|
||||||
c_ign_eof=1;
|
c_ign_eof=1;
|
||||||
else if (strcmp(*argv,"-no_ign_eof") == 0)
|
|
||||||
c_ign_eof=0;
|
|
||||||
else if (strcmp(*argv,"-pause") == 0)
|
else if (strcmp(*argv,"-pause") == 0)
|
||||||
c_Pause=1;
|
c_Pause=1;
|
||||||
else if (strcmp(*argv,"-debug") == 0)
|
else if (strcmp(*argv,"-debug") == 0)
|
||||||
c_debug=1;
|
c_debug=1;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
else if (strcmp(*argv,"-tlsextdebug") == 0)
|
|
||||||
c_tlsextdebug=1;
|
|
||||||
else if (strcmp(*argv,"-status") == 0)
|
|
||||||
c_status_req=1;
|
|
||||||
#endif
|
|
||||||
#ifdef WATT32
|
#ifdef WATT32
|
||||||
else if (strcmp(*argv,"-wdebug") == 0)
|
else if (strcmp(*argv,"-wdebug") == 0)
|
||||||
dbug_init();
|
dbug_init();
|
||||||
@@ -491,7 +420,7 @@ int MAIN(int argc, char **argv)
|
|||||||
else if (strcmp(*argv,"-mtu") == 0)
|
else if (strcmp(*argv,"-mtu") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
socket_mtu = atol(*(++argv));
|
mtu = atol(*(++argv));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
else if (strcmp(*argv,"-bugs") == 0)
|
else if (strcmp(*argv,"-bugs") == 0)
|
||||||
@@ -531,18 +460,8 @@ int MAIN(int argc, char **argv)
|
|||||||
off|=SSL_OP_NO_SSLv3;
|
off|=SSL_OP_NO_SSLv3;
|
||||||
else if (strcmp(*argv,"-no_ssl2") == 0)
|
else if (strcmp(*argv,"-no_ssl2") == 0)
|
||||||
off|=SSL_OP_NO_SSLv2;
|
off|=SSL_OP_NO_SSLv2;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
else if (strcmp(*argv,"-no_ticket") == 0)
|
|
||||||
{ off|=SSL_OP_NO_TICKET; }
|
|
||||||
#endif
|
|
||||||
else if (strcmp(*argv,"-serverpref") == 0)
|
else if (strcmp(*argv,"-serverpref") == 0)
|
||||||
off|=SSL_OP_CIPHER_SERVER_PREFERENCE;
|
off|=SSL_OP_CIPHER_SERVER_PREFERENCE;
|
||||||
else if (strcmp(*argv,"-legacy_renegotiation") == 0)
|
|
||||||
off|=SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION;
|
|
||||||
else if (strcmp(*argv,"-legacy_server_connect") == 0)
|
|
||||||
{ off|=SSL_OP_LEGACY_SERVER_CONNECT; }
|
|
||||||
else if (strcmp(*argv,"-no_legacy_server_connect") == 0)
|
|
||||||
{ clr|=SSL_OP_LEGACY_SERVER_CONNECT; }
|
|
||||||
else if (strcmp(*argv,"-cipher") == 0)
|
else if (strcmp(*argv,"-cipher") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
@@ -564,8 +483,6 @@ int MAIN(int argc, char **argv)
|
|||||||
starttls_proto = PROTO_IMAP;
|
starttls_proto = PROTO_IMAP;
|
||||||
else if (strcmp(*argv,"ftp") == 0)
|
else if (strcmp(*argv,"ftp") == 0)
|
||||||
starttls_proto = PROTO_FTP;
|
starttls_proto = PROTO_FTP;
|
||||||
else if (strcmp(*argv, "xmpp") == 0)
|
|
||||||
starttls_proto = PROTO_XMPP;
|
|
||||||
else
|
else
|
||||||
goto bad;
|
goto bad;
|
||||||
}
|
}
|
||||||
@@ -575,32 +492,12 @@ int MAIN(int argc, char **argv)
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
engine_id = *(++argv);
|
engine_id = *(++argv);
|
||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-ssl_client_engine") == 0)
|
|
||||||
{
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
ssl_client_engine_id = *(++argv);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
else if (strcmp(*argv,"-rand") == 0)
|
else if (strcmp(*argv,"-rand") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
inrand= *(++argv);
|
inrand= *(++argv);
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
else if (strcmp(*argv,"-servername") == 0)
|
|
||||||
{
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
servername= *(++argv);
|
|
||||||
/* meth=TLSv1_client_method(); */
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_JPAKE
|
|
||||||
else if (strcmp(*argv,"-jpake") == 0)
|
|
||||||
{
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
jpake_secret = *++argv;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
||||||
@@ -622,16 +519,6 @@ bad:
|
|||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
e = setup_engine(bio_err, engine_id, 1);
|
e = setup_engine(bio_err, engine_id, 1);
|
||||||
if (ssl_client_engine_id)
|
|
||||||
{
|
|
||||||
ssl_client_engine = ENGINE_by_id(ssl_client_engine_id);
|
|
||||||
if (!ssl_client_engine)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,
|
|
||||||
"Error getting client auth engine\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
if (!app_passwd(bio_err, passarg, NULL, &pass, NULL))
|
if (!app_passwd(bio_err, passarg, NULL, &pass, NULL))
|
||||||
{
|
{
|
||||||
@@ -699,27 +586,10 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if (ssl_client_engine)
|
|
||||||
{
|
|
||||||
if (!SSL_CTX_set_client_cert_engine(ctx, ssl_client_engine))
|
|
||||||
{
|
|
||||||
BIO_puts(bio_err, "Error setting client auth engine\n");
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
ENGINE_free(ssl_client_engine);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
ENGINE_free(ssl_client_engine);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (bugs)
|
if (bugs)
|
||||||
SSL_CTX_set_options(ctx,SSL_OP_ALL|off);
|
SSL_CTX_set_options(ctx,SSL_OP_ALL|off);
|
||||||
else
|
else
|
||||||
SSL_CTX_set_options(ctx,off);
|
SSL_CTX_set_options(ctx,off);
|
||||||
|
|
||||||
if (clr)
|
|
||||||
SSL_CTX_clear_options(ctx, clr);
|
|
||||||
/* DTLS: partial reads end up discarding unread UDP bytes :-(
|
/* DTLS: partial reads end up discarding unread UDP bytes :-(
|
||||||
* Setting read ahead solves this problem.
|
* Setting read ahead solves this problem.
|
||||||
*/
|
*/
|
||||||
@@ -751,51 +621,8 @@ bad:
|
|||||||
|
|
||||||
store = SSL_CTX_get_cert_store(ctx);
|
store = SSL_CTX_get_cert_store(ctx);
|
||||||
X509_STORE_set_flags(store, vflags);
|
X509_STORE_set_flags(store, vflags);
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (servername != NULL)
|
|
||||||
{
|
|
||||||
tlsextcbp.biodebug = bio_err;
|
|
||||||
SSL_CTX_set_tlsext_servername_callback(ctx, ssl_servername_cb);
|
|
||||||
SSL_CTX_set_tlsext_servername_arg(ctx, &tlsextcbp);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
con=SSL_new(ctx);
|
con=SSL_new(ctx);
|
||||||
if (sess_in)
|
|
||||||
{
|
|
||||||
SSL_SESSION *sess;
|
|
||||||
BIO *stmp = BIO_new_file(sess_in, "r");
|
|
||||||
if (!stmp)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err, "Can't open session file %s\n",
|
|
||||||
sess_in);
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
sess = PEM_read_bio_SSL_SESSION(stmp, NULL, 0, NULL);
|
|
||||||
BIO_free(stmp);
|
|
||||||
if (!sess)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err, "Can't open session file %s\n",
|
|
||||||
sess_in);
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
SSL_set_session(con, sess);
|
|
||||||
SSL_SESSION_free(sess);
|
|
||||||
}
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (servername != NULL)
|
|
||||||
{
|
|
||||||
if (!SSL_set_tlsext_host_name(con,servername))
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"Unable to set TLS servername extension.\n");
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_KRB5
|
#ifndef OPENSSL_NO_KRB5
|
||||||
if (con && (con->kssl_ctx = kssl_ctx_new()) != NULL)
|
if (con && (con->kssl_ctx = kssl_ctx_new()) != NULL)
|
||||||
{
|
{
|
||||||
@@ -830,6 +657,7 @@ re_start:
|
|||||||
|
|
||||||
if ( SSL_version(con) == DTLS1_VERSION)
|
if ( SSL_version(con) == DTLS1_VERSION)
|
||||||
{
|
{
|
||||||
|
struct timeval timeout;
|
||||||
|
|
||||||
sbio=BIO_new_dgram(s,BIO_NOCLOSE);
|
sbio=BIO_new_dgram(s,BIO_NOCLOSE);
|
||||||
if (getsockname(s, &peer, (void *)&peerlen) < 0)
|
if (getsockname(s, &peer, (void *)&peerlen) < 0)
|
||||||
@@ -853,10 +681,10 @@ re_start:
|
|||||||
BIO_ctrl(sbio, BIO_CTRL_DGRAM_SET_SEND_TIMEOUT, 0, &timeout);
|
BIO_ctrl(sbio, BIO_CTRL_DGRAM_SET_SEND_TIMEOUT, 0, &timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (socket_mtu > 28)
|
if ( mtu > 0)
|
||||||
{
|
{
|
||||||
SSL_set_options(con, SSL_OP_NO_QUERY_MTU);
|
SSL_set_options(con, SSL_OP_NO_QUERY_MTU);
|
||||||
SSL_set_mtu(con, socket_mtu - 28);
|
SSL_set_mtu(con, mtu);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
/* want to do MTU discovery */
|
/* want to do MTU discovery */
|
||||||
@@ -865,6 +693,8 @@ re_start:
|
|||||||
else
|
else
|
||||||
sbio=BIO_new_socket(s,BIO_NOCLOSE);
|
sbio=BIO_new_socket(s,BIO_NOCLOSE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (nbio_test)
|
if (nbio_test)
|
||||||
{
|
{
|
||||||
BIO *test;
|
BIO *test;
|
||||||
@@ -884,34 +714,6 @@ re_start:
|
|||||||
SSL_set_msg_callback(con, msg_cb);
|
SSL_set_msg_callback(con, msg_cb);
|
||||||
SSL_set_msg_callback_arg(con, bio_c_out);
|
SSL_set_msg_callback_arg(con, bio_c_out);
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (c_tlsextdebug)
|
|
||||||
{
|
|
||||||
SSL_set_tlsext_debug_callback(con, tlsext_cb);
|
|
||||||
SSL_set_tlsext_debug_arg(con, bio_c_out);
|
|
||||||
}
|
|
||||||
if (c_status_req)
|
|
||||||
{
|
|
||||||
SSL_set_tlsext_status_type(con, TLSEXT_STATUSTYPE_ocsp);
|
|
||||||
SSL_CTX_set_tlsext_status_cb(ctx, ocsp_resp_cb);
|
|
||||||
SSL_CTX_set_tlsext_status_arg(ctx, bio_c_out);
|
|
||||||
#if 0
|
|
||||||
{
|
|
||||||
STACK_OF(OCSP_RESPID) *ids = sk_OCSP_RESPID_new_null();
|
|
||||||
OCSP_RESPID *id = OCSP_RESPID_new();
|
|
||||||
id->value.byKey = ASN1_OCTET_STRING_new();
|
|
||||||
id->type = V_OCSP_RESPID_KEY;
|
|
||||||
ASN1_STRING_set(id->value.byKey, "Hello World", -1);
|
|
||||||
sk_OCSP_RESPID_push(ids, id);
|
|
||||||
SSL_set_tlsext_status_ids(con, ids);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_JPAKE
|
|
||||||
if (jpake_secret)
|
|
||||||
jpake_client_auth(bio_c_out, sbio, jpake_secret);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SSL_set_bio(con,sbio,sbio);
|
SSL_set_bio(con,sbio,sbio);
|
||||||
SSL_set_connect_state(con);
|
SSL_set_connect_state(con);
|
||||||
@@ -1018,40 +820,12 @@ SSL_set_tlsext_status_ids(con, ids);
|
|||||||
BIO_printf(sbio,"AUTH TLS\r\n");
|
BIO_printf(sbio,"AUTH TLS\r\n");
|
||||||
BIO_read(sbio,sbuf,BUFSIZZ);
|
BIO_read(sbio,sbuf,BUFSIZZ);
|
||||||
}
|
}
|
||||||
if (starttls_proto == PROTO_XMPP)
|
|
||||||
{
|
|
||||||
int seen = 0;
|
|
||||||
BIO_printf(sbio,"<stream:stream "
|
|
||||||
"xmlns:stream='http://etherx.jabber.org/streams' "
|
|
||||||
"xmlns='jabber:client' to='%s' version='1.0'>", host);
|
|
||||||
seen = BIO_read(sbio,mbuf,BUFSIZZ);
|
|
||||||
mbuf[seen] = 0;
|
|
||||||
while (!strstr(mbuf, "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'"))
|
|
||||||
{
|
|
||||||
if (strstr(mbuf, "/stream:features>"))
|
|
||||||
goto shut;
|
|
||||||
seen = BIO_read(sbio,mbuf,BUFSIZZ);
|
|
||||||
mbuf[seen] = 0;
|
|
||||||
}
|
|
||||||
BIO_printf(sbio, "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>");
|
|
||||||
seen = BIO_read(sbio,sbuf,BUFSIZZ);
|
|
||||||
sbuf[seen] = 0;
|
|
||||||
if (!strstr(sbuf, "<proceed"))
|
|
||||||
goto shut;
|
|
||||||
mbuf[0] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
FD_ZERO(&readfds);
|
FD_ZERO(&readfds);
|
||||||
FD_ZERO(&writefds);
|
FD_ZERO(&writefds);
|
||||||
|
|
||||||
if ((SSL_version(con) == DTLS1_VERSION) &&
|
|
||||||
DTLSv1_get_timeout(con, &timeout))
|
|
||||||
timeoutp = &timeout;
|
|
||||||
else
|
|
||||||
timeoutp = NULL;
|
|
||||||
|
|
||||||
if (SSL_in_init(con) && !SSL_total_renegotiations(con))
|
if (SSL_in_init(con) && !SSL_total_renegotiations(con))
|
||||||
{
|
{
|
||||||
in_init=1;
|
in_init=1;
|
||||||
@@ -1063,17 +837,6 @@ SSL_set_tlsext_status_ids(con, ids);
|
|||||||
if (in_init)
|
if (in_init)
|
||||||
{
|
{
|
||||||
in_init=0;
|
in_init=0;
|
||||||
if (sess_out)
|
|
||||||
{
|
|
||||||
BIO *stmp = BIO_new_file(sess_out, "w");
|
|
||||||
if (stmp)
|
|
||||||
{
|
|
||||||
PEM_write_bio_SSL_SESSION(stmp, SSL_get_session(con));
|
|
||||||
BIO_free(stmp);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
BIO_printf(bio_err, "Error writing session file %s\n", sess_out);
|
|
||||||
}
|
|
||||||
print_stuff(bio_c_out,con,full_log);
|
print_stuff(bio_c_out,con,full_log);
|
||||||
if (full_log > 0) full_log--;
|
if (full_log > 0) full_log--;
|
||||||
|
|
||||||
@@ -1148,7 +911,7 @@ SSL_set_tlsext_status_ids(con, ids);
|
|||||||
if(!i && (!((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) || !read_tty) ) continue;
|
if(!i && (!((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) || !read_tty) ) continue;
|
||||||
#endif
|
#endif
|
||||||
} else i=select(width,(void *)&readfds,(void *)&writefds,
|
} else i=select(width,(void *)&readfds,(void *)&writefds,
|
||||||
NULL,timeoutp);
|
NULL,NULL);
|
||||||
}
|
}
|
||||||
#elif defined(OPENSSL_SYS_NETWARE)
|
#elif defined(OPENSSL_SYS_NETWARE)
|
||||||
if(!write_tty) {
|
if(!write_tty) {
|
||||||
@@ -1158,11 +921,11 @@ SSL_set_tlsext_status_ids(con, ids);
|
|||||||
i=select(width,(void *)&readfds,(void *)&writefds,
|
i=select(width,(void *)&readfds,(void *)&writefds,
|
||||||
NULL,&tv);
|
NULL,&tv);
|
||||||
} else i=select(width,(void *)&readfds,(void *)&writefds,
|
} else i=select(width,(void *)&readfds,(void *)&writefds,
|
||||||
NULL,timeoutp);
|
NULL,NULL);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
i=select(width,(void *)&readfds,(void *)&writefds,
|
i=select(width,(void *)&readfds,(void *)&writefds,
|
||||||
NULL,timeoutp);
|
NULL,NULL);
|
||||||
#endif
|
#endif
|
||||||
if ( i < 0)
|
if ( i < 0)
|
||||||
{
|
{
|
||||||
@@ -1173,11 +936,6 @@ SSL_set_tlsext_status_ids(con, ids);
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((SSL_version(con) == DTLS1_VERSION) && DTLSv1_handle_timeout(con) > 0)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"TIMEOUT occured\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ssl_pending && FD_ISSET(SSL_get_fd(con),&writefds))
|
if (!ssl_pending && FD_ISSET(SSL_get_fd(con),&writefds))
|
||||||
{
|
{
|
||||||
k=SSL_write(con,&(cbuf[cbuf_off]),
|
k=SSL_write(con,&(cbuf[cbuf_off]),
|
||||||
@@ -1532,8 +1290,6 @@ static void print_stuff(BIO *bio, SSL *s, int full)
|
|||||||
EVP_PKEY_bits(pktmp));
|
EVP_PKEY_bits(pktmp));
|
||||||
EVP_PKEY_free(pktmp);
|
EVP_PKEY_free(pktmp);
|
||||||
}
|
}
|
||||||
BIO_printf(bio, "Secure Renegotiation IS%s supported\n",
|
|
||||||
SSL_get_secure_renegotiation_support(s) ? "" : " NOT");
|
|
||||||
#ifndef OPENSSL_NO_COMP
|
#ifndef OPENSSL_NO_COMP
|
||||||
comp=SSL_get_current_compression(s);
|
comp=SSL_get_current_compression(s);
|
||||||
expansion=SSL_get_current_expansion(s);
|
expansion=SSL_get_current_expansion(s);
|
||||||
@@ -1550,31 +1306,3 @@ static void print_stuff(BIO *bio, SSL *s, int full)
|
|||||||
(void)BIO_flush(bio);
|
(void)BIO_flush(bio);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
|
|
||||||
static int ocsp_resp_cb(SSL *s, void *arg)
|
|
||||||
{
|
|
||||||
const unsigned char *p;
|
|
||||||
int len;
|
|
||||||
OCSP_RESPONSE *rsp;
|
|
||||||
len = SSL_get_tlsext_status_ocsp_resp(s, &p);
|
|
||||||
BIO_puts(arg, "OCSP response: ");
|
|
||||||
if (!p)
|
|
||||||
{
|
|
||||||
BIO_puts(arg, "no response sent\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
rsp = d2i_OCSP_RESPONSE(NULL, &p, len);
|
|
||||||
if (!rsp)
|
|
||||||
{
|
|
||||||
BIO_puts(arg, "response parse error\n");
|
|
||||||
BIO_dump_indent(arg, (char *)p, len, 4);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
BIO_puts(arg, "\n======================================\n");
|
|
||||||
OCSP_RESPONSE_print(arg, rsp, 0);
|
|
||||||
BIO_puts(arg, "======================================\n");
|
|
||||||
OCSP_RESPONSE_free(rsp);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
#endif /* ndef OPENSSL_NO_TLSEXT */
|
|
||||||
|
564
apps/s_server.c
564
apps/s_server.c
@@ -153,7 +153,6 @@ typedef unsigned int u_int;
|
|||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
#include <openssl/ocsp.h>
|
|
||||||
#ifndef OPENSSL_NO_DH
|
#ifndef OPENSSL_NO_DH
|
||||||
#include <openssl/dh.h>
|
#include <openssl/dh.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -239,9 +238,6 @@ static int bufsize=BUFSIZZ;
|
|||||||
static int accept_socket= -1;
|
static int accept_socket= -1;
|
||||||
|
|
||||||
#define TEST_CERT "server.pem"
|
#define TEST_CERT "server.pem"
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
#define TEST_CERT2 "server2.pem"
|
|
||||||
#endif
|
|
||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG s_server_main
|
#define PROG s_server_main
|
||||||
|
|
||||||
@@ -251,9 +247,6 @@ static char *cipher=NULL;
|
|||||||
static int s_server_verify=SSL_VERIFY_NONE;
|
static int s_server_verify=SSL_VERIFY_NONE;
|
||||||
static int s_server_session_id_context = 1; /* anything will do */
|
static int s_server_session_id_context = 1; /* anything will do */
|
||||||
static const char *s_cert_file=TEST_CERT,*s_key_file=NULL;
|
static const char *s_cert_file=TEST_CERT,*s_key_file=NULL;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
static const char *s_cert_file2=TEST_CERT2,*s_key_file2=NULL;
|
|
||||||
#endif
|
|
||||||
static char *s_dcert_file=NULL,*s_dkey_file=NULL;
|
static char *s_dcert_file=NULL,*s_dkey_file=NULL;
|
||||||
#ifdef FIONBIO
|
#ifdef FIONBIO
|
||||||
static int s_nbio=0;
|
static int s_nbio=0;
|
||||||
@@ -261,18 +254,10 @@ static int s_nbio=0;
|
|||||||
static int s_nbio_test=0;
|
static int s_nbio_test=0;
|
||||||
int s_crlf=0;
|
int s_crlf=0;
|
||||||
static SSL_CTX *ctx=NULL;
|
static SSL_CTX *ctx=NULL;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
static SSL_CTX *ctx2=NULL;
|
|
||||||
#endif
|
|
||||||
static int www=0;
|
static int www=0;
|
||||||
|
|
||||||
static BIO *bio_s_out=NULL;
|
static BIO *bio_s_out=NULL;
|
||||||
static int s_debug=0;
|
static int s_debug=0;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
static int s_tlsextdebug=0;
|
|
||||||
static int s_tlsextstatus=0;
|
|
||||||
static int cert_status_cb(SSL *s, void *arg);
|
|
||||||
#endif
|
|
||||||
static int s_msg=0;
|
static int s_msg=0;
|
||||||
static int s_quiet=0;
|
static int s_quiet=0;
|
||||||
|
|
||||||
@@ -283,10 +268,11 @@ static char *engine_id=NULL;
|
|||||||
static const char *session_id_prefix=NULL;
|
static const char *session_id_prefix=NULL;
|
||||||
|
|
||||||
static int enable_timeouts = 0;
|
static int enable_timeouts = 0;
|
||||||
static long socket_mtu;
|
#ifdef mtu
|
||||||
#ifndef OPENSSL_NO_DTLS1
|
#undef mtu
|
||||||
static int cert_chain = 0;
|
|
||||||
#endif
|
#endif
|
||||||
|
static long mtu;
|
||||||
|
static int cert_chain = 0;
|
||||||
|
|
||||||
|
|
||||||
#ifdef MONOLITH
|
#ifdef MONOLITH
|
||||||
@@ -299,11 +285,6 @@ static void s_server_init(void)
|
|||||||
s_dkey_file=NULL;
|
s_dkey_file=NULL;
|
||||||
s_cert_file=TEST_CERT;
|
s_cert_file=TEST_CERT;
|
||||||
s_key_file=NULL;
|
s_key_file=NULL;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
s_cert_file2=TEST_CERT2;
|
|
||||||
s_key_file2=NULL;
|
|
||||||
ctx2=NULL;
|
|
||||||
#endif
|
|
||||||
#ifdef FIONBIO
|
#ifdef FIONBIO
|
||||||
s_nbio=0;
|
s_nbio=0;
|
||||||
#endif
|
#endif
|
||||||
@@ -332,11 +313,6 @@ static void sv_usage(void)
|
|||||||
BIO_printf(bio_err," -Verify arg - turn on peer certificate verification, must have a cert.\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\n");
|
BIO_printf(bio_err," -cert arg - certificate file to use\n");
|
||||||
BIO_printf(bio_err," (default is %s)\n",TEST_CERT);
|
BIO_printf(bio_err," (default is %s)\n",TEST_CERT);
|
||||||
BIO_printf(bio_err," -crl_check - check the peer certificate has not been revoked by its CA.\n" \
|
|
||||||
" The CRL(s) are appended to the certificate file\n");
|
|
||||||
BIO_printf(bio_err," -crl_check_all - check the peer certificate has not been revoked by its CA\n" \
|
|
||||||
" or any other CRL in the CA chain. CRL(s) are appened to the\n" \
|
|
||||||
" the certificate file.\n");
|
|
||||||
BIO_printf(bio_err," -certform arg - certificate format (PEM or DER) PEM default\n");
|
BIO_printf(bio_err," -certform arg - certificate format (PEM or DER) PEM default\n");
|
||||||
BIO_printf(bio_err," -key arg - Private Key file to use, in cert file if\n");
|
BIO_printf(bio_err," -key arg - Private Key file to use, in cert file if\n");
|
||||||
BIO_printf(bio_err," not specified (default is %s)\n",TEST_CERT);
|
BIO_printf(bio_err," not specified (default is %s)\n",TEST_CERT);
|
||||||
@@ -374,7 +350,7 @@ static void sv_usage(void)
|
|||||||
BIO_printf(bio_err," -tls1 - Just talk TLSv1\n");
|
BIO_printf(bio_err," -tls1 - Just talk TLSv1\n");
|
||||||
BIO_printf(bio_err," -dtls1 - Just talk DTLSv1\n");
|
BIO_printf(bio_err," -dtls1 - Just talk DTLSv1\n");
|
||||||
BIO_printf(bio_err," -timeout - Enable timeouts\n");
|
BIO_printf(bio_err," -timeout - Enable timeouts\n");
|
||||||
BIO_printf(bio_err," -mtu - Set link layer MTU\n");
|
BIO_printf(bio_err," -mtu - Set MTU\n");
|
||||||
BIO_printf(bio_err," -chain - Read a certificate chain\n");
|
BIO_printf(bio_err," -chain - Read a certificate chain\n");
|
||||||
BIO_printf(bio_err," -no_ssl2 - Just disable SSLv2\n");
|
BIO_printf(bio_err," -no_ssl2 - Just disable SSLv2\n");
|
||||||
BIO_printf(bio_err," -no_ssl3 - Just disable SSLv3\n");
|
BIO_printf(bio_err," -no_ssl3 - Just disable SSLv3\n");
|
||||||
@@ -395,17 +371,6 @@ static void sv_usage(void)
|
|||||||
#endif
|
#endif
|
||||||
BIO_printf(bio_err," -id_prefix arg - Generate SSL/TLS session IDs prefixed by 'arg'\n");
|
BIO_printf(bio_err," -id_prefix arg - Generate SSL/TLS session IDs prefixed by 'arg'\n");
|
||||||
BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
BIO_printf(bio_err," -servername host - servername for HostName TLS extension\n");
|
|
||||||
BIO_printf(bio_err," -servername_fatal - on mismatch send fatal alert (default warning alert)\n");
|
|
||||||
BIO_printf(bio_err," -cert2 arg - certificate file to use for servername\n");
|
|
||||||
BIO_printf(bio_err," (default is %s)\n",TEST_CERT2);
|
|
||||||
BIO_printf(bio_err," -key2 arg - Private Key file to use for servername, in cert file if\n");
|
|
||||||
BIO_printf(bio_err," not specified (default is %s)\n",TEST_CERT2);
|
|
||||||
BIO_printf(bio_err," -tlsextdebug - hex dump of all TLS extensions received\n");
|
|
||||||
BIO_printf(bio_err," -no_ticket - disable use of RFC4507bis session tickets\n");
|
|
||||||
BIO_printf(bio_err," -legacy_renegotiation - enable use of legacy renegotiation (dangerous)\n");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int local_argc=0;
|
static int local_argc=0;
|
||||||
@@ -561,191 +526,8 @@ static int ebcdic_puts(BIO *bp, const char *str)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
|
|
||||||
/* This is a context that we pass to callbacks */
|
|
||||||
typedef struct tlsextctx_st {
|
|
||||||
char * servername;
|
|
||||||
BIO * biodebug;
|
|
||||||
int extension_error;
|
|
||||||
} tlsextctx;
|
|
||||||
|
|
||||||
|
|
||||||
static int MS_CALLBACK ssl_servername_cb(SSL *s, int *ad, void *arg)
|
|
||||||
{
|
|
||||||
tlsextctx * p = (tlsextctx *) arg;
|
|
||||||
const char * servername = SSL_get_servername(s, TLSEXT_NAMETYPE_host_name);
|
|
||||||
if (servername && p->biodebug)
|
|
||||||
BIO_printf(p->biodebug,"Hostname in TLS extension: \"%s\"\n",servername);
|
|
||||||
|
|
||||||
if (!p->servername)
|
|
||||||
return SSL_TLSEXT_ERR_NOACK;
|
|
||||||
|
|
||||||
if (servername)
|
|
||||||
{
|
|
||||||
if (strcmp(servername,p->servername))
|
|
||||||
return p->extension_error;
|
|
||||||
if (ctx2)
|
|
||||||
{
|
|
||||||
BIO_printf(p->biodebug,"Swiching server context.\n");
|
|
||||||
SSL_set_SSL_CTX(s,ctx2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return SSL_TLSEXT_ERR_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Structure passed to cert status callback */
|
|
||||||
|
|
||||||
typedef struct tlsextstatusctx_st {
|
|
||||||
/* Default responder to use */
|
|
||||||
char *host, *path, *port;
|
|
||||||
int use_ssl;
|
|
||||||
int timeout;
|
|
||||||
BIO *err;
|
|
||||||
int verbose;
|
|
||||||
} tlsextstatusctx;
|
|
||||||
|
|
||||||
static tlsextstatusctx tlscstatp = {NULL, NULL, NULL, 0, -1, NULL, 0};
|
|
||||||
|
|
||||||
/* Certificate Status callback. This is called when a client includes a
|
|
||||||
* certificate status request extension.
|
|
||||||
*
|
|
||||||
* This is a simplified version. It examines certificates each time and
|
|
||||||
* makes one OCSP responder query for each request.
|
|
||||||
*
|
|
||||||
* A full version would store details such as the OCSP certificate IDs and
|
|
||||||
* minimise the number of OCSP responses by caching them until they were
|
|
||||||
* considered "expired".
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int cert_status_cb(SSL *s, void *arg)
|
|
||||||
{
|
|
||||||
tlsextstatusctx *srctx = arg;
|
|
||||||
BIO *err = srctx->err;
|
|
||||||
char *host, *port, *path;
|
|
||||||
int use_ssl;
|
|
||||||
unsigned char *rspder = NULL;
|
|
||||||
int rspderlen;
|
|
||||||
STACK *aia = NULL;
|
|
||||||
X509 *x = NULL;
|
|
||||||
X509_STORE_CTX inctx;
|
|
||||||
X509_OBJECT obj;
|
|
||||||
OCSP_REQUEST *req = NULL;
|
|
||||||
OCSP_RESPONSE *resp = NULL;
|
|
||||||
OCSP_CERTID *id = NULL;
|
|
||||||
STACK_OF(X509_EXTENSION) *exts;
|
|
||||||
int ret = SSL_TLSEXT_ERR_NOACK;
|
|
||||||
int i;
|
|
||||||
#if 0
|
|
||||||
STACK_OF(OCSP_RESPID) *ids;
|
|
||||||
SSL_get_tlsext_status_ids(s, &ids);
|
|
||||||
BIO_printf(err, "cert_status: received %d ids\n", sk_OCSP_RESPID_num(ids));
|
|
||||||
#endif
|
|
||||||
if (srctx->verbose)
|
|
||||||
BIO_puts(err, "cert_status: callback called\n");
|
|
||||||
/* Build up OCSP query from server certificate */
|
|
||||||
x = SSL_get_certificate(s);
|
|
||||||
aia = X509_get1_ocsp(x);
|
|
||||||
if (aia)
|
|
||||||
{
|
|
||||||
if (!OCSP_parse_url(sk_value(aia, 0),
|
|
||||||
&host, &port, &path, &use_ssl))
|
|
||||||
{
|
|
||||||
BIO_puts(err, "cert_status: can't parse AIA URL\n");
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
if (srctx->verbose)
|
|
||||||
BIO_printf(err, "cert_status: AIA URL: %s\n",
|
|
||||||
sk_value(aia, 0));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!srctx->host)
|
|
||||||
{
|
|
||||||
BIO_puts(srctx->err, "cert_status: no AIA and no default responder URL\n");
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
host = srctx->host;
|
|
||||||
path = srctx->path;
|
|
||||||
port = srctx->port;
|
|
||||||
use_ssl = srctx->use_ssl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!X509_STORE_CTX_init(&inctx,
|
|
||||||
SSL_CTX_get_cert_store(SSL_get_SSL_CTX(s)),
|
|
||||||
NULL, NULL))
|
|
||||||
goto err;
|
|
||||||
if (X509_STORE_get_by_subject(&inctx,X509_LU_X509,
|
|
||||||
X509_get_issuer_name(x),&obj) <= 0)
|
|
||||||
{
|
|
||||||
BIO_puts(err, "cert_status: Can't retrieve issuer certificate.\n");
|
|
||||||
X509_STORE_CTX_cleanup(&inctx);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
req = OCSP_REQUEST_new();
|
|
||||||
if (!req)
|
|
||||||
goto err;
|
|
||||||
id = OCSP_cert_to_id(NULL, x, obj.data.x509);
|
|
||||||
X509_free(obj.data.x509);
|
|
||||||
X509_STORE_CTX_cleanup(&inctx);
|
|
||||||
if (!id)
|
|
||||||
goto err;
|
|
||||||
if (!OCSP_request_add0_id(req, id))
|
|
||||||
goto err;
|
|
||||||
id = NULL;
|
|
||||||
/* Add any extensions to the request */
|
|
||||||
SSL_get_tlsext_status_exts(s, &exts);
|
|
||||||
for (i = 0; i < sk_X509_EXTENSION_num(exts); i++)
|
|
||||||
{
|
|
||||||
X509_EXTENSION *ext = sk_X509_EXTENSION_value(exts, i);
|
|
||||||
if (!OCSP_REQUEST_add_ext(req, ext, -1))
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
resp = process_responder(err, req, host, path, port, use_ssl,
|
|
||||||
srctx->timeout);
|
|
||||||
if (!resp)
|
|
||||||
{
|
|
||||||
BIO_puts(err, "cert_status: error querying responder\n");
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
rspderlen = i2d_OCSP_RESPONSE(resp, &rspder);
|
|
||||||
if (rspderlen <= 0)
|
|
||||||
goto err;
|
|
||||||
SSL_set_tlsext_status_ocsp_resp(s, rspder, rspderlen);
|
|
||||||
if (srctx->verbose)
|
|
||||||
{
|
|
||||||
BIO_puts(err, "cert_status: ocsp response sent:\n");
|
|
||||||
OCSP_RESPONSE_print(err, resp, 2);
|
|
||||||
}
|
|
||||||
ret = SSL_TLSEXT_ERR_OK;
|
|
||||||
done:
|
|
||||||
if (ret != SSL_TLSEXT_ERR_OK)
|
|
||||||
ERR_print_errors(err);
|
|
||||||
if (aia)
|
|
||||||
{
|
|
||||||
OPENSSL_free(host);
|
|
||||||
OPENSSL_free(path);
|
|
||||||
OPENSSL_free(port);
|
|
||||||
X509_email_free(aia);
|
|
||||||
}
|
|
||||||
if (id)
|
|
||||||
OCSP_CERTID_free(id);
|
|
||||||
if (req)
|
|
||||||
OCSP_REQUEST_free(req);
|
|
||||||
if (resp)
|
|
||||||
OCSP_RESPONSE_free(resp);
|
|
||||||
return ret;
|
|
||||||
err:
|
|
||||||
ret = SSL_TLSEXT_ERR_ALERT_FATAL;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_JPAKE
|
|
||||||
static char *jpake_secret = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int MAIN(int argc, char *argv[])
|
int MAIN(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
X509_STORE *store = NULL;
|
X509_STORE *store = NULL;
|
||||||
@@ -763,8 +545,13 @@ int MAIN(int argc, char *argv[])
|
|||||||
int no_tmp_rsa=0,no_dhe=0,no_ecdhe=0,nocert=0;
|
int no_tmp_rsa=0,no_dhe=0,no_ecdhe=0,nocert=0;
|
||||||
int state=0;
|
int state=0;
|
||||||
SSL_METHOD *meth=NULL;
|
SSL_METHOD *meth=NULL;
|
||||||
int socket_type=SOCK_STREAM;
|
#ifdef sock_type
|
||||||
|
#undef sock_type
|
||||||
|
#endif
|
||||||
|
int sock_type=SOCK_STREAM;
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
ENGINE *e=NULL;
|
ENGINE *e=NULL;
|
||||||
|
#endif
|
||||||
char *inrand=NULL;
|
char *inrand=NULL;
|
||||||
int s_cert_format = FORMAT_PEM, s_key_format = FORMAT_PEM;
|
int s_cert_format = FORMAT_PEM, s_key_format = FORMAT_PEM;
|
||||||
char *passarg = NULL, *pass = NULL;
|
char *passarg = NULL, *pass = NULL;
|
||||||
@@ -772,14 +559,6 @@ int MAIN(int argc, char *argv[])
|
|||||||
int s_dcert_format = FORMAT_PEM, s_dkey_format = FORMAT_PEM;
|
int s_dcert_format = FORMAT_PEM, s_dkey_format = FORMAT_PEM;
|
||||||
X509 *s_cert = NULL, *s_dcert = NULL;
|
X509 *s_cert = NULL, *s_dcert = NULL;
|
||||||
EVP_PKEY *s_key = NULL, *s_dkey = NULL;
|
EVP_PKEY *s_key = NULL, *s_dkey = NULL;
|
||||||
int no_cache = 0;
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
EVP_PKEY *s_key2 = NULL;
|
|
||||||
X509 *s_cert2 = NULL;
|
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
tlsextctx tlsextcbp = {NULL, NULL, SSL_TLSEXT_ERR_ALERT_WARNING};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
||||||
meth=SSLv23_server_method();
|
meth=SSLv23_server_method();
|
||||||
@@ -912,20 +691,16 @@ int MAIN(int argc, char *argv[])
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
CApath= *(++argv);
|
CApath= *(++argv);
|
||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-no_cache") == 0)
|
|
||||||
no_cache = 1;
|
|
||||||
else if (strcmp(*argv,"-crl_check") == 0)
|
else if (strcmp(*argv,"-crl_check") == 0)
|
||||||
{
|
{
|
||||||
vflags |= X509_V_FLAG_CRL_CHECK;
|
vflags |= X509_V_FLAG_CRL_CHECK;
|
||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-crl_check_all") == 0)
|
else if (strcmp(*argv,"-crl_check") == 0)
|
||||||
{
|
{
|
||||||
vflags |= X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL;
|
vflags |= X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL;
|
||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-serverpref") == 0)
|
else if (strcmp(*argv,"-serverpref") == 0)
|
||||||
{ off|=SSL_OP_CIPHER_SERVER_PREFERENCE; }
|
{ off|=SSL_OP_CIPHER_SERVER_PREFERENCE; }
|
||||||
else if (strcmp(*argv,"-legacy_renegotiation") == 0)
|
|
||||||
off|=SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION;
|
|
||||||
else if (strcmp(*argv,"-cipher") == 0)
|
else if (strcmp(*argv,"-cipher") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
@@ -949,37 +724,6 @@ int MAIN(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-debug") == 0)
|
else if (strcmp(*argv,"-debug") == 0)
|
||||||
{ s_debug=1; }
|
{ s_debug=1; }
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
else if (strcmp(*argv,"-tlsextdebug") == 0)
|
|
||||||
s_tlsextdebug=1;
|
|
||||||
else if (strcmp(*argv,"-status") == 0)
|
|
||||||
s_tlsextstatus=1;
|
|
||||||
else if (strcmp(*argv,"-status_verbose") == 0)
|
|
||||||
{
|
|
||||||
s_tlsextstatus=1;
|
|
||||||
tlscstatp.verbose = 1;
|
|
||||||
}
|
|
||||||
else if (!strcmp(*argv, "-status_timeout"))
|
|
||||||
{
|
|
||||||
s_tlsextstatus=1;
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
tlscstatp.timeout = atoi(*(++argv));
|
|
||||||
}
|
|
||||||
else if (!strcmp(*argv, "-status_url"))
|
|
||||||
{
|
|
||||||
s_tlsextstatus=1;
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
if (!OCSP_parse_url(*(++argv),
|
|
||||||
&tlscstatp.host,
|
|
||||||
&tlscstatp.port,
|
|
||||||
&tlscstatp.path,
|
|
||||||
&tlscstatp.use_ssl))
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err, "Error parsing URL\n");
|
|
||||||
goto bad;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
else if (strcmp(*argv,"-msg") == 0)
|
else if (strcmp(*argv,"-msg") == 0)
|
||||||
{ s_msg=1; }
|
{ s_msg=1; }
|
||||||
else if (strcmp(*argv,"-hack") == 0)
|
else if (strcmp(*argv,"-hack") == 0)
|
||||||
@@ -1010,10 +754,6 @@ int MAIN(int argc, char *argv[])
|
|||||||
{ off|=SSL_OP_NO_SSLv3; }
|
{ off|=SSL_OP_NO_SSLv3; }
|
||||||
else if (strcmp(*argv,"-no_tls1") == 0)
|
else if (strcmp(*argv,"-no_tls1") == 0)
|
||||||
{ off|=SSL_OP_NO_TLSv1; }
|
{ off|=SSL_OP_NO_TLSv1; }
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
else if (strcmp(*argv,"-no_ticket") == 0)
|
|
||||||
{ off|=SSL_OP_NO_TICKET; }
|
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_SSL2
|
#ifndef OPENSSL_NO_SSL2
|
||||||
else if (strcmp(*argv,"-ssl2") == 0)
|
else if (strcmp(*argv,"-ssl2") == 0)
|
||||||
{ meth=SSLv2_server_method(); }
|
{ meth=SSLv2_server_method(); }
|
||||||
@@ -1030,14 +770,14 @@ int MAIN(int argc, char *argv[])
|
|||||||
else if (strcmp(*argv,"-dtls1") == 0)
|
else if (strcmp(*argv,"-dtls1") == 0)
|
||||||
{
|
{
|
||||||
meth=DTLSv1_server_method();
|
meth=DTLSv1_server_method();
|
||||||
socket_type = SOCK_DGRAM;
|
sock_type = SOCK_DGRAM;
|
||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-timeout") == 0)
|
else if (strcmp(*argv,"-timeout") == 0)
|
||||||
enable_timeouts = 1;
|
enable_timeouts = 1;
|
||||||
else if (strcmp(*argv,"-mtu") == 0)
|
else if (strcmp(*argv,"-mtu") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
socket_mtu = atol(*(++argv));
|
mtu = atol(*(++argv));
|
||||||
}
|
}
|
||||||
else if (strcmp(*argv, "-chain") == 0)
|
else if (strcmp(*argv, "-chain") == 0)
|
||||||
cert_chain = 1;
|
cert_chain = 1;
|
||||||
@@ -1059,33 +799,6 @@ int MAIN(int argc, char *argv[])
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
inrand= *(++argv);
|
inrand= *(++argv);
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
else if (strcmp(*argv,"-servername") == 0)
|
|
||||||
{
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
tlsextcbp.servername= *(++argv);
|
|
||||||
}
|
|
||||||
else if (strcmp(*argv,"-servername_fatal") == 0)
|
|
||||||
{ tlsextcbp.extension_error = SSL_TLSEXT_ERR_ALERT_FATAL; }
|
|
||||||
else if (strcmp(*argv,"-cert2") == 0)
|
|
||||||
{
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
s_cert_file2= *(++argv);
|
|
||||||
}
|
|
||||||
else if (strcmp(*argv,"-key2") == 0)
|
|
||||||
{
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
s_key_file2= *(++argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_JPAKE
|
|
||||||
else if (strcmp(*argv,"-jpake") == 0)
|
|
||||||
{
|
|
||||||
if (--argc < 1) goto bad;
|
|
||||||
jpake_secret = *(++argv);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
||||||
@@ -1118,10 +831,6 @@ bad:
|
|||||||
|
|
||||||
if (s_key_file == NULL)
|
if (s_key_file == NULL)
|
||||||
s_key_file = s_cert_file;
|
s_key_file = s_cert_file;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (s_key_file2 == NULL)
|
|
||||||
s_key_file2 = s_cert_file2;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (nocert == 0)
|
if (nocert == 0)
|
||||||
{
|
{
|
||||||
@@ -1141,29 +850,8 @@ bad:
|
|||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (tlsextcbp.servername)
|
|
||||||
{
|
|
||||||
s_key2 = load_key(bio_err, s_key_file2, s_key_format, 0, pass, e,
|
|
||||||
"second server certificate private key file");
|
|
||||||
if (!s_key2)
|
|
||||||
{
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
s_cert2 = load_cert(bio_err,s_cert_file2,s_cert_format,
|
|
||||||
NULL, e, "second server certificate file");
|
|
||||||
|
|
||||||
if (!s_cert2)
|
|
||||||
{
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s_dcert_file)
|
if (s_dcert_file)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -1220,10 +908,6 @@ bad:
|
|||||||
s_key_file=NULL;
|
s_key_file=NULL;
|
||||||
s_dcert_file=NULL;
|
s_dcert_file=NULL;
|
||||||
s_dkey_file=NULL;
|
s_dkey_file=NULL;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
s_cert_file2=NULL;
|
|
||||||
s_key_file2=NULL;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx=SSL_CTX_new(meth);
|
ctx=SSL_CTX_new(meth);
|
||||||
@@ -1255,13 +939,11 @@ bad:
|
|||||||
/* DTLS: partial reads end up discarding unread UDP bytes :-(
|
/* DTLS: partial reads end up discarding unread UDP bytes :-(
|
||||||
* Setting read ahead solves this problem.
|
* Setting read ahead solves this problem.
|
||||||
*/
|
*/
|
||||||
if (socket_type == SOCK_DGRAM) SSL_CTX_set_read_ahead(ctx, 1);
|
if (sock_type == SOCK_DGRAM) SSL_CTX_set_read_ahead(ctx, 1);
|
||||||
|
|
||||||
if (state) SSL_CTX_set_info_callback(ctx,apps_ssl_info_callback);
|
if (state) SSL_CTX_set_info_callback(ctx,apps_ssl_info_callback);
|
||||||
if (no_cache)
|
|
||||||
SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF);
|
SSL_CTX_sess_set_cache_size(ctx,128);
|
||||||
else
|
|
||||||
SSL_CTX_sess_set_cache_size(ctx,128);
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (cipher == NULL) cipher=getenv("SSL_CIPHER");
|
if (cipher == NULL) cipher=getenv("SSL_CIPHER");
|
||||||
@@ -1284,65 +966,6 @@ bad:
|
|||||||
}
|
}
|
||||||
store = SSL_CTX_get_cert_store(ctx);
|
store = SSL_CTX_get_cert_store(ctx);
|
||||||
X509_STORE_set_flags(store, vflags);
|
X509_STORE_set_flags(store, vflags);
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (s_cert2)
|
|
||||||
{
|
|
||||||
ctx2=SSL_CTX_new(meth);
|
|
||||||
if (ctx2 == NULL)
|
|
||||||
{
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ctx2)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_s_out,"Setting secondary ctx parameters\n");
|
|
||||||
|
|
||||||
if (session_id_prefix)
|
|
||||||
{
|
|
||||||
if(strlen(session_id_prefix) >= 32)
|
|
||||||
BIO_printf(bio_err,
|
|
||||||
"warning: id_prefix is too long, only one new session will be possible\n");
|
|
||||||
else if(strlen(session_id_prefix) >= 16)
|
|
||||||
BIO_printf(bio_err,
|
|
||||||
"warning: id_prefix is too long if you use SSLv2\n");
|
|
||||||
if(!SSL_CTX_set_generate_session_id(ctx2, generate_session_id))
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"error setting 'id_prefix'\n");
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
BIO_printf(bio_err,"id_prefix '%s' set.\n", session_id_prefix);
|
|
||||||
}
|
|
||||||
SSL_CTX_set_quiet_shutdown(ctx2,1);
|
|
||||||
if (bugs) SSL_CTX_set_options(ctx2,SSL_OP_ALL);
|
|
||||||
if (hack) SSL_CTX_set_options(ctx2,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG);
|
|
||||||
SSL_CTX_set_options(ctx2,off);
|
|
||||||
|
|
||||||
/* DTLS: partial reads end up discarding unread UDP bytes :-(
|
|
||||||
* Setting read ahead solves this problem.
|
|
||||||
*/
|
|
||||||
if (socket_type == SOCK_DGRAM) SSL_CTX_set_read_ahead(ctx2, 1);
|
|
||||||
|
|
||||||
|
|
||||||
if (state) SSL_CTX_set_info_callback(ctx2,apps_ssl_info_callback);
|
|
||||||
|
|
||||||
if (no_cache)
|
|
||||||
SSL_CTX_set_session_cache_mode(ctx2,SSL_SESS_CACHE_OFF);
|
|
||||||
else
|
|
||||||
SSL_CTX_sess_set_cache_size(ctx2,128);
|
|
||||||
|
|
||||||
if ((!SSL_CTX_load_verify_locations(ctx2,CAfile,CApath)) ||
|
|
||||||
(!SSL_CTX_set_default_verify_paths(ctx2)))
|
|
||||||
{
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
}
|
|
||||||
store = SSL_CTX_get_cert_store(ctx2);
|
|
||||||
X509_STORE_set_flags(store, vflags);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_DH
|
#ifndef OPENSSL_NO_DH
|
||||||
if (!no_dhe)
|
if (!no_dhe)
|
||||||
@@ -1366,24 +989,6 @@ bad:
|
|||||||
(void)BIO_flush(bio_s_out);
|
(void)BIO_flush(bio_s_out);
|
||||||
|
|
||||||
SSL_CTX_set_tmp_dh(ctx,dh);
|
SSL_CTX_set_tmp_dh(ctx,dh);
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (ctx2)
|
|
||||||
{
|
|
||||||
if (!dhfile)
|
|
||||||
{
|
|
||||||
DH *dh2=load_dh_param(s_cert_file2);
|
|
||||||
if (dh2 != NULL)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_s_out,"Setting temp DH parameters\n");
|
|
||||||
(void)BIO_flush(bio_s_out);
|
|
||||||
|
|
||||||
DH_free(dh);
|
|
||||||
dh = dh2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
SSL_CTX_set_tmp_dh(ctx2,dh);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
DH_free(dh);
|
DH_free(dh);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -1429,20 +1034,12 @@ bad:
|
|||||||
(void)BIO_flush(bio_s_out);
|
(void)BIO_flush(bio_s_out);
|
||||||
|
|
||||||
SSL_CTX_set_tmp_ecdh(ctx,ecdh);
|
SSL_CTX_set_tmp_ecdh(ctx,ecdh);
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (ctx2)
|
|
||||||
SSL_CTX_set_tmp_ecdh(ctx2,ecdh);
|
|
||||||
#endif
|
|
||||||
EC_KEY_free(ecdh);
|
EC_KEY_free(ecdh);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!set_cert_key_stuff(ctx,s_cert,s_key))
|
if (!set_cert_key_stuff(ctx,s_cert,s_key))
|
||||||
goto end;
|
goto end;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (ctx2 && !set_cert_key_stuff(ctx2,s_cert2,s_key2))
|
|
||||||
goto end;
|
|
||||||
#endif
|
|
||||||
if (s_dcert != NULL)
|
if (s_dcert != NULL)
|
||||||
{
|
{
|
||||||
if (!set_cert_key_stuff(ctx,s_dcert,s_dkey))
|
if (!set_cert_key_stuff(ctx,s_dcert,s_dkey))
|
||||||
@@ -1452,13 +1049,7 @@ bad:
|
|||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
#if 1
|
#if 1
|
||||||
if (!no_tmp_rsa)
|
if (!no_tmp_rsa)
|
||||||
{
|
|
||||||
SSL_CTX_set_tmp_rsa_callback(ctx,tmp_rsa_cb);
|
SSL_CTX_set_tmp_rsa_callback(ctx,tmp_rsa_cb);
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (ctx2)
|
|
||||||
SSL_CTX_set_tmp_rsa_callback(ctx2,tmp_rsa_cb);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
if (!no_tmp_rsa && SSL_CTX_need_tmp_RSA(ctx))
|
if (!no_tmp_rsa && SSL_CTX_need_tmp_RSA(ctx))
|
||||||
{
|
{
|
||||||
@@ -1474,16 +1065,6 @@ bad:
|
|||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (ctx2)
|
|
||||||
{
|
|
||||||
if (!SSL_CTX_set_tmp_rsa(ctx2,rsa))
|
|
||||||
{
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
RSA_free(rsa);
|
RSA_free(rsa);
|
||||||
BIO_printf(bio_s_out,"\n");
|
BIO_printf(bio_s_out,"\n");
|
||||||
}
|
}
|
||||||
@@ -1495,50 +1076,19 @@ bad:
|
|||||||
BIO_printf(bio_err,"error setting cipher list\n");
|
BIO_printf(bio_err,"error setting cipher list\n");
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (ctx2 && !SSL_CTX_set_cipher_list(ctx2,cipher))
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"error setting cipher list\n");
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
SSL_CTX_set_verify(ctx,s_server_verify,verify_callback);
|
SSL_CTX_set_verify(ctx,s_server_verify,verify_callback);
|
||||||
SSL_CTX_set_session_id_context(ctx,(void*)&s_server_session_id_context,
|
SSL_CTX_set_session_id_context(ctx,(void*)&s_server_session_id_context,
|
||||||
sizeof s_server_session_id_context);
|
sizeof s_server_session_id_context);
|
||||||
|
|
||||||
/* Set DTLS cookie generation and verification callbacks */
|
|
||||||
SSL_CTX_set_cookie_generate_cb(ctx, generate_cookie_callback);
|
|
||||||
SSL_CTX_set_cookie_verify_cb(ctx, verify_cookie_callback);
|
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (ctx2)
|
|
||||||
{
|
|
||||||
SSL_CTX_set_verify(ctx2,s_server_verify,verify_callback);
|
|
||||||
SSL_CTX_set_session_id_context(ctx2,(void*)&s_server_session_id_context,
|
|
||||||
sizeof s_server_session_id_context);
|
|
||||||
|
|
||||||
tlsextcbp.biodebug = bio_s_out;
|
|
||||||
SSL_CTX_set_tlsext_servername_callback(ctx2, ssl_servername_cb);
|
|
||||||
SSL_CTX_set_tlsext_servername_arg(ctx2, &tlsextcbp);
|
|
||||||
SSL_CTX_set_tlsext_servername_callback(ctx, ssl_servername_cb);
|
|
||||||
SSL_CTX_set_tlsext_servername_arg(ctx, &tlsextcbp);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (CAfile != NULL)
|
if (CAfile != NULL)
|
||||||
{
|
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(CAfile));
|
||||||
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(CAfile));
|
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (ctx2)
|
|
||||||
SSL_CTX_set_client_CA_list(ctx2,SSL_load_client_CA_file(CAfile));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
BIO_printf(bio_s_out,"ACCEPT\n");
|
BIO_printf(bio_s_out,"ACCEPT\n");
|
||||||
if (www)
|
if (www)
|
||||||
do_server(port,socket_type,&accept_socket,www_body, context);
|
do_server(port,sock_type,&accept_socket,www_body, context);
|
||||||
else
|
else
|
||||||
do_server(port,socket_type,&accept_socket,sv_body, context);
|
do_server(port,sock_type,&accept_socket,sv_body, context);
|
||||||
print_stats(bio_s_out,ctx);
|
print_stats(bio_s_out,ctx);
|
||||||
ret=0;
|
ret=0;
|
||||||
end:
|
end:
|
||||||
@@ -1555,13 +1105,6 @@ end:
|
|||||||
OPENSSL_free(pass);
|
OPENSSL_free(pass);
|
||||||
if (dpass)
|
if (dpass)
|
||||||
OPENSSL_free(dpass);
|
OPENSSL_free(dpass);
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (ctx2 != NULL) SSL_CTX_free(ctx2);
|
|
||||||
if (s_cert2)
|
|
||||||
X509_free(s_cert2);
|
|
||||||
if (s_key2)
|
|
||||||
EVP_PKEY_free(s_key2);
|
|
||||||
#endif
|
|
||||||
if (bio_s_out != NULL)
|
if (bio_s_out != NULL)
|
||||||
{
|
{
|
||||||
BIO_free(bio_s_out);
|
BIO_free(bio_s_out);
|
||||||
@@ -1605,11 +1148,8 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
|||||||
unsigned long l;
|
unsigned long l;
|
||||||
SSL *con=NULL;
|
SSL *con=NULL;
|
||||||
BIO *sbio;
|
BIO *sbio;
|
||||||
struct timeval timeout;
|
|
||||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE)
|
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE)
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
#else
|
|
||||||
struct timeval *timeoutp;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((buf=OPENSSL_malloc(bufsize)) == NULL)
|
if ((buf=OPENSSL_malloc(bufsize)) == NULL)
|
||||||
@@ -1631,19 +1171,6 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
|||||||
|
|
||||||
if (con == NULL) {
|
if (con == NULL) {
|
||||||
con=SSL_new(ctx);
|
con=SSL_new(ctx);
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (s_tlsextdebug)
|
|
||||||
{
|
|
||||||
SSL_set_tlsext_debug_callback(con, tlsext_cb);
|
|
||||||
SSL_set_tlsext_debug_arg(con, bio_s_out);
|
|
||||||
}
|
|
||||||
if (s_tlsextstatus)
|
|
||||||
{
|
|
||||||
SSL_CTX_set_tlsext_status_cb(ctx, cert_status_cb);
|
|
||||||
tlscstatp.err = bio_err;
|
|
||||||
SSL_CTX_set_tlsext_status_arg(ctx, &tlscstatp);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_KRB5
|
#ifndef OPENSSL_NO_KRB5
|
||||||
if ((con->kssl_ctx = kssl_ctx_new()) != NULL)
|
if ((con->kssl_ctx = kssl_ctx_new()) != NULL)
|
||||||
{
|
{
|
||||||
@@ -1661,6 +1188,7 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
|||||||
|
|
||||||
if (SSL_version(con) == DTLS1_VERSION)
|
if (SSL_version(con) == DTLS1_VERSION)
|
||||||
{
|
{
|
||||||
|
struct timeval timeout;
|
||||||
|
|
||||||
sbio=BIO_new_dgram(s,BIO_NOCLOSE);
|
sbio=BIO_new_dgram(s,BIO_NOCLOSE);
|
||||||
|
|
||||||
@@ -1676,10 +1204,10 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (socket_mtu > 28)
|
if ( mtu > 0)
|
||||||
{
|
{
|
||||||
SSL_set_options(con, SSL_OP_NO_QUERY_MTU);
|
SSL_set_options(con, SSL_OP_NO_QUERY_MTU);
|
||||||
SSL_set_mtu(con, socket_mtu - 28);
|
SSL_set_mtu(con, mtu);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
/* want to do MTU discovery */
|
/* want to do MTU discovery */
|
||||||
@@ -1698,11 +1226,6 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
|||||||
test=BIO_new(BIO_f_nbio_test());
|
test=BIO_new(BIO_f_nbio_test());
|
||||||
sbio=BIO_push(test,sbio);
|
sbio=BIO_push(test,sbio);
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_JPAKE
|
|
||||||
if(jpake_secret)
|
|
||||||
jpake_server_auth(bio_s_out, sbio, jpake_secret);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SSL_set_bio(con,sbio,sbio);
|
SSL_set_bio(con,sbio,sbio);
|
||||||
SSL_set_accept_state(con);
|
SSL_set_accept_state(con);
|
||||||
/* SSL_set_fd(con,s); */
|
/* SSL_set_fd(con,s); */
|
||||||
@@ -1718,13 +1241,6 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
|||||||
SSL_set_msg_callback(con, msg_cb);
|
SSL_set_msg_callback(con, msg_cb);
|
||||||
SSL_set_msg_callback_arg(con, bio_s_out);
|
SSL_set_msg_callback_arg(con, bio_s_out);
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (s_tlsextdebug)
|
|
||||||
{
|
|
||||||
SSL_set_tlsext_debug_callback(con, tlsext_cb);
|
|
||||||
SSL_set_tlsext_debug_arg(con, bio_s_out);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
width=s+1;
|
width=s+1;
|
||||||
for (;;)
|
for (;;)
|
||||||
@@ -1761,19 +1277,7 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
|||||||
if(_kbhit())
|
if(_kbhit())
|
||||||
read_from_terminal = 1;
|
read_from_terminal = 1;
|
||||||
#else
|
#else
|
||||||
if ((SSL_version(con) == DTLS1_VERSION) &&
|
i=select(width,(void *)&readfds,NULL,NULL,NULL);
|
||||||
DTLSv1_get_timeout(con, &timeout))
|
|
||||||
timeoutp = &timeout;
|
|
||||||
else
|
|
||||||
timeoutp = NULL;
|
|
||||||
|
|
||||||
i=select(width,(void *)&readfds,NULL,NULL,timeoutp);
|
|
||||||
|
|
||||||
if ((SSL_version(con) == DTLS1_VERSION) && DTLSv1_handle_timeout(con) > 0)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"TIMEOUT occured\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (i <= 0) continue;
|
if (i <= 0) continue;
|
||||||
if (FD_ISSET(fileno(stdin),&readfds))
|
if (FD_ISSET(fileno(stdin),&readfds))
|
||||||
read_from_terminal = 1;
|
read_from_terminal = 1;
|
||||||
@@ -2030,8 +1534,6 @@ static int init_ssl_connection(SSL *con)
|
|||||||
con->kssl_ctx->client_princ);
|
con->kssl_ctx->client_princ);
|
||||||
}
|
}
|
||||||
#endif /* OPENSSL_NO_KRB5 */
|
#endif /* OPENSSL_NO_KRB5 */
|
||||||
BIO_printf(bio_s_out, "Secure Renegotiation IS%s supported\n",
|
|
||||||
SSL_get_secure_renegotiation_support(con) ? "" : " NOT");
|
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2075,14 +1577,12 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
|||||||
{
|
{
|
||||||
char *buf=NULL;
|
char *buf=NULL;
|
||||||
int ret=1;
|
int ret=1;
|
||||||
int i,j,k,dot;
|
int i,j,k,blank,dot;
|
||||||
struct stat st_buf;
|
struct stat st_buf;
|
||||||
SSL *con;
|
SSL *con;
|
||||||
SSL_CIPHER *c;
|
SSL_CIPHER *c;
|
||||||
BIO *io,*ssl_bio,*sbio;
|
BIO *io,*ssl_bio,*sbio;
|
||||||
#ifdef RENEG
|
|
||||||
long total_bytes;
|
long total_bytes;
|
||||||
#endif
|
|
||||||
|
|
||||||
buf=OPENSSL_malloc(bufsize);
|
buf=OPENSSL_malloc(bufsize);
|
||||||
if (buf == NULL) return(0);
|
if (buf == NULL) return(0);
|
||||||
@@ -2106,13 +1606,6 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
|||||||
if (!BIO_set_write_buffer_size(io,bufsize)) goto err;
|
if (!BIO_set_write_buffer_size(io,bufsize)) goto err;
|
||||||
|
|
||||||
if ((con=SSL_new(ctx)) == NULL) goto err;
|
if ((con=SSL_new(ctx)) == NULL) goto err;
|
||||||
#ifndef OPENSSL_NO_TLSEXT
|
|
||||||
if (s_tlsextdebug)
|
|
||||||
{
|
|
||||||
SSL_set_tlsext_debug_callback(con, tlsext_cb);
|
|
||||||
SSL_set_tlsext_debug_arg(con, bio_s_out);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_KRB5
|
#ifndef OPENSSL_NO_KRB5
|
||||||
if ((con->kssl_ctx = kssl_ctx_new()) != NULL)
|
if ((con->kssl_ctx = kssl_ctx_new()) != NULL)
|
||||||
{
|
{
|
||||||
@@ -2153,6 +1646,7 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
|||||||
SSL_set_msg_callback_arg(con, bio_s_out);
|
SSL_set_msg_callback_arg(con, bio_s_out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blank=0;
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
if (hack)
|
if (hack)
|
||||||
@@ -2389,9 +1883,7 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
|||||||
BIO_puts(io,"HTTP/1.0 200 ok\r\nContent-type: text/plain\r\n\r\n");
|
BIO_puts(io,"HTTP/1.0 200 ok\r\nContent-type: text/plain\r\n\r\n");
|
||||||
}
|
}
|
||||||
/* send the file */
|
/* send the file */
|
||||||
#ifdef RENEG
|
|
||||||
total_bytes=0;
|
total_bytes=0;
|
||||||
#endif
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
i=BIO_read(file,buf,bufsize);
|
i=BIO_read(file,buf,bufsize);
|
||||||
|
@@ -62,12 +62,6 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
#ifdef FLAT_INC
|
|
||||||
#include "e_os2.h"
|
|
||||||
#else
|
|
||||||
#include "../e_os2.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* With IPv6, it looks like Digital has mixed up the proper order of
|
/* With IPv6, it looks like Digital has mixed up the proper order of
|
||||||
recursive header file inclusion, resulting in the compiler complaining
|
recursive header file inclusion, resulting in the compiler complaining
|
||||||
that u_int isn't defined, but only if _POSIX_C_SOURCE is defined, which
|
that u_int isn't defined, but only if _POSIX_C_SOURCE is defined, which
|
||||||
@@ -329,7 +323,7 @@ static int init_server_long(int *sock, int port, char *ip, int type)
|
|||||||
{
|
{
|
||||||
int ret=0;
|
int ret=0;
|
||||||
struct sockaddr_in server;
|
struct sockaddr_in server;
|
||||||
int s= -1;
|
int s= -1,i;
|
||||||
|
|
||||||
if (!ssl_sock_init()) return(0);
|
if (!ssl_sock_init()) return(0);
|
||||||
|
|
||||||
@@ -368,6 +362,7 @@ static int init_server_long(int *sock, int port, char *ip, int type)
|
|||||||
}
|
}
|
||||||
/* Make it 128 for linux */
|
/* Make it 128 for linux */
|
||||||
if (type==SOCK_STREAM && listen(s,128) == -1) goto err;
|
if (type==SOCK_STREAM && listen(s,128) == -1) goto err;
|
||||||
|
i=0;
|
||||||
*sock=s;
|
*sock=s;
|
||||||
ret=1;
|
ret=1;
|
||||||
err:
|
err:
|
||||||
@@ -385,7 +380,7 @@ static int init_server(int *sock, int port, int type)
|
|||||||
|
|
||||||
static int do_accept(int acc_sock, int *sock, char **host)
|
static int do_accept(int acc_sock, int *sock, char **host)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret,i;
|
||||||
struct hostent *h1,*h2;
|
struct hostent *h1,*h2;
|
||||||
static struct sockaddr_in from;
|
static struct sockaddr_in from;
|
||||||
int len;
|
int len;
|
||||||
@@ -408,7 +403,6 @@ redoit:
|
|||||||
if (ret == INVALID_SOCKET)
|
if (ret == INVALID_SOCKET)
|
||||||
{
|
{
|
||||||
#if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
|
#if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
|
||||||
int i;
|
|
||||||
i=WSAGetLastError();
|
i=WSAGetLastError();
|
||||||
BIO_printf(bio_err,"accept error %d\n",i);
|
BIO_printf(bio_err,"accept error %d\n",i);
|
||||||
#else
|
#else
|
||||||
@@ -463,6 +457,7 @@ redoit:
|
|||||||
BIO_printf(bio_err,"gethostbyname failure\n");
|
BIO_printf(bio_err,"gethostbyname failure\n");
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
i=0;
|
||||||
if (h2->h_addrtype != AF_INET)
|
if (h2->h_addrtype != AF_INET)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n");
|
BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n");
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* smime.c */
|
/* smime.c */
|
||||||
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||||
* project.
|
* project.
|
||||||
*/
|
*/
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
|
50
apps/speed.c
50
apps/speed.c
@@ -254,18 +254,8 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_FORK
|
#if !defined(OPENSSL_SYS_VMS) && !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MACINTOSH_CLASSIC) && !defined(OPENSSL_SYS_OS2) && !defined(OPENSSL_SYS_NETWARE)
|
||||||
# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_NETWARE)
|
# define HAVE_FORK 1
|
||||||
# define HAVE_FORK 0
|
|
||||||
# else
|
|
||||||
# define HAVE_FORK 1
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_FORK
|
|
||||||
# undef NO_FORK
|
|
||||||
#else
|
|
||||||
# define NO_FORK
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef BUFSIZE
|
#undef BUFSIZE
|
||||||
@@ -281,7 +271,7 @@ static void print_message(const char *s,long num,int length);
|
|||||||
static void pkey_print_message(const char *str, const char *str2,
|
static void pkey_print_message(const char *str, const char *str2,
|
||||||
long num, int bits, int sec);
|
long num, int bits, int sec);
|
||||||
static void print_result(int alg,int run_no,int count,double time_used);
|
static void print_result(int alg,int run_no,int count,double time_used);
|
||||||
#ifndef NO_FORK
|
#ifdef HAVE_FORK
|
||||||
static int do_multi(int multi);
|
static int do_multi(int multi);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -303,12 +293,8 @@ static const char *names[ALGOR_NUM]={
|
|||||||
"aes-128 ige","aes-192 ige","aes-256 ige"};
|
"aes-128 ige","aes-192 ige","aes-256 ige"};
|
||||||
static double results[ALGOR_NUM][SIZE_NUM];
|
static double results[ALGOR_NUM][SIZE_NUM];
|
||||||
static int lengths[SIZE_NUM]={16,64,256,1024,8*1024};
|
static int lengths[SIZE_NUM]={16,64,256,1024,8*1024};
|
||||||
#ifndef OPENSSL_NO_RSA
|
|
||||||
static double rsa_results[RSA_NUM][2];
|
static double rsa_results[RSA_NUM][2];
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_DSA
|
|
||||||
static double dsa_results[DSA_NUM][2];
|
static double dsa_results[DSA_NUM][2];
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_ECDSA
|
#ifndef OPENSSL_NO_ECDSA
|
||||||
static double ecdsa_results[EC_NUM][2];
|
static double ecdsa_results[EC_NUM][2];
|
||||||
#endif
|
#endif
|
||||||
@@ -500,6 +486,9 @@ int MAIN(int, char **);
|
|||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
unsigned char *buf=NULL,*buf2=NULL;
|
unsigned char *buf=NULL,*buf2=NULL;
|
||||||
int mret=1;
|
int mret=1;
|
||||||
long count=0,save_count=0;
|
long count=0,save_count=0;
|
||||||
@@ -588,8 +577,9 @@ int MAIN(int argc, char **argv)
|
|||||||
#define MAX_BLOCK_SIZE 64
|
#define MAX_BLOCK_SIZE 64
|
||||||
#endif
|
#endif
|
||||||
unsigned char DES_iv[8];
|
unsigned char DES_iv[8];
|
||||||
unsigned char iv[2*MAX_BLOCK_SIZE/8];
|
unsigned char iv[MAX_BLOCK_SIZE/8];
|
||||||
#ifndef OPENSSL_NO_DES
|
#ifndef OPENSSL_NO_DES
|
||||||
|
DES_cblock *buf_as_des_cblock = NULL;
|
||||||
static DES_cblock key ={0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0};
|
static DES_cblock key ={0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0};
|
||||||
static DES_cblock key2={0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12};
|
static DES_cblock key2={0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12};
|
||||||
static DES_cblock key3={0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34};
|
static DES_cblock key3={0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34};
|
||||||
@@ -759,7 +749,7 @@ int MAIN(int argc, char **argv)
|
|||||||
const EVP_CIPHER *evp_cipher=NULL;
|
const EVP_CIPHER *evp_cipher=NULL;
|
||||||
const EVP_MD *evp_md=NULL;
|
const EVP_MD *evp_md=NULL;
|
||||||
int decrypt=0;
|
int decrypt=0;
|
||||||
#ifndef NO_FORK
|
#ifdef HAVE_FORK
|
||||||
int multi=0;
|
int multi=0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -802,6 +792,9 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err,"out of memory\n");
|
BIO_printf(bio_err,"out of memory\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
#ifndef OPENSSL_NO_DES
|
||||||
|
buf_as_des_cblock = (DES_cblock *)buf;
|
||||||
|
#endif
|
||||||
if ((buf2=(unsigned char *)OPENSSL_malloc((int)BUFSIZE)) == NULL)
|
if ((buf2=(unsigned char *)OPENSSL_malloc((int)BUFSIZE)) == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"out of memory\n");
|
BIO_printf(bio_err,"out of memory\n");
|
||||||
@@ -876,7 +869,7 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err,"no engine given\n");
|
BIO_printf(bio_err,"no engine given\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
setup_engine(bio_err, *argv, 0);
|
e = setup_engine(bio_err, *argv, 0);
|
||||||
/* j will be increased again further down. We just
|
/* j will be increased again further down. We just
|
||||||
don't want speed to confuse an engine with an
|
don't want speed to confuse an engine with an
|
||||||
algorithm, especially when none is given (which
|
algorithm, especially when none is given (which
|
||||||
@@ -884,7 +877,7 @@ int MAIN(int argc, char **argv)
|
|||||||
j--;
|
j--;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifndef NO_FORK
|
#ifdef HAVE_FORK
|
||||||
else if ((argc > 0) && (strcmp(*argv,"-multi") == 0))
|
else if ((argc > 0) && (strcmp(*argv,"-multi") == 0))
|
||||||
{
|
{
|
||||||
argc--;
|
argc--;
|
||||||
@@ -1264,7 +1257,7 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err,"-evp e use EVP e.\n");
|
BIO_printf(bio_err,"-evp e use EVP e.\n");
|
||||||
BIO_printf(bio_err,"-decrypt time decryption instead of encryption (only EVP).\n");
|
BIO_printf(bio_err,"-decrypt time decryption instead of encryption (only EVP).\n");
|
||||||
BIO_printf(bio_err,"-mr produce machine readable output.\n");
|
BIO_printf(bio_err,"-mr produce machine readable output.\n");
|
||||||
#ifndef NO_FORK
|
#ifdef HAVE_FORK
|
||||||
BIO_printf(bio_err,"-multi n run n benchmarks in parallel.\n");
|
BIO_printf(bio_err,"-multi n run n benchmarks in parallel.\n");
|
||||||
#endif
|
#endif
|
||||||
goto end;
|
goto end;
|
||||||
@@ -1274,7 +1267,7 @@ int MAIN(int argc, char **argv)
|
|||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NO_FORK
|
#ifdef HAVE_FORK
|
||||||
if(multi && do_multi(multi))
|
if(multi && do_multi(multi))
|
||||||
goto show_res;
|
goto show_res;
|
||||||
#endif
|
#endif
|
||||||
@@ -1381,8 +1374,7 @@ int MAIN(int argc, char **argv)
|
|||||||
count*=2;
|
count*=2;
|
||||||
Time_F(START);
|
Time_F(START);
|
||||||
for (it=count; it; it--)
|
for (it=count; it; it--)
|
||||||
DES_ecb_encrypt((DES_cblock *)buf,
|
DES_ecb_encrypt(buf_as_des_cblock,buf_as_des_cblock,
|
||||||
(DES_cblock *)buf,
|
|
||||||
&sch,DES_ENCRYPT);
|
&sch,DES_ENCRYPT);
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
} while (d <3);
|
} while (d <3);
|
||||||
@@ -2140,7 +2132,7 @@ int MAIN(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
ret=RSA_verify(NID_md5_sha1, buf,36, buf2,
|
ret=RSA_verify(NID_md5_sha1, buf,36, buf2,
|
||||||
rsa_num, rsa_key[j]);
|
rsa_num, rsa_key[j]);
|
||||||
if (ret <= 0)
|
if (ret == 0)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,
|
BIO_printf(bio_err,
|
||||||
"RSA verify failure\n");
|
"RSA verify failure\n");
|
||||||
@@ -2470,7 +2462,7 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
if (rnd_fake) RAND_cleanup();
|
if (rnd_fake) RAND_cleanup();
|
||||||
#endif
|
#endif
|
||||||
#ifndef NO_FORK
|
#ifdef HAVE_FORK
|
||||||
show_res:
|
show_res:
|
||||||
#endif
|
#endif
|
||||||
if(!mr)
|
if(!mr)
|
||||||
@@ -2725,7 +2717,7 @@ static void print_result(int alg,int run_no,int count,double time_used)
|
|||||||
results[alg][run_no]=((double)count)/time_used*lengths[run_no];
|
results[alg][run_no]=((double)count)/time_used*lengths[run_no];
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NO_FORK
|
#ifdef HAVE_FORK
|
||||||
static char *sstrsep(char **string, const char *delim)
|
static char *sstrsep(char **string, const char *delim)
|
||||||
{
|
{
|
||||||
char isdelim[256];
|
char isdelim[256];
|
||||||
@@ -2768,8 +2760,6 @@ static int do_multi(int multi)
|
|||||||
for(n=0 ; n < multi ; ++n)
|
for(n=0 ; n < multi ; ++n)
|
||||||
{
|
{
|
||||||
pipe(fd);
|
pipe(fd);
|
||||||
fflush(stdout);
|
|
||||||
fflush(stderr);
|
|
||||||
if(fork())
|
if(fork())
|
||||||
{
|
{
|
||||||
close(fd[1]);
|
close(fd[1]);
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/* apps/spkac.c */
|
/* apps/spkac.c */
|
||||||
|
|
||||||
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||||
* project 1999. Based on an original idea by Massimiliano Pala
|
* project 1999. Based on an original idea by Massimiliano Pala
|
||||||
* (madwolf@openca.org).
|
* (madwolf@openca.org).
|
||||||
*/
|
*/
|
||||||
@@ -285,7 +285,7 @@ bad:
|
|||||||
pkey = NETSCAPE_SPKI_get_pubkey(spki);
|
pkey = NETSCAPE_SPKI_get_pubkey(spki);
|
||||||
if(verify) {
|
if(verify) {
|
||||||
i = NETSCAPE_SPKI_verify(spki, pkey);
|
i = NETSCAPE_SPKI_verify(spki, pkey);
|
||||||
if (i > 0) BIO_printf(bio_err, "Signature OK\n");
|
if(i) BIO_printf(bio_err, "Signature OK\n");
|
||||||
else {
|
else {
|
||||||
BIO_printf(bio_err, "Signature Failure\n");
|
BIO_printf(bio_err, "Signature Failure\n");
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
|
@@ -266,7 +266,7 @@ static int check(X509_STORE *ctx, char *file, STACK_OF(X509) *uchain, STACK_OF(X
|
|||||||
|
|
||||||
ret=0;
|
ret=0;
|
||||||
end:
|
end:
|
||||||
if (i > 0)
|
if (i)
|
||||||
{
|
{
|
||||||
fprintf(stdout,"OK\n");
|
fprintf(stdout,"OK\n");
|
||||||
ret=1;
|
ret=1;
|
||||||
@@ -367,3 +367,4 @@ static int MS_CALLBACK cb(int ok, X509_STORE_CTX *ctx)
|
|||||||
ERR_clear_error();
|
ERR_clear_error();
|
||||||
return(ok);
|
return(ok);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -167,7 +167,7 @@ int MAIN(int argc, char **argv)
|
|||||||
date=version=cflags=options=platform=dir=1;
|
date=version=cflags=options=platform=dir=1;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"usage:version -[avbofpd]\n");
|
BIO_printf(bio_err,"usage:version -[avbofp]\n");
|
||||||
ret=1;
|
ret=1;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
18
apps/x509.c
18
apps/x509.c
@@ -114,7 +114,6 @@ static const char *x509_usage[]={
|
|||||||
" -alias - output certificate alias\n",
|
" -alias - output certificate alias\n",
|
||||||
" -noout - no certificate output\n",
|
" -noout - no certificate output\n",
|
||||||
" -ocspid - print OCSP hash values for the subject name and public key\n",
|
" -ocspid - print OCSP hash values for the subject name and public key\n",
|
||||||
" -ocsp_uri - print OCSP Responder URL(s)\n",
|
|
||||||
" -trustout - output a \"trusted\" certificate\n",
|
" -trustout - output a \"trusted\" certificate\n",
|
||||||
" -clrtrust - clear all trusted purposes\n",
|
" -clrtrust - clear all trusted purposes\n",
|
||||||
" -clrreject - clear all rejected purposes\n",
|
" -clrreject - clear all rejected purposes\n",
|
||||||
@@ -180,7 +179,6 @@ int MAIN(int argc, char **argv)
|
|||||||
int next_serial=0;
|
int next_serial=0;
|
||||||
int subject_hash=0,issuer_hash=0,ocspid=0;
|
int subject_hash=0,issuer_hash=0,ocspid=0;
|
||||||
int noout=0,sign_flag=0,CA_flag=0,CA_createserial=0,email=0;
|
int noout=0,sign_flag=0,CA_flag=0,CA_createserial=0,email=0;
|
||||||
int ocsp_uri=0;
|
|
||||||
int trustout=0,clrtrust=0,clrreject=0,aliasout=0,clrext=0;
|
int trustout=0,clrtrust=0,clrreject=0,aliasout=0,clrext=0;
|
||||||
int C=0;
|
int C=0;
|
||||||
int x509req=0,days=DEF_DAYS,modulus=0,pubkey=0;
|
int x509req=0,days=DEF_DAYS,modulus=0,pubkey=0;
|
||||||
@@ -380,8 +378,6 @@ int MAIN(int argc, char **argv)
|
|||||||
C= ++num;
|
C= ++num;
|
||||||
else if (strcmp(*argv,"-email") == 0)
|
else if (strcmp(*argv,"-email") == 0)
|
||||||
email= ++num;
|
email= ++num;
|
||||||
else if (strcmp(*argv,"-ocsp_uri") == 0)
|
|
||||||
ocsp_uri= ++num;
|
|
||||||
else if (strcmp(*argv,"-serial") == 0)
|
else if (strcmp(*argv,"-serial") == 0)
|
||||||
serial= ++num;
|
serial= ++num;
|
||||||
else if (strcmp(*argv,"-next_serial") == 0)
|
else if (strcmp(*argv,"-next_serial") == 0)
|
||||||
@@ -539,6 +535,7 @@ bad:
|
|||||||
if (reqfile)
|
if (reqfile)
|
||||||
{
|
{
|
||||||
EVP_PKEY *pkey;
|
EVP_PKEY *pkey;
|
||||||
|
X509_CINF *ci;
|
||||||
BIO *in;
|
BIO *in;
|
||||||
|
|
||||||
if (!sign_flag && !CA_flag)
|
if (!sign_flag && !CA_flag)
|
||||||
@@ -606,6 +603,7 @@ bad:
|
|||||||
print_name(bio_err, "subject=", X509_REQ_get_subject_name(req), nmflag);
|
print_name(bio_err, "subject=", X509_REQ_get_subject_name(req), nmflag);
|
||||||
|
|
||||||
if ((x=X509_new()) == NULL) goto end;
|
if ((x=X509_new()) == NULL) goto end;
|
||||||
|
ci=x->cert_info;
|
||||||
|
|
||||||
if (sno == NULL)
|
if (sno == NULL)
|
||||||
{
|
{
|
||||||
@@ -733,14 +731,11 @@ bad:
|
|||||||
ASN1_INTEGER_free(ser);
|
ASN1_INTEGER_free(ser);
|
||||||
BIO_puts(out, "\n");
|
BIO_puts(out, "\n");
|
||||||
}
|
}
|
||||||
else if ((email == i) || (ocsp_uri == i))
|
else if (email == i)
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
STACK *emlst;
|
STACK *emlst;
|
||||||
if (email == i)
|
emlst = X509_get1_email(x);
|
||||||
emlst = X509_get1_email(x);
|
|
||||||
else
|
|
||||||
emlst = X509_get1_ocsp(x);
|
|
||||||
for (j = 0; j < sk_num(emlst); j++)
|
for (j = 0; j < sk_num(emlst); j++)
|
||||||
BIO_printf(STDout, "%s\n", sk_value(emlst, j));
|
BIO_printf(STDout, "%s\n", sk_value(emlst, j));
|
||||||
X509_email_free(emlst);
|
X509_email_free(emlst);
|
||||||
@@ -969,7 +964,7 @@ bad:
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
pk=load_key(bio_err,
|
pk=load_key(bio_err,
|
||||||
keyfile, keyformat, 0,
|
keyfile, FORMAT_PEM, 0,
|
||||||
passin, e, "request key");
|
passin, e, "request key");
|
||||||
if (pk == NULL) goto end;
|
if (pk == NULL) goto end;
|
||||||
}
|
}
|
||||||
@@ -1149,8 +1144,7 @@ static int x509_certify(X509_STORE *ctx, char *CAfile, const EVP_MD *digest,
|
|||||||
/* NOTE: this certificate can/should be self signed, unless it was
|
/* NOTE: this certificate can/should be self signed, unless it was
|
||||||
* a certificate request in which case it is not. */
|
* a certificate request in which case it is not. */
|
||||||
X509_STORE_CTX_set_cert(&xsc,x);
|
X509_STORE_CTX_set_cert(&xsc,x);
|
||||||
X509_STORE_CTX_set_flags(&xsc, X509_V_FLAG_CHECK_SS_SIGNATURE);
|
if (!reqfile && !X509_verify_cert(&xsc))
|
||||||
if (!reqfile && X509_verify_cert(&xsc) <= 0)
|
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
if (!X509_check_private_key(xca,pkey))
|
if (!X509_check_private_key(xca,pkey))
|
||||||
|
@@ -1,4 +0,0 @@
|
|||||||
The OpenSSL project does not (any longer) include root CA certificates.
|
|
||||||
|
|
||||||
Please check out the FAQ:
|
|
||||||
* How can I set up a bundle of commercial root CA certificates?
|
|
19
certs/RegTP-5R.pem
Normal file
19
certs/RegTP-5R.pem
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
issuer= CN=5R-CA 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
||||||
|
notBefore=Mar 22 08:55:51 2000 GMT
|
||||||
|
notAfter=Mar 22 08:55:51 2005 GMT
|
||||||
|
subject= CN=5R-CA 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICaDCCAdSgAwIBAgIDDIOqMAoGBiskAwMBAgUAMG8xCzAJBgNVBAYTAkRFMT0w
|
||||||
|
OwYDVQQKFDRSZWd1bGllcnVuZ3NiZWjIb3JkZSBmyHVyIFRlbGVrb21tdW5pa2F0
|
||||||
|
aW9uIHVuZCBQb3N0MSEwDAYHAoIGAQoHFBMBMTARBgNVBAMUCjVSLUNBIDE6UE4w
|
||||||
|
IhgPMjAwMDAzMjIwODU1NTFaGA8yMDA1MDMyMjA4NTU1MVowbzELMAkGA1UEBhMC
|
||||||
|
REUxPTA7BgNVBAoUNFJlZ3VsaWVydW5nc2JlaMhvcmRlIGbIdXIgVGVsZWtvbW11
|
||||||
|
bmlrYXRpb24gdW5kIFBvc3QxITAMBgcCggYBCgcUEwExMBEGA1UEAxQKNVItQ0Eg
|
||||||
|
MTpQTjCBoTANBgkqhkiG9w0BAQEFAAOBjwAwgYsCgYEAih5BUycfBpqKhU8RDsaS
|
||||||
|
vV5AtzWeXQRColL9CH3t0DKnhjKAlJ8iccFtJNv+d3bh8bb9sh0maRSo647xP7hs
|
||||||
|
HTjKgTE4zM5BYNfXvST79OtcMgAzrnDiGjQIIWv8xbfV1MqxxdtZJygrwzRMb9jG
|
||||||
|
CAGoJEymoyzAMNG7tSdBWnUCBQDAAAABoxIwEDAOBgNVHQ8BAf8EBAMCAQYwCgYG
|
||||||
|
KyQDAwECBQADgYEAOaK8ihVSBUcL2IdVBxZYYUKwMz5m7H3zqhN8W9w+iafWudH6
|
||||||
|
b+aahkbENEwzg3C3v5g8nze7v7ssacQze657LHjP+e7ksUDIgcS4R1pU2eN16bjS
|
||||||
|
P/qGPF3rhrIEHoK5nJULkjkZYTtNiOvmQ/+G70TXDi3Os/TwLlWRvu+7YLM=
|
||||||
|
-----END CERTIFICATE-----
|
19
certs/RegTP-6R.pem
Normal file
19
certs/RegTP-6R.pem
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
issuer= CN=6R-Ca 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
||||||
|
notBefore=Feb 1 09:52:17 2001 GMT
|
||||||
|
notAfter=Jun 1 09:52:17 2005 GMT
|
||||||
|
subject= CN=6R-Ca 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICaDCCAdSgAwIBAgIDMtGNMAoGBiskAwMBAgUAMG8xCzAJBgNVBAYTAkRFMT0w
|
||||||
|
OwYDVQQKFDRSZWd1bGllcnVuZ3NiZWjIb3JkZSBmyHVyIFRlbGVrb21tdW5pa2F0
|
||||||
|
aW9uIHVuZCBQb3N0MSEwDAYHAoIGAQoHFBMBMTARBgNVBAMUCjZSLUNhIDE6UE4w
|
||||||
|
IhgPMjAwMTAyMDEwOTUyMTdaGA8yMDA1MDYwMTA5NTIxN1owbzELMAkGA1UEBhMC
|
||||||
|
REUxPTA7BgNVBAoUNFJlZ3VsaWVydW5nc2JlaMhvcmRlIGbIdXIgVGVsZWtvbW11
|
||||||
|
bmlrYXRpb24gdW5kIFBvc3QxITAMBgcCggYBCgcUEwExMBEGA1UEAxQKNlItQ2Eg
|
||||||
|
MTpQTjCBoTANBgkqhkiG9w0BAQEFAAOBjwAwgYsCgYEAg6KrFSTNXKqe+2GKGeW2
|
||||||
|
wTmbVeflNkp5H/YxA9K1zmEn5XjKm0S0jH4Wfms6ipPlURVaFwTfnB1s++AnJAWf
|
||||||
|
mayaE9BP/pdIY6WtZGgW6aZc32VDMCMKPWyBNyagsJVDmzlakIA5cXBVa7Xqqd3P
|
||||||
|
ew8i2feMnQXcqHfDv02CW88CBQDAAAABoxIwEDAOBgNVHQ8BAf8EBAMCAQYwCgYG
|
||||||
|
KyQDAwECBQADgYEAOkqkUwdaTCt8wcJLA2zLuOwL5ADHMWLhv6gr5zEF+VckA6qe
|
||||||
|
IVLVf8e7fYlRmzQd+5OJcGglCQJLGT+ZplI3Mjnrd4plkoTNKV4iOzBcvJD7K4tn
|
||||||
|
XPvs9wCFcC7QU7PLvc1FDsAlr7e4wyefZRDL+wbqNfI7QZTSF1ubLd9AzeQ=
|
||||||
|
-----END CERTIFICATE-----
|
22
certs/aol1.pem
Normal file
22
certs/aol1.pem
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
|
||||||
|
MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
|
||||||
|
bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2
|
||||||
|
MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
|
||||||
|
ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
|
||||||
|
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||||
|
ADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk
|
||||||
|
hsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym
|
||||||
|
1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW
|
||||||
|
OqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb
|
||||||
|
2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko
|
||||||
|
O3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw
|
||||||
|
AwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU
|
||||||
|
AK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
|
||||||
|
BQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF
|
||||||
|
Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb
|
||||||
|
LjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir
|
||||||
|
oQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C
|
||||||
|
MMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
|
||||||
|
sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
|
||||||
|
-----END CERTIFICATE-----
|
33
certs/aol2.pem
Normal file
33
certs/aol2.pem
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
|
||||||
|
MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
|
||||||
|
bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2
|
||||||
|
MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
|
||||||
|
ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
|
||||||
|
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP
|
||||||
|
ADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC
|
||||||
|
206B89enfHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFci
|
||||||
|
KtZHgVdEglZTvYYUAQv8f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2
|
||||||
|
JxhP7JsowtS013wMPgwr38oE18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9
|
||||||
|
BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7e
|
||||||
|
Xz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8B
|
||||||
|
PeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67
|
||||||
|
Xnfn6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEq
|
||||||
|
Z8A9W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ
|
||||||
|
o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3
|
||||||
|
+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124HhnAgMBAAGj
|
||||||
|
YzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3OpaaEg5+31IqEj
|
||||||
|
FNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
|
||||||
|
AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmn
|
||||||
|
xPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2
|
||||||
|
LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzccc
|
||||||
|
obGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8
|
||||||
|
CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMe
|
||||||
|
IjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMA
|
||||||
|
DjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2F
|
||||||
|
AjgQ5ANh1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUX
|
||||||
|
Om/9riW99XJZZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPb
|
||||||
|
AZO1XB4Y3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQl
|
||||||
|
Zvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw
|
||||||
|
RY8mkaKO/qk=
|
||||||
|
-----END CERTIFICATE-----
|
23
certs/aoltw1.pem
Normal file
23
certs/aoltw1.pem
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMx
|
||||||
|
HTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNh
|
||||||
|
IE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0
|
||||||
|
aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyOTA2MDAwMFoXDTM3MTEyMDE1
|
||||||
|
MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wgVGltZSBXYXJuZXIg
|
||||||
|
SW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMuQU9M
|
||||||
|
IFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIw
|
||||||
|
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U
|
||||||
|
0pPlLYnKhHw/EEMbjIt8hFj4JHxIzyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItI
|
||||||
|
TuLCxFlpMGK2MKKMCxGZYTVtfu/FsRkGIBKOQuHfD5YQUqjPnF+VFNivO3ULMSAf
|
||||||
|
RC+iYkGzuxgh28pxPIzstrkNn+9R7017EvILDOGsQI93f7DKeHEMXRZxcKLXwjqF
|
||||||
|
zQ6axOAAsNUl6twr5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQIfHNlIAqh
|
||||||
|
BC4aMqiaILGcLCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEA
|
||||||
|
AaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jY
|
||||||
|
PXy+XxIwHwYDVR0jBBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/
|
||||||
|
BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQCKIBilvrMvtKaEAEAwKfq0FHNMeUWn
|
||||||
|
9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u0FIy2VkyvNp5ctZ7CegCgTXT
|
||||||
|
Ct8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77BfWgDrvq2g+EQF
|
||||||
|
Z7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oTLW4jYYehY0KswsuX
|
||||||
|
n2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCzvhGbRWeDhhmH05i9CBoW
|
||||||
|
H1iCC+GWaQVLjuyDUTEH1dSf/1l7qG6Fz9NLqUmwX7A5KGgOc90lmt4S
|
||||||
|
-----END CERTIFICATE-----
|
34
certs/aoltw2.pem
Normal file
34
certs/aoltw2.pem
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMx
|
||||||
|
HTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNh
|
||||||
|
IE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0
|
||||||
|
aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyOTA2MDAwMFoXDTM3MDkyODIz
|
||||||
|
NDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wgVGltZSBXYXJuZXIg
|
||||||
|
SW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMuQU9M
|
||||||
|
IFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIw
|
||||||
|
DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ
|
||||||
|
7ouZzU9AhqS2TcnZsdw8TQ2FTBVsRotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilb
|
||||||
|
m2BPJoPRYxJWSXakFsKlnUWsi4SVqBax7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOY
|
||||||
|
xFSMFkpBd4aVdQxHAWZg/BXxD+r1FHjHDtdugRxev17nOirYlxcwfACtCJ0zr7iZ
|
||||||
|
YYCLqJV+FNwSbKTQ2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2wTPDaRrbq
|
||||||
|
JS5Gr42whTg0ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fx
|
||||||
|
I2rSAG2X+Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETz
|
||||||
|
kxmlJ85per5n0/xQpCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFh
|
||||||
|
EVsVS6kkUfykXPcXnbDS+gfpj1bkGoxoigTTfFrjnqKhynFbotSg5ymFXQNoKk/S
|
||||||
|
Btc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuWCpTehTacyH+BCQJJKg71ZDIM
|
||||||
|
gtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1ExMVCgyhwn2RAu
|
||||||
|
rda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
||||||
|
FE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaAFE9pbQN+nZ8HGEO8txBO
|
||||||
|
1b+pxCAoMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAO/Ouyugu
|
||||||
|
h4X7ZVnnrREUpVe8WJ8kEle7+z802u6teio0cnAxa8cZmIDJgt43d15Ui47y6mdP
|
||||||
|
yXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRFASbI5Rq8NEQh3q0l/HYWdyGQgJhXnU7q
|
||||||
|
7C+qPBR7V8F+GBRn7iTGvboVsNIYvbdVgaxTwOjdaRITQrcCtQVBynlQboIOcXKT
|
||||||
|
RuidDV29rs4prWPVVRaAMCf/drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ68W/
|
||||||
|
ClTluUI8JPu3B5wwn3la5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyB
|
||||||
|
M5kYJRF3p+v9WAksmWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQ
|
||||||
|
my8YJPamTQr5O8t1wswvziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xO
|
||||||
|
AU++CrYD062KRffaJ00psUjf5BHklka9bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT
|
||||||
|
9Y41xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4oGKQWDzH9OmwjkyB24f0H
|
||||||
|
hdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2uBOLZ8/5
|
||||||
|
fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg=
|
||||||
|
-----END CERTIFICATE-----
|
39
certs/argena.pem
Normal file
39
certs/argena.pem
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIG0zCCBbugAwIBAgIBADANBgkqhkiG9w0BAQUFADCBzDELMAkGA1UEBhMCQVQx
|
||||||
|
EDAOBgNVBAgTB0F1c3RyaWExDzANBgNVBAcTBlZpZW5uYTE6MDgGA1UEChMxQVJH
|
||||||
|
RSBEQVRFTiAtIEF1c3RyaWFuIFNvY2lldHkgZm9yIERhdGEgUHJvdGVjdGlvbjEl
|
||||||
|
MCMGA1UECxMcQS1DRVJUIENlcnRpZmljYXRpb24gU2VydmljZTEYMBYGA1UEAxMP
|
||||||
|
QS1DRVJUIEFEVkFOQ0VEMR0wGwYJKoZIhvcNAQkBFg5pbmZvQGEtY2VydC5hdDAe
|
||||||
|
Fw0wNDEwMjMxNDE0MTRaFw0xMTEwMjMxNDE0MTRaMIHMMQswCQYDVQQGEwJBVDEQ
|
||||||
|
MA4GA1UECBMHQXVzdHJpYTEPMA0GA1UEBxMGVmllbm5hMTowOAYDVQQKEzFBUkdF
|
||||||
|
IERBVEVOIC0gQXVzdHJpYW4gU29jaWV0eSBmb3IgRGF0YSBQcm90ZWN0aW9uMSUw
|
||||||
|
IwYDVQQLExxBLUNFUlQgQ2VydGlmaWNhdGlvbiBTZXJ2aWNlMRgwFgYDVQQDEw9B
|
||||||
|
LUNFUlQgQURWQU5DRUQxHTAbBgkqhkiG9w0BCQEWDmluZm9AYS1jZXJ0LmF0MIIB
|
||||||
|
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3euXIy+mnf6BYKbK+QH5k679
|
||||||
|
tUFqeT8jlZxMew8eNiHuw9KoxWBzL6KksK+5uK7Gatw+sbAYntEGE80P+Jg1hADM
|
||||||
|
e+Fr5V0bc6QS3gkVtfUCW/RIvfMM39oxvmqJmOgPnJU7H6+nmLtsq61tv9kVJi/2
|
||||||
|
4Y5wXW3odet72sF57EoG6s78w0BUVLNcMngS9bZZzmdG3/d6JbkGgoNF/8DcgCBJ
|
||||||
|
W/t0JrcIzyppXIOVtUzzOrrU86zuUgT3Rtkl5kjG7DEHpFb9H0fTOY1v8+gRoaO6
|
||||||
|
2gA0PCiysgVZjwgVeYe3KAg11nznyleDv198uK3Dc1oXIGYjJx2FpKWUvAuAEwID
|
||||||
|
AQABo4ICvDCCArgwHQYDVR0OBBYEFDd/Pj6ZcWDKJNSRE3nQdCm0qCTYMIH5BgNV
|
||||||
|
HSMEgfEwge6AFDd/Pj6ZcWDKJNSRE3nQdCm0qCTYoYHSpIHPMIHMMQswCQYDVQQG
|
||||||
|
EwJBVDEQMA4GA1UECBMHQXVzdHJpYTEPMA0GA1UEBxMGVmllbm5hMTowOAYDVQQK
|
||||||
|
EzFBUkdFIERBVEVOIC0gQXVzdHJpYW4gU29jaWV0eSBmb3IgRGF0YSBQcm90ZWN0
|
||||||
|
aW9uMSUwIwYDVQQLExxBLUNFUlQgQ2VydGlmaWNhdGlvbiBTZXJ2aWNlMRgwFgYD
|
||||||
|
VQQDEw9BLUNFUlQgQURWQU5DRUQxHTAbBgkqhkiG9w0BCQEWDmluZm9AYS1jZXJ0
|
||||||
|
LmF0ggEAMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgHmMEcGA1UdJQRAMD4G
|
||||||
|
CCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcD
|
||||||
|
CAYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAP8wUQYDVR0gBEowSDBGBggq
|
||||||
|
KAAYAQEBAzA6MDgGCCsGAQUFBwIBFixodHRwOi8vd3d3LmEtY2VydC5hdC9jZXJ0
|
||||||
|
aWZpY2F0ZS1wb2xpY3kuaHRtbDA7BglghkgBhvhCAQgELhYsaHR0cDovL3d3dy5h
|
||||||
|
LWNlcnQuYXQvY2VydGlmaWNhdGUtcG9saWN5Lmh0bWwwGQYDVR0RBBIwEIEOaW5m
|
||||||
|
b0BhLWNlcnQuYXQwLwYDVR0SBCgwJoEOaW5mb0BhLWNlcnQuYXSGFGh0dHA6Ly93
|
||||||
|
d3cuYS1jZXJ0LmF0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHBzOi8vc2VjdXJlLmEt
|
||||||
|
Y2VydC5hdC9jZ2ktYmluL2EtY2VydC1hZHZhbmNlZC5jZ2kwDQYJKoZIhvcNAQEF
|
||||||
|
BQADggEBACX1IvgfdG2rvfv35O48vSEvcVaEdlN8USFBHWz3JRAozgzvaBtwHkjK
|
||||||
|
Zwt5l/BWOtjbvHfRjDt7ijlBEcxOOrNC1ffyMHwHrXpvff6YpQ5wnxmIYEQcURiG
|
||||||
|
HMqruEX0WkuDNgSKwefsgXs27eeBauHgNGVcTYH1rmHu/ZyLpLxOyJQ2PCzA1DzW
|
||||||
|
3rWkIX92ogJ7lTRdWrbxwUL1XGinxnnaQ74+/y0pI9JNEv7ic2tpkweRMpkedaLW
|
||||||
|
msC1+orfKTebsg69aMaCx7o6jNONRmR/7TVaPf8/k6g52cHZ9YWjQvup22b5rWxG
|
||||||
|
J5r5LZ4vCPmF4+T4lutjUYAa/lGuQTg=
|
||||||
|
-----END CERTIFICATE-----
|
23
certs/argeng.pem
Normal file
23
certs/argeng.pem
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDwzCCAyygAwIBAgIBADANBgkqhkiG9w0BAQQFADCBmDELMAkGA1UEBhMCQVQx
|
||||||
|
EDAOBgNVBAgTB0F1c3RyaWExDzANBgNVBAcTBlZpZW5uYTFCMEAGA1UEChM5QXJn
|
||||||
|
ZSBEYXRlbiBPZXN0ZXJyZWljaGlzY2hlIEdlc2VsbHNjaGFmdCBmdWVyIERhdGVu
|
||||||
|
c2NodXR6MSIwIAYJKoZIhvcNAQkBFhNhLWNlcnRAYXJnZWRhdGVuLmF0MB4XDTAx
|
||||||
|
MDIxMjExMzAzMFoXDTA5MDIxMjExMzAzMFowgZgxCzAJBgNVBAYTAkFUMRAwDgYD
|
||||||
|
VQQIEwdBdXN0cmlhMQ8wDQYDVQQHEwZWaWVubmExQjBABgNVBAoTOUFyZ2UgRGF0
|
||||||
|
ZW4gT2VzdGVycmVpY2hpc2NoZSBHZXNlbGxzY2hhZnQgZnVlciBEYXRlbnNjaHV0
|
||||||
|
ejEiMCAGCSqGSIb3DQEJARYTYS1jZXJ0QGFyZ2VkYXRlbi5hdDCBnzANBgkqhkiG
|
||||||
|
9w0BAQEFAAOBjQAwgYkCgYEAwgsHqoNtmmrJ86+e1I4hOVBaL4kokqKN2IPOIL+1
|
||||||
|
XwY8vfOOUfPEdhWpaC0ldt7VYrksgDiUccgH0FROANWK2GkfKMDzjjXHysR04uEb
|
||||||
|
Om7Kqjqn0nproOGkFG+QvBZgs+Ws+HXNFJA6V76fU4+JXq4452LSK4Lr5YcBquu3
|
||||||
|
NJECAwEAAaOCARkwggEVMB0GA1UdDgQWBBQ0j59zH/G31zRjgK1y2P//tSAWZjCB
|
||||||
|
xQYDVR0jBIG9MIG6gBQ0j59zH/G31zRjgK1y2P//tSAWZqGBnqSBmzCBmDELMAkG
|
||||||
|
A1UEBhMCQVQxEDAOBgNVBAgTB0F1c3RyaWExDzANBgNVBAcTBlZpZW5uYTFCMEAG
|
||||||
|
A1UEChM5QXJnZSBEYXRlbiBPZXN0ZXJyZWljaGlzY2hlIEdlc2VsbHNjaGFmdCBm
|
||||||
|
dWVyIERhdGVuc2NodXR6MSIwIAYJKoZIhvcNAQkBFhNhLWNlcnRAYXJnZWRhdGVu
|
||||||
|
LmF0ggEAMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMBEGCWCGSAGG+EIBAQQE
|
||||||
|
AwICBDANBgkqhkiG9w0BAQQFAAOBgQBFuJYncqMYB6gXQS3eDOI90BEHfFTKy/dV
|
||||||
|
AV+K7QdAYikWmqgBheRdPKddJdccPy/Zl/p3ZT7GhDyC5f3wZjcuu8AJ27BNwbCA
|
||||||
|
x54dgxgCNcyPm79nY8MRtEdEpoRGdSsFKJemz6hpXM++MWFciyrRWIIA44XB0Gv3
|
||||||
|
US0spjsDPQ==
|
||||||
|
-----END CERTIFICATE-----
|
16
certs/demo/nortelCA.pem
Normal file
16
certs/demo/nortelCA.pem
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICajCCAdMCBDGA0QUwDQYJKoZIhvcNAQEEBQAwfTELMAkGA1UEBhMCQ2ExDzAN
|
||||||
|
BgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmlsaXR5IEFjY2VwdGVkMR8w
|
||||||
|
HQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRwwGgYDVQQDExNFbnRydXN0
|
||||||
|
IERlbW8gV2ViIENBMB4XDTk2MDQyNjEzMzUwMVoXDTA2MDQyNjEzMzUwMVowfTEL
|
||||||
|
MAkGA1UEBhMCQ2ExDzANBgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmls
|
||||||
|
aXR5IEFjY2VwdGVkMR8wHQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRww
|
||||||
|
GgYDVQQDExNFbnRydXN0IERlbW8gV2ViIENBMIGdMA0GCSqGSIb3DQEBAQUAA4GL
|
||||||
|
ADCBhwKBgQCaroS7O1DA0hm4IefNYU1cx/nqOmzEnk291d1XqznDeF4wEgakbkCc
|
||||||
|
zTKxK791yNpXG5RmngqH7cygDRTHZJ6mfCRn0wGC+AI00F2vYTGqPGRQL1N3lZT0
|
||||||
|
YDKFC0SQeMMjFIZ1aeQigroFQnHo0VB3zWIMpNkka8PY9lxHZAmWwQIBAzANBgkq
|
||||||
|
hkiG9w0BAQQFAAOBgQBAx0UMVA1s54lMQyXjMX5kj99FJN5itb8bK1Rk+cegPQPF
|
||||||
|
cWO9SEWyEjjBjIkjjzAwBkaEszFsNGxemxtXvwjIm1xEUMTVlPEWTs2qnDvAUA9W
|
||||||
|
YqhWbhH0toGT36236QAsqCZ76rbTRVSSX2BHyJwJMG2tCRv7kRJ//NIgxj3H4w==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
16
certs/demo/timCA.pem
Normal file
16
certs/demo/timCA.pem
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
Tims test GCI CA
|
||||||
|
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIB8DCCAZoCAQAwDQYJKoZIhvcNAQEEBQAwgYIxCzAJBgNVBAYTAkFVMRMwEQYD
|
||||||
|
VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
|
||||||
|
cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2RldmVsb3BtZW50MRkwFwYDVQQDExBD
|
||||||
|
cnlwdFNvZnQgRGV2IENBMB4XDTk3MDMyMjEzMzQwNFoXDTk4MDMyMjEzMzQwNFow
|
||||||
|
gYIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhC
|
||||||
|
cmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2Rl
|
||||||
|
dmVsb3BtZW50MRkwFwYDVQQDExBDcnlwdFNvZnQgRGV2IENBMFwwDQYJKoZIhvcN
|
||||||
|
AQEBBQADSwAwSAJBAOAOAqogG5QwAmLhzyO4CoRnx/wVy4NZP4dxJy83O1EnL0rw
|
||||||
|
OdsamJKvPOLHgSXo3gDu9uVyvCf/QJmZAmC5ml8CAwEAATANBgkqhkiG9w0BAQQF
|
||||||
|
AANBADRRS/GVdd7rAqRW6SdmgLJduOU2yq3avBu99kRqbp9A/dLu6r6jU+eP4oOA
|
||||||
|
TfdbFZtAAD2Hx9jUtY3tfdrJOb8=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
15
certs/demo/tjhCA.pem
Normal file
15
certs/demo/tjhCA.pem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICVjCCAgACAQAwDQYJKoZIhvcNAQEEBQAwgbUxCzAJBgNVBAYTAkFVMRMwEQYD
|
||||||
|
VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
|
||||||
|
cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsTI1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9O
|
||||||
|
IEFVVEhPUklUSUVTMTQwMgYDVQQDEytaRVJPIFZBTFVFIENBIC0gREVNT05TVFJB
|
||||||
|
VElPTiBQVVJQT1NFUyBPTkxZMB4XDTk3MDQwMzEzMjI1NFoXDTk4MDQwMzEzMjI1
|
||||||
|
NFowgbUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH
|
||||||
|
EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsT
|
||||||
|
I1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9OIEFVVEhPUklUSUVTMTQwMgYDVQQDEyta
|
||||||
|
RVJPIFZBTFVFIENBIC0gREVNT05TVFJBVElPTiBQVVJQT1NFUyBPTkxZMFwwDQYJ
|
||||||
|
KoZIhvcNAQEBBQADSwAwSAJBAOZ7T7yqP/tyspcko3yPY1y0Cm2EmwNvzW4QgVXR
|
||||||
|
Fjs3HmJ4xtSpXdo6mwcGezL3Abt/aQXaxv9PU8xt+Jr0OFUCAwEAATANBgkqhkiG
|
||||||
|
9w0BAQQFAANBAOQpYmGgyCqCy1OljgJhCqQOu627oVlHzK1L+t9vBaMfn40AVUR4
|
||||||
|
WzQVWO31KTgi5vTK1U+3h46fgUWqQ0h+6rU=
|
||||||
|
-----END CERTIFICATE-----
|
18
certs/demo/vsigntca.pem
Normal file
18
certs/demo/vsigntca.pem
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
subject=/O=VeriSign, Inc/OU=www.verisign.com/repository/TestCPS Incorp. By Ref. Liab. LTD./OU=For VeriSign authorized testing only. No assurances (C)VS1997
|
||||||
|
notBefore=Mar 4 00:00:00 1997 GMT
|
||||||
|
notAfter=Mar 4 23:59:59 2025 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICTTCCAfcCEEdoCqpuXxnoK27q7d58Qc4wDQYJKoZIhvcNAQEEBQAwgakxFjAU
|
||||||
|
BgNVBAoTDVZlcmlTaWduLCBJbmMxRzBFBgNVBAsTPnd3dy52ZXJpc2lnbi5jb20v
|
||||||
|
cmVwb3NpdG9yeS9UZXN0Q1BTIEluY29ycC4gQnkgUmVmLiBMaWFiLiBMVEQuMUYw
|
||||||
|
RAYDVQQLEz1Gb3IgVmVyaVNpZ24gYXV0aG9yaXplZCB0ZXN0aW5nIG9ubHkuIE5v
|
||||||
|
IGFzc3VyYW5jZXMgKEMpVlMxOTk3MB4XDTk3MDMwNDAwMDAwMFoXDTI1MDMwNDIz
|
||||||
|
NTk1OVowgakxFjAUBgNVBAoTDVZlcmlTaWduLCBJbmMxRzBFBgNVBAsTPnd3dy52
|
||||||
|
ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9UZXN0Q1BTIEluY29ycC4gQnkgUmVmLiBM
|
||||||
|
aWFiLiBMVEQuMUYwRAYDVQQLEz1Gb3IgVmVyaVNpZ24gYXV0aG9yaXplZCB0ZXN0
|
||||||
|
aW5nIG9ubHkuIE5vIGFzc3VyYW5jZXMgKEMpVlMxOTk3MFwwDQYJKoZIhvcNAQEB
|
||||||
|
BQADSwAwSAJBAMak6xImJx44jMKcbkACy5/CyMA2fqXK4PlzTtCxRq5tFkDzne7s
|
||||||
|
cI8oFK/J+gFZNE3bjidDxf07O3JOYG9RGx8CAwEAATANBgkqhkiG9w0BAQQFAANB
|
||||||
|
ADT523tENOKrEheZFpsJx1UUjPrG7TwYc/C4NBHrZI4gZJcKVFIfNulftVS6UMYW
|
||||||
|
ToLEMaUojc3DuNXHG21PDG8=
|
||||||
|
-----END CERTIFICATE-----
|
23
certs/eng1.pem
Normal file
23
certs/eng1.pem
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
|
||||||
|
CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9CYW5rRW5n
|
||||||
|
aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
|
||||||
|
aW9uMRMwEQYDVQQDEwpiYW5rZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBiYW5r
|
||||||
|
ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
|
||||||
|
CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
|
||||||
|
BAoTD0JhbmtFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
|
||||||
|
b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCmJhbmtlbmdpbmUxIDAeBgkqhkiG9w0B
|
||||||
|
CQEWEWNhQGJhbmtlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||||
|
CgKCAQEA14LoTUAl1/hEy+Kh1kLHiBdW2zD3V4IhM7xxTVKsYsIH56nr69ATTIxU
|
||||||
|
P36eRzeZ137qt1AxHFjDCidk3m1Ul6l59ProPexdslLLM2npM3f2cteg+toyiYiS
|
||||||
|
EJKjyzIu1xF1j9qzGkymSY/4DsXLZNk9FaczxMk/Ooc6Os1M3AverL4VG4rYIb6f
|
||||||
|
eR32cIKJ9Q1fGuyKk7ipq1XQfPW8a8TgZdbHbe7U9Gk3iasGMHHvpR9Ep3mGbgdT
|
||||||
|
uQ98SBEuIwe1BUCGg/MXpVy48MNXfAMotBgGw4pl9yqSjMni2FB+E9Q9DHFs2RgX
|
||||||
|
MqzKuo8zcPxKx2kZ6Arj8+27dw2clQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0G
|
||||||
|
CSqGSIb3DQEBBQUAA4IBAQBauupHX9EhpC/r57d6b5kkeWvognxIP9//TO4iw3qb
|
||||||
|
zIXEkPXmJmwVzlzoKJWqiya+aw19SP0+G6CzsFOBo/9ehmz+hZ8bhYX4MjlWzX5u
|
||||||
|
Tnkhz172j9fOBUmrTVPkcRIs6zjCD5PQAGoBPP1/Zdy2N36lZ0U7lg07Opirj/yJ
|
||||||
|
PSJeM2j0fwIFAroiVckvdT0BVwB6S/cPaAQGPghbbr1YGSmYrMriSv825ILJUfxz
|
||||||
|
rJYunGR9FiY9Ob7+jwJwiZMS4CxSPktutxr/3hOvr1+ALS7IcVakhhA3PuZAJbdH
|
||||||
|
FRclR9qMM8aBnBZmf+Uv3K3uhT+UBzzY654U9Yi1JYnA
|
||||||
|
-----END CERTIFICATE-----
|
23
certs/eng2.pem
Normal file
23
certs/eng2.pem
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
|
||||||
|
CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9DZXJ0RW5n
|
||||||
|
aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
|
||||||
|
aW9uMRMwEQYDVQQDEwpjZXJ0ZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBjZXJ0
|
||||||
|
ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
|
||||||
|
CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
|
||||||
|
BAoTD0NlcnRFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
|
||||||
|
b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCmNlcnRlbmdpbmUxIDAeBgkqhkiG9w0B
|
||||||
|
CQEWEWNhQGNlcnRlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||||
|
CgKCAQEA7aTXURShaeVt9u/dP3Q2dVib3jTCZvEyc6yfpGgaYWewXWuP4HOSfI4h
|
||||||
|
GZblbpl+dzJc6RjhR+pguIRtbT5FJB8SJGjRqoujBEOQOxtVtc2fjM9Dqh0iOvMW
|
||||||
|
WS6buxHG55GVrHAQaO5HXEScKQBa9ZyNmpSXPTEBrDMej1OAGOkc524/TZrgFPF4
|
||||||
|
AiJLLkxCcP8NuzUKlW3WzNMSSoCtjkUKy4wjSLlAWCFM0T9Df6/+Z8ZUQTzHoKCD
|
||||||
|
ncH5Qnynd7DlOwKQ2JwwxRhYGiGVTUN0GUq7qA11kW3+vnbFesKQXoF6o2PVx9s2
|
||||||
|
YXviI2NXXUjZ0pVnsnFCc45Pm8XojwIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0G
|
||||||
|
CSqGSIb3DQEBBQUAA4IBAQBP/aHOKJ00Akzc9HWM1X30hlWZFBaQi4pqD4Uhk8+p
|
||||||
|
KzzwFP5DRLBOz8TYBbtdXrS6hxVMr2sqWmhVkuyepWhHZazKGyHY/y0FbOXsewAV
|
||||||
|
1QxxSyx7ve89pCKv4/w0rQcP916iHc8Y/TCpmz7eITa3GId+8H/XTaBi8GBp9X9O
|
||||||
|
w8m25FmEB1NT+eJwefvfdKowjy4tSorKdW/eJspxNuTSRGmUy8G71W5dYvgpAlx6
|
||||||
|
mdnHyzxEGvRYNNI2bS0ifXgbEFNWqSas9q34ea5KOpkJu8T/KyXfSb6rPOsBSb0t
|
||||||
|
wMowwGtCVH2C4Lw/8zo0EjhMpTOsPaub408PrZ+NQ2bl
|
||||||
|
-----END CERTIFICATE-----
|
34
certs/eng3.pem
Normal file
34
certs/eng3.pem
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIF3TCCA8WgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
|
||||||
|
CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9Gb3J0RW5n
|
||||||
|
aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
|
||||||
|
aW9uMRMwEQYDVQQDEwpmb3J0ZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBmb3J0
|
||||||
|
ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
|
||||||
|
CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
|
||||||
|
BAoTD0ZvcnRFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
|
||||||
|
b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCmZvcnRlbmdpbmUxIDAeBgkqhkiG9w0B
|
||||||
|
CQEWEWNhQGZvcnRlbmdpbmUuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
|
||||||
|
CgKCAgEAyr7GbpwDxx1v3EYbo0gcO+ligEhlDqG2e7u/AbWGoVAqc8+q6auUJUtz
|
||||||
|
4i7oh0yNadu1o9kpXW+znkgO0zlrgjGskqqMO1ooppzTJdFy/P8gR6x1Iuv3kWtX
|
||||||
|
OuzwPPEjv09LWlhyJsN+oU4ztTVf07I0Q9zYupcoDQ58XKRheI9KdDB2DYSmxywA
|
||||||
|
WSLQwIeG0Qa7gvokeQlpkgkEC7viEecJ3752KXBJHnh7As51mxnlpmG6sDy67Eli
|
||||||
|
HDw5tHETRqbtnscGBjskGQBqR5xt7+QnnthZrN8HJHDoa9zgGephwizhkL44lXLF
|
||||||
|
YK9W5XhFbblw2c+mAcHkokRiwD7CPeIoyD2a/Jcw3n5hegKTlNhd4BFGVF6JR7gF
|
||||||
|
OFk2QfHXit5uthsij9Xhl7WAgQUqLgggD9MphqPf4nY66OZUJV9ZsmB+Qfp8UizB
|
||||||
|
0WAOegactKVyRqHtRa+KIEXQXNtZgjcmMk9CYkP0nIbKtgKXaH6+9VMHNOryCnFE
|
||||||
|
7pSsuPUkypncFWCHGSeiFO3w4w4J4csltxBADQzxfRu5KZnlToQN7bVpI/Q31tVX
|
||||||
|
E5bjrJcq6Oj/OTqZ3ID+OqbkUdAg0ggjRKcTgxnLHd/AbMzJ6PsclDDf7cLs0WSl
|
||||||
|
xMxQR/z5bNST1rNtT9rsiv2TOhfvCBxO9AOjBioO8PLO032HTNECAwEAAaMQMA4w
|
||||||
|
DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAgEAVyBpPWfT2VOyvVpslGKx
|
||||||
|
8h0+CWP8cilygGRtZJ5dAJzc//1REAHdvK+TgZ4Foz3dqHhXI+RNN0FpzuWaYMjW
|
||||||
|
ZTS0kAmcOQuGY1Oo4PGlPHI21pNz29oFDTJr0ZmLBJ4JKVsE2soJg55jdk9MZHA7
|
||||||
|
K//7HH9RsmrWZOE5DZDlrxp6+naixhMwnlPKKisIy9GNZUPqGdUWABMdB/BUVVNl
|
||||||
|
NU5TtWpIXUClMd8a+eoKcItBeYXowkHOBpinPkDX3clFDIUfWiw0Ro08s8SrrFqR
|
||||||
|
8Szwbrj52Xv1RM56oGqCjnkvJctxihODV7NcpxoAFjIZokDom0q6zPrrTUsLFQov
|
||||||
|
Plovc3w5hmALiDMshaTvE1nm3Psn4yQ+FlRE8epTZrQiIGypZkZC6lcz0mYawueW
|
||||||
|
cThYWGFhVG4ktQzOjjNRsNxopW+W7cF1zQTxiWUDnxIKSj7gtdQ2jiubxEEhfVag
|
||||||
|
r8DMtAccNVTZVURpGi56TptOOuotrTqqC+2GviW4hlxvdvmuQN0OlXlUwzz2Trxc
|
||||||
|
FamNnuA54lZw/8arLtxsFmHrcnPw53+1spumLD0S5UkxHNu40h6LIVpZz3H+0rLz
|
||||||
|
uFofTfiyMjcfK2AyHQTgUCbsrvgNuLDQUbyFGVchdFUkhztX3DhEVnxnnrpY4BVj
|
||||||
|
QdTqWIvw7lGlSuDCjxEQAOc=
|
||||||
|
-----END CERTIFICATE-----
|
23
certs/eng4.pem
Normal file
23
certs/eng4.pem
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
|
||||||
|
CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9NYWlsRW5n
|
||||||
|
aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
|
||||||
|
aW9uMRMwEQYDVQQDEwptYWlsZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBtYWls
|
||||||
|
ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
|
||||||
|
CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
|
||||||
|
BAoTD01haWxFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
|
||||||
|
b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCm1haWxlbmdpbmUxIDAeBgkqhkiG9w0B
|
||||||
|
CQEWEWNhQG1haWxlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||||
|
CgKCAQEAqXmfsU+lx+NFmn6tN17RTOyaddHqLnr/3rzEDIyT9TN+tF9TG7jmK7lJ
|
||||||
|
Jrj5arQ3nTFaLF8JuND2U1z/cLPw6/TX+1tE3v3CNUDSjaisyUDiUyp3TE8hMMMz
|
||||||
|
zfZQn0JsGgNhhWxqyzjhRQGtKL4+xtn8VsF/8zGgZYke7nlmVKz/FslDFTnNoodL
|
||||||
|
BAEGiu9JQS9qqpbSs20NdZ6LXPL2A4iTjnsNFBW3jIMVIn/JVVyaycU7ue2oFviD
|
||||||
|
vLNpkVZcR7A+jjIdIumOc5VSF0y7y74cQC5YwkR2mLK7UBYDK6NCY3ta/C4M8NsM
|
||||||
|
0FpmvRl0+A1ivZtVwqI98dxDtp7HeQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0G
|
||||||
|
CSqGSIb3DQEBBQUAA4IBAQAjfNn5BCzxylBDakFQGWKE/P43PRibMOEzfd7+DzbY
|
||||||
|
WIekoz3i00DwoH3b6j4gwlDJRAOq4dF6/Pt/uBOHDo/op+ef+9ErmKPd+ehXN9h3
|
||||||
|
7QbccTgz7DtVwA4iRlDRLru+JuXzT+OsCHuFZMOLJ+KD2JAGh3W68JjdcLkrlcpt
|
||||||
|
AU0wc5aOHPPfEBdIah8y8QtNzXRVzoBt8zzvgCARkXxTS2u/9QaXR1hML0JtDgQS
|
||||||
|
SdZ6Kd8SN6yzqxD+buYD5sOfJmjBF/n3lqFHNMHnnGXy2TAXZtIAWzffU3A0cGPB
|
||||||
|
N6FZ026a86HbF1X4k+xszhbJu/ikczyuWnCJIg3fTYSD
|
||||||
|
-----END CERTIFICATE-----
|
23
certs/eng5.pem
Normal file
23
certs/eng5.pem
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIID6TCCAtGgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UEBhMCQ0Ex
|
||||||
|
CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRowGAYDVQQKExFUcmFkZXJF
|
||||||
|
bmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRGl2
|
||||||
|
aXNpb24xFTATBgNVBAMTDHRyYWRlcmVuZ2luZTEiMCAGCSqGSIb3DQEJARYTY2FA
|
||||||
|
dHJhZGVyZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBa
|
||||||
|
MIGuMQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8x
|
||||||
|
GjAYBgNVBAoTEVRyYWRlckVuZ2luZSBJbmMuMSkwJwYDVQQLEyBDZXJ0aWZpY2F0
|
||||||
|
aW9uIEF1dGhvcml0eSBEaXZpc2lvbjEVMBMGA1UEAxMMdHJhZGVyZW5naW5lMSIw
|
||||||
|
IAYJKoZIhvcNAQkBFhNjYUB0cmFkZXJlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0B
|
||||||
|
AQEFAAOCAQ8AMIIBCgKCAQEAzyX5QE+5SN+zgNn1v3zp9HmP4hQOWW8WuEVItZVP
|
||||||
|
9bt/xj5NeJd1kyPL/SqnF2qHcL3o/74r0Ga55aKHniwKYgQTlp5ELGfQ568QQeN9
|
||||||
|
xNIHtUXeStI9zCNZyZC+4YqObdMR/ivKA/WsLfUVMl2lV5JzJJz1BOE0gKEYiEyz
|
||||||
|
gIq5oLzkP/mOXoHRvWSZD2D0eHYIO7ovV2epVFK7g7p+dC4QoeIUEli+GF/Myg88
|
||||||
|
dV/qmi+Sybck2RLPXa8Nh27/ETVQ7kE1Eafmx7EyCqIhG+5lwJAy3HwHUBwAYuzj
|
||||||
|
iuZz5lD8aQmr8SKuvy3eOH9SVN5wh3YBlrNGwTStkESVLwIDAQABoxAwDjAMBgNV
|
||||||
|
HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAWOPAUhZd3x9EQiFJcuxFTMd9q
|
||||||
|
axgcriCzJsM6D96sYGko9xTeLhX/lr1bliVYI5AlupoLXAdMzGHJkOgaTirKjQXr
|
||||||
|
F9nymDdUWKe3TmwGob5016nQlH7qRKvGO3hka0rOGRK2U/2JT/4Qp8iH/DFi6cyM
|
||||||
|
uP0q8n64SAkxZXLzUuFQXqf7U/SNjzb9XJQEIAdjp7eYd3Qb4jDsDcX0FrKMF1aV
|
||||||
|
r0dCDnS7am7WTXPYCDGdSkPgEHEtLYIYH3lZp5sKdVZ9wl4F0WNFkRWRUr7AXPjw
|
||||||
|
50uLmUNmKCd8JZLMGA1TRNSTi7U9EcrWt0OkMWm74T2WVnAgNsDv2WrWsGfj
|
||||||
|
-----END CERTIFICATE-----
|
59
certs/expired/ICE-CA.pem
Normal file
59
certs/expired/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/expired/ICE-root.pem
Normal file
48
certs/expired/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/expired/ICE-user.pem
Normal file
63
certs/expired/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-----
|
19
certs/expired/RegTP-4R.pem
Normal file
19
certs/expired/RegTP-4R.pem
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
issuer= CN=4R-CA 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
||||||
|
notBefore=Jan 21 16:04:53 1999 GMT
|
||||||
|
notAfter=Jan 21 16:04:53 2004 GMT
|
||||||
|
subject= CN=4R-CA 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICZzCCAdOgAwIBAgIEOwVn1DAKBgYrJAMDAQIFADBvMQswCQYDVQQGEwJERTE9
|
||||||
|
MDsGA1UEChQ0UmVndWxpZXJ1bmdzYmVoyG9yZGUgZsh1ciBUZWxla29tbXVuaWth
|
||||||
|
dGlvbiB1bmQgUG9zdDEhMAwGBwKCBgEKBxQTATEwEQYDVQQDFAo0Ui1DQSAxOlBO
|
||||||
|
MCIYDzE5OTkwMTIxMTYwNDUzWhgPMjAwNDAxMjExNjA0NTNaMG8xCzAJBgNVBAYT
|
||||||
|
AkRFMT0wOwYDVQQKFDRSZWd1bGllcnVuZ3NiZWjIb3JkZSBmyHVyIFRlbGVrb21t
|
||||||
|
dW5pa2F0aW9uIHVuZCBQb3N0MSEwDAYHAoIGAQoHFBMBMTARBgNVBAMUCjRSLUNB
|
||||||
|
IDE6UE4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGAjzHbq2asUlqeWbXTQHso
|
||||||
|
aVF6YIPVH3c/B2cbuy9HJ/lnE6x0asOzM2DGDqi47xkdAxPc0LZ0fxO87rkmz7xs
|
||||||
|
jJObnVrMXpyUSDSp5Y0wqKJdsFdr6mGFOQZteIti8AJnr8xMkwnWVyuOlEXsFe1h
|
||||||
|
5gxwQXrOcPinE6qu1t/3PmECBMAAAAGjEjAQMA4GA1UdDwEB/wQEAwIBBjAKBgYr
|
||||||
|
JAMDAQIFAAOBgQA+RdocBmA2VV9E5aKPBcp01tdZAvvW9Tve3docArVKR/4/yvSX
|
||||||
|
Z+wvzzk+uu4qBp49HN3nqPYMrzbTmjBFu4ce5fkZ7dHF0W1sSBL0rox5z36Aq2re
|
||||||
|
JjfEOEmSnNe0+opuh4FSVOssXblXTE8lEQU0FhhItgDx2ADnWZibaxLG4w==
|
||||||
|
-----END CERTIFICATE-----
|
15
certs/expired/factory.pem
Normal file
15
certs/expired/factory.pem
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICTTCCAbagAwIBAgIBADANBgkqhkiG9w0BAQQFADBMMQswCQYDVQQGEwJHQjEM
|
||||||
|
MAoGA1UEChMDVUNMMRgwFgYDVQQLEw9JQ0UtVEVMIFByb2plY3QxFTATBgNVBAMT
|
||||||
|
DFRydXN0RmFjdG9yeTAeFw05NzA0MjIxNDM5MTRaFw05ODA0MjIxNDM5MTRaMEwx
|
||||||
|
CzAJBgNVBAYTAkdCMQwwCgYDVQQKEwNVQ0wxGDAWBgNVBAsTD0lDRS1URUwgUHJv
|
||||||
|
amVjdDEVMBMGA1UEAxMMVHJ1c3RGYWN0b3J5MIGcMAoGBFUIAQECAgQAA4GNADCB
|
||||||
|
iQKBgQCEieR8NcXkUW1f0G6aC6u0i8q/98JqS6RxK5YmHIGKCkuTWAUjzLfUa4dt
|
||||||
|
U9igGCjTuxaDqlzEim+t/02pmiBZT9HaX++35MjQPUWmsChcYU5WyzGErXi+rQaw
|
||||||
|
zlwS73zM8qiPj/97lXYycWhgL0VaiDSPxRXEUdWoaGruom4mNQIDAQABo0IwQDAd
|
||||||
|
BgNVHQ4EFgQUHal1LZr7oVg5z6lYzrhTgZRCmcUwDgYDVR0PAQH/BAQDAgH2MA8G
|
||||||
|
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAfaggfl6FZoioecjv0dq8
|
||||||
|
/DXo/u11iMZvXn08gjX/zl2b4wtPbShOSY5FhkSm8GeySasz+/Nwb/uzfnIhokWi
|
||||||
|
lfPZHtlCWtXbIy/TN51eJyq04ceDCQDWvLC2enVg9KB+GJ34b5c5VaPRzq8MBxsA
|
||||||
|
S7ELuYGtmYgYm9NZOIr7yU0=
|
||||||
|
-----END CERTIFICATE-----
|
19
certs/expired/rsa-cca.pem
Normal file
19
certs/expired/rsa-cca.pem
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
subject=/C=US/O=RSA Data Security, Inc./OU=Commercial Certification Authority
|
||||||
|
issuer= /C=US/O=RSA Data Security, Inc./OU=Commercial Certification Authority
|
||||||
|
notBefore=941104185834Z
|
||||||
|
notAfter =991103185834Z
|
||||||
|
-----BEGIN X509 CERTIFICATE-----
|
||||||
|
|
||||||
|
MIICIzCCAZACBQJBAAAWMA0GCSqGSIb3DQEBAgUAMFwxCzAJBgNVBAYTAlVTMSAw
|
||||||
|
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjErMCkGA1UECxMiQ29tbWVy
|
||||||
|
Y2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NDExMDQxODU4MzRaFw05
|
||||||
|
OTExMDMxODU4MzRaMFwxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBT
|
||||||
|
ZWN1cml0eSwgSW5jLjErMCkGA1UECxMiQ29tbWVyY2lhbCBDZXJ0aWZpY2F0aW9u
|
||||||
|
IEF1dGhvcml0eTCBmzANBgkqhkiG9w0BAQEFAAOBiQAwgYUCfgCk+4Fie84QJ93o
|
||||||
|
975sbsZwmdu41QUDaSiCnHJ/lj+O7Kwpkj+KFPhCdr69XQO5kNTQvAayUTNfxMK/
|
||||||
|
touPmbZiImDd298ggrTKoi8tUO2UMt7gVY3UaOLgTNLNBRYulWZcYVI4HlGogqHE
|
||||||
|
7yXpCuaLK44xZtn42f29O2nZ6wIDAQABMA0GCSqGSIb3DQEBAgUAA34AdrW2EP4j
|
||||||
|
9/dZYkuwX5zBaLxJu7NJbyFHXSudVMQAKD+YufKKg5tgf+tQx6sFEC097TgCwaVI
|
||||||
|
0v5loMC86qYjFmZsGySp8+x5NRhPJsjjr1BKx6cxa9B8GJ1Qv6km+iYrRpwUqbtb
|
||||||
|
MJhCKLVLU7tDCZJAuqiqWqTGtotXTcU=
|
||||||
|
-----END X509 CERTIFICATE-----
|
19
certs/expired/rsa-ssca.pem
Normal file
19
certs/expired/rsa-ssca.pem
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
subject=/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
||||||
|
issuer= /C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
||||||
|
notBefore=941109235417Z
|
||||||
|
notAfter =991231235417Z
|
||||||
|
-----BEGIN X509 CERTIFICATE-----
|
||||||
|
|
||||||
|
MIICKTCCAZYCBQJBAAABMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMSAw
|
||||||
|
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJl
|
||||||
|
IFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NDExMDkyMzU0MTda
|
||||||
|
Fw05OTEyMzEyMzU0MTdaMF8xCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0
|
||||||
|
YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJlIFNlcnZlciBDZXJ0aWZp
|
||||||
|
Y2F0aW9uIEF1dGhvcml0eTCBmzANBgkqhkiG9w0BAQEFAAOBiQAwgYUCfgCSznrB
|
||||||
|
roM+WqqJg1esJQF2DK2ujiw3zus1eGRUA+WEQFHJv48I4oqCCNIWhjdV6bEhAq12
|
||||||
|
aIGaBaJLyUslZiJWbIgHj/eBWW2EB2VwE3F2Ppt3TONQiVaYSLkdpykaEy5KEVmc
|
||||||
|
HhXVSVQsczppgrGXOZxtcGdI5d0t1sgeewIDAQABMA0GCSqGSIb3DQEBAgUAA34A
|
||||||
|
iNHReSHO4ovo+MF9NFM/YYPZtgs4F7boviGNjwC4i1N+RGceIr2XJ+CchcxK9oU7
|
||||||
|
suK+ktPlDemvXA4MRpX/oRxePug2WHpzpgr4IhFrwwk4fia7c+8AvQKk8xQNMD9h
|
||||||
|
cHsg/jKjn7P0Z1LctO6EjJY2IN6BCINxIYoPnqk=
|
||||||
|
-----END X509 CERTIFICATE-----
|
18
certs/expired/vsign2.pem
Normal file
18
certs/expired/vsign2.pem
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
subject=/C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority
|
||||||
|
notBefore=Jan 29 00:00:00 1996 GMT
|
||||||
|
notAfter=Jan 7 23:59:59 2004 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICPTCCAaYCEQC6WslMBTuS1qe2307QU5INMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
|
||||||
|
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
|
||||||
|
c3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
|
||||||
|
NjAxMjkwMDAwMDBaFw0wNDAxMDcyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
|
||||||
|
VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMiBQdWJsaWMgUHJp
|
||||||
|
bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
|
||||||
|
jQAwgYkCgYEAtlqLow1qI4OAa885h/QhEzMGTCWi7VUSl8WngLn6g8EgoPovFQ18
|
||||||
|
oWBrfnks+gYPOq72G2+x0v8vKFJfg31LxHq3+GYfgFT8t8KOWUoUV0bRmpO+QZED
|
||||||
|
uxWAk1zr58wIbD8+s0r8/0tsI9VQgiZEGY4jw3HqGSRHBJ51v8imAB8CAwEAATAN
|
||||||
|
BgkqhkiG9w0BAQIFAAOBgQC2AB+TV6QHp0DOZUA/VV7t7/pUSaUw1iF8YYfug5ML
|
||||||
|
v7Qz8pisnwa/TqjOFIFMywROWMPPX+5815pvy0GKt3+BuP+EYcYnQ2UdDOyxAArd
|
||||||
|
G6S7x3ggKLKi3TaVLuFUT79guXdoEZkj6OpS6KoATmdOu5C1RZtG644W78QzWzM9
|
||||||
|
1Q==
|
||||||
|
-----END CERTIFICATE-----
|
18
certs/expired/vsign3.pem
Normal file
18
certs/expired/vsign3.pem
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
subject=/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
|
||||||
|
notBefore=Jan 29 00:00:00 1996 GMT
|
||||||
|
notAfter=Jan 7 23:59:59 2004 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICPTCCAaYCEQDknv3zOugOz6URPhmkJAIyMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
|
||||||
|
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
|
||||||
|
c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
|
||||||
|
NjAxMjkwMDAwMDBaFw0wNDAxMDcyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
|
||||||
|
VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJp
|
||||||
|
bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
|
||||||
|
jQAwgYkCgYEAyVxZnvIbigEUtBDfBEDb41evakVAj4QMC9Ez2dkRz+4CWB8l9yqo
|
||||||
|
RAWq7AMfeH+ek7maAKojfdashaJjRcdyJ8z0TMZ1cdI5709C8HXfCpDGjiBvmA/4
|
||||||
|
rCNfcCk2pMmG57GaIMtTpYXnPb59mv4kRTPcdhXtD6JxZExlLoFoRacCAwEAATAN
|
||||||
|
BgkqhkiG9w0BAQIFAAOBgQBhcOwvP579K+ZoVCGwZ3kIDCCWMYoNer62Jt95LCJp
|
||||||
|
STbjl3diYaIy13pUITa6Ask05yXaRDWw0lyAXbOU+Pms7qRgdSoflUkjsUp89LNH
|
||||||
|
ciFbfperVKxi513srpvSybIk+4Kt6WcVS7qqpvCXoPawl1cAyAw8CaCCBLpB2veZ
|
||||||
|
pA==
|
||||||
|
-----END CERTIFICATE-----
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user