Compare commits

...

732 Commits

Author SHA1 Message Date
cvs2svn
2b61c27287 This commit was manufactured by cvs2svn to create tag 'OpenSSL_0_9_7-beta5'. 2002-12-06 00:37:21 +00:00
Richard Levitte
aaf7b47abe The news were not updated in time... 2002-12-06 00:37:20 +00:00
Richard Levitte
af0b30e77c Tagging has been done, time to move the branch to 0.9.7-beta6
development.
2002-12-05 23:10:01 +00:00
Richard Levitte
9494e3cc40 Time to release 0.9.7-beta5.
The tag will be OpenSSL_0_9_7-beta5.
2002-12-05 22:51:19 +00:00
Richard Levitte
a272f7eb08 Merge in relevant changes from the OpenSSL 0.9.6h release. 2002-12-05 21:51:57 +00:00
Richard Levitte
b3dd9f3bb5 SSL_CERT_FILE should be used in place of the system default file, not as
a first alternative to try
2002-12-05 21:07:35 +00:00
Richard Levitte
bb9104f0ee Corrected DJGPP patch 2002-12-05 20:50:52 +00:00
Richard Levitte
ae0b7667a9 Make sure to implement the cryptodev engine only when /dev/crypto exists.
PR: 385
2002-12-05 10:17:08 +00:00
Richard Levitte
fabf7d3a67 make update 2002-12-05 01:55:24 +00:00
Richard Levitte
54307ce955 Allow users to modify /MD to /MT.
PR: 380
2002-12-05 01:35:09 +00:00
Richard Levitte
2589b74fd8 Make sure using SSL_CERT_FILE actually works, and has priority over system defaults.
PR: 376
2002-12-05 01:20:59 +00:00
Richard Levitte
d9090acdfb If an application supports static locks, it MUST support dynamic locks as
well to be able to use the CHIL engine.
PR: 281
2002-12-05 00:57:20 +00:00
Richard Levitte
72951df799 Only check for a result buffer if the allocated string is a prompt string.
PR: 381
2002-12-05 00:04:40 +00:00
Richard Levitte
a9b41af71c Do not implement RC4 stuff if RC4 is disabled. Concequently, apply the same
rule for SHA stuff.
PR: 381
2002-12-04 22:54:13 +00:00
Richard Levitte
a0ed612fef gethostname() is more a BSD feature than an XOPEN one.
PR: 379
2002-12-04 22:48:10 +00:00
Richard Levitte
afdec73ca5 Correct a few typos that I introduced after applying DJGPP patches. 2002-12-04 19:13:49 +00:00
Lutz Jänicke
2e70cb6506 Missing "("
Submitted by: Christian Hohnstaedt <chohnstaedt@innominate.com>
Reviewed by:
PR:
2002-12-04 13:29:14 +00:00
Richard Levitte
1794904a4a DJGPP patches.
PR: 347
2002-12-04 09:54:31 +00:00
Richard Levitte
fd28279a62 Add support for x86_64.
PR: 348
2002-12-04 09:17:54 +00:00
Richard Levitte
6b27ae1d94 A gcc 3.0 bug is triggered by our code. Add a section about it in PROBLEMS.
PR: 375
2002-12-04 08:24:28 +00:00
Dr. Stephen Henson
a6ee8fe26a Make ASN1_TYPE_get() work for V_ASN1_NULL type. 2002-12-04 00:50:20 +00:00
Dr. Stephen Henson
e758ce69a3 Typo in X509v3_get_ext_by_critical 2002-12-04 00:14:00 +00:00
Dr. Stephen Henson
38b085902f In asn1_d2i_read_bio, don't assume BIO_read will
return the requested number of bytes when reading
content.
2002-12-03 23:49:12 +00:00
Richard Levitte
27498a3330 EXIT() may mean return(). That's confusing, so let's have it really mean
exit() in whatever way works for the intended platform, and define
OPENSSL_EXIT() to have the old meaning (the name is of course because
it's only used in the openssl program)
2002-12-03 16:34:28 +00:00
Richard Levitte
49cd4b7316 Make CRYPTO_cleanse() independent of endianness. 2002-12-03 16:07:03 +00:00
Richard Levitte
a067cba35b Windows CE updates, contributed by Steven Reddie <smr@essemer.com.au> 2002-12-03 14:21:32 +00:00
Richard Levitte
2905015c6e Merge from HEAD 2002-12-02 22:56:43 +00:00
Richard Levitte
610abd4c52 define USE_SOCKETS so sys/param.h gets included (and thusly, MAXHOSTNAMELEN
gets defined).
PR: 371
2002-12-02 22:49:12 +00:00
Richard Levitte
ddc6ea162f Merge from HEAD 2002-12-02 02:40:42 +00:00
Richard Levitte
b8804bf15d Small bugfix: even when r == d, we need to adjust r and q.
PR: 366
2002-12-01 02:17:30 +00:00
Richard Levitte
d03ad453a5 EXIT() needs to be in a function that returns int. 2002-12-01 01:23:39 +00:00
Richard Levitte
3f71579dfc Redo the VAX assembler version of bn_div_words().
PR: 366
2002-12-01 00:49:45 +00:00
Richard Levitte
f217439ee2 Remove incorrect assert.
PR: 360
2002-11-29 15:18:28 +00:00
Richard Levitte
9d8f3cfb7f Make it so all names mentioned in the NAME section of each manpage becomes a
symlink to said manpage.
PR: 242
2002-11-29 15:01:12 +00:00
cvs2svn
d5c79928ef This commit was manufactured by cvs2svn to create branch
'OpenSSL_0_9_7-stable'.
2002-11-29 15:01:01 +00:00
Richard Levitte
db3758923b Make it so all names mentioned in the NAME section of each manpage becomes a
symlink to said manpage.
PR: 242
2002-11-29 15:00:58 +00:00
Richard Levitte
37529750e2 Correct some names. 2002-11-29 14:22:05 +00:00
Richard Levitte
5e4a75e79f Correct some names. 2002-11-29 14:21:54 +00:00
Richard Levitte
c9ea7400b4 A few more memset()s converted to OPENSSL_cleanse().
I *think* I got them all covered by now, bu please, if you find any more,
tell me and I'll correct it.
PR: 343
2002-11-29 11:31:51 +00:00
Richard Levitte
43d601641f A few more memset()s converted to OPENSSL_cleanse().
I *think* I got them all covered by now, bu please, if you find any more,
tell me and I'll correct it.
PR: 343
2002-11-29 11:30:45 +00:00
Richard Levitte
9fa15b6ff8 Have all tests use EXIT() to exit rather than exit(), since the latter doesn't
always give the expected result on some platforms.
2002-11-28 18:57:30 +00:00
Richard Levitte
55f78baf32 Have all tests use EXIT() to exit rather than exit(), since the latter doesn't
always give the expected result on some platforms.
2002-11-28 18:54:30 +00:00
Richard Levitte
9c44ebc1e2 Make sure EXIT() can always be used as one statement. 2002-11-28 18:52:24 +00:00
Richard Levitte
6c359479d7 Make sure EXIT() can always be used as one statement. 2002-11-28 18:52:14 +00:00
Richard Levitte
75e3026a14 Cleanse memory using the new OPENSSL_cleanse() function.
I've covered all the memset()s I felt safe modifying, but may have missed some.
2002-11-28 08:09:03 +00:00
Richard Levitte
4579924b7e Cleanse memory using the new OPENSSL_cleanse() function.
I've covered all the memset()s I felt safe modifying, but may have missed some.
2002-11-28 08:04:36 +00:00
Richard Levitte
2047bda6fb Unused variable removed. 2002-11-27 13:40:41 +00:00
Richard Levitte
406c6f6962 Extra ; removed. 2002-11-27 13:40:11 +00:00
Richard Levitte
0a3af9a403 Add OPENSSL_cleanse() to help cleanse memory and avoid certain compiler
and linker optimizations.
PR: 343
2002-11-27 12:25:52 +00:00
cvs2svn
3a08cf3bfb This commit was manufactured by cvs2svn to create branch
'OpenSSL_0_9_7-stable'.
2002-11-27 12:24:10 +00:00
Richard Levitte
df29cc8f77 Add OPENSSL_cleanse() to help cleanse memory and avoid certain compiler
and linker optimizations.
PR: 343
2002-11-27 12:24:05 +00:00
Richard Levitte
ec7164133d I forgot that @ in strings must be escaped in Perl 2002-11-26 15:27:05 +00:00
Richard Levitte
8826087a97 I forgot that @ in strings must be escaped in Perl 2002-11-26 15:26:55 +00:00
Richard Levitte
8aa09a245c The logic in the main signing and verifying functions to check lengths was
incorrect.  Fortunately, there is a second check that's correct, when adding
the pads.
PR: 355
2002-11-26 11:14:45 +00:00
Richard Levitte
ba8ad07490 The logic in the main signing and verifying functions to check lengths was
incorrect.  Fortunately, there is a second check that's correct, when adding
the pads.
PR: 355
2002-11-26 11:14:32 +00:00
Richard Levitte
17582ccf21 Heimdal isn't really supported right now. Say so, and offer a possibility
to force the use of Heimdal, and warn if that's used.
PR: 346
2002-11-26 10:11:58 +00:00
Richard Levitte
a5fd84de41 Heimdal isn't really supported right now. Say so, and offer a possibility
to force the use of Heimdal, and warn if that's used.
PR: 346
2002-11-26 10:11:25 +00:00
Richard Levitte
31be2daa06 Small bugfixes to the KSSL implementation.
PR: 349
2002-11-26 10:09:36 +00:00
Richard Levitte
dc199cfaa2 Small bugfixes to the KSSL implementation.
PR: 349
2002-11-26 10:09:28 +00:00
Richard Levitte
de868e0b94 Heimdal isn't really supported right now. Say so, and offer a possibility
to force the use of Heimdal, and warn if that's used.
PR: 346
2002-11-26 09:19:17 +00:00
Richard Levitte
b81ef84227 Heimdal isn't really supported right now. Say so, and offer a possibility
to force the use of Heimdal, and warn if that's used.
PR: 346
2002-11-26 09:19:06 +00:00
Bodo Möller
15994b034a rename some functions to improve consistency
Submitted by: Sheueling Chang
2002-11-23 18:16:09 +00:00
Bodo Möller
922fa76e26 add a comment 2002-11-22 09:25:35 +00:00
Richard Levitte
19aa370573 Disable this module if OPENSSL_NO_SOCK is defined. 2002-11-22 08:45:20 +00:00
Richard Levitte
d020e701bb Typo. OPENSSL_NO_ECDH, not NO_OPENSSL_ECDH 2002-11-22 08:40:34 +00:00
Richard Levitte
91203a9482 Mention a current showstopper 2002-11-21 22:39:25 +00:00
Richard Levitte
364ff369d1 Mention a current showstopper 2002-11-21 22:39:08 +00:00
Bodo Möller
134fea9d0f avoid uninitialized memory read
Submitted by: Nils Larsch
2002-11-20 14:14:45 +00:00
Bodo Möller
8a09b3866a avoid uninitialized memory read
Submitted by: Nils Larsch
2002-11-20 10:55:27 +00:00
Bodo Möller
137445140b Make ec_GFp_simple_point_get_affine_coordinates() faster
for Montgomery representations.

Submitted by: Sheueling Chang, Bodo Moeller
2002-11-20 10:53:33 +00:00
Lutz Jänicke
6a8afe2201 Fix bug introduced by the attempt to fix client side external session
caching (#288): now internal caching failed (#351):
Make sure, that cipher_id is set before comparing.
Submitted by:
Reviewed by:
PR: 288 (and 351)
2002-11-20 10:48:58 +00:00
Lutz Jänicke
a153c46d7f Fix bug introduced by the attempt to fix client side external session
caching (#288): now internal caching failed (#351):
Make sure, that cipher_id is set before comparing.
Submitted by:
Reviewed by:
PR: 288 (and 351)
2002-11-20 10:46:35 +00:00
Bodo Möller
1e3a9b650f allocate bio_err before memory debugging is enabled to avoid memory leaks
(we can't release it before the CRYPTO_mem_leaks() call!)

Submitted by: Nils Larsch
2002-11-19 11:56:05 +00:00
Bodo Möller
8faad520ae allocate bio_err before memory debugging is enabled to avoid memory leaks
(we can't release it before the CRYPTO_mem_leaks() call!)

Submitted by: Nils Larsch
2002-11-19 11:55:47 +00:00
Richard Levitte
229dc0ee31 It works on my laptop :-). 2002-11-19 11:52:24 +00:00
Richard Levitte
fcc764639d make update 2002-11-19 11:40:14 +00:00
Richard Levitte
8f89ae928b We now work with the development of 0.9.7 beta 5. 2002-11-19 11:37:03 +00:00
Richard Levitte
821385ad00 Fix an unsigned/signed mismatch. 2002-11-19 11:28:28 +00:00
Richard Levitte
782ded56e5 Update STATUS 2002-11-19 09:34:38 +00:00
Richard Levitte
25ff76d565 Update STATUS 2002-11-19 09:34:34 +00:00
Richard Levitte
8e458d52b5 Time to release 0.9.7-beta4.
The tag will be OpenSSL_0_9_7-beta4
2002-11-19 09:34:29 +00:00
Richard Levitte
1f475c1f6f make update 2002-11-19 08:55:06 +00:00
Richard Levitte
bc9867e672 Add news items for 0.9.6h and expand on the 0.9.7 news as well. 2002-11-18 23:58:33 +00:00
Richard Levitte
9801fb61d0 Add news items for 0.9.6h and expand on the 0.9.7 news as well. 2002-11-18 23:58:24 +00:00
Richard Levitte
20199ca809 Document the addition of certificate pairs. 2002-11-18 23:56:15 +00:00
Richard Levitte
711f1a3c26 Add the ASN.1 structures and functions for CertificatePair, which is
defined as follows (according to X.509_4thEditionDraftV6.pdf):

CertificatePair ::= SEQUENCE {
	forward		[0]	Certificate OPTIONAL,
	reverse		[1]	Certificate OPTIONAL,
	-- at least one of the pair shall be present -- }

The only thing I'm not sure about is if it's implicit or explicit tags
that I should count on.  For now, I'm thinking explicit, but will
gladly stand corrected.

Also implement the PEM functions to read and write certificate pairs,
and defined the PEM tag as "CERTIFICATE PAIR".

This needed to be defined, mostly for the sake of the LDAP attribute
crossCertificatePair, but may prove useful elsewhere as well.
2002-11-18 23:54:27 +00:00
Richard Levitte
412fd4708d Determine HZ exactly as in apps/speed.c. 2002-11-18 23:06:46 +00:00
Richard Levitte
a1d85309ee Determine HZ exactly as in apps/speed.c. 2002-11-18 23:06:36 +00:00
Richard Levitte
273c624442 Make sure sysconf exists (it doesn't in the VMS C RTL lesser than version 7). 2002-11-18 23:05:50 +00:00
Richard Levitte
450cee5c3a Make sure sysconf exists (it doesn't in the VMS C RTL lesser than version 7). 2002-11-18 23:05:39 +00:00
Bodo Möller
a2dbcf3644 remove redundant functions 2002-11-18 14:37:35 +00:00
Bodo Möller
4663355496 use consistent order of function definitions 2002-11-18 14:33:39 +00:00
Bodo Möller
8b591c2f8e fix memory leak in memory debuggin code ...
Submitted by: Nils Larsch
2002-11-18 14:01:24 +00:00
Bodo Möller
9dc610495c fix memory leak in memory debuggin code ...
Submitted by: Nils Larsch
2002-11-18 14:00:42 +00:00
Bodo Möller
8f4a23e3b7 allocate bio_err before memory debugging is enabled to avoid memory leaks
(we can't release it before the CRYPTO_mem_leaks() call!)

Submitted by: Nils Larsch
2002-11-18 13:38:30 +00:00
Bodo Möller
055076cd4f allocate bio_err before memory debugging is enabled to avoid memory leaks
(we can't release it before the CRYPTO_mem_leaks() call!)

Submitted by: Nils Larsch
2002-11-18 13:37:40 +00:00
Richard Levitte
c83d8e2ba6 A variable of type time_t is supposed to be a time measurement starting at
Epoch.  offset isn't such a measurement, so let's stop pretend it is.
2002-11-18 13:04:29 +00:00
Richard Levitte
527497a722 A variable of type time_t is supposed to be a time measurement starting at
Epoch.  offset isn't such a measurement, so let's stop pretend it is.
2002-11-18 13:04:08 +00:00
Lutz Jänicke
32d21c1ef6 Better workaround to the "=head1 NAME OPTIONS" pod2latex problem:
NAME OPTIONS are a subset of OPTIONS, so just make it =head2!
Submitted by:
Reviewed by:
PR: 333
2002-11-18 08:15:45 +00:00
Lutz Jänicke
6afc70be84 Better workaround to the "=head1 NAME OPTIONS" pod2latex problem:
NAME OPTIONS are a subset of OPTIONS, so just make it =head2!
Submitted by:
Reviewed by:
PR: 333
2002-11-18 08:14:20 +00:00
Richard Levitte
f503c2c9e6 Make it possible to build for more than one CPU.
Clarify what the CE tests do.
2002-11-17 19:48:34 +00:00
Richard Levitte
629b58b7fb Make it possible to build for more than one CPU.
Clarify what the CE tests do.
2002-11-17 19:48:19 +00:00
Richard Levitte
7656893d51 Ignore openssl.pc. This way, there's no risk that I'll add it again :-). 2002-11-17 08:07:12 +00:00
Richard Levitte
7fa2a81d34 Ignore openssl.pc. This way, there's no risk that I'll add it again :-). 2002-11-17 08:07:08 +00:00
Richard Levitte
ff38d68237 Adding openssl.pc to the repository was a mistake,
since it's generated.
2002-11-17 08:05:43 +00:00
Richard Levitte
7f66ab4783 Adding openssl.pc to the repository was a mistake,
since it's generated.
2002-11-17 08:05:38 +00:00
Richard Levitte
95189389b0 Add the file openssl.pc that I forgot a while ago. 2002-11-17 08:03:24 +00:00
Richard Levitte
aff3e60754 Add the file openssl.pc that I forgot a while ago. 2002-11-17 07:47:25 +00:00
Richard Levitte
8196d87371 I forgot this is compiled in test/, not crypto/ec/... 2002-11-16 10:10:49 +00:00
Richard Levitte
b4b82ab465 I forgot this is compiled in test/, not crypto/ec/... 2002-11-16 10:10:39 +00:00
Richard Levitte
61b1ad197a We don't want TARGETCPU expanded here. 2002-11-16 09:42:17 +00:00
Richard Levitte
89618e7a0d We don't want TARGETCPU expanded here. 2002-11-16 09:42:04 +00:00
Richard Levitte
293bb4b1b8 Mention ActiveState Perl much earlier in INSTALL.WCE. 2002-11-15 22:54:26 +00:00
Richard Levitte
b87e2576b5 Mention ActiveState Perl much earlier in INSTALL.WCE. 2002-11-15 22:54:13 +00:00
Richard Levitte
29ca164513 WinCE patches 2002-11-15 22:44:08 +00:00
cvs2svn
97d58eadbf This commit was manufactured by cvs2svn to create branch
'OpenSSL_0_9_7-stable'.
2002-11-15 22:37:19 +00:00
Richard Levitte
0bf23d9b20 WinCE patches 2002-11-15 22:37:18 +00:00
Lutz Jänicke
813f256783 Fix buggy #! magic and update ssleay->openssl
Submitted by:
Reviewed by:
PR: 305
2002-11-15 21:26:42 +00:00
Lutz Jänicke
8cdeec9f54 Fix buggy #! magic and update ssleay->openssl
Submitted by:
Reviewed by:
PR: 305
2002-11-15 21:26:02 +00:00
Richard Levitte
bfa96bc20e Add the INHIBIT_SYMLINKS flag variable to help Cygwin.
Add missing semicolons.
Add a comment explaining a bunch of targets without any action lines.
2002-11-15 16:56:36 +00:00
Richard Levitte
082cd4e564 Changes to make shared library building and use work better with Cygwin 2002-11-15 16:49:34 +00:00
Richard Levitte
6f17f16fd5 Changes to make shared library building and use work better with Cygwin 2002-11-15 16:48:38 +00:00
Richard Levitte
2115a89212 Document the change to remove the 'done' flag variable in the
OpenSSL_add_all_*() routines
2002-11-15 14:01:15 +00:00
Richard Levitte
84034f7aec Document the change to remove the 'done' flag variable in the
OpenSSL_add_all_*() routines
2002-11-15 13:58:11 +00:00
Bodo Möller
acce40c585 this method does not need field_data1 2002-11-15 12:43:15 +00:00
Richard Levitte
af3ec1e24e make update 2002-11-15 11:22:25 +00:00
Richard Levitte
6dc78bf7e8 make update 2002-11-15 11:20:43 +00:00
Richard Levitte
f275683ae8 A few more Microsoft OIDs added 2002-11-15 11:18:22 +00:00
Richard Levitte
ce4f169ff9 A few more Microsoft OIDs added 2002-11-15 11:17:50 +00:00
Lutz Jänicke
c566205319 The pointer to the cipher object is not yet set, when session was reloaded
from external cache (using d2i_SSL_SESSION). Perform comparison based on
the cipher's id instead.
Submitted by: Steve Haslam <araqnid@innocent.com>
Reviewed by:
PR: 288
2002-11-15 10:53:33 +00:00
Lutz Jänicke
da91e37d37 The pointer to the cipher object is not yet set, when session was reloaded
from external cache (using d2i_SSL_SESSION). Perform comparison based on
the cipher's id instead.
Submitted by: Steve Haslam <araqnid@innocent.com>
Reviewed by:
PR: 288
2002-11-15 10:51:40 +00:00
Richard Levitte
2758c44398 The architecture name is i486, not just 486 2002-11-15 10:28:55 +00:00
Richard Levitte
eaf6c61c9f The architecture name is i486, not just 486 2002-11-15 10:28:28 +00:00
Richard Levitte
4e056a2894 -Wid-clash-n isn't support in gcc 3, and I get better result from continuously
rebuilding on a VMS box.
2002-11-15 10:19:47 +00:00
Richard Levitte
4c53d11d7f -Wid-clash-n isn't support in gcc 3, and I get better result from continuously
rebuilding on a VMS box.
2002-11-15 10:19:23 +00:00
Richard Levitte
f60b017da8 I know ANSI C doesn't like 'long long', and I don't want to see it 2002-11-15 10:16:07 +00:00
Richard Levitte
1d647444e3 I know ANSI C doesn't like 'long long', and I don't want to see it 2002-11-15 10:15:56 +00:00
Richard Levitte
08634f1156 Spell prototypes correctly :-) 2002-11-15 09:56:41 +00:00
Richard Levitte
c1eeb6078f Spell prototypes correctly :-). 2002-11-15 09:56:01 +00:00
Richard Levitte
a50d6a801f Add -Wstrict-prototype and -Wmissing-prototype to my debugging targets 2002-11-15 09:54:06 +00:00
Richard Levitte
953db08416 Add -Wstrict-prototype and -Wmissing-prototype to my debugging targets 2002-11-15 09:53:46 +00:00
Richard Levitte
0439a5a8a7 We need to read one more byte of the REQUEST-CERTIFICATE message.
PR: 300
2002-11-15 09:17:45 +00:00
Richard Levitte
0a5942093e We need to read one more byte of the REQUEST-CERTIFICATE message.
PR: 300
2002-11-15 09:15:55 +00:00
Dr. Stephen Henson
d78254aa28 Add SETWRAP modifier to ASN1 generate. 2002-11-15 00:26:07 +00:00
Richard Levitte
af67804bef make update 2002-11-14 23:56:12 +00:00
Richard Levitte
8ffe66b4ce make update 2002-11-14 23:54:12 +00:00
Richard Levitte
d62ec8362a Close the implicitely opened registry key.
PR: 264
2002-11-14 23:34:07 +00:00
Richard Levitte
35a6db8640 Close the implicitely opened registry key.
PR: 264
2002-11-14 23:33:28 +00:00
Lutz Jänicke
56dc24d483 Use =back to finish =over (found using pod2latex).
Submitted by:
Reviewed by:
PR:
2002-11-14 21:50:30 +00:00
Lutz Jänicke
84d828ab70 No such reference to link to (found running pod2latex).
Submitted by:
Reviewed by:
PR:
2002-11-14 21:41:54 +00:00
Lutz Jänicke
259b33d5a3 No such reference to link to (found running pod2latex).
Submitted by:
Reviewed by:
PR:
2002-11-14 21:40:12 +00:00
Dr. Stephen Henson
cfae3d94e9 Fix documentation of i2d_X509_fp and i2d_X509_bio. 2002-11-14 18:15:52 +00:00
Dr. Stephen Henson
6393c09cda Fix documentation of i2d_X509_fp and i2d_X509_bio. 2002-11-14 18:12:45 +00:00
Richard Levitte
9421f1ab9c Add Tandem OSS target.
PR: 192
2002-11-14 16:30:44 +00:00
Richard Levitte
b9c23cca01 Add Tandem OSS target.
PR: 192
2002-11-14 16:30:11 +00:00
Richard Levitte
5bf0d0ea1e Remove warnings. 2002-11-14 15:58:01 +00:00
Richard Levitte
c863201780 Remove warnings. 2002-11-14 15:57:38 +00:00
Richard Levitte
cb21d001c9 DCL logic bugs fixed.
(I really need to review my knowledge of the language)
2002-11-14 15:38:47 +00:00
Richard Levitte
769f74b818 It seems like gcc 2.9aix5.1 doesn't do will with optimization level 3.
PR: 115
2002-11-14 14:08:21 +00:00
Richard Levitte
c7faede37b It seems like gcc 2.9aix5.1 doesn't do will with optimization level 3.
PR: 115
2002-11-14 14:07:48 +00:00
Richard Levitte
64051a3a71 Add a FAQ on how to check the authenticity of the openSSL distribution.
PR: 292
2002-11-14 13:01:35 +00:00
Richard Levitte
d4e573f305 Add a FAQ on how to check the authenticity of the openSSL distribution.
PR: 292
2002-11-14 13:00:59 +00:00
Richard Levitte
8260eded07 Cygwin fixes 2002-11-14 12:39:56 +00:00
Richard Levitte
e20afbb340 Cygwin fixes 2002-11-14 12:39:39 +00:00
Bodo Möller
2b2ab52354 harmonize with 0.9.7 tree 2002-11-14 12:17:47 +00:00
Bodo Möller
402b4a784d use same entry as in more recent CHANGES revision in CVS head 2002-11-14 12:11:44 +00:00
Bodo Möller
651e7ddf7e fix order again 2002-11-14 12:08:16 +00:00
Richard Levitte
40bace2da6 Fix to build better with DJGPP.
PR: 338

Here's the description, submitted by Gisle Vanem <giva@bgnett.no>:

1. sock_init() renamed to ssl_sock_init() in ./apps/s_socket.c due
   to name-clash with Watt-32.

2. rand() renamed to Rand() in ./crypto/bn/divtest.c due to name-clash
   with <stdlib.h>

3. Added calls to dbug_init()/sock_init() in some demo programs.

4. Changed cflags/lflags in configure. Watt-32 install root now taken
   from $WATT_ROOT.
2002-11-14 11:22:46 +00:00
Richard Levitte
8d6e60486f Fix to build better with DJGPP.
PR: 338

Here's the description, submitted by Gisle Vanem <giva@bgnett.no>:

1. sock_init() renamed to ssl_sock_init() in ./apps/s_socket.c due
   to name-clash with Watt-32.

2. rand() renamed to Rand() in ./crypto/bn/divtest.c due to name-clash
   with <stdlib.h>

3. Added calls to dbug_init()/sock_init() in some demo programs.

4. Changed cflags/lflags in configure. Watt-32 install root now taken
   from $WATT_ROOT.
2002-11-14 11:22:01 +00:00
Lutz Jänicke
1f30946481 Don't declare 2 WARNINGS sections
Submitted by:
Reviewed by:
PR:
2002-11-14 11:13:01 +00:00
Lutz Jänicke
e89c82f549 Don't declare 2 WARNINGS sections
Submitted by:
Reviewed by:
PR:
2002-11-14 11:12:14 +00:00
Lutz Jänicke
b1697f189b Opportunistic change to work around pod2latex bug: rename NAME OPTIONS
section to SUBJECT AND ISSUER NAME OPTIONS
Submitted by:
Reviewed by:
PR: 333
2002-11-14 11:09:07 +00:00
Lutz Jänicke
812d100d06 Opportunistic change to work around pod2latex bug: rename NAME OPTIONS
section to SUBJECT AND ISSUER NAME OPTIONS
Submitted by:
Reviewed by:
PR: 333
2002-11-14 11:08:23 +00:00
Lutz Jänicke
17a202add7 Correct reference to section name.
Submitted by:
Reviewed by:
PR:
2002-11-14 11:03:30 +00:00
Lutz Jänicke
b759742352 Correct reference to section name.
Submitted by:
Reviewed by:
PR:
2002-11-14 11:02:25 +00:00
Bodo Möller
3bd16a8902 fix output
Submitted by: Nils Larsch
2002-11-14 10:57:45 +00:00
Bodo Möller
555d75252a use new BIO_indent() function here as well
Submitted by: Nils Larsch
2002-11-14 10:56:59 +00:00
Lutz Jänicke
eaad02a747 Missing =back
Submitted by:
Reviewed by:
PR:
2002-11-14 10:51:54 +00:00
Lutz Jänicke
475e4d23bd Missing =back
Submitted by:
Reviewed by:
PR:
2002-11-14 10:49:42 +00:00
Richard Levitte
bf4ae6dcfa The directory 'rijndael' doesn't exist any more, let's check the aes
directory instead (this should have been done long ago...).
2002-11-14 08:23:37 +00:00
Richard Levitte
97101fafd5 The directory 'rijndael' doesn't exist any more, let's check the aes
directory instead (this should have been done long ago...).
2002-11-14 08:23:32 +00:00
Richard Levitte
17d4f07658 When AES is skipped because the option 'no-rijndael' was given,
make sure it's skipped from SDIRS as well.
2002-11-14 08:20:50 +00:00
Richard Levitte
403f1bdc70 When AES is skipped because the option 'no-rijndael' was given,
make sure it's skipped from SDIRS as well.
2002-11-14 08:20:40 +00:00
Richard Levitte
5ec797f263 Make the Windows test scripts consistent in their echoing 2002-11-14 08:09:07 +00:00
Richard Levitte
d574d83993 Make the Windows test scripts consistent in their echoing 2002-11-14 08:08:55 +00:00
Richard Levitte
83411793b6 Handle last lines that aren't properly terminated.
PR: 308
2002-11-14 06:51:18 +00:00
Richard Levitte
5b1aea7afe Handle last lines that aren't properly terminated.
PR: 308
2002-11-14 06:50:32 +00:00
Dr. Stephen Henson
65caee44ff Fix get_email: 0 is a valid return value 2002-11-14 00:46:11 +00:00
Dr. Stephen Henson
327e113775 Fix get_email: 0 is a valid return value 2002-11-14 00:45:04 +00:00
Richard Levitte
58f3009aba Constification needed.
PR: 241
2002-11-13 23:47:52 +00:00
Richard Levitte
738554331b Constification needed.
PR: 241
2002-11-13 23:47:31 +00:00
Richard Levitte
b193f29a9b free() -> OPENSSL_free() 2002-11-13 20:25:56 +00:00
Richard Levitte
3f083ef0eb free() -> OPENSSL_free() 2002-11-13 20:25:47 +00:00
Richard Levitte
17ed6c06a7 Merge from 0.9.7-stable. 2002-11-13 18:10:30 +00:00
Richard Levitte
c112323dd5 This didn't get to the 0.9.8-dev thread... 2002-11-13 18:09:27 +00:00
Richard Levitte
0709385d3c Correct support for SunOS 4.1.3_U1.
PR: 227
2002-11-13 16:11:14 +00:00
Richard Levitte
7ab58bf012 Correct support for SunOS 4.1.3_U1.
PR: 227
2002-11-13 15:49:51 +00:00
Ben Laurie
54a656ef08 Security fixes brought forward from 0.9.7. 2002-11-13 15:43:43 +00:00
Richard Levitte
8f797f14b8 When build as dynamic engines, the loading functions should be defined
static.
2002-11-13 15:30:25 +00:00
Richard Levitte
cd10ba9c39 When build as dynamic engines, the loading functions should be defined
static.
2002-11-13 15:29:01 +00:00
Richard Levitte
c0d64de660 Make internal functions static. 2002-11-13 14:34:53 +00:00
Richard Levitte
96a3369c4a Make internal functions static. 2002-11-13 14:31:55 +00:00
Richard Levitte
c1ce8cf3b8 Name the flag files correctly. 2002-11-13 14:31:34 +00:00
Richard Levitte
e8ad570e3f Changes from HEAD. 2002-11-13 14:31:01 +00:00
Richard Levitte
ad1ddf413c The loading functions should be static if we build a dynamic engine. 2002-11-13 14:30:34 +00:00
Dr. Stephen Henson
2d780dfd81 Typo 2002-11-13 14:07:37 +00:00
Bodo Möller
b6fee5c2fb disable weird assert()s 2002-11-13 14:01:34 +00:00
Bodo Möller
e2c2152be9 disable weird assert()s 2002-11-13 14:01:19 +00:00
Bodo Möller
10fa047622 remove unused old directory crypto/rijndael (superseded by crypto/aes) 2002-11-13 13:55:41 +00:00
Bodo Möller
919b2a9673 remove unused old directory crypto/rijndael (superseded by crypto/aes) 2002-11-13 13:55:24 +00:00
Richard Levitte
024a20905d C++ comments in C code, 'nuff said... 2002-11-13 13:36:29 +00:00
Dr. Stephen Henson
04f0a6ba39 Update docs 2002-11-13 13:18:14 +00:00
Ben Laurie
eb43641dd3 Fix warnings, makefile cockup. 2002-11-13 11:59:48 +00:00
Richard Levitte
69ba8a00ad make update 2002-11-13 11:35:51 +00:00
Richard Levitte
f6a0c4f853 Make OpenSSLdie() visible (it's a must to get a proper reference in
libeay.num).
2002-11-13 11:35:12 +00:00
Dr. Stephen Henson
040ade9bee As main trun 2002-11-13 01:22:40 +00:00
Dr. Stephen Henson
d479dc1d02 Put NAME in right place, fix typo 2002-11-13 01:20:43 +00:00
Dr. Stephen Henson
7fb8d254fe Only accept exact match for modifier or tag name 2002-11-13 00:57:41 +00:00
Dr. Stephen Henson
c99935e32c Add header ctype.h 2002-11-13 00:42:11 +00:00
Dr. Stephen Henson
2232e262bf Fix memory leak in s2i_ASN_INTEGER and return an error
if any invalid characters are present.
2002-11-13 00:40:51 +00:00
Dr. Stephen Henson
137e7e3aa1 Update docs 2002-11-13 00:14:15 +00:00
Dr. Stephen Henson
ba36b61d3d Initial ASN1 generation documentation. 2002-11-12 18:20:28 +00:00
Richard Levitte
ccb13ded84 Synchronise... 2002-11-12 13:55:20 +00:00
Bodo Möller
46ce790727 fix order of changes -- if B depends on A, A should be listed
after B (reversed 'chronological' order)
2002-11-12 13:35:27 +00:00
Dr. Stephen Henson
9ea1b87862 Initial ASN1 generation code. This can construct
arbitrary encodings from strings and config files.

Documentation to follow...
2002-11-12 13:34:51 +00:00
Ben Laurie
9831d941ca Many security improvements (CHATS) and a warning fix. 2002-11-12 13:23:40 +00:00
Richard Levitte
707ceb29e0 Make it possible to run individual tests even when linked with libcrypto.so and libssl.so 2002-11-12 11:25:33 +00:00
Richard Levitte
688cf84d1f Make it possible to run individual tests even when linked with libcrypto.so and libssl.so 2002-11-12 11:25:23 +00:00
Richard Levitte
3d470fc7b7 Make the CBC mode od AES accept lengths that aren't multiples of 16.
PR: 330
2002-11-12 11:00:35 +00:00
Richard Levitte
69ce48c307 Make the CBC mode od AES accept lengths that aren't multiples of 16.
PR: 330
2002-11-12 11:00:25 +00:00
Richard Levitte
edb7b28a00 Variables on the stack must be initialized or we can't depend on any
initial value.  For errline/errorline, we did depend on that, erroneously
2002-11-11 21:35:00 +00:00
Richard Levitte
06b7c8d5ba Variables on the stack must be initialized or we can't depend on any
initial value.  For errline/errorline, we did depend on that, erroneously
2002-11-11 21:34:21 +00:00
Richard Levitte
c4efde7403 make update 2002-11-11 20:51:06 +00:00
Richard Levitte
a1edc87664 Make the programs link against the static library on MacOS X.
PR: 335
2002-11-11 20:49:01 +00:00
Richard Levitte
6722b62b36 Make the programs link against the static library on MacOS X.
PR: 335
2002-11-11 20:46:52 +00:00
Lutz Jänicke
7d80b27949 Typo.
Submitted by: assar <assar@kth.se>
Reviewed by:
PR:
2002-11-11 11:19:15 +00:00
Lutz Jänicke
9cbc3356e7 Typo.
Submitted by: assar <assar@kth.se>
Reviewed by:
PR:
2002-11-11 11:18:19 +00:00
Bodo Möller
d742bd882e do tests with all built-in curves
Submitted by: Nils Larsch
2002-11-11 10:25:12 +00:00
Bodo Möller
97a06ad9ef corrections to built-in curves
Submitted by: Nils Larsch
2002-11-11 10:24:52 +00:00
Lutz Jänicke
756b9a0046 Make sure permissions are friendly when building release tar file.
Submitted by:
Reviewed by:
PR: 171
2002-11-11 08:57:04 +00:00
Lutz Jänicke
9161c2ff51 Make sure permissions are friendly when building release tar file.
Submitted by:
Reviewed by:
PR: 171
2002-11-11 08:56:37 +00:00
Lutz Jänicke
96c930dd2f More information to the important issue of seeding the PRNG
Submitted by:
Reviewed by:
PR: 285
2002-11-11 08:33:10 +00:00
Lutz Jänicke
21f8cf65e6 More information to the important issue of seeding the PRNG
Submitted by:
Reviewed by:
PR: 285
2002-11-11 08:32:37 +00:00
Richard Levitte
8bcc049399 X509_NAME_cmp() now compares PrintableString and emailAddress with a value of type
ia5String correctly.
PR: 244
2002-11-09 21:55:12 +00:00
Richard Levitte
95900b8592 -CAserial does take a filename argument.
PR: 332
2002-11-09 21:53:56 +00:00
Richard Levitte
c81a15099a X509_NAME_cmp() now compares PrintableString and emailAddress with a value of type
ia5String correctly.
PR: 244
2002-11-09 21:52:20 +00:00
Dr. Stephen Henson
20a50cb517 Typo 2002-11-09 18:11:15 +00:00
Dr. Stephen Henson
a8c125550c Typo 2002-11-09 18:05:33 +00:00
Richard Levitte
3782350c14 -CAserial does take a filename argument.
PR: 332
2002-11-08 21:53:54 +00:00
Richard Levitte
a71a482250 -CAcreateserial doesn't take a filename argument.
PR: 332
2002-11-08 21:51:33 +00:00
Richard Levitte
d6257073aa -CAcreateserial doesn't take a filename argument.
PR: 332
2002-11-08 21:51:09 +00:00
Richard Levitte
8b6ee018c2 Windows doesn't know sys/file.h 2002-11-07 21:40:17 +00:00
Richard Levitte
ddff68bee7 Windows doesn't know sys/file.h 2002-11-07 21:40:06 +00:00
Dr. Stephen Henson
ddab3c9327 Typo in OCSP ASN1 module 2002-11-07 17:43:45 +00:00
Dr. Stephen Henson
491659c436 Typo in OCSP ASN1 module 2002-11-07 17:42:59 +00:00
Richard Levitte
6a9a7ff259 Keep on using ${CC}, since gcc may act in disguise.
PR: 329
2002-11-06 23:47:16 +00:00
Richard Levitte
8d6fc30bc7 Keep on using ${CC}, since gcc may act in disguise. 2002-11-06 23:39:03 +00:00
Richard Levitte
56824b9658 Generate openssl.pc so pkg-config can return proper data.
PR: 163
2002-11-06 23:35:00 +00:00
Richard Levitte
f7cd5462c9 Generate openssl.pc so pkg-config can return proper data.
PR: 163
2002-11-06 23:34:17 +00:00
Richard Levitte
892e9625d3 Stupid bug fixes. I've forgotten my DCL... 2002-11-06 17:27:11 +00:00
Bodo Möller
e2916b2540 print less output (no details unless a test failed)
Submitted by: Nils Larsch
2002-11-06 11:48:09 +00:00
Richard Levitte
d268511c84 some people just can't read the instructions 2002-11-06 06:03:07 +00:00
Richard Levitte
1810d2088e some people just can't read the instructions 2002-11-06 06:02:05 +00:00
Dr. Stephen Henson
d618f703ec CRL reason code docs. 2002-11-06 01:28:55 +00:00
Dr. Stephen Henson
190467767e CRL revocation reason docs. 2002-11-06 01:27:16 +00:00
Bodo Möller
896e4fef30 avoid Purify warnings
Submitted by: Nils Larsch
2002-11-05 13:54:41 +00:00
Dr. Stephen Henson
8d699c8c93 Check for NULL ASN1_ITEM when initializeing
boolean option in ASN1_TYPE.
2002-11-05 13:49:04 +00:00
Dr. Stephen Henson
38c7271a39 Check for NULL ASN1_ITEM when initializeing
boolean option in ASN1_TYPE.
2002-11-05 13:48:33 +00:00
Bodo Möller
e2a93e38d6 avoid Purify warnings
Submitted by: Nils Larsch
2002-11-05 12:28:10 +00:00
Bodo Möller
5e3247d8bc fix typo 2002-11-05 10:54:40 +00:00
Richard Levitte
41c2fb962c Return my normal debug targets to something not so extreme, and make
the extreme ones special (or 'extreme', if you will :-)).
2002-11-04 16:33:59 +00:00
Bodo Möller
b53e44e572 implement and use new macros BN_get_sign(), BN_set_sign()
Submitted by: Nils Larsch
2002-11-04 13:17:22 +00:00
Richard Levitte
e5f4d8279d Off-by-one-error corrected.
PR: 235
2002-11-04 11:30:47 +00:00
Richard Levitte
455bacd4d3 Off-by-one-error corrected.
PR: 235
2002-11-04 11:30:38 +00:00
Richard Levitte
86e8b56ac4 Cosmetic change 2002-11-04 06:26:37 +00:00
Richard Levitte
e85cbdad7a Cosmetic change 2002-11-04 06:26:27 +00:00
Richard Levitte
bff1567623 Since we're currently assuming VMS can deal with dynamic engines,
don't include the static engine entry points in libcrypto.exe.
2002-11-04 00:29:26 +00:00
Richard Levitte
db199abd9e Depend on OPENSSL_NO_STATIC_ENGINE rather than OPENSSL_NO_DYNAMIC_ENGINE.
Make sure to include openssl/opensslconf.h to make sure we get the
definition of those macros.
2002-11-01 12:37:22 +00:00
Richard Levitte
b6d0defb98 Remove all referenses to RSAref, since that's been gone for more than
a year.
2002-10-31 16:46:52 +00:00
Richard Levitte
c752563e43 Remove all referenses to RSAref, since that's been gone for more than
a year.
2002-10-31 16:46:18 +00:00
Richard Levitte
ad22b914d6 Add all that is needed to build external engines on VMS.
Currently, we simply assume that they shall always be built as
shareable images.
2002-10-31 15:43:38 +00:00
Richard Levitte
f216fae545 Add the command procedure to build external engines on VMS.
Currently, we simply assume that they shall always be built as
shareable images.
2002-10-31 15:43:00 +00:00
Richard Levitte
242823c9bc New files have appeared, tell VMS. 2002-10-30 09:46:21 +00:00
Richard Levitte
0eae6cd5f2 Plug potential memory leak.
Identified by Goetz Babin-Ebell <babinebell@trustcenter.de>
2002-10-30 09:42:47 +00:00
Richard Levitte
40efa67248 Plug potential memory leak.
Identified by Goetz Babin-Ebell <babinebell@trustcenter.de>
2002-10-30 09:42:42 +00:00
Geoff Thorpe
0bf707e346 Add a HISTORY section to the man page to mention the new flags. 2002-10-29 18:06:09 +00:00
Geoff Thorpe
769fedc3ad Add a HISTORY section to the man page to mention the new flags. 2002-10-29 18:05:16 +00:00
Geoff Thorpe
9c3db400dc The recent CHANGES note between 0.9.6g and 0.9.6h needs copying into the
other branches.
2002-10-29 18:01:08 +00:00
Geoff Thorpe
96a2c35d91 The recent CHANGES note between 0.9.6g and 0.9.6h needs copying into the
other branches.
2002-10-29 17:59:18 +00:00
Geoff Thorpe
d9ec9d990f The last character of inconsistency in my recent commits is hereby
squashed.
2002-10-29 17:51:32 +00:00
Geoff Thorpe
f9fde13590 Correct another inconsistency in my recent commits. 2002-10-29 17:47:43 +00:00
Geoff Thorpe
74174b9d05 Bodo spotted this keyslip in my patch to 0.9.7-stable. 2002-10-29 17:00:33 +00:00
Richard Levitte
b5148cf1f7 synchronise util/libeay.num with the 0.9.7-stable variant (guys, this
is something we really need to keep track of!).
make update
2002-10-29 14:48:57 +00:00
Bodo Möller
90a617e050 avoid warnings ('index' shadows global declaration)
Submitted by: Nils Larsch
2002-10-29 11:50:20 +00:00
Bodo Möller
259cdf2af9 Sun has agreed to removing the covenant language from most files.
Submitted by: Sheueling Chang <Sheueling.Chang@Sun.COM>
2002-10-29 10:59:32 +00:00
Bodo Möller
6c950e0dc9 'covenant HOWTO' (what to do about the Sun covenant if you modify the code)
Submitted by: Bodo Moeller
2002-10-29 10:58:07 +00:00
Richard Levitte
62dd6f161a The #else part of the conditionals have two statements, so they need
to be surrounded with braces, or the surrounding if..else will fail
miserably in case the #else part is compiled.
2002-10-29 09:42:59 +00:00
Richard Levitte
6aba658cd8 Revert, that was an incorrect change.
PR: 156
2002-10-29 04:34:43 +00:00
Richard Levitte
89eda1fc01 Revert, that was an incorrect change.
PR: 156
2002-10-29 04:34:13 +00:00
Richard Levitte
accb0c6edb A small detail: since 0.9.7, DH_new_method() and DSA_new_method()
don't take an ENGINE* as parameter any more.
PR: 156
2002-10-29 04:31:46 +00:00
Richard Levitte
bbec79a0c1 A small detail: since 0.9.7, DH_new_method() and DSA_new_method()
don't take an ENGINE* as parameter any more.
PR: 156
2002-10-29 04:31:13 +00:00
Geoff Thorpe
e0db2eed8d Correct and enhance the behaviour of "internal" session caching as it
relates to SSL_CTX flags and the use of "external" session caching. The
existing flag, "SSL_SESS_CACHE_NO_INTERNAL_LOOKUP" remains but is
supplemented with a complimentary flag, "SSL_SESS_CACHE_NO_INTERNAL_STORE".
The bitwise OR of the two flags is also defined as
"SSL_SESS_CACHE_NO_INTERNAL" and is the flag that should be used by most
applications wanting to implement session caching *entirely* by its own
provided callbacks. As the documented behaviour contradicted actual
behaviour up until recently, and since that point behaviour has itself been
inconsistent anyway, this change should not introduce any compatibility
problems. I've adjusted the relevant documentation to elaborate about how
this works.

Kudos to "Nadav Har'El" <nyh@math.technion.ac.il> for diagnosing these
anomalies and testing this patch for correctness.

PR: 311
2002-10-29 00:33:04 +00:00
Geoff Thorpe
6f7ba4be1f Correct and enhance the behaviour of "internal" session caching as it
relates to SSL_CTX flags and the use of "external" session caching. The
existing flag, "SSL_SESS_CACHE_NO_INTERNAL_LOOKUP" remains but is
supplemented with a complimentary flag, "SSL_SESS_CACHE_NO_INTERNAL_STORE".
The bitwise OR of the two flags is also defined as
"SSL_SESS_CACHE_NO_INTERNAL" and is the flag that should be used by most
applications wanting to implement session caching *entirely* by its own
provided callbacks. As the documented behaviour contradicted actual
behaviour up until recently, and since that point behaviour has itself been
inconsistent anyway, this change should not introduce any compatibility
problems. I've adjusted the relevant documentation to elaborate about how
this works.

Kudos to "Nadav Har'El" <nyh@math.technion.ac.il> for diagnosing these
anomalies and testing this patch for correctness.

PR: 311
2002-10-29 00:31:14 +00:00
Bodo Möller
2ccb522c5b increase permissible message length so that we can handle
CertificateVerify for 4096 bit RSA signatures
2002-10-28 15:47:44 +00:00
Bodo Möller
00a357ab20 increase permissible message length so that we can handle
CertificateVerify for 4096 bit RSA signatures
2002-10-28 15:45:51 +00:00
Bodo Möller
8ee4845b65 'broken' PKCS #8 format does not apply to ECDSA
Submitted by: Nils Larsch
2002-10-28 14:13:38 +00:00
Bodo Möller
19b8d06a79 clean up new code for NIST primes
create new lock CRYPTO_LOCK_BN to avoid race condition
2002-10-28 14:02:19 +00:00
Bodo Möller
5c6bf03117 fast reduction for NIST curves
Submitted by: Nils Larsch
2002-10-28 13:23:24 +00:00
Bodo Möller
f72ed6153b remove superfluous code
Submitted by: Nils Larsch
2002-10-28 13:19:08 +00:00
Richard Levitte
0bf76767b0 Make sure toupper() is declared 2002-10-25 09:51:50 +00:00
Richard Levitte
d652a0957f Make sure toupper() is declared 2002-10-25 09:51:45 +00:00
Richard Levitte
fbcd27907b External engines aren't in crypto/engine/ any more, so don't try to
build them there.

A command procedure to build the external engines is on it's way.
2002-10-24 19:15:30 +00:00
Richard Levitte
a551bea52e make update 2002-10-24 19:12:10 +00:00
Richard Levitte
6cb686208e For the mkdef.pl to recognise if the "external" engines are inserted
into libcrypto, we need the "algorithm" STATIC_ENGINE.
2002-10-24 19:09:03 +00:00
Richard Levitte
732c9fe179 There's a name clash between OpenSSL and RSAref. Since this engine handles
RSAref data, pretend we don't care for OpenSSL's MD2 and MD5 structures or
implementation.
Remove all kinds of silly warning
2002-10-24 17:02:42 +00:00
Richard Levitte
bd1fb77245 There's a name clash between OpenSSL and RSAref. Since this engine handles
RSAref data, pretend we don't care for OpenSSL's MD2 and MD5 structures or
implementation.
Remove all kinds of silly warning
2002-10-24 17:02:27 +00:00
Richard Levitte
d610d27f30 On certain platforms, we redefine certain symbols using macros in
apps.h.  For those, it's better to include apps.h after the system
headers where those symbols may be defined, since there's otherwise a
chance that the C compiler will barf when it sees something that looks
like this after expansion:

int VMS_strcasecmp((str1),(str2))(const char *, const char *);
2002-10-24 10:03:55 +00:00
Richard Levitte
4f99ab58f7 On certain platforms, we redefine certain symbols using macros in
apps.h.  For those, it's better to include apps.h after the system
headers where those symbols may be defined, since there's otherwise a
chance that the C compiler will barf when it sees something that looks
like this after expansion:

int VMS_strcasecmp((str1),(str2))(const char *, const char *);
2002-10-24 09:41:45 +00:00
Richard Levitte
339abc9bd9 An engine changed name. 2002-10-23 22:09:08 +00:00
Richard Levitte
4407fbc2d4 Signal an error if the entered output password didn't match itself.
PR: 314
2002-10-23 15:07:18 +00:00
Richard Levitte
96b35c9e26 Signal an error if the entered output password didn't match itself.
PR: 314
2002-10-23 15:07:09 +00:00
Bodo Möller
27f08d6d48 fix warnings, and harmonize indentation 2002-10-23 13:14:10 +00:00
Bodo Möller
907a8f1e6e fix warnings, and harmonize indentation 2002-10-23 13:11:38 +00:00
Bodo Möller
e1c191fe44 I don't like c-tab-always-indent ... 2002-10-23 13:09:19 +00:00
Bodo Möller
a9e0953900 I don't like c-tab-always-indent ... 2002-10-23 13:09:11 +00:00
Dr. Stephen Henson
9597027693 Typo. 2002-10-21 00:10:55 +00:00
Dr. Stephen Henson
5aa3429c5d Typo: v3 is represented by 2. 2002-10-21 00:10:10 +00:00
Richard Levitte
ffd418f217 In my extreme debug mode, gcc complains that 'static' doesn't come
first.
2002-10-20 20:38:18 +00:00
Dr. Stephen Henson
78f41a4e89 Update docs. 2002-10-20 13:25:34 +00:00
cvs2svn
76dcae8020 This commit was manufactured by cvs2svn to create branch
'OpenSSL_0_9_7-stable'.
2002-10-20 13:20:58 +00:00
Dr. Stephen Henson
0711be1696 New docs. 2002-10-20 13:20:57 +00:00
Geoff Thorpe
190ef122b2 Make pod2man happier. 2002-10-18 22:05:19 +00:00
Geoff Thorpe
7521ab3d0b Make pod2man happier. 2002-10-18 22:04:26 +00:00
Geoff Thorpe
0587ec2645 If dynamically-loadable ENGINEs are linked against a shared-library version
of libcrypto, then it is possible that when they are loaded they will share
the same static data as the loading application/library. This means it will
be too late to set memory/ERR/ex_data/[etc] callbacks, but entirely
unnecessary to try. This change puts a static variable in the core ENGINE
code (contained in libcrypto) and a function returning a pointer to it. If
the loaded ENGINE's return value from this function matches the loading
application/library's return value - they share static data. If they don't
match, the loaded ENGINE has its own copy of libcrypto's static data and so
the callbacks need to be set.

Also, although 0.9.7 hasn't been released yet, it's clear this will
introduce a binary incompatibility between dynamic ENGINEs built for 0.9.7
and 0.9.8 (though others probably exist already from EC_*** hooks and
what-not) - so the version control values are correspondingly bumped.
2002-10-18 20:45:38 +00:00
Geoff Thorpe
b76d66fbf6 Another ENGINE implementation dependant on string.h. 2002-10-18 19:23:27 +00:00
Geoff Thorpe
06f851f721 We need to propogate SHARED_LIBS to sub-directories for "install" targets
now.
2002-10-18 19:05:32 +00:00
Geoff Thorpe
f6661d391c The loop variable is 'l', not 'i'. 2002-10-18 19:02:18 +00:00
Lutz Jänicke
284b216b3a Corrected exchanged parameters in example for EVP_EncryptInit_ex()
Submitted by: "Marcus Carey" <marcus.carey@verizon.net>
Reviewed by:
PR: 265
2002-10-18 09:47:14 +00:00
Lutz Jänicke
dc74e7d5d7 Corrected exchanged parameters in example for EVP_EncryptInit_ex()
Submitted by: "Marcus Carey" <marcus.carey@verizon.net>
Reviewed by:
PR: 265
2002-10-18 09:46:01 +00:00
Bodo Möller
3d76ceddff change Emacs indentation style to make it easier to insert
tabs manually

Submitted by: Pierre Bacquet <pbacquet@delta.fr>
2002-10-17 09:17:28 +00:00
Bodo Möller
05dbe6ee1f change Emacs indentation style to make it easier to insert
tabs manually

Submitted by: Pierre Bacquet <pbacquet@delta.fr>
2002-10-17 09:16:02 +00:00
Richard Levitte
871d0f5126 Eh, -Wl,--whole-archive disappeared from the GNU targets. I've no
idea why, but that was definitely wrong...
2002-10-16 22:44:52 +00:00
Geoff Thorpe
5be1264b7e The ENGINE implementations in ./engines/ should be role models on how to
write external engines (and thus should require only installed openssl
headers and libs to compile without warnings). So this gets rid of recently
introduced compilation warnings (no longer including internal headers) by
including string.h directly.
2002-10-16 21:50:28 +00:00
Geoff Thorpe
b963f807be - Remo Inverardi noticed that ENGINEs don't have an "up_ref" function in the
normal 'structural' case (ENGINE_init() satisfies this in the less normal
'functional' case). This change provides such a function.

- Correct some "read" locks that should actually be "write" locks.

- make update.
2002-10-16 01:32:46 +00:00
Geoff Thorpe
314c667050 - Remo Inverardi noticed that ENGINEs don't have an "up_ref" function in the
normal 'structural' case (ENGINE_init() satisfies this in the less normal
'functional' case). This change provides such a function.

- Correct some "read" locks that should actually be "write" locks.

- make update.
2002-10-16 01:29:37 +00:00
Richard Levitte
005bbb52ff Typos.
PR: 189
2002-10-15 20:31:07 +00:00
Richard Levitte
28c8a911bd Typos.
PR: 189
2002-10-15 20:30:56 +00:00
Richard Levitte
a690102da2 Typos.
PR: 189
2002-10-15 20:29:27 +00:00
Richard Levitte
437d1ed49f Typos.
PR: 189
2002-10-15 20:29:09 +00:00
Richard Levitte
12fd8be2c4 A much better idea, of course, is not to do a submake at all... 2002-10-15 12:09:22 +00:00
Richard Levitte
8258f7b361 Makefile.shared needs to know how it can reach itself. 2002-10-15 11:58:44 +00:00
Richard Levitte
e15ea3d9e1 When BN_add_word() reaches top, it shouldn't try to add the the corresponding
word, since that word may not be zero.
2002-10-14 11:33:32 +00:00
Richard Levitte
09db11783d When BN_add_word() reaches top, it shouldn't try to add the the corresponding
word, since that word may not be zero.
2002-10-14 11:27:16 +00:00
Richard Levitte
677532629d makedepend complains when a header file is included more than once in
the same source file.
2002-10-14 10:02:36 +00:00
Richard Levitte
f6733ae577 makedepend complains when a header file is included more than once in
the same source file.
2002-10-14 09:53:46 +00:00
Richard Levitte
57d8ff79b2 Complete the VxWorks fix by implementing a NULL RAND_poll() for it.
PR: 253
2002-10-14 09:44:57 +00:00
Richard Levitte
2d2ca3aab1 Complete the VxWorks fix by implementing a NULL RAND_poll() for it.
PR: 253
2002-10-14 09:44:51 +00:00
Richard Levitte
cfc7620572 make update 2002-10-14 09:40:46 +00:00
Richard Levitte
4b14ed760d libs is a timestamp that we don't really need to know about. 2002-10-14 09:35:11 +00:00
Richard Levitte
79a6260a11 Add needed libraries as per configuration to the list of libraries we
depend upon.
2002-10-14 09:25:48 +00:00
Richard Levitte
a0bf8f2008 Add missing quotes.
Make sure test doesn't barf because of missing spaces before the
closing ].
Add -lc to the list of libraries we depend upon.  Not always
necessary, but never hurts.
2002-10-14 09:24:50 +00:00
Richard Levitte
408bf2f0c4 Targeting the solaris platform for specific tests. Something is going
wrong, and my test engine doesn't show it.  The verbosity will be
temporary for about a day.
2002-10-13 22:57:51 +00:00
Richard Levitte
874fee478c Clarify where the engines are by default. 2002-10-12 16:07:31 +00:00
Richard Levitte
90d9a69bb1 Chase down the missing backslashes. 2002-10-12 09:16:10 +00:00
Richard Levitte
9a01bc0732 Add more commentary. Check that *num is smaller than the block size. 2002-10-11 22:42:40 +00:00
Richard Levitte
4006c56036 Add more commentary. Check that *num is smaller than the block size. 2002-10-11 22:42:34 +00:00
Richard Levitte
dbcc560717 The AES CTR API was buggy, we need to save the encrypted counter as well
between calls, or that will be lost if it returned with *num non-zero.
2002-10-11 22:37:44 +00:00
Richard Levitte
1729588435 The AES CTR API was buggy, we need to save the encrypted counter as well
between calls, or that will be lost if it returned with *num non-zero.
2002-10-11 22:37:29 +00:00
Richard Levitte
6f7c2cb31e Step 14 of move of engines: Final step, document the change. 2002-10-11 22:06:44 +00:00
Richard Levitte
a4629f4136 make update. 2002-10-11 20:45:56 +00:00
Richard Levitte
449d39f41c Merge string protection from main trunk 2002-10-11 20:35:45 +00:00
Richard Levitte
56b5f687e4 And if the path has a space, we definitely need to protect $openssl. 2002-10-11 20:31:27 +00:00
Richard Levitte
caa4f47f61 Oh, there were *two* places where we needed to protect the file
name...
2002-10-11 20:28:23 +00:00
Richard Levitte
36757b4438 For the platforms where version info is inserted separately into the
shared library, set those flags conditionally.
2002-10-11 19:56:57 +00:00
Richard Levitte
75871dda4b Step 13 of move of engines: Remove old files. 2002-10-11 18:52:42 +00:00
Richard Levitte
506fec1a95 Step 12 of move of engines: Time to make the changes to support
automatic load of dynamic engines.  Make the changes in the main
Makefile so the engines are built, but now in the engines/ directory.

Note: The changes in step 12 have all been made by Geoff Thorpe.
Credit where credit is due.
2002-10-11 18:51:29 +00:00
Richard Levitte
aae329c447 Step 11c of move of engines: Time to make the changes to support
automatic load of dynamic engines.  Change the iterator to try to load
the requested engine dynamically.  The environment variable
OPENSSL_ENGINES can be used to override the internal default directory
where one can expect to find dynamically loadable engines.

Note: The changes in step 11 have all been made by Geoff Thorpe.
Credit where credit is due.
2002-10-11 18:49:55 +00:00
Richard Levitte
02acf1409e Step 11b of move of engines: Time to make the changes to support
automatic load of dynamic engines.  Add functionality to the dynamic
engine to handle engine directories and loading from those.  This
is currently NOT compatible with the use of LD_LIBRARY_PATH and
similar environment variables.

Note: The changes in step 11 have all been made by Geoff Thorpe.
Credit where credit is due.
2002-10-11 18:47:51 +00:00
Richard Levitte
6ac3309c74 Step 11a of move of engines: Time to make the changes to support
automatic load of dynamic engines.  Unless we don't have shared
library support, do not try to load any "built-in" engines except for
cryptodev.
2002-10-11 18:42:54 +00:00
Richard Levitte
1b15cfa11d Step 10 of move of engines: Change crypto/engine/Makefile.ssl so we
don't build any "built-in" engines in that directory any more, except
fo the cryptodev one.
2002-10-11 18:40:47 +00:00
Richard Levitte
76dfca879f Step 9 of move of engines: rename crypto/engine/hw_cryptodev.c to
eng_cryptodev.c.  This is an engine that (at least currently) has
to be built in.
2002-10-11 18:38:26 +00:00
Richard Levitte
7cdc7bacea Typo 2002-10-11 18:32:32 +00:00
Richard Levitte
fbd78b5c08 Step 8 of move of engines: Remove the last little quirks.
DECIMAL_SIZE is copied from crypto/cryptlib.h.
2002-10-11 18:21:40 +00:00
Richard Levitte
fbcd0da597 We didn't copy the cryptodev engine here, darn it! 2002-10-11 18:20:06 +00:00
Richard Levitte
665dc3924d Step 7 of move of engines: Engines should not depend on private
OpenSSL header files.
2002-10-11 18:17:16 +00:00
Richard Levitte
4bdacff25b Typo. 2002-10-11 18:10:14 +00:00
Richard Levitte
ecd45314b8 Step 6 of move of engines: rename the macro ENGINE_DYNAMIC_SUPPORT to
OPENSSL_NO_DYNAMIC_ENGINE and make sure that gets defined unless
shared library support has been specifically requested.
2002-10-11 18:06:08 +00:00
Bodo Möller
3e06fb754e synchronize with 0.9.7-stable version of this file 2002-10-11 17:56:34 +00:00
Bodo Möller
84236041c1 synchronize with 0.9.6-stable version of this file 2002-10-11 17:53:21 +00:00
Richard Levitte
b2e20a31ea That wasn't supposed to be there... 2002-10-11 17:43:53 +00:00
Richard Levitte
38e19a4220 Step 5 of move of engines: Add a makefile (and a .cvsignore). 2002-10-11 17:42:30 +00:00
Richard Levitte
f28164fefd Step 4 of move of engines: Split e.ec into individual files for each
engine.
2002-10-11 17:41:40 +00:00
Bodo Möller
8d44d96ec3 remove redundant empty line 2002-10-11 17:29:07 +00:00
Richard Levitte
2eaabb718b Step 3 of move of engines: copy the corresponding vendor header files. 2002-10-11 17:10:59 +00:00
Richard Levitte
5572f482e7 Step 2 of move of engines: copy engines to new directory and rename them
to be prefixed with e_ instead of hw_.  They aren't necessarely hardware
engines.  The files commited here are exact copies of the corresponding
hw_ files found in crypto/engine/.
2002-10-11 17:08:27 +00:00
Richard Levitte
707e098687 Add a configuration target for A/UX.
PR: 271
2002-10-11 14:39:12 +00:00
Richard Levitte
729f0a277e Add a configuration target for A/UX.
PR: 271
2002-10-11 14:39:03 +00:00
Richard Levitte
88de74ad83 make update 2002-10-11 12:23:49 +00:00
Richard Levitte
c55d759168 make update 2002-10-11 12:22:47 +00:00
Richard Levitte
97b8718f15 There may be more than one single quote to fix.
PR: 256
2002-10-11 11:34:28 +00:00
Richard Levitte
b7910992d8 There may be more than one single quote to fix.
PR: 256
2002-10-11 11:34:20 +00:00
Richard Levitte
cf3b8b52f1 Make sure it's properly detected when there's no version information
at all, and in all other cases, make sure foo.so is linked to
foo.so.{soversion}.
2002-10-11 11:14:41 +00:00
Richard Levitte
388a6f937f Make sure $fname will not give us any surprises with any funny characters.
PR: 256
2002-10-11 11:07:39 +00:00
Richard Levitte
42b06fbaca Make sure $fname will not give us any surprises with any funny characters.
PR: 256
2002-10-11 11:07:28 +00:00
Richard Levitte
a61050ad96 BN_bn2hex() returns "0" instead of "00" for zero. This disrputs the
requirement that the serial number always be an even amount of characters.
PR: 248
2002-10-11 09:39:32 +00:00
Richard Levitte
2245cd87d4 BN_bn2hex() returns "0" instead of "00" for zero. This disrputs the
requirement that the serial number always be an even amount of characters.
PR: 248
2002-10-11 09:38:56 +00:00
Richard Levitte
c199837c54 Fix inconsistencies in the Darwin targets.
Add a variant of SHLIB_SOVER without the preceding period.
2002-10-11 08:45:42 +00:00
Richard Levitte
83699c4784 Add a suffix for Darwin's sake, since it seems like .dylib comes after
the version in the file name.
2002-10-11 07:33:38 +00:00
Richard Levitte
30afcc072a Move the shared library construction stuff to Makefile.shared, a
helper makefile that generalises our way of building shared libraries
and is designed to take care of almost anything (I hope).
2002-10-11 00:37:11 +00:00
Richard Levitte
baaeac3036 Rhapsody had ftime, Darwin doesn't (any longer?) 2002-10-10 13:36:04 +00:00
Richard Levitte
832f9304fd Rhapsody had ftime, Darwin doesn't (any longer?) 2002-10-10 13:35:49 +00:00
Richard Levitte
fa4bde98d2 Add a few more target platforms, to see how well the shared library
linking works on them.
2002-10-10 12:46:05 +00:00
Richard Levitte
d19370b617 VMS below version 7 doesn't have strcasecmp, so let's roll our own on VMS.
PR: 184
2002-10-10 09:05:46 +00:00
Richard Levitte
ca80756c70 VMS below version 7 doesn't have strcasecmp, so let's roll our own on VMS.
PR: 184
2002-10-10 09:05:05 +00:00
Richard Levitte
8376acbf7f Typo 2002-10-10 08:32:45 +00:00
Richard Levitte
ef0baf60aa Typo 2002-10-10 08:32:39 +00:00
Richard Levitte
12a2ff9625 RFC 2712 redefines the codes for use of Kerberos 5 in SSL/TLS.
PR: 189
2002-10-10 07:59:45 +00:00
Richard Levitte
7ba3a4c3d2 RFC 2712 redefines the codes for use of Kerberos 5 in SSL/TLS.
PR: 189
2002-10-10 07:59:03 +00:00
Dr. Stephen Henson
29e48c18b7 More docs. 2002-10-09 17:19:59 +00:00
Dr. Stephen Henson
292a217b51 More docs. 2002-10-09 17:18:58 +00:00
Dr. Stephen Henson
982dfb7d10 Typo. 2002-10-09 17:15:35 +00:00
Dr. Stephen Henson
104117c5e7 New documentation from main trunk. 2002-10-09 17:14:41 +00:00
cvs2svn
7ab3c662e3 This commit was manufactured by cvs2svn to create branch
'OpenSSL_0_9_7-stable'.
2002-10-09 17:05:06 +00:00
Dr. Stephen Henson
8c4b69d3ab Update docs. 2002-10-09 17:05:05 +00:00
Richard Levitte
4fd5e85a18 Make sure that the 'config' variable is correctly defined and declared
for monolithic as well as non-monolithic biuld.
More work is probably needed in this area.
PR: 144
2002-10-09 15:36:42 +00:00
Richard Levitte
0e2cc42cfb Make sure that the 'config' variable is correctly defined and declared
for monolithic as well as non-monolithic biuld.
More work is probably needed in this area.
PR: 144
2002-10-09 15:36:23 +00:00
Richard Levitte
e9a9211e75 Remove redundancy and use the main makefile better 2002-10-09 15:13:34 +00:00
Richard Levitte
1e5c205ccb Remove redundancy and use the main makefile better 2002-10-09 15:12:36 +00:00
Richard Levitte
4c82171a8e Keep the sub_all symbol so all the algorithm Makefiles won't break. 2002-10-09 15:03:21 +00:00
Richard Levitte
88c80b3e75 Change the main Makefile to have "mini-build" targets.
PR: 253, last part.
2002-10-09 14:52:01 +00:00
Richard Levitte
d438845ac8 Don't fuss with the demo binaries 2002-10-09 13:58:03 +00:00
cvs2svn
b1d495b2c4 This commit was manufactured by cvs2svn to create branch
'OpenSSL_0_9_7-stable'.
2002-10-09 13:57:58 +00:00
Richard Levitte
27bad5ad3d Don't fuss with the demo binaries 2002-10-09 13:57:55 +00:00
Richard Levitte
6b7a46b721 Add a few more VxWorks targets.
Correct misspelled VXWORKS macros.
Add VXWORKS identifying macros to e_os2.h.
Add required inclusions and mappings for VxWorks in e_os.h.
A few small modifications to make OpenSSL build and work on VxWorks.
PR: 253, except for the  change that was handled in an earlier
         commit, and a request for easy build of just parts of OpenSSL.
2002-10-09 13:41:31 +00:00
Richard Levitte
6a89a25c27 Add a few more VxWorks targets.
Correct misspelled VXWORKS macros.
Add VXWORKS identifying macros to e_os2.h.
Add required inclusions and mappings for VxWorks in e_os.h.
A few small modifications to make OpenSSL build and work on VxWorks.
PR: 253, except for the  change that was handled in an earlier
         commit, and a request for easy build of just parts of OpenSSL.
2002-10-09 13:40:48 +00:00
Richard Levitte
001ab3abad Use double dashes so makedepend doesn't misunderstand the flags we
give it.
For 0.9.7 and up, that means util/domd needs to remove those double
dashes from the argument list when gcc is used to find the
dependencies.
2002-10-09 13:25:12 +00:00
Richard Levitte
ff90d659e6 Use double dashes so makedepend doesn't misunderstand the flags we
give it.
For 0.9.7 and up, that means util/domd needs to remove those double
dashes from the argument list when gcc is used to find the
dependencies.
2002-10-09 13:21:33 +00:00
Dr. Stephen Henson
ec8ad2bb96 PKCS12_parse manual page. 2002-10-09 13:10:23 +00:00
Richard Levitte
8f841c70c4 The dissapearing destroy callback reappears 2002-10-09 12:19:13 +00:00
Dr. Stephen Henson
5fbb02fcb1 PKCS12_create manual page 2002-10-09 12:06:58 +00:00
Dr. Stephen Henson
4e1b50e219 More man pages. 2002-10-09 12:06:12 +00:00
Richard Levitte
052c0f276e Add missing LF 2002-10-09 06:36:30 +00:00
Richard Levitte
d7b2342a6a Add missing LF 2002-10-09 06:35:47 +00:00
Dr. Stephen Henson
7e9db7cefc PKCS7_verify() docs. 2002-10-08 00:40:58 +00:00
Dr. Stephen Henson
d30e4c5b0b More docs. 2002-10-07 17:31:00 +00:00
Dr. Stephen Henson
9de6bb8abc More d2i/i2d manual pages. 2002-10-07 13:07:00 +00:00
Dr. Stephen Henson
72e04bd13f Document "0" and "1" naming convention. 2002-10-06 12:59:25 +00:00
Dr. Stephen Henson
4ec0448122 Update docs. 2002-10-06 12:40:31 +00:00
Dr. Stephen Henson
842d8e209b Update docs. 2002-10-06 12:34:06 +00:00
Dr. Stephen Henson
292fcd5c7b Update DH parameter docs. 2002-10-06 12:24:09 +00:00
Dr. Stephen Henson
74e3931f84 Various Win32 fixes.
Resolve signed/unsigned conflicts

Make dso_win32.c compile.
2002-10-06 12:14:55 +00:00
Dr. Stephen Henson
12dadc555f Oops, remove old comment out debugging printf... 2002-10-06 12:10:35 +00:00
Richard Levitte
1e7e392419 Since crypt() isn't defined anywhere, define it locally in destest.c 2002-10-06 00:41:17 +00:00
Richard Levitte
b75b2225e5 Since crypt() isn't defined anywhere, define it locally in destest.c 2002-10-06 00:41:12 +00:00
Richard Levitte
12f27bd414 Please do not use C++ comments in C code. 2002-10-06 00:33:23 +00:00
Richard Levitte
e11b82c337 Do not define crypt(). The supported function is DES_crypt() (an des_crypt()
when backward compatibility is desired).
2002-10-06 00:23:32 +00:00
Richard Levitte
69deec58fb Do not define crypt(). The supported function is DES_crypt() (an des_crypt()
when backward compatibility is desired).
2002-10-06 00:23:28 +00:00
Dr. Stephen Henson
1e976bdc46 Update RSAPublicKey manual page... 2002-10-06 00:03:20 +00:00
Dr. Stephen Henson
9946fceb9d Some docs relating to X509 ASN1 functions.
Many other ASN1 functions are identical other
than the actual structure being handled.
2002-10-05 23:30:10 +00:00
Richard Levitte
6fed88113b For some reason, the random number support removed the destructor 2002-10-05 20:54:09 +00:00
Dr. Stephen Henson
04ad43af9e Win32 fix (signed/unsigned compare error). 2002-10-05 11:59:51 +00:00
Dr. Stephen Henson
97ebe047d0 Typo. 2002-10-05 01:38:58 +00:00
Dr. Stephen Henson
fc6a6a1030 Add version info to Win32 DLLs.
We might want to edit the strings a bit...

Maybe add to 0.9.7 too?
2002-10-04 21:22:47 +00:00
Dr. Stephen Henson
3d840c827f make update 2002-10-04 21:16:58 +00:00
Dr. Stephen Henson
a2a1a04e53 Add declaration got PKCS#7 NDEF. 2002-10-04 21:08:01 +00:00
Dr. Stephen Henson
f86abc2e80 Update mkdef.pl to handle new ASN1 macro 2002-10-04 20:24:50 +00:00
Richard Levitte
227aec9a0f Installed libraries should not be overwritten, especially shared ones.
Use mv to make sure the old copy is unlinked instead of overwritten.
PR: 273, and probably others...
2002-10-04 13:44:00 +00:00
Richard Levitte
7104c376ae Installed libraries should not be overwritten, especially shared ones.
Use mv to make sure the old copy is unlinked instead of overwritten.
PR: 273, and probably others...
2002-10-04 13:43:43 +00:00
Richard Levitte
b0165ce439 Add random number generation capability to the cswift engine.
Should this be added to 0.9.6-stable as well?
PR: 275
2002-10-04 13:31:06 +00:00
Richard Levitte
0638ced5cc Add random number generation capability to the cswift engine.
Should this be added to 0.9.6-stable as well?
PR: 275
2002-10-04 13:30:57 +00:00
Richard Levitte
3c8756f024 If we're loading libz dynamically, and COMP_zlib() is called more than once,
only the first call would provide the correct result.
PR: 277
2002-10-04 13:04:44 +00:00
Richard Levitte
e984b2af64 If we're loading libz dynamically, and COMP_zlib() is called more than once,
only the first call would provide the correct result.
PR: 277
2002-10-04 13:04:37 +00:00
Richard Levitte
70e96dcf59 Document should match reality :-).
PR: 255
2002-10-04 12:59:00 +00:00
Richard Levitte
2c696b2ddc Add a small note saying the 'debug' option should come before the platform in
the arguments to mk1mf.pl.
PR: 298
2002-10-04 12:58:44 +00:00
Richard Levitte
1801bc0658 Add a small note saying the 'debug' option should come before the platform in
the arguments to mk1mf.pl.
PR: 298
2002-10-04 12:32:38 +00:00
Richard Levitte
ebbad107bf Document should match reality :-).
PR: 255
2002-10-04 00:03:37 +00:00
Dr. Stephen Henson
9a48b07ee4 Various enhancements to PKCS#12 code, new
medium level API, improved PKCS12_create
and additional functionality in pkcs12
utility.
2002-10-03 23:53:52 +00:00
Dr. Stephen Henson
230fd6b7b6 Preliminary streaming ASN1 encode support. 2002-10-03 12:38:52 +00:00
Richard Levitte
20b33a015f Removal missing 2002-10-02 00:22:44 +00:00
Richard Levitte
293d5082c7 The OpenBSD project has replaced the first implementation of the /dev/crypto
engine with something they claim is better.  I have nothing to compare to,
and I assume they know what they're talking about.  The interesting part with
this one is that it's loaded by default on OpenBSD systems.
This change was originally introduced in OpenBSD's tracking of OpenSSL.
2002-10-02 00:19:33 +00:00
Richard Levitte
fc0ab2eac2 The OpenBSD project has replaced the first implementation of the /dev/crypto
engine with something they claim is better.  I have nothing to compare to,
and I assume they know what they're talking about.  The interesting part with
this one is that it's loaded by default on OpenBSD systems.
This change was originally introduced in OpenBSD's tracking of OpenSSL.
2002-10-02 00:18:59 +00:00
Bodo Möller
64cb996206 fix more race conditions
Submitted by: "Patrick McCormick" <patrick@tellme.com>
PR: 262
2002-09-26 15:54:15 +00:00
Bodo Möller
929f116733 fix more race conditions
Submitted by: "Patrick McCormick" <patrick@tellme.com>
PR: 262
2002-09-26 15:52:34 +00:00
Lutz Jänicke
ba5ba5490d Add missing brackets.
Submitted by: "Chris Brook" <cbrook@v-one.com>
2002-09-25 20:19:04 +00:00
Lutz Jänicke
413f2b2247 Add missing brackets.
Submitted by: "Chris Brook" <cbrook@v-one.com>
Reviewed by:
PR:
2002-09-25 20:17:58 +00:00
Bodo Möller
b8565a9af9 really fix race conditions
Submitted by: "Patrick McCormick" <patrick@tellme.com>

PR: 262
PR: 291
2002-09-25 15:38:57 +00:00
Bodo Möller
fbf4c7b4f1 really fix race conditions
Submitted by: "Patrick McCormick" <patrick@tellme.com>

PR: 262
PR: 291
2002-09-25 15:38:17 +00:00
Richard Levitte
99542d8763 Make sure that the signal storage is regarded as volatile.
This correction was originally introduced in OpenBSD's tracking of OpenSSL.
2002-09-25 14:14:16 +00:00
Richard Levitte
94960c8421 Make sure that the signal storage is regarded as volatile.
This correction was originally introduced in OpenBSD's tracking of OpenSSL.
2002-09-25 14:14:11 +00:00
Richard Levitte
b3c1d18d03 It makes more sense to refer to specific function manuals than the concept
manual when the specific function is refered to in the current manual text.
This correction was originally introduced in OpenBSD's tracking of OpenSSL.
2002-09-25 13:34:37 +00:00
Richard Levitte
6859cf7459 It makes more sense to refer to specific function manuals than the concept
manual when the specific function is refered to in the current manual text.
This correction was originally introduced in OpenBSD's tracking of OpenSSL.
2002-09-25 13:33:28 +00:00
Richard Levitte
6c8aec60ca Remove *all* references to RSA_PKCS1_RSAref, since it doesn't exist any more.
This correction was originally introduced in OpenBSD's tracking of OpenSSL.
2002-09-25 13:26:40 +00:00
Richard Levitte
2018681b33 Remove *all* references to RSA_PKCS1_RSAref, since it doesn't exist any more.
This correction was originally introduced in OpenBSD's tracking of OpenSSL.
2002-09-25 13:26:36 +00:00
Richard Levitte
c0ca52952e Remove reference to RSA_PKCS1_RSAref, since it doesn't exist any more.
This correction was originally introduced in OpenBSD's tracking of OpenSSL.
2002-09-25 13:25:48 +00:00
Richard Levitte
e204516178 Remove reference to RSA_PKCS1_RSAref, since it doesn't exist any more.
This correction was originally introduced in OpenBSD's tracking of OpenSSL.
2002-09-25 13:25:44 +00:00
Richard Levitte
39d727d0c3 It makes more sense to refer to specific function manuals than the concept
manual when the specific function is refered to in the current manual text.
This correction was originally introduced in OpenBSD's tracking of OpenSSL.
2002-09-25 13:11:16 +00:00
Richard Levitte
153aecf91a It makes more sense to refer to specific function manuals than the concept
manual when the specific function is refered to in the current manual text.
This correction was originally introduced in OpenBSD's tracking of OpenSSL.
2002-09-25 13:11:12 +00:00
Richard Levitte
6319853811 Incorrect argument order to memset() 2002-09-25 12:52:23 +00:00
Richard Levitte
cd98ab6491 Incorrect argument order to memset() 2002-09-25 12:52:13 +00:00
Richard Levitte
6b3a385f85 Missing ; 2002-09-25 12:49:45 +00:00
Richard Levitte
b3823ac64b Missing ; 2002-09-25 12:49:40 +00:00
Richard Levitte
27a80b7906 -elapsed is also useful when using gettimeofday 2002-09-25 12:42:04 +00:00
Richard Levitte
5d9470ff8e -elapsed is also useful when using gettimeofday 2002-09-25 12:41:59 +00:00
Bodo Möller
4e33db9a3f really fix race condition
PR: 262
2002-09-23 14:28:12 +00:00
Bodo Möller
e78f137899 really fix race condition
PR: 262
2002-09-23 14:25:07 +00:00
Ulf Möller
ca9a114f7a as in head 2002-09-22 08:51:33 +00:00
Ulf Möller
40e66398db use OPENSSL_SYS_MSDOS rather than __DJGPP__ to disable egd, this is not
compiler specific
2002-09-22 08:49:22 +00:00
Ulf Möller
ce1dc2e9b2 as in main 2002-09-22 08:45:22 +00:00
cvs2svn
b4b62004a6 This commit was manufactured by cvs2svn to create branch
'OpenSSL_0_9_7-stable'.
2002-09-22 08:44:06 +00:00
Ulf Möller
6e32d0a74b make files didn't work on case insensitive filesystems 2002-09-22 08:44:03 +00:00
Bodo Möller
f7eb95852c there is no minimum length for session IDs
PR: 274

fix race condition
PR: 262
2002-09-20 08:37:13 +00:00
Bodo Möller
a4f53a1c73 there is no minimum length for session IDs
PR: 274
2002-09-19 11:44:07 +00:00
Bodo Möller
a90ae02454 fix race condition
PR: 262
2002-09-19 11:26:45 +00:00
Bodo Möller
4c8f79a33e make sure 'neg' flag (which does not really matter for GF(2^m), but
could cause confusion for ECDSA) is set to zero

Submitted by: Sheueling Chang
2002-09-16 13:52:48 +00:00
Bodo Möller
7cc6ec7af7 add URL for Internet Draft 2002-09-16 13:45:14 +00:00
Bodo Möller
c2bbf275b2 1. switch from "-newkey ecdsa:..." to "-newkey ec:..."
2. automatically create required sub-directories

Submitted by: Vipul Gupta <Vipul.Gupta@sun.com>
2002-09-10 07:36:52 +00:00
Bodo Möller
9226e2187c Let 'openssl req' fail if an argument to '-newkey' is not
recognized instead of using RSA as a default.
2002-09-10 07:34:45 +00:00
Dr. Stephen Henson
12a296edfc Really fix PKCS7_set_detached this time... 2002-09-08 16:25:55 +00:00
Dr. Stephen Henson
48921e00fc Really fix PKCS7_set_detached this time... 2002-09-08 16:25:03 +00:00
Dr. Stephen Henson
e696a05791 Fix typos in PKCS#12 ASN1 code.
Make PKCS7_set_detached work again.
2002-09-07 22:59:34 +00:00
Dr. Stephen Henson
f804930150 Fix typos in PKCS#12 ASN1 code.
Make PKCS7_set_detached work again.
2002-09-07 22:57:49 +00:00
Lutz Jänicke
3403caf3da Consequently use term URI instead of URL
Submitted by: TJ Saunders <tj@castaglia.org>
Reviewed by:
PR: 268
2002-09-05 07:52:05 +00:00
Lutz Jänicke
4a13e4b36c Consequently use term URI instead of URL
Submitted by: TJ Saunders <tj@castaglia.org>
Reviewed by:
PR: 268
2002-09-05 07:51:23 +00:00
Dr. Stephen Henson
b7fb041f31 make update 2002-09-03 00:09:45 +00:00
Bodo Möller
ba11121731 -nameopt fix has been moved to 0.9.7 2002-09-02 14:22:51 +00:00
Bodo Möller
ed5e37c309 mention EC_get_builtin_curves() 2002-09-02 07:12:08 +00:00
Bodo Möller
65b1d31df5 change API for looking at the internal curve list
Submitted by: Nils Larsch
2002-09-02 07:08:33 +00:00
Dr. Stephen Henson
a98beb3a2d Apply -nameopt patches to 0.9.7 2002-08-30 18:26:26 +00:00
Dr. Stephen Henson
b499ed06d2 Fix ASN1_STRING_to_UTF8: remove non sensical !*out test. 2002-08-30 17:18:22 +00:00
Dr. Stephen Henson
f627c159b1 Fix ASN1_STRING_to_UTF8: remove non sensical !*out test. 2002-08-30 17:17:45 +00:00
Bodo Möller
6ff7c95843 don't memset(data,0,...) if data is NULL
Submitted by: anonymous
PR: 254
2002-08-29 11:45:40 +00:00
Bodo Möller
535cedf136 don't memset(data,0,...) if data is NULL
Submitted by: anonymous
PR: 254
2002-08-29 11:35:42 +00:00
Geoff Thorpe
3a00964dd3 Fix a bug to allow the 4758 ENGINE to build as a DSO. 2002-08-28 19:11:59 +00:00
Geoff Thorpe
41cc7096b8 Fix a bug to allow the 4758 ENGINE to build as a DSO. 2002-08-28 19:11:08 +00:00
Bodo Möller
c237de058f don't write beyond buffer
Submitted by: Nils Larsch
2002-08-27 13:32:35 +00:00
Bodo Möller
e2aeb8174b change 'usage' formatting 2002-08-27 10:38:09 +00:00
Bodo Möller
34f1f2a81c less specific interface for EC_GROUP_get_basis_type
Submitted by: Nils Larsch, Bodo Moeller
2002-08-26 18:08:53 +00:00
Bodo Möller
c96f0fd2d1 fix spacing 2002-08-26 14:50:52 +00:00
Bodo Möller
8aefe253a7 move EC_GROUP_get_basis_type() from ec_lib.c to ec_asn1.c 2002-08-26 11:33:13 +00:00
Bodo Möller
7e31164ae0 ASN1 for binary curves
Submitted by: Nils Larsch
2002-08-26 11:25:54 +00:00
Bodo Möller
ad55f581f9 fix offsets
Submitted by: Nils Larsch
2002-08-26 11:25:14 +00:00
Bodo Möller
d4a8f90cab ecdsa => ec
Submitted by: Nils Larsch
2002-08-26 11:20:50 +00:00
Dr. Stephen Henson
41ab00bedf Reinstate the check for invalid length BIT STRINGS,
which was effectively bypassed in the ASN1 changed.
2002-08-23 00:02:11 +00:00
Dr. Stephen Henson
a69d50b02d Reinstate the check for invalid length BIT STRINGS,
which was effectively bypassed in the ASN1 changed.
2002-08-23 00:00:54 +00:00
Dr. Stephen Henson
fc85ac20c7 Make -nameopt work in req and add support for -reqopt 2002-08-22 23:43:48 +00:00
Dr. Stephen Henson
e88479243c Change C++ style comments 2002-08-22 23:03:04 +00:00
Dr. Stephen Henson
c787525ac8 #if out unused function to shut the compiler up. 2002-08-22 23:00:54 +00:00
Dr. Stephen Henson
ed7443661c Fix C++ style comments. 2002-08-22 23:00:05 +00:00
Dr. Stephen Henson
9a2601033d Fix crahses and leaks in pkcs12 utility -chain option 2002-08-22 21:54:51 +00:00
Dr. Stephen Henson
3d2aa62cb6 Fix crahses and leaks in pkcs12 utility -chain option 2002-08-22 21:54:24 +00:00
Richard Levitte
9925249ba5 Typo, I assigned the variable ld instead of my_ld... 2002-08-18 21:33:02 +00:00
Richard Levitte
fbb311a7d2 Typo, I assigned the variable ld instead of my_ld... 2002-08-18 21:32:19 +00:00
Richard Levitte
d7041ea5de So, I discovered that if you have your $PATH set so a ld different from
GNU ld comes first, checking the usage of collect2 gives that instead of
GNU ld, even if GNU ld would be the one that would get used if we link using
gcc.  It's much better, apparently, to ask gcc directly what the path to
GNU ld is (provided it's there at all and gcc knows about it), and ask
the result if it's a GNU or not.  The bonus is that our GNU ld detection
mechanism got shorter and easier to understand...
2002-08-17 13:46:52 +00:00
Richard Levitte
f309c1ae50 So, I discovered that if you have your $PATH set so a ld different from
GNU ld comes first, checking the usage of collect2 gives that instead of
GNU ld, even if GNU ld would be the one that would get used if we link using
gcc.  It's much better, apparently, to ask gcc directly what the path to
GNU ld is (provided it's there at all and gcc knows about it), and ask
the result if it's a GNU or not.  The bonus is that our GNU ld detection
mechanism got shorter and easier to understand...
2002-08-17 13:46:42 +00:00
Lutz Jänicke
82a20fb0f0 Reorder cleanup sequence in SSL_CTX_free() to leave ex_data for remove_cb().
Submitted by:
Reviewed by:
PR: 212
2002-08-16 17:04:04 +00:00
Lutz Jänicke
68a9ee13e8 Reorder cleanup sequence in SSL_CTX_free() to leave ex_data for remove_cb().
Submitted by:
Reviewed by:
PR: 212
2002-08-16 17:02:30 +00:00
Lutz Jänicke
a64f08f3dd Fix wrong URI.
Submitted by: Mike Castle <dalgoda@ix.netcom.com>
Reviewed by:
PR: 200
2002-08-16 16:44:54 +00:00
Bodo Möller
428112ef10 typo
Submitted by: Nils Larsch
2002-08-16 11:19:59 +00:00
Bodo Möller
64376cd8ff 'EC' vs. 'ECDSA'
Submitted by: Nils Larsch
2002-08-16 11:19:07 +00:00
Richard Levitte
384897f46b isalist was less trustable than I thought (or rather, one can trust it to
come up with all kinds of names we don't have in our targets).
Besides, our sparcv9 targets currently generate sparcv8 code, I'm told.
2002-08-16 09:41:35 +00:00
Richard Levitte
cc8aa08b02 isalist was less trustable than I thought (or rather, one can trust it to
come up with all kinds of names we don't have in our targets).
Besides, our sparcv9 targets currently generate sparcv8 code, I'm told.
2002-08-16 09:41:14 +00:00
Richard Levitte
08e60fc0ff Add -lz to the ld flags when the user has chosen to link in zlib *statically*.
Notified by Doug Kaufman <dkaufman@rahul.net>
2002-08-16 06:15:58 +00:00
Richard Levitte
1c4e4e4f56 Add -lz to the ld flags when the user has chosen to link in zlib *statically*.
Notified by Doug Kaufman <dkaufman@rahul.net>
2002-08-16 06:15:41 +00:00
Dr. Stephen Henson
3f6db7f518 Fix block_size field for CFB and OFB modes: it should be 1. 2002-08-16 01:53:24 +00:00
Dr. Stephen Henson
ea050a6eb3 Fix block_size field for CFB and OFB modes: it should be 1. 2002-08-16 01:38:34 +00:00
Richard Levitte
bde63f803a q may be used uninitialised 2002-08-15 22:06:14 +00:00
Richard Levitte
8435a755fd q may be used uninitialised 2002-08-15 22:06:00 +00:00
Bodo Möller
52c29b7b99 use correct function code in error message 2002-08-15 16:17:20 +00:00
Bodo Möller
e73308638a use correct function code in error message 2002-08-15 16:17:02 +00:00
Richard Levitte
1ac3419ef6 It seems like sun4u doesn't always have a sparcv9 inside. Trust isalist.
PR: 220
2002-08-15 15:21:00 +00:00
Richard Levitte
c6bf63da7c It seems like sun4u doesn't always have a sparcv9 inside. Trust isalist.
PR: 220
2002-08-15 15:20:48 +00:00
Bodo Möller
0fd05a2f0f fix warnings (CHARSET_EBCDIC)
Submitted by: Lorinczy Zsigmond <lzsiga@mail.ahiv.hu>
2002-08-15 14:52:54 +00:00
Bodo Möller
1e9858a28b fix warnings (CHARSET_EBCDIC)
Submitted by: Lorinczy Zsigmond <lzsiga@mail.ahiv.hu>
2002-08-15 14:52:22 +00:00
Bodo Möller
1fd0338b49 fix manpage 2002-08-15 14:23:23 +00:00
Bodo Möller
8f4a09e531 fix manpage 2002-08-15 14:22:49 +00:00
Bodo Möller
b2be73e4e8 add crypto/ecdh 2002-08-15 14:17:19 +00:00
Richard Levitte
3b2f77d88e I think that's the last forgotten compilation module. 2002-08-15 11:48:58 +00:00
Richard Levitte
52ccf9e1c1 Missing =back.
Part of PR 196
2002-08-15 10:59:59 +00:00
Richard Levitte
37f5fcf85c Missing =back.
Part of PR 196
2002-08-15 10:59:55 +00:00
Richard Levitte
5e947727a9 Add a FAQ entry for yet another bc failure.
PR: 199
2002-08-15 10:50:42 +00:00
Richard Levitte
f742e497dd Add a FAQ entry for yet another bc failure.
PR: 199
2002-08-15 10:50:31 +00:00
Richard Levitte
d7bd58cf36 Yet a couple of modules forgotten. These weren't important for
OpenSSL itself, since they aren't used there (yet).  It became quite
visible qhen building a shared library, however...
2002-08-15 09:40:08 +00:00
Richard Levitte
dcc426fcfe Yet a couple of modules forgotten. These weren't important for
OpenSSL itself, since they aren't used there (yet).  It became quite
visible qhen building a shared library, however...
2002-08-15 09:39:01 +00:00
Bodo Möller
7eb18f1237 Simplify handling of named curves: get rid of EC_GROUP_new_by_name(),
EC_GROUP_new_by_nid() should be enough.  This avoids a lot of
redundancy.

Submitted by: Nils Larsch
2002-08-15 09:21:31 +00:00
Richard Levitte
b84e473d63 Sometimes, the value of the variable containing the compiler call can
become rather large.  This becomes a problem when the default 1024
character large buffer that WRITE uses isn't enough.  WRITE/SYMBOL
uses a 2048 byte large buffer instead.
2002-08-15 08:29:26 +00:00
Richard Levitte
265e892fed Sometimes, the value of the variable containing the compiler call can
become rather large.  This becomes a problem when the default 1024
character large buffer that WRITE uses isn't enough.  WRITE/SYMBOL
uses a 2048 byte large buffer instead.
2002-08-15 08:28:38 +00:00
Bodo Möller
4aecd67d04 change how pod2man is handled: explicitly invoke '$PERL' only when
needed, call 'pod2man' directly if this works

PR: 217
2002-08-14 14:06:11 +00:00
Bodo Möller
623e9e66c0 change how pod2man is handled: explicitly invoke '$PERL' only when
needed, call 'pod2man' directly if this works

PR: 217
2002-08-14 14:04:24 +00:00
Richard Levitte
74a25e9cd9 Instead of returning errors when certain flags are unusable, just ignore them.
That will make the test go through even if DH (or in some cases ECDH) aren't
built into OpenSSL.
PR: 216, part 2
2002-08-14 12:18:36 +00:00
Richard Levitte
90f5a2b6fe Instead of returning errors when certain flags are unusable, just ignore them.
That will make the test go through even if DH (or in some cases ECDH) aren't
built into OpenSSL.
PR: 216, part 2
2002-08-14 12:16:27 +00:00
Richard Levitte
bf625abe29 The applications 'ecdsa' and 'ecparam' were missing from the VMS
build.
2002-08-14 11:16:20 +00:00
Richard Levitte
d020139db7 Make sure that the test input file comes in the same record format as the
typical output from a program in C.
PR: 222
2002-08-14 11:09:03 +00:00
Richard Levitte
b44069730b Make sure that the test input file comes in the same record format as the
typical output from a program in C.
PR: 222
2002-08-14 11:08:43 +00:00
Bodo Möller
749d055eba move a TODO from CHANGES to STATUS 2002-08-14 11:07:29 +00:00
Bodo Möller
49a0f77867 add 'TODO' items 2002-08-14 10:49:29 +00:00
Dr. Stephen Henson
f84acec8ea Fix typo in OBJ_txt2obj which incorrectly passed the content
length, instead of the encoding length to d2i_ASN1_OBJECT.

This wasn't visible before becuse ASN1_get_object() used
to read past the length of the supplied buffer.
2002-08-14 00:50:35 +00:00
Dr. Stephen Henson
2af52de7b5 Fix typo in OBJ_txt2obj which incorrectly passed the content
length, instead of the encoding length to d2i_ASN1_OBJECT.

This wasn't visible before becuse ASN1_get_object() used
to read past the length of the supplied buffer.
2002-08-14 00:48:02 +00:00
Richard Levitte
d3b282e01f Some files deserve to be ignored 2002-08-13 22:41:39 +00:00
cvs2svn
85d9e2f2f0 This commit was manufactured by cvs2svn to create branch
'OpenSSL_0_9_7-stable'.
2002-08-13 22:41:21 +00:00
Richard Levitte
629d860cbc Some files deserve to be ignored 2002-08-13 22:41:18 +00:00
Richard Levitte
056cc163f5 Merge in demo engines from 0.9.7-stable. 2002-08-13 12:30:27 +00:00
Richard Levitte
04ed3994e2 OK, I've amused myself with making sure the engines that have been
contributed TO WORK WITH 0.9.7 can be built as dynamically loadable
libraries.

For now, they're not included in crypto/engine/ since 0.9.7 is in
feature freeze.  Further discussion might change that, but don't hold
your breath.
2002-08-13 12:26:41 +00:00
Richard Levitte
6100502726 Export text symbols as well (AIX experts might need to correct me
here).
2002-08-13 12:19:55 +00:00
Richard Levitte
e09efcf71a Comma forgotten. 2002-08-13 11:49:47 +00:00
Richard Levitte
763b4dcc66 Oh, ec2_smpt.c is #included by ec2_smpl.c! 2002-08-13 11:47:26 +00:00
Richard Levitte
a1f09ea8f8 Do not include openssl/ripemd.h when the RIPEMD algorithm has been deselected.
PR: 216, point 1
2002-08-12 21:22:05 +00:00
Richard Levitte
83348e0b80 Do not include openssl/ripemd.h when the RIPEMD algorithm has been deselected.
PR: 216, point 1
2002-08-12 21:22:00 +00:00
Richard Levitte
bce625987d Do not use the word 'modulus', which is a class template name in VC++ 6.0/SP5.
PR: 216, point 3
2002-08-12 21:20:30 +00:00
Richard Levitte
f13ddd5d0a Do not use the word 'modulus', which is a class template name in VC++ 6.0/SP5.
PR: 216, point 3
2002-08-12 21:20:25 +00:00
Bodo Möller
18a31aa861 Scripts for testing ECC ciphersuites.
Submitted by: Sun Microsystems Labs
2002-08-12 15:18:48 +00:00
Richard Levitte
b2a4e959c9 A few files in the ENGINE and EVP sections forgotten. 2002-08-12 13:31:57 +00:00
Bodo Möller
f17ef241d1 fix previous commit (there's no SSLEAY_VERSION_TEXT) 2002-08-12 11:21:02 +00:00
Bodo Möller
aa1e56b0b9 remove comment
Submitted by: Douglas Stebila
2002-08-12 08:54:40 +00:00
Bodo Möller
7ef524ea1c remove debug messages
Submitted by: Douglas Stebila
2002-08-12 08:52:23 +00:00
Bodo Möller
0c7141a343 fix comment
Submitted by: Douglas Stebila
2002-08-12 08:51:30 +00:00
Bodo Möller
5488bb6197 get rid of EVP_PKEY_ECDSA (now we have EVP_PKEY_EC instead)
Submitted by: Nils Larsch
2002-08-12 08:47:41 +00:00
Bodo Möller
8e28c67155 add 0.9.6g information 2002-08-12 08:45:00 +00:00
Bodo Möller
3c1a6f441b add 0.9.6g information 2002-08-12 08:43:32 +00:00
Richard Levitte
97d640e1f0 Update with the status for 0.9.6g. 2002-08-12 06:55:02 +00:00
Richard Levitte
36969082bb Update with the status for 0.9.6g. 2002-08-12 06:54:54 +00:00
Richard Levitte
ddf7602425 Update with the status for 0.9.6g. 2002-08-12 06:06:27 +00:00
Richard Levitte
4fde69b066 In case of shared libraries, we might run one version of the
application with a different version of the library.  Detect if there
is a difference of versions, and print both versions in that case.
This might prove to be a good enough debugging tool in case of doubt.
2002-08-11 21:48:44 +00:00
Richard Levitte
fd9a4dbe94 One more file to compile on VMS as well. 2002-08-11 12:27:28 +00:00
Richard Levitte
f0db0ed35d Remove clashes between symbols that have the same name except for
casing.
2002-08-11 12:23:08 +00:00
Richard Levitte
6d24cbf452 More long symbols to shorten. 2002-08-11 11:50:32 +00:00
Richard Levitte
5454829ae6 mem* functions are declared in string.h. 2002-08-10 01:36:14 +00:00
Richard Levitte
da0bca6466 Synchronise tests with Unix. 2002-08-10 01:35:10 +00:00
Richard Levitte
4705bd9b37 A new header. 2002-08-09 22:34:57 +00:00
Richard Levitte
5bd90983bc Synchronise with Unix.
(I expect the next run will generate lots of errors on VMS :-)).
2002-08-09 22:32:32 +00:00
Richard Levitte
329f981582 More long names to shorten. 2002-08-09 22:23:33 +00:00
Bodo Möller
cece7adcee .cvsignore for crypto/ecdh 2002-08-09 12:17:03 +00:00
Bodo Möller
74cc4903ef make update 2002-08-09 12:16:15 +00:00
Bodo Möller
41fdcfa71e fix warnings 2002-08-09 11:58:28 +00:00
Bodo Möller
60cc56b1a9 add field type to text output
don't print seed value as a number (leading zeros must not be removed)

Submitted by: Nils Larsch
2002-08-09 10:44:44 +00:00
Bodo Möller
f912e9293f use 0, not NULL
Submitted by: Nils Larsch
2002-08-09 09:39:53 +00:00
Bodo Möller
56939728b7 ECDH engine support
Submitted by: Douglas Stebila
2002-08-09 09:39:11 +00:00
Bodo Möller
ea26226046 ECC ciphersuite support
Submitted by: Douglas Stebila <douglas.stebila@sun.com>
(Authors: Vipul Gupta and Sumit Gupta, Sun Microsystems Laboratories)
2002-08-09 08:56:08 +00:00
Richard Levitte
17f6279317 When we want to give a -f argument to $(MAKE), we'd better make sure the
variable doesn't already contain a -f argument.
PR: 203, part 4
2002-08-09 08:50:30 +00:00
Richard Levitte
d3c32ffbcc When we want to give a -f argument to $(MAKE), we'd better make sure the
variable doesn't already contain a -f argument.
PR: 203, part 4
2002-08-09 08:49:46 +00:00
Bodo Möller
e172d60ddb Add ECDH support.
Additional changes:
 - use EC_GROUP_get_degree() in apps/req.c
 - add ECDSA and ECDH to apps/speed.c
 - adds support for EC curves over binary fields to ECDSA
 - new function EC_KEY_up_ref() in crypto/ec/ec_key.c
 - reorganize crypto/ecdsa/ecdsatest.c
 - add engine support for ECDH
 - fix a few bugs in ECDSA engine support

Submitted by: Douglas Stebila <douglas.stebila@sun.com>
2002-08-09 08:43:04 +00:00
Richard Levitte
1d2a3fe246 Parse version numbers prefixed with text (egcs does that, even with
-dumpversion).
PR: 203, part 1
2002-08-09 07:32:31 +00:00
Richard Levitte
f8fe7fa491 Parse version numbers prefixed with text (egcs does that, even with
-dumpversion).
PR: 203, part 1
2002-08-09 07:32:24 +00:00
Richard Levitte
00c8546d21 0.9.6f is released 2002-08-08 22:56:05 +00:00
Richard Levitte
fbe792f0ac 0.9.6f is released 2002-08-08 22:55:28 +00:00
Bodo Möller
14a7cfb32a use a generic EC_KEY structure (EC keys are not ECDSA specific)
Submitted by: Nils Larsch
2002-08-07 10:49:54 +00:00
Bodo Möller
7a8645d171 avoid SIGSEGV
Submitted by: Nils Larsch, Douglas Stebila
2002-08-07 07:53:47 +00:00
Geoff Thorpe
31e441a805 These are updates/fixes to DH/DSA/RAND docs based on the fixes to the RSA
docs. There were a couple of other places where the docs were not
synchronised with the API that are now fixed. One or two still remain to be
fixed though ...
2002-08-05 16:28:59 +00:00
Geoff Thorpe
5bf738737d These are updates/fixes to DH/DSA/RAND docs based on the fixes to the RSA
docs. There were a couple of other places (including RSA) where the docs
were not quite synchronised with the API that are now fixed. One or two
still remain to be fixed though ...
2002-08-05 16:27:01 +00:00
Geoff Thorpe
c4a28caa32 typo fix 2002-08-05 02:55:27 +00:00
Geoff Thorpe
415e03aa6f typo fix 2002-08-05 02:54:57 +00:00
Geoff Thorpe
c3eb0c1e7f Various parts of the RSA documentation were inaccurate and out of date and
this fixes those that I'm currently aware of. In particular, the ENGINE
interference in the RSA API has hopefully been clarified. This still needs
to be done for other areas of the API ...
2002-08-04 21:10:05 +00:00
Geoff Thorpe
ac120e20e3 Various parts of the RSA documentation were inaccurate and out of date and
this fixes those that I'm currently aware of. In particular, the ENGINE
interference in the RSA API has hopefully been clarified. This still needs
to be done for other areas of the API ...
2002-08-04 21:08:36 +00:00
Geoff Thorpe
d18f681310 A single monolithic man page for the ENGINE stuff. This is a rough
first-cut but provides better documentation than having nothing on the
ENGINE API.
2002-08-04 21:03:04 +00:00
cvs2svn
ea5214328b This commit was manufactured by cvs2svn to create branch
'OpenSSL_0_9_7-stable'.
2002-08-04 20:57:20 +00:00
Geoff Thorpe
3f90e45079 A single monolithic man page for the ENGINE stuff. This is a rough
first-cut but provides better documentation than having nothing on the
ENGINE API.
2002-08-04 20:57:19 +00:00
Geoff Thorpe
9dcc441a5f Fix "make install_docs" (and thus "make install"). 2002-08-04 20:40:23 +00:00
Geoff Thorpe
0833a40d13 Fix "make install_docs" (and thus "make install"). 2002-08-04 20:38:54 +00:00
Bodo Möller
ab1a01e9b2 oops -- must use EVP_MD_size, not EVP_MD_block_size 2002-08-03 18:50:17 +00:00
Bodo Möller
db4f691f9f oops -- must use EVP_MD_size, not EVP_MD_block_size 2002-08-03 18:49:39 +00:00
Bodo Möller
d28735a05b oops, undo previous change (was just for testing) 2002-08-03 18:28:34 +00:00
Bodo Möller
183847747a fix bn_expand2 2002-08-03 18:27:47 +00:00
Bodo Möller
bac6012308 use bn_wexpand instead of bn_expand2 (the latter is not needed here,
and it does not yet work correctly)

Submitted by: Douglas Stebila
2002-08-03 17:51:29 +00:00
Dr. Stephen Henson
f1e1d6d6af Fix typo 2002-08-02 19:03:41 +00:00
Dr. Stephen Henson
aaa384ca1a Fix typo 2002-08-02 18:58:33 +00:00
Dr. Stephen Henson
f908226898 Fix the ASN1 sanity check: correct header length
calculation and check overflow against LONG_MAX.
2002-08-02 18:48:55 +00:00
Dr. Stephen Henson
b012127a99 Fix the ASN1 sanity check: correct header length
calculation and check overflow against LONG_MAX.
2002-08-02 18:42:40 +00:00
Bodo Möller
909abce800 disable Sun divison algorithm by default 2002-08-02 18:26:02 +00:00
Bodo Möller
33d4e690cc fix bn_expand2 2002-08-02 18:23:55 +00:00
Bodo Möller
848c849584 optical changes 2002-08-02 17:25:05 +00:00
Bodo Möller
102c8f47bf typo 2002-08-02 15:28:31 +00:00
Bodo Möller
d3bcbba45c remove obsolete part of comment 2002-08-02 15:13:10 +00:00
Bodo Möller
0903e56196 remove obsoleted disabled code 2002-08-02 15:07:08 +00:00
Bodo Möller
95ecacf8a2 Let BN_rand_range() abort with an error after 100 iterations
without success.
2002-08-02 15:02:03 +00:00
Bodo Möller
be8a280e0b update 2002-08-02 14:58:09 +00:00
Bodo Möller
6fb60a84dd Change BN_mod_sqrt() so that it verifies that the input value is
really the square of the return value.
2002-08-02 14:57:53 +00:00
Bodo Möller
5af7d1a3b8 move GF2m tests to the end 2002-08-02 14:49:59 +00:00
Bodo Möller
35b73a1f20 Rename implementations of method functions so that they match
the new method names where _GF... suffixes have been removed.

Revert changes to ..._{get/set}_Jprojective_coordinates_...:
The current implementation for ECC over binary fields does not use
projective coordinates, and if it did, it would not use Jacobian
projective coordinates; so it's OK to use the ..._GFp prefix for all
this.

Add author attributions to some files so that it doesn't look
as if Sun wrote all of this :-)
2002-08-02 14:28:37 +00:00
Bodo Möller
9e4f9b36fc typos 2002-08-02 13:52:19 +00:00
Bodo Möller
84d7e365a0 ec2_smpt.c must be listed in LIBSRC 2002-08-02 13:50:12 +00:00
Bodo Möller
64c3da230f there is no alternative EC_METHOD for curves over GF(2^m) (yet) 2002-08-02 13:43:26 +00:00
Bodo Möller
7793f30e09 add support for elliptic curves over binary fields
Submitted by: Duglas Stebila <douglas.stebila@sun.com>,
              Sheueling Chang <sheueling.chang@sun.com>

(CHANGES entries by Bodo Moeller)
2002-08-02 13:42:24 +00:00
Bodo Möller
714df32e33 extend curve list (additional curves over binary fields)
Submitted by: Sheueling Chang Shantz and Douglas Stebila (Sun Microsystems Laboratories)
2002-08-02 13:06:17 +00:00
Bodo Möller
1dc920c8de Binary field arithmetic contributed by Sun Microsystems.
The 'OPENSSL_NO_SUN_DIV' default is still subject to change,
so I didn't bother to finish the CHANGES entry yet.

Submitted by: Douglas Stebila <douglas.stebila@sun.com>, Sheueling Chang <sheueling.chang@sun.com>
(CHANGES entry by Bodo Moeller)
2002-08-02 13:03:55 +00:00
Bodo Möller
16dc1cfb5c Add more WAP/WTLS elliptic curve OIDs.
Submitted by: Douglas Stebila <douglas.stebila@sun.com>
2002-08-02 12:28:34 +00:00
Bodo Möller
819ff32dc4 New error code ERR_R_DISABLED
Submitted by: Douglas Stebila <douglas.stebila@sun.com>
2002-08-02 12:27:21 +00:00
Bodo Möller
5574e0ed41 get rid of OpenSSLDie 2002-08-02 11:48:15 +00:00
Bodo Möller
265a9e2c5d get rid of OpenSSLDie 2002-08-02 11:47:24 +00:00
Richard Levitte
b0b3b11dbf make update 2002-08-02 11:23:27 +00:00
Richard Levitte
042e57d562 make update 2002-08-02 11:23:12 +00:00
Richard Levitte
c578208d63 Certain flag macros were tested with #if instead if #ifdef... 2002-08-02 11:13:55 +00:00
Richard Levitte
ba8fb52183 Certain flag macros were tested with #if instead if #ifdef... 2002-08-02 11:13:37 +00:00
Richard Levitte
038461a61b We don't need to find out which pod2man to use more than once 2002-08-01 21:53:08 +00:00
Richard Levitte
f6f9961819 We don't need to find out which pod2man to use more than once 2002-08-01 21:52:56 +00:00
Richard Levitte
716c94492a Don't try testing with parallell make, that will just fail.
PR: 175
2002-08-01 21:34:39 +00:00
Richard Levitte
e74e9c48de Don't try testing with parallell make, that will just fail.
PR: 175
2002-08-01 21:34:24 +00:00
Richard Levitte
a4f335ba3e Add aix64-cc, and make sure that ar gets proper flags for 64-bit libraries 2002-08-01 20:28:50 +00:00
Richard Levitte
179add2b07 Add aix64-cc, and make sure that ar gets proper flags for 64-bit libraries 2002-08-01 20:28:16 +00:00
Richard Levitte
456bc309d8 make update 2002-08-01 19:45:54 +00:00
Richard Levitte
90832c891e make update 2002-08-01 19:44:43 +00:00
Richard Levitte
dc2ab9f4fa Add the CBC flag for cbc ciphers 2002-08-01 19:33:08 +00:00
Richard Levitte
a7535a2727 Add the CBC flag for cbc ciphers 2002-08-01 19:32:48 +00:00
Richard Levitte
162d858a90 Avoid yet another name clash with libdes, and make the declaration consistent
with the definition.
2002-08-01 19:31:15 +00:00
Richard Levitte
44c09667ff Avoid yet another name clash with libdes, and make the declaration consistent
with the definition.
2002-08-01 19:30:58 +00:00
Richard Levitte
da9b972466 Make it possible to load keys from stdin, and restore that
functionality in the programs that had that before.
Part fo PR 164
2002-08-01 16:28:40 +00:00
Richard Levitte
13ac37d01a Make it possible to load keys from stdin, and restore that
functionality in the programs that had that before.
Part fo PR 164
2002-08-01 16:27:47 +00:00
Richard Levitte
c2decc56b0 OCSP and KRB5 Makefil.ssl should be consistent with all the others 2002-08-01 14:19:08 +00:00
Richard Levitte
bd45950f4a OCSP and KRB5 Makefil.ssl should be consistent with all the others 2002-08-01 14:18:52 +00:00
Richard Levitte
1649d5fee1 Linux on s390 really knows about loading dynamically.
PR: 183
2002-08-01 13:50:24 +00:00
Richard Levitte
f70cf11819 Linux on s390 really knows about loading dynamically.
PR: 183
2002-08-01 13:50:08 +00:00
Richard Levitte
f8279b8ea3 Cut'n'paste error with other reposnder certificates cleared.
PR: 190
2002-08-01 13:39:46 +00:00
Richard Levitte
5575f781ad Cut'n'paste error with other reposnder certificates cleared.
PR: 190
2002-08-01 13:39:39 +00:00
Richard Levitte
76b8f839c2 If CRYPTO_realloc() is called with a NULL pointer, have it call
OPENSSL_malloc().
PR: 187
2002-08-01 10:08:45 +00:00
Richard Levitte
0472883cc2 If CRYPTO_realloc() is called with a NULL pointer, have it call
OPENSSL_malloc().
PR: 187
2002-08-01 10:08:37 +00:00
Richard Levitte
8d37f07e09 If the email address is moved from the subject to the subject alternate name,
the subject in the certificate would differ from the subject in the index file,
which has quite bad concequences.
PR: 180
2002-07-31 14:06:09 +00:00
Richard Levitte
87e8feca95 If the email address is moved from the subject to the subject alternate name,
the subject in the certificate would differ from the subject in the index file,
which has quite bad concequences.
PR: 180
2002-07-31 14:05:57 +00:00
Richard Levitte
450c73d98b Make sure to use $(MAKE) everywhere instead of make.
Part of PR 181
2002-07-31 13:49:58 +00:00
Richard Levitte
e70a39830c Make sure to use $(MAKE) everywhere instead of make.
Part of PR 181
2002-07-31 13:49:06 +00:00
Richard Levitte
2ead4a5df6 ln -f -s doesn't always work, so do a rm -f followed by a ln -s.
Part of PR 181
2002-07-31 13:38:39 +00:00
Richard Levitte
ba25198517 ln -f -s doesn't always work, so do a rm -f followed by a ln -s.
Part of PR 181
2002-07-31 13:38:32 +00:00
Richard Levitte
6297bcd74c The version of the shared library should, for now, reflect the version
of OpenSSL.
Part of PR 181.
2002-07-31 13:24:26 +00:00
Lutz Jänicke
dd7ab82e75 Typo.
Submitted by: Jeffrey Altman <jaltman@columbia.edu>
Reviewed by:
PR: 169
2002-07-30 13:36:31 +00:00
Lutz Jänicke
addafc08a5 Typo.
Submitted by: Jeffrey Altman <jaltman@columbia.edu>
Reviewed by:
PR: 169
2002-07-30 13:34:44 +00:00
Lutz Jänicke
c046fffa16 OpenSSL Security Advisory [30 July 2002]
Changes marked "(CHATS)" were sponsored by the Defense Advanced
Research Projects Agency (DARPA) and Air Force Research Laboratory,
Air Force Materiel Command, USAF, under agreement number
F30602-01-2-0537.
2002-07-30 13:04:04 +00:00
Lutz Jänicke
3aecef7697 "make update" 2002-07-30 12:44:33 +00:00
Lutz Jänicke
b218af2b27 0.9.6e and 0.9.7-beta3 are out. 2002-07-30 11:32:47 +00:00
Lutz Jänicke
77c46bbf29 Only use DSA-functions if available.
Submitted by: "Hellan,Kim KHE" <KHE@kmd.dk>
Reviewed by:
PR: 167
2002-07-29 13:31:44 +00:00
Bodo Möller
02750ff56f mention SSL_do_handshake() 2002-07-29 12:35:19 +00:00
Bodo Möller
0bee0e6294 Use SEC1 format for EC private keys.
This is not ECDSA specific, so it's now PEM_STRING_ECPRIVATEKEY etc.

Submitted by: Nils Larsch <nlarsch@compuserve.de>
2002-07-26 08:41:04 +00:00
Bodo Möller
12593e6f45 Move zeroing from bn_expand_internal() to bn_expand2() so that it
happens reliably, even if the BIGNUM is already sufficiently large.

[Note that the bn_expand()/bn_wexpand() macros call bn_expand2() only
if the BIGNUM actually has to grow, so this change does not add any
new overhead as currently bn_expand2() is never called directly.]
2002-07-25 12:12:39 +00:00
Bodo Möller
819a040f44 more detailed instructions for export from US 2002-07-25 11:19:58 +00:00
Richard Levitte
546405bece Don't clobber loop variable.
PR: 159
2002-07-24 14:43:00 +00:00
Richard Levitte
f013c7f2a6 Document the recent DJGPP-related changes 2002-07-23 13:45:38 +00:00
483 changed files with 15168 additions and 5787 deletions

View File

@@ -1,3 +1,4 @@
openssl.pc
Makefile.ssl
MINFO
makefile.one

223
CHANGES
View File

@@ -2,7 +2,128 @@
OpenSSL CHANGES
_______________
Changes between 0.9.6e and 0.9.7 [XX xxx 2002]
Changes between 0.9.6h and 0.9.7 [XX xxx 2002]
*) In asn1_d2i_read_bio() repeatedly call BIO_read() until all content
octets have been read, EOF or an error occurs. Without this change
some truncated ASN1 structures will not produce an error.
[Steve Henson]
*) Disable Heimdal support, since it hasn't been fully implemented.
Still give the possibility to force the use of Heimdal, but with
warnings and a request that patches get sent to openssl-dev.
[Richard Levitte]
*) Add the VC-CE target, introduce the WINCE sysname, and add
INSTALL.WCE and appropriate conditionals to make it build.
[Steven Reddie <smr@essemer.com.au> via Richard Levitte]
*) Change the DLL names for Cygwin to cygcrypto-x.y.z.dll and
cygssl-x.y.z.dll, where x, y and z are the major, minor and
edit numbers of the version.
[Corinna Vinschen <vinschen@redhat.com> and Richard Levitte]
*) Introduce safe string copy and catenation functions
(BUF_strlcpy() and BUF_strlcat()).
[Ben Laurie (CHATS) and Richard Levitte]
*) Avoid using fixed-size buffers for one-line DNs.
[Ben Laurie (CHATS)]
*) Add BUF_MEM_grow_clean() to avoid information leakage when
resizing buffers containing secrets, and use where appropriate.
[Ben Laurie (CHATS)]
*) Avoid using fixed size buffers for configuration file location.
[Ben Laurie (CHATS)]
*) Avoid filename truncation for various CA files.
[Ben Laurie (CHATS)]
*) Use sizeof in preference to magic numbers.
[Ben Laurie (CHATS)]
*) Avoid filename truncation in cert requests.
[Ben Laurie (CHATS)]
*) Add assertions to check for (supposedly impossible) buffer
overflows.
[Ben Laurie (CHATS)]
*) Don't cache truncated DNS entries in the local cache (this could
potentially lead to a spoofing attack).
[Ben Laurie (CHATS)]
*) Fix various buffers to be large enough for hex/decimal
representations in a platform independent manner.
[Ben Laurie (CHATS)]
*) Add CRYPTO_realloc_clean() to avoid information leakage when
resizing buffers containing secrets, and use where appropriate.
[Ben Laurie (CHATS)]
*) Add BIO_indent() to avoid much slightly worrying code to do
indents.
[Ben Laurie (CHATS)]
*) Convert sprintf()/BIO_puts() to BIO_printf().
[Ben Laurie (CHATS)]
*) buffer_gets() could terminate with the buffer only half
full. Fixed.
[Ben Laurie (CHATS)]
*) Add assertions to prevent user-supplied crypto functions from
overflowing internal buffers by having large block sizes, etc.
[Ben Laurie (CHATS)]
*) New OPENSSL_assert() macro (similar to assert(), but enabled
unconditionally).
[Ben Laurie (CHATS)]
*) Eliminate unused copy of key in RC4.
[Ben Laurie (CHATS)]
*) Eliminate unused and incorrectly sized buffers for IV in pem.h.
[Ben Laurie (CHATS)]
*) Fix off-by-one error in EGD path.
[Ben Laurie (CHATS)]
*) If RANDFILE path is too long, ignore instead of truncating.
[Ben Laurie (CHATS)]
*) Eliminate unused and incorrectly sized X.509 structure
CBCParameter.
[Ben Laurie (CHATS)]
*) Eliminate unused and dangerous function knumber().
[Ben Laurie (CHATS)]
*) Eliminate unused and dangerous structure, KSSL_ERR.
[Ben Laurie (CHATS)]
*) Protect against overlong session ID context length in an encoded
session object. Since these are local, this does not appear to be
exploitable.
[Ben Laurie (CHATS)]
*) Change from security patch (see 0.9.6e below) that did not affect
the 0.9.6 release series:
Remote buffer overflow in SSL3 protocol - an attacker could
supply an oversized master key in Kerberos-enabled versions.
(CAN-2002-0657)
[Ben Laurie (CHATS)]
*) Change the SSL kerb5 codes to match RFC 2712.
[Richard Levitte]
*) Make -nameopt work fully for req and add -reqopt switch.
[Michael Bell <michael.bell@rz.hu-berlin.de>, Steve Henson]
*) The "block size" for block ciphers in CFB and OFB mode should be 1.
[Steve Henson, reported by Yngve Nysaeter Pettersen <yngve@opera.com>]
*) Make sure tests can be performed even if the corresponding algorithms
have been removed entirely. This was also the last step to make
@@ -1667,6 +1788,94 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) Clean old EAY MD5 hack from e_os.h.
[Richard Levitte]
Changes between 0.9.6g and 0.9.6h [5 Dec 2002]
*) New function OPENSSL_cleanse(), which is used to cleanse a section of
memory from it's contents. This is done with a counter that will
place alternating values in each byte. This can be used to solve
two issues: 1) the removal of calls to memset() by highly optimizing
compilers, and 2) cleansing with other values than 0, since those can
be read through on certain media, for example a swap space on disk.
[Geoff Thorpe]
*) Bugfix: client side session caching did not work with external caching,
because the session->cipher setting was not restored when reloading
from the external cache. This problem was masked, when
SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG (part of SSL_OP_ALL) was set.
(Found by Steve Haslam <steve@araqnid.ddts.net>.)
[Lutz Jaenicke]
*) Fix client_certificate (ssl/s2_clnt.c): The permissible total
length of the REQUEST-CERTIFICATE message is 18 .. 34, not 17 .. 33.
[Zeev Lieber <zeev-l@yahoo.com>]
*) Undo an undocumented change introduced in 0.9.6e which caused
repeated calls to OpenSSL_add_all_ciphers() and
OpenSSL_add_all_digests() to be ignored, even after calling
EVP_cleanup().
[Richard Levitte]
*) Change the default configuration reader to deal with last line not
being properly terminated.
[Richard Levitte]
*) Change X509_NAME_cmp() so it applies the special rules on handling
DN values that are of type PrintableString, as well as RDNs of type
emailAddress where the value has the type ia5String.
[stefank@valicert.com via Richard Levitte]
*) Add a SSL_SESS_CACHE_NO_INTERNAL_STORE flag to take over half
the job SSL_SESS_CACHE_NO_INTERNAL_LOOKUP was inconsistently
doing, define a new flag (SSL_SESS_CACHE_NO_INTERNAL) to be
the bitwise-OR of the two for use by the majority of applications
wanting this behaviour, and update the docs. The documented
behaviour and actual behaviour were inconsistent and had been
changing anyway, so this is more a bug-fix than a behavioural
change.
[Geoff Thorpe, diagnosed by Nadav Har'El]
*) Don't impose a 16-byte length minimum on session IDs in ssl/s3_clnt.c
(the SSL 3.0 and TLS 1.0 specifications allow any length up to 32 bytes).
[Bodo Moeller]
*) Fix initialization code race conditions in
SSLv23_method(), SSLv23_client_method(), SSLv23_server_method(),
SSLv2_method(), SSLv2_client_method(), SSLv2_server_method(),
SSLv3_method(), SSLv3_client_method(), SSLv3_server_method(),
TLSv1_method(), TLSv1_client_method(), TLSv1_server_method(),
ssl2_get_cipher_by_char(),
ssl3_get_cipher_by_char().
[Patrick McCormick <patrick@tellme.com>, Bodo Moeller]
*) Reorder cleanup sequence in SSL_CTX_free(): only remove the ex_data after
the cached sessions are flushed, as the remove_cb() might use ex_data
contents. Bug found by Sam Varshavchik <mrsam@courier-mta.com>
(see [openssl.org #212]).
[Geoff Thorpe, Lutz Jaenicke]
*) Fix typo in OBJ_txt2obj which incorrectly passed the content
length, instead of the encoding length to d2i_ASN1_OBJECT.
[Steve Henson]
Changes between 0.9.6f and 0.9.6g [9 Aug 2002]
*) [In 0.9.6g-engine release:]
Fix crypto/engine/vendor_defns/cswift.h for WIN32 (use '_stdcall').
[Lynn Gazis <lgazis@rainbow.com>]
Changes between 0.9.6e and 0.9.6f [8 Aug 2002]
*) Fix ASN1 checks. Check for overflow by comparing with LONG_MAX
and get fix the header length calculation.
[Florian Weimer <Weimer@CERT.Uni-Stuttgart.DE>,
Alon Kantor <alonk@checkpoint.com> (and others),
Steve Henson]
*) Use proper error handling instead of 'assertions' in buffer
overflow checks added in 0.9.6e. This prevents DoS (the
assertions could call abort()).
[Arne Ansper <arne@ats.cyber.ee>, Bodo Moeller]
Changes between 0.9.6d and 0.9.6e [30 Jul 2002]
*) Add various sanity checks to asn1_get_length() to reject
@@ -1717,11 +1926,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
too small for 64 bit platforms. (CAN-2002-0655)
[Matthew Byng-Maddick <mbm@aldigital.co.uk> and Ben Laurie (CHATS)>
*) Remote buffer overflow in SSL3 protocol - an attacker could
supply an oversized master key in Kerberos-enabled versions.
(CAN-2002-0657)
[Ben Laurie (CHATS)]
*) Remote buffer overflow in SSL3 protocol - an attacker could
supply an oversized session ID to a client. (CAN-2002-0656)
[Ben Laurie (CHATS)]
@@ -1730,7 +1934,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
supply an oversized client master key. (CAN-2002-0656)
[Ben Laurie (CHATS)]
Changes between 0.9.6c and 0.9.6d [9 May 2002]
*) Fix crypto/asn1/a_sign.c so that 'parameters' is omitted (not
@@ -1817,13 +2020,13 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
value is 0.
[Richard Levitte]
*) Add the configuration target linux-s390x.
[Neale Ferguson <Neale.Ferguson@SoftwareAG-USA.com> via Richard Levitte]
*) [In 0.9.6d-engine release:]
Fix a crashbug and a logic bug in hwcrhk_load_pubkey().
[Toomas Kiisk <vix@cyber.ee> via Richard Levitte]
*) Add the configuration target linux-s390x.
[Neale Ferguson <Neale.Ferguson@SoftwareAG-USA.com> via Richard Levitte]
*) The earlier bugfix for the SSL3_ST_SW_HELLO_REQ_C case of
ssl3_accept (ssl/s3_srvr.c) incorrectly used a local flag
variable as an indication that a ClientHello message has been

View File

@@ -120,7 +120,7 @@ my $alpha_asm="::::::::";
# -DB_ENDIAN slows things down on a sparc for md5, but helps sha1.
# So the md5_locl.h file has an undef B_ENDIAN if sun is defined
#config-string $cc : $cflags : $unistd : $thread_cflag : $sys_id : $lflags : $bn_ops : $bn_obj : $des_obj : $bf_obj : $md5_obj : $sha1_obj : $cast_obj : $rc4_obj : $rmd160_obj : $rc5_obj : $dso_scheme : $shared_target : $shared_cflag : $shared_ldflag : $shared_extension : $ranlib
#config-string $cc : $cflags : $unistd : $thread_cflag : $sys_id : $lflags : $bn_ops : $bn_obj : $des_obj : $bf_obj : $md5_obj : $sha1_obj : $cast_obj : $rc4_obj : $rmd160_obj : $rc5_obj : $dso_scheme : $shared_target : $shared_cflag : $shared_ldflag : $shared_extension : $ranlib : $arflags
my %table=(
# File 'TABLE' (created by 'make TABLE') contains the data from this list,
@@ -145,8 +145,10 @@ my %table=(
"debug-ulf", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -g -O2 -m486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT:::${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
"debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
"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::dlfcn",
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wid-clash-31 -Wcast-align -Wconversion -Wno-long-long -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_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wid-clash-31 -Wcast-align -Wconversion -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -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_CTX_DEBUG -DCRYPTO_MDEBUG -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 -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wconversion -Wno-long-long -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-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wconversion -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"dist", "cc:-O::(unknown)::::::",
# Basic configs that should work on any (32 and less bit) box
@@ -206,8 +208,8 @@ my %table=(
#"linux64-sparcv9","sparc64-linux-gcc:-m64 -mcpu=v9 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT:ULTRASPARC::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::asm/md5-sparcv9.o:",
# Sunos configs, assuming sparc for the gcc one.
##"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):::DES_UNROLL:::",
"sunos-gcc","gcc:-O3 -mv8 -Dssize_t=int::(unknown):::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL DES_PTR DES_RISC1:::",
##"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:::",
"sunos-gcc","gcc:-O3 -mv8 -Dssize_t=int::(unknown):SUNOS::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL DES_PTR DES_RISC1:::",
#### IRIX 5.x configs
# -mips2 flag is added by ./config when appropriate.
@@ -387,9 +389,10 @@ my %table=(
"linux-mips", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::(unknown):::BN_LLONG:::",
"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"linux-m68k", "gcc:-DB_ENDIAN -DTERMIO -O2 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG::",
"linux-s390", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG::",
"linux-s390x", "gcc:-DB_ENDIAN -DTERMIO -DNO_ASM -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG:::::::::::linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"linux-s390", "gcc:-DB_ENDIAN -DTERMIO -DNO_ASM -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"linux-s390x", "gcc:-DB_ENDIAN -DTERMIO -DNO_ASM -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR:asm/ia64.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"linux-x86_64", "gcc:-DL_ENDIAN -DNO_ASM ::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"NetBSD-sparc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"NetBSD-m68", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"NetBSD-x86", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
@@ -437,7 +440,8 @@ my %table=(
"aix-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
"aix-gcc", "gcc:-O3 -DB_ENDIAN::(unknown):AIX::BN_LLONG RC4_CHAR:::",
"aix43-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384::(unknown):::BN_LLONG RC4_CHAR::::::::::dlfcn:",
"aix43-gcc", "gcc:-O3 -DAIX -DB_ENDIAN::(unknown):::BN_LLONG RC4_CHAR::::::::::dlfcn:",
"aix43-gcc", "gcc:-O1 -DAIX -DB_ENDIAN::(unknown):::BN_LLONG RC4_CHAR::::::::::dlfcn:",
"aix64-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384 -q64::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHAR::::::::::dlfcn::::::-X 64",
#
# Cray T90 and similar (SDSC)
@@ -497,6 +501,7 @@ my %table=(
# Windows NT, Microsoft Visual C++ 4.0
"VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}::::::::::win32",
"VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}::::::::::win32",
"VC-WIN32","cl::::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}::::::::::win32",
"VC-WIN16","cl:::(unknown):WIN16::MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX THIRTY_TWO_BIT:::",
"VC-W31-16","cl:::(unknown):WIN16::BN_LLONG MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX SIXTEEN_BIT:::",
@@ -517,10 +522,10 @@ my %table=(
# Cygwin
"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:win32:cygwin-shared:::.dll",
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:win32:cygwin-shared:::.dll",
# DJGPP
"DJGPP", "gcc:-I/dev/env/DJDIR/watt32/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/DJDIR/watt32/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::",
"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}::::::::::",
# Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
"ultrix-cc","cc:-std1 -O -Olimit 1000 -DL_ENDIAN::(unknown):::::::",
@@ -542,10 +547,13 @@ my %table=(
"OpenBSD-hppa", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):::BN_LLONG RC2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
##### MacOS X (a.k.a. Rhapsody or Darwin) setup
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
"darwin-ppc-cc","cc:-O3 -fomit-frame-pointer -fno-common -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::::::::::darwin-shared:-fPIC::.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
"darwin-i386-cc","cc:-O3 -fomit-frame-pointer -fno-common -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::::::::::darwin-shared:-fPIC::.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
##### A/UX
"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
##### Sony NEWS-OS 4.x
"newsos4-gcc","gcc:-O -DB_ENDIAN::(unknown):NEWS4:-lmld -liberty:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::",
@@ -557,11 +565,16 @@ my %table=(
##### VxWorks for various targets
"vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
"vxworks-ppc750","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h \$(DEBUG_FLAG):::VXWORKS:-r:::::",
"vxworks-ppc750-debug","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g:::VXWORKS:-r:::::",
##### Compaq Non-Stop Kernel (Tandem)
"tandem-c89","c89:-Ww -D__TANDEM -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D_TANDEM_SOURCE -DB_ENDIAN::(unknown):::THIRTY_TWO_BIT:::",
);
my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
BC-16 Mingw32 OS2-EMX);
my @WinTargets=qw(VC-NT VC-CE VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS
BC-32 BC-16 Mingw32 OS2-EMX);
my $idx = 0;
my $idx_cc = $idx++;
@@ -586,6 +599,7 @@ my $idx_shared_cflag = $idx++;
my $idx_shared_ldflag = $idx++;
my $idx_shared_extension = $idx++;
my $idx_ranlib = $idx++;
my $idx_arflags = $idx++;
my $prefix="";
my $openssldir="";
@@ -705,7 +719,7 @@ PROCESS_ARGS:
{ $threads=1; }
elsif (/^no-shared$/)
{ $no_shared=1; }
elsif (/^shared$/)
elsif (/^shared$/ || /^-shared$/ || /^--shared$/)
{ $no_shared=0; }
elsif (/^no-zlib$/)
{ $zlib=0; }
@@ -733,6 +747,7 @@ PROCESS_ARGS:
$openssl_algorithm_defines .= "#define OPENSSL_NO_$algo\n";
if ($algo eq "RIJNDAEL")
{
push @skip, "aes";
$flags .= "-DOPENSSL_NO_AES ";
$depflags .= "-DOPENSSL_NO_AES ";
$openssl_algorithm_defines .= "#define OPENSSL_NO_AES\n";
@@ -940,6 +955,7 @@ my $shared_cflag = $fields[$idx_shared_cflag];
my $shared_ldflag = $fields[$idx_shared_ldflag];
my $shared_extension = $fields[$idx_shared_extension];
my $ranlib = $fields[$idx_ranlib];
my $arflags = $fields[$idx_arflags];
$cflags="$flags$cflags" if ($flags ne "");
@@ -958,6 +974,17 @@ else
my ($lresolv, $lpath, $lext);
if ($withargs{"krb5-flavor"} =~ /^[Hh]eimdal$/)
{
die "Sorry, Heimdal is currently not supported\n";
}
##### HACK to force use of Heimdal.
##### WARNING: Since we don't really have adequate support for Heimdal,
##### using this will break the build. You'll have to make
##### changes to the source, and if you do, please send
##### patches to openssl-dev@openssl.org
if ($withargs{"krb5-flavor"} =~ /^force-[Hh]eimdal$/)
{
warn "Heimdal isn't really supported. Your build WILL break\n";
warn "If you fix the problems, please send a patch to openssl-dev\@openssl.org\n";
$withargs{"krb5-dir"} = "/usr/heimdal"
if $withargs{"krb5-dir"} eq "";
$withargs{"krb5-lib"} = "-L".$withargs{"krb5-dir"}.
@@ -1067,7 +1094,7 @@ if ($zlib)
{
$cflags = "-DZLIB $cflags";
$cflags = "-DZLIB_SHARED $cflags" if $zlib == 2;
$lflags = "$lflags -lz" if $zlib == 2;
$lflags = "$lflags -lz" if $zlib == 1;
}
# You will find shlib_mark1 and shlib_mark2 explained in Makefile.org
@@ -1208,6 +1235,7 @@ while (<IN>)
s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/;
s/^PROCESSOR=.*/PROCESSOR= $processor/;
s/^RANLIB=.*/RANLIB= $ranlib/;
s/^ARFLAGS=.*/ARFLAGS= $arflags/;
s/^PERL=.*/PERL= $perl/;
s/^KRB5_INCLUDES=.*/KRB5_INCLUDES=$withargs{"krb5-include"}/;
s/^LIBKRB5=.*/LIBKRB5=$withargs{"krb5-lib"}/;
@@ -1254,6 +1282,7 @@ print "SHA1_OBJ_ASM =$sha1_obj\n";
print "RMD160_OBJ_ASM=$rmd160_obj\n";
print "PROCESSOR =$processor\n";
print "RANLIB =$ranlib\n";
print "ARFLAGS =$arflags\n";
print "PERL =$perl\n";
print "KRB5_INCLUDES =",$withargs{"krb5-include"},"\n"
if $withargs{"krb5-include"} ne "";
@@ -1561,7 +1590,7 @@ sub print_table_entry
my $bn_ops,my $bn_obj,my $des_obj,my $bf_obj,
my $md5_obj,my $sha1_obj,my $cast_obj,my $rc4_obj,my $rmd160_obj,
my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag,
my $shared_ldflag,my $shared_extension,my $ranlib)=
my $shared_ldflag,my $shared_extension,my $ranlib,my $arflags)=
split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
print <<EOF
@@ -1589,6 +1618,7 @@ sub print_table_entry
\$shared_ldflag = $shared_ldflag
\$shared_extension = $shared_extension
\$ranlib = $ranlib
\$arflags = $arflags
EOF
}

30
FAQ
View File

@@ -9,6 +9,7 @@ OpenSSL - Frequently Asked Questions
* Where can I get a compiled version of OpenSSL?
* Why aren't tools like 'autoconf' and 'libtool' used?
* What is an 'engine' version?
* How do I check the authenticity of the OpenSSL distribution?
[LEGAL] Legal questions
@@ -36,6 +37,7 @@ OpenSSL - Frequently Asked Questions
* Why does the linker complain about undefined symbols?
* Why does the OpenSSL test fail with "bc: command not found"?
* Why does the OpenSSL test fail with "bc: 1 no implemented"?
* Why does the OpenSSL test fail with "bc: stack empty"?
* Why does the OpenSSL compilation fail on Alpha Tru64 Unix?
* Why does the OpenSSL compilation fail with "ar: command not found"?
* Why does the OpenSSL compilation fail on Win32 with VC++?
@@ -64,7 +66,7 @@ OpenSSL - Frequently Asked Questions
* Which is the current version of OpenSSL?
The current version is available from <URL: http://www.openssl.org>.
OpenSSL 0.9.6e was released on July 30, 2002.
OpenSSL 0.9.6h was released on December 5, 2002.
In addition to the current stable release, you can also access daily
snapshots of the OpenSSL development version at <URL:
@@ -135,6 +137,19 @@ hardware. This was realized in a special release '0.9.6-engine'. With
version 0.9.7 (not yet released) the changes were merged into the main
development line, so that the special release is no longer necessary.
* How do I check the authenticity of the OpenSSL distribution?
We provide MD5 digests and ASC signatures of each tarball.
Use MD5 to check that a tarball from a mirror site is identical:
md5sum TARBALL | awk '{print $1;}' | cmp - TARBALL.md5
You can check authenticity using pgp or gpg. You need the OpenSSL team
member public key used to sign it (download it from a key server). Then
just do:
pgp TARBALL.asc
[LEGAL] =======================================================================
* Do I need patent licenses to use OpenSSL?
@@ -225,6 +240,8 @@ support can be found at
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsrdb/27606&zone_32=SUNWski
However, be warned that /dev/random is usually a blocking device, which
may have some effects on OpenSSL.
A third party /dev/random solution for Solaris is available at
http://www.cosy.sbg.ac.at/~andi/
* Why do I get an "unable to write 'random state'" error message?
@@ -402,6 +419,17 @@ and compile/install it. GNU bc (see http://www.gnu.org/software/software.html
for download instructions) can be safely used, for example.
* Why does the OpenSSL test fail with "bc: stack empty"?
On some DG/ux versions, bc seems to have a too small stack for calculations
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".
The best way to deal with this is to find another implementation of bc
and compile/install it. GNU bc (see http://www.gnu.org/software/software.html
for download instructions) can be safely used, for example.
* Why does the OpenSSL compilation fail on Alpha Tru64 Unix?
On some Alpha installations running Tru64 Unix and Compaq C, the compilation

12
INSTALL
View File

@@ -296,3 +296,15 @@
targets for shared library creation, like linux-shared. Those targets
can currently be used on their own just as well, but this is expected
to change in future versions of OpenSSL.
Note on random number generation
--------------------------------
Availability of cryptographically secure random numbers is required for
secret key generation. OpenSSL provides several options to seed the
internal PRNG. If not properly seeded, the internal PRNG will refuse
to deliver random bytes and a "PRNG not seeded error" will occur.
On systems without /dev/urandom (or similar) device, it may be necessary
to install additional support software to obtain random seed.
Please check out the manual pages for RAND_add(), RAND_bytes(), RAND_egd(),
and the FAQ for more information.

View File

@@ -12,12 +12,14 @@
latest versions of DJGPP, GCC, BINUTILS, BASH, etc. This package
requires that PERL and BC also be installed.
All of these can be obtained from the usual DJGPP mirror sites, such as
"ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp". You also need to have
the WATT-32 networking package installed before you try to compile
openssl. This can be obtained from "http://www.bgnett.no/~giva/". The
Makefile assumes that the WATT-32 code is in directory "watt32" under
/dev/env/DJDIR.
All of these can be obtained from the usual DJGPP mirror sites, such
as "ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp". You also need to
have the WATT-32 networking package installed before you try to compile
openssl. This can be obtained from "http://www.bgnett.no/~giva/".
The Makefile assumes that the WATT-32 code is in the directory
specified by the environment variable WATT_ROOT. If you have watt-32
in directory "watt32" under your main DJGPP directory, specify
WATT_ROOT="/dev/env/DJDIR/watt32".
To compile openssl, start your BASH shell. Then configure for DOS by
running "./Configure" with appropriate arguments. The basic syntax for

View File

@@ -2,6 +2,8 @@
INSTALLATION ON THE WIN32 PLATFORM
----------------------------------
[Instructions for building for Windows CE can be found in INSTALL.WCE]
Heres a few comments about building OpenSSL in Windows environments. Most
of this is tested on Win32 but it may also work in Win 3.1 with some
modification.
@@ -82,7 +84,8 @@
There are various changes you can make to the Win32 compile environment. By
default the library is not compiled with debugging symbols. If you add 'debug'
to the mk1mf.pl lines in the do_* batch file then debugging symbols will be
compiled in.
compiled in. Note that mk1mf.pl expects the platform to be the last argument
on the command line, so 'debug' must appear before that, as all other options.
The default Win32 environment is to leave out any Windows NT specific
features.

71
INSTALL.WCE Normal file
View File

@@ -0,0 +1,71 @@
INSTALLATION FOR THE WINDOWS CE PLATFORM
----------------------------------------
Building OpenSSL for Windows CE requires the following external tools:
* Microsoft eMbedded Visual C++ 3.0
* wcecompat compatibility library (www.essemer.com.au)
* Optionally ceutils for running automated tests (www.essemer.com.au)
You also need Perl for Win32. You will need ActiveState Perl, available
from http://www.activestate.com/ActivePerl.
Windows CE support in OpenSSL relies on wcecompat. All Windows CE specific
issues should be directed to www.essemer.com.au.
The C Runtime Library implementation for Windows CE that is included with
Microsoft eMbedded Visual C++ 3.0 is incomplete and in some places
incorrect. wcecompat plugs the holes and tries to bring the Windows CE
CRT to a level that is more compatible with ANSI C. wcecompat goes further
and provides low-level IO and stream IO support for stdin/stdout/stderr
(which Windows CE does not provide). This IO functionality is not needed
by the OpenSSL library itself but is used for the tests and openssl.exe.
More information is available at www.essemer.com.au.
Building
--------
Setup the eMbedded Visual C++ environment. There are batch files for doing
this installed with eVC++. For an ARM processor, for example, execute:
> "C:\Program Files\Microsoft eMbedded Tools\EVC\WCE300\BIN\WCEARM.BAT"
Next indicate where wcecompat is located:
> set WCECOMPAT=C:\wcecompat
Next you should run Configure:
> perl Configure VC-CE
Next you need to build the Makefiles:
> ms\do_ms
If you get errors about things not having numbers assigned then check the
troubleshooting section in INSTALL.W32: you probably won't be able to compile
it as it stands.
Then from the VC++ environment at a prompt do:
- to build static libraries:
> nmake -f ms\ce.mak
- or to build DLLs:
> nmake -f ms\cedll.mak
If all is well it should compile and you will have some static libraries and
executables in out32, or some DLLs and executables in out32dll. If you want
to try the tests then make sure the ceutils are in the path and do:
> cd out32
> ..\ms\testce
This will copy each of the test programs to the Windows CE device and execute
them, displaying the output of the tests on this computer. The output should
look similar to the output produced by running the tests for a regular Windows
build.

View File

@@ -1287,7 +1287,7 @@ EXITPOINT:
// Send some bytes
int MacSocket_send(const int inSocketNum,void *inBuff,int inBuffLength)
int MacSocket_send(const int inSocketNum,const void *inBuff,int inBuffLength)
{
OSErr errCode = noErr;
int bytesSent = 0;
@@ -1604,4 +1604,4 @@ EPInfo* epi = (EPInfo*) context;
}
}
}
*/
*/

View File

@@ -62,7 +62,7 @@ int MacSocket_recv(const int inSocketNum,void *outBuff,int outBuffLength,const B
// Call this to send data on a socket
int MacSocket_send(const int inSocketNum,void *inBuff,int inBuffLength);
int MacSocket_send(const int inSocketNum,const void *inBuff,int inBuffLength);
// If zero bytes were read in a call to MacSocket_recv(), it may be that the remote end has done a half-close

View File

@@ -59,7 +59,8 @@ DEPFLAG=
PEX_LIBS=
EX_LIBS=
EXE_EXT=
AR=ar r
ARFLAGS=
AR=ar $(ARFLAGS) r
RANLIB= ranlib
PERL= perl
TAR= tar
@@ -204,7 +205,7 @@ HEADER= e_os.h
# When we're prepared to use shared libraries in the programs we link here
# we might remove 'clean-shared' from the targets to perform at this stage
all: Makefile.ssl sub_all
all: Makefile.ssl sub_all openssl.pc
sub_all:
@for i in $(DIRS); \
@@ -241,7 +242,7 @@ clean-shared:
fi; \
( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
if [ "$(PLATFORM)" = "Cygwin" ]; then \
( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
( set -x; rm -f cyg$$i-$(SHLIB_VERSION_NUMBER)$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
fi; \
done
@@ -251,7 +252,8 @@ link-shared:
for i in $(SHLIBDIRS); do \
prev=lib$$i$(SHLIB_EXT); \
for j in $${tmp:-x}; do \
( set -x; ln -f -s $$prev lib$$i$$j ); \
( set -x; \
rm -f lib$$i$$j; ln -s $$prev lib$$i$$j ); \
prev=lib$$i$$j; \
done; \
done; \
@@ -273,9 +275,7 @@ do_gnu-shared:
done
DETECT_GNU_LD=${CC} -v 2>&1 | grep '^gcc' >/dev/null 2>&1 && \
collect2=`gcc -print-prog-name=collect2 2>&1` && \
[ -n "$$collect2" ] && \
my_ld=`$$collect2 --help 2>&1 | grep Usage: | sed 's/^Usage: *\([^ ][^ ]*\).*/\1/'` && \
my_ld=`${CC} -print-prog-name=ld 2>&1` && \
[ -n "$$my_ld" ] && \
$$my_ld -v 2>&1 | grep 'GNU ld' >/dev/null 2>&1
@@ -292,7 +292,7 @@ do_darwin-shared:
do_cygwin-shared:
libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
( set -x; ${CC} -shared -o cyg$$i.dll \
( set -x; ${CC} -shared -o cyg$$i-$(SHLIB_VERSION_NUMBER).dll \
-Wl,-Bsymbolic \
-Wl,--whole-archive lib$$i.a \
-Wl,--out-implib,lib$$i.dll.a \
@@ -514,6 +514,19 @@ do_reliantunix-shared:
libs="$$libs -l$$i"; \
done
openssl.pc:
@ ( echo 'prefix=$(INSTALLTOP)'; \
echo 'exec_prefix=$${prefix}'; \
echo 'libdir=$${exec_prefix}/lib'; \
echo 'includedir=$${prefix}/include'; \
echo ''; \
echo 'Name: OpenSSL'; \
echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
echo 'Version: '$(VERSION); \
echo 'Requires: '; \
echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
echo 'Cflags: -I$${includedir}' ) > openssl.pc
Makefile.ssl: Makefile.org
@echo "Makefile.ssl is older than Makefile.org."
@echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
@@ -532,6 +545,7 @@ clean:
rm -f $(LIBS); \
fi; \
done;
rm -f openssl.pc
rm -f *.a *.o speed.* *.map *.so .pure core
rm -f $(TARFILE)
@for i in $(ONEDIRS) ;\
@@ -583,7 +597,9 @@ rehash.time: certs
@(OPENSSL="`pwd`/apps/openssl"; OPENSSL_DEBUG_MEMORY=on; \
export OPENSSL OPENSSL_DEBUG_MEMORY; \
LD_LIBRARY_PATH="`pwd`"; DYLD_LIBRARY_PATH="`pwd`"; SHLIB_PATH="`pwd`"; LIBPATH="`pwd`"; \
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH; \
if [ "$(PLATFORM)" == "DJGPP" ]; then PATH="`pwd`\;$$PATH"; \
elif [ "$(PLATFORM)" != "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
$(PERL) tools/c_rehash certs)
touch rehash.time
@@ -593,7 +609,9 @@ tests: rehash
@(cd test && echo "testing..." && \
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
@LD_LIBRARY_PATH="`pwd`"; DYLD_LIBRARY_PATH="`pwd`"; SHLIB_PATH="`pwd`"; LIBPATH="`pwd`"; \
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH; \
if [ "$(PLATFORM)" == "DJGPP" ]; then PATH="`pwd`\;$$PATH"; \
elif [ "$(PLATFORM)" != "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
apps/openssl version -a
report:
@@ -656,6 +674,9 @@ update: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_
# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
# tar does not support the --files-from option.
tar:
find . -type d -print | xargs chmod 755
find . -type f -print | xargs chmod a+r
find . -type f -perm -0100 -print | xargs chmod a+x
find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \
$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
tardy --user_number=0 --user_name=openssl \
@@ -685,6 +706,7 @@ dist_pem_h:
install: all install_docs
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
$(INSTALL_PREFIX)$(INSTALLTOP)/lib \
$(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkginfo \
$(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
$(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
$(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
@@ -706,9 +728,10 @@ install: all install_docs
do \
if [ -f "$$i" ]; then \
( echo installing $$i; \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
fi; \
done;
@if [ -n "$(SHARED_LIBS)" ]; then \
@@ -718,21 +741,26 @@ install: all install_docs
if [ -f "$$i" -o -f "$$i.a" ]; then \
( echo installing $$i; \
if [ "$(PLATFORM)" != "Cygwin" ]; then \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
else \
c=`echo $$i | sed 's/^lib/cyg/'`; \
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
c=`echo $$i | sed 's/^lib\(.*\)/cyg\1-$(SHLIB_VERSION_NUMBER)/'`; \
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \
mv $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
fi ); \
fi; \
done; \
( here="`pwd`"; \
cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
make -f $$here/Makefile link-shared ); \
set $(MAKE); \
$$1 -f $$here/Makefile link-shared ); \
fi
cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkginfo
install_docs:
@$(PERL) $(TOP)/util/mkdir-p.pl \
@@ -740,25 +768,34 @@ install_docs:
$(INSTALL_PREFIX)$(MANDIR)/man3 \
$(INSTALL_PREFIX)$(MANDIR)/man5 \
$(INSTALL_PREFIX)$(MANDIR)/man7
@for i in doc/apps/*.pod; do \
@pod2man="`cd util; ./pod2mantest $(PERL)`"; \
for i in doc/apps/*.pod; do \
fn=`basename $$i .pod`; \
if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \
echo "installing man$$sec/`basename $$i .pod`.$$sec"; \
echo "installing man$$sec/$$fn.$$sec"; \
(cd `$(PERL) util/dirname.pl $$i`; \
sh -c "$(PERL) `cd ../../util; ./pod2mantest ignore` \
sh -c "$$pod2man \
--section=$$sec --center=OpenSSL \
--release=$(VERSION) `basename $$i`") \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
done
@for i in doc/crypto/*.pod doc/ssl/*.pod; do \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$$sec; \
$(PERL) util/extract-names.pl < $$i | grep -v "^$$fn" | \
while read n; do \
util/point.sh $$fn.$$sec $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$n.$$sec; \
done; \
done; \
for i in doc/crypto/*.pod doc/ssl/*.pod; do \
fn=`basename $$i .pod`; \
if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \
echo "installing man$$sec/`basename $$i .pod`.$$sec"; \
echo "installing man$$sec/$$fn.$$sec"; \
(cd `$(PERL) util/dirname.pl $$i`; \
sh -c "$(PERL) `cd ../../util; ./pod2mantest ignore` \
sh -c "$$pod2man \
--section=$$sec --center=OpenSSL \
--release=$(VERSION) `basename $$i`") \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$$sec; \
$(PERL) util/extract-names.pl < $$i | grep -v "^$$fn" | \
while read n; do \
util/point.sh $$fn.$$sec $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$n.$$sec; \
done; \
done
# DO NOT DELETE THIS LINE -- make depend depends on it.

30
NEWS
View File

@@ -17,6 +17,12 @@
a separate distribution.
o New elliptic curve library section.
o New AES (Rijndael) library section.
o Support for new platforms: Windows CE, Tandem OSS, A/UX, AIX 64-bit,
Linux x86_64
o Extended support for some platforms: VxWorks
o Enhanced support for shared libraries.
o Support for pkg-config.
o Lots of new manuals.
o Change DES API to clean up the namespace (some applications link also
against libdes providing similar functions having the same name).
Provide macros for backward compatibility (will be removed in the
@@ -30,16 +36,40 @@
o Reworked parts of the BIGNUM code.
o Support for new engines: Broadcom ubsec, Accelerated Encryption
Processing, IBM 4758.
o A few new engines added in the demos area.
o Extended and corrected OID (object identifier) table.
o PRNG: query at more locations for a random device, automatic query for
EGD style random sources at several locations.
o SSL/TLS: allow optional cipher choice according to server's preference.
o SSL/TLS: allow server to explicitly set new session ids.
o SSL/TLS: support Kerberos cipher suites (RFC2712).
Only supports MIT Kerberos for now.
o SSL/TLS: allow more precise control of renegotiations and sessions.
o SSL/TLS: add callback to retrieve SSL/TLS messages.
o SSL/TLS: support AES cipher suites (RFC3268).
Major changes between OpenSSL 0.9.6g and OpenSSL 0.9.6h:
o New configuration targets for Tandem OSS and A/UX.
o New OIDs for Microsoft attributes.
o Better handling of SSL session caching.
o Better comparison of distinguished names.
o Better handling of shared libraries in a mixed GNU/non-GNU environment.
o Support assembler code with Borland C.
o Fixes for length problems.
o Fixes for uninitialised variables.
o Fixes for memory leaks, some unusual crashes and some race conditions.
o Fixes for smaller building problems.
o Updates of manuals, FAQ and other instructive documents.
Major changes between OpenSSL 0.9.6f and OpenSSL 0.9.6g:
o Important building fixes on Unix.
Major changes between OpenSSL 0.9.6e and OpenSSL 0.9.6f:
o Various important bugfixes.
Major changes between OpenSSL 0.9.6d and OpenSSL 0.9.6e:
o Important security related bugfixes.

View File

@@ -38,3 +38,27 @@ may differ on your machine.
As long as Apple doesn't fix the problem with ld, this problem building
OpenSSL will remain as is.
* Parallell make leads to errors
While running tests, running a parallell make is a bad idea. Many test
scripts use the same name for output and input files, which means different
will interfere with each other and lead to test failure.
The solution is simple for now: don't run parallell make when testing.
* Bugs in gcc 3.0 triggered
According to a problem report, there are bugs in gcc 3.0 that are
triggered by some of the code in OpenSSL, more specifically in
PEM_get_EVP_CIPHER_INFO(). The triggering code is the following:
header+=11;
if (*header != '4') return(0); header++;
if (*header != ',') return(0); header++;
What happens is that gcc might optimize a little too agressively, and
you end up with an extra incrementation when *header != '4'.
We recommend that you upgrade gcc to as high a 3.x version as you can.

4
README
View File

@@ -1,5 +1,5 @@
OpenSSL 0.9.7-beta3 30 Jul 2002
OpenSSL 0.9.7-beta5 5 Dec 2002
Copyright (c) 1998-2002 The OpenSSL Project
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
@@ -154,7 +154,7 @@
- Stack Traceback (if the application dumps core)
Report the bug to the OpenSSL project via the Request Tracker
(http://www.openssl.org/rt2.html) by mail to:
(http://www.openssl.org/support/rt2.html) by mail to:
openssl-bugs@openssl.org

25
STATUS
View File

@@ -1,13 +1,18 @@
OpenSSL STATUS Last modified at
______________ $Date: 2002/07/30 11:27:05 $
______________ $Date: 2002/12/05 22:51:17 $
DEVELOPMENT STATE
o OpenSSL 0.9.8: Under development...
o OpenSSL 0.9.7-beta3: Released on July 30th, 2002
o OpenSSL 0.9.7-beta2: Released on June 16th, 2002
o OpenSSL 0.9.7-beta1: Released on June 1st, 2002
o OpenSSL 0.9.7-beta5: Released on December 5th, 2002
o OpenSSL 0.9.7-beta4: Released on November 19th, 2002
o OpenSSL 0.9.7-beta3: Released on July 30th, 2002
o OpenSSL 0.9.7-beta2: Released on June 16th, 2002
o OpenSSL 0.9.7-beta1: Released on June 1st, 2002
o OpenSSL 0.9.6h: Released on December 5th, 2002
o OpenSSL 0.9.6g: Released on August 9th, 2002
o OpenSSL 0.9.6f: Released on August 8th, 2002
o OpenSSL 0.9.6e: Released on July 30th, 2002
o OpenSSL 0.9.6d: Released on May 9th, 2002
o OpenSSL 0.9.6c: Released on December 21st, 2001
@@ -29,6 +34,18 @@
o BN_mod_mul verification fails for mips3-sgi-irix
unless configured with no-asm
o [2002-11-21]
PR 343 mentions that scrubbing memory with 'memset(ptr, 0, n)' may
be optimized away in modern compilers. This is definitely not good
and needs to be fixed immediately. The formula to use is presented
in:
http://online.securityfocus.com/archive/82/297918/2002-10-27/2002-11-02/0
The problem report that mentions this is:
https://www.aet.TU-Cottbus.DE/rt2/Ticket/Display.html?id=343
AVAILABLE PATCHES
o

425
TABLE

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -114,9 +114,7 @@
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#define NON_MAIN
#include "apps.h"
#undef NON_MAIN
#include <ctype.h>
#include <openssl/err.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>
@@ -136,6 +134,10 @@
# endif /* NO_STRINGS_H */
#endif
#define NON_MAIN
#include "apps.h"
#undef NON_MAIN
#ifdef OPENSSL_SYS_WINDOWS
# include "bss_file.c"
#endif
@@ -335,8 +337,7 @@ void program_name(char *in, char *out, int size)
p++;
else
p=in;
strncpy(out,p,size-1);
out[size-1]='\0';
BUF_strlcpy(out,p,size);
}
#endif
#endif
@@ -344,6 +345,7 @@ void program_name(char *in, char *out, int size)
#ifdef OPENSSL_SYS_WIN32
int WIN32_rename(char *from, char *to)
{
#ifndef OPENSSL_SYS_WINCE
/* Windows rename gives an error if 'to' exists, so delete it
* first and ignore file not found errror
*/
@@ -351,6 +353,46 @@ int WIN32_rename(char *from, char *to)
return -1;
#undef rename
return rename(from, to);
#else
/* convert strings to UNICODE */
{
BOOL result = FALSE;
WCHAR* wfrom;
WCHAR* wto;
int i;
wfrom = malloc((strlen(from)+1)*2);
wto = malloc((strlen(to)+1)*2);
if (wfrom != NULL && wto != NULL)
{
for (i=0; i<(int)strlen(from)+1; i++)
wfrom[i] = (short)from[i];
for (i=0; i<(int)strlen(to)+1; i++)
wto[i] = (short)to[i];
result = MoveFile(wfrom, wto);
}
if (wfrom != NULL)
free(wfrom);
if (wto != NULL)
free(wto);
return result;
}
#endif
}
#endif
#ifdef OPENSSL_SYS_VMS
int VMS_strcasecmp(const char *str1, const char *str2)
{
while (*str1 && *str2)
{
int res = toupper(*str1) - toupper(*str2);
if (res) return res < 0 ? -1 : 1;
}
if (*str1)
return 1;
if (*str2)
return -1;
return 0;
}
#endif
@@ -429,16 +471,20 @@ int app_init(long mesgwin)
int dump_cert_text (BIO *out, X509 *x)
{
char buf[256];
X509_NAME_oneline(X509_get_subject_name(x),buf,256);
BIO_puts(out,"subject=");
BIO_puts(out,buf);
char *p;
X509_NAME_oneline(X509_get_issuer_name(x),buf,256);
BIO_puts(out,"\nissuer= ");
BIO_puts(out,buf);
p=X509_NAME_oneline(X509_get_subject_name(x),NULL,0);
BIO_puts(out,"subject=");
BIO_puts(out,p);
OPENSSL_free(p);
p=X509_NAME_oneline(X509_get_issuer_name(x),NULL,0);
BIO_puts(out,"\nissuer=");
BIO_puts(out,p);
BIO_puts(out,"\n");
return 0;
OPENSSL_free(p);
return 0;
}
static int ui_open(UI *ui)
@@ -569,7 +615,7 @@ int password_callback(char *buf, int bufsiz, int verify,
if (buff)
{
memset(buff,0,(unsigned int)bufsiz);
OPENSSL_cleanse(buff,(unsigned int)bufsiz);
OPENSSL_free(buff);
}
@@ -579,13 +625,13 @@ int password_callback(char *buf, int bufsiz, int verify,
{
BIO_printf(bio_err, "User interface error\n");
ERR_print_errors(bio_err);
memset(buf,0,(unsigned int)bufsiz);
OPENSSL_cleanse(buf,(unsigned int)bufsiz);
res = 0;
}
if (ok == -2)
{
BIO_printf(bio_err,"aborted!\n");
memset(buf,0,(unsigned int)bufsiz);
OPENSSL_cleanse(buf,(unsigned int)bufsiz);
res = 0;
}
UI_free(ui);
@@ -798,7 +844,7 @@ end:
return(x);
}
EVP_PKEY *load_key(BIO *err, const char *file, int format,
EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
const char *pass, ENGINE *e, const char *key_descrip)
{
BIO *key=NULL;
@@ -808,7 +854,7 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format,
cb_data.password = pass;
cb_data.prompt_info = file;
if (file == NULL)
if (file == NULL && (!maybe_stdin || format == FORMAT_ENGINE))
{
BIO_printf(err,"no keyfile specified\n");
goto end;
@@ -828,12 +874,19 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format,
ERR_print_errors(err);
goto end;
}
if (BIO_read_filename(key,file) <= 0)
if (file == NULL && maybe_stdin)
{
BIO_printf(err, "Error opening %s %s\n", key_descrip, file);
ERR_print_errors(err);
goto end;
setvbuf(stdin, NULL, _IONBF, 0);
BIO_set_fp(key,stdin,BIO_NOCLOSE);
}
else
if (BIO_read_filename(key,file) <= 0)
{
BIO_printf(err, "Error opening %s %s\n",
key_descrip, file);
ERR_print_errors(err);
goto end;
}
if (format == FORMAT_ASN1)
{
pkey=d2i_PrivateKey_bio(key, NULL);
@@ -867,7 +920,7 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format,
return(pkey);
}
EVP_PKEY *load_pubkey(BIO *err, const char *file, int format,
EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin,
const char *pass, ENGINE *e, const char *key_descrip)
{
BIO *key=NULL;
@@ -877,7 +930,7 @@ EVP_PKEY *load_pubkey(BIO *err, const char *file, int format,
cb_data.password = pass;
cb_data.prompt_info = file;
if (file == NULL)
if (file == NULL && (!maybe_stdin || format == FORMAT_ENGINE))
{
BIO_printf(err,"no keyfile specified\n");
goto end;
@@ -897,11 +950,18 @@ EVP_PKEY *load_pubkey(BIO *err, const char *file, int format,
ERR_print_errors(err);
goto end;
}
if (BIO_read_filename(key,file) <= 0)
if (file == NULL && maybe_stdin)
{
BIO_printf(err, "Error opening %s %s\n", key_descrip, file);
ERR_print_errors(err);
goto end;
setvbuf(stdin, NULL, _IONBF, 0);
BIO_set_fp(key,stdin,BIO_NOCLOSE);
}
else
if (BIO_read_filename(key,file) <= 0)
{
BIO_printf(err, "Error opening %s %s\n",
key_descrip, file);
ERR_print_errors(err);
goto end;
}
if (format == FORMAT_ASN1)
{
@@ -946,7 +1006,7 @@ load_netscape_key(BIO *err, BIO *key, const char *file,
goto error;
for (;;)
{
if (!BUF_MEM_grow(buf,size+1024*10))
if (!BUF_MEM_grow_clean(buf,size+1024*10))
goto error;
i = BIO_read(key, &(buf->data[size]), 1024*10);
size += i;
@@ -1074,6 +1134,7 @@ int set_cert_ex(unsigned long *flags, const char *arg)
{ "no_extensions", X509_FLAG_NO_EXTENSIONS, 0},
{ "no_sigdump", X509_FLAG_NO_SIGDUMP, 0},
{ "no_aux", X509_FLAG_NO_AUX, 0},
{ "no_attributes", X509_FLAG_NO_ATTRIBUTES, 0},
{ "ext_default", X509V3_EXT_DEFAULT, X509V3_EXT_UNKNOWN_MASK},
{ "ext_error", X509V3_EXT_ERROR_UNKNOWN, X509V3_EXT_UNKNOWN_MASK},
{ "ext_parse", X509V3_EXT_PARSE_UNKNOWN, X509V3_EXT_UNKNOWN_MASK},
@@ -1220,6 +1281,7 @@ void print_name(BIO *out, char *title, X509_NAME *nm, unsigned long lflags)
char *buf;
char mline = 0;
int indent = 0;
if(title) BIO_puts(out, title);
if((lflags & XN_FLAG_SEP_MASK) == XN_FLAG_SEP_MULTILINE) {
mline = 1;
@@ -1341,3 +1403,18 @@ int load_config(BIO *err, CONF *cnf)
}
return 1;
}
char *make_config_name()
{
const char *t=X509_get_default_cert_area();
char *p;
p=OPENSSL_malloc(strlen(t)+strlen(OPENSSL_CONF)+2);
strcpy(p,t);
#ifndef OPENSSL_SYS_VMS
strcat(p,"/");
#endif
strcat(p,OPENSSL_CONF);
return p;
}

View File

@@ -139,13 +139,21 @@ long app_RAND_load_files(char *file); /* `file' is a list of files to read,
int WIN32_rename(char *oldname,char *newname);
#endif
/* VMS below version 7.0 doesn't have strcasecmp() */
#ifdef OPENSSL_SYS_VMS
#define strcasecmp(str1,str2) VMS_strcasecmp((str1),(str2))
int VMS_strcasecmp(const char *str1, const char *str2);
#endif
#ifndef MONOLITH
#define MAIN(a,v) main(a,v)
#ifndef NON_MAIN
CONF *config=NULL;
BIO *bio_err=NULL;
#else
extern CONF *config;
extern BIO *bio_err;
#endif
@@ -233,9 +241,9 @@ int app_passwd(BIO *err, char *arg1, char *arg2, char **pass1, char **pass2);
int add_oid_section(BIO *err, CONF *conf);
X509 *load_cert(BIO *err, const char *file, int format,
const char *pass, ENGINE *e, const char *cert_descrip);
EVP_PKEY *load_key(BIO *err, const char *file, int format,
EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
const char *pass, ENGINE *e, const char *key_descrip);
EVP_PKEY *load_pubkey(BIO *err, const char *file, int format,
EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin,
const char *pass, ENGINE *e, const char *key_descrip);
STACK_OF(X509) *load_certs(BIO *err, const char *file, int format,
const char *pass, ENGINE *e, const char *cert_descrip);
@@ -243,6 +251,7 @@ X509_STORE *setup_verify(BIO *bp, char *CAfile, char *CApath);
ENGINE *setup_engine(BIO *err, const char *engine, int debug);
int load_config(BIO *err, CONF *cnf);
char *make_config_name(void);
/* Functions defined in ca.c and also used in ocsp.c */
int unpack_revinfo(ASN1_TIME **prevtm, int *preason, ASN1_OBJECT **phold,

View File

@@ -332,6 +332,6 @@ end:
if (osk != NULL) sk_free(osk);
OBJ_cleanup();
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}

129
apps/ca.c
View File

@@ -64,7 +64,6 @@
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "apps.h"
#include <openssl/conf.h>
#include <openssl/bio.h>
#include <openssl/err.h>
@@ -94,11 +93,13 @@
# else
# include <unixlib.h>
# endif
# elif !defined(OPENSSL_SYS_VXWORKS)
# elif !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_WINDOWS)
# include <sys/file.h>
# endif
#endif
#include "apps.h"
#ifndef W_OK
# define F_OK 0
# define X_OK 1
@@ -333,6 +334,7 @@ int MAIN(int argc, char **argv)
MS_STATIC char buf[3][BSIZE];
char *randfile=NULL;
char *engine = NULL;
char *tofree=NULL;
#ifdef EFENCE
EF_PROTECT_FREE=1;
@@ -560,25 +562,26 @@ bad:
ERR_load_crypto_strings();
e = setup_engine(bio_err, engine, 0);
e = setup_engine(bio_err, engine, 0);
/*****************************************************************/
tofree=NULL;
if (configfile == NULL) configfile = getenv("OPENSSL_CONF");
if (configfile == NULL) configfile = getenv("SSLEAY_CONF");
if (configfile == NULL)
{
/* We will just use 'buf[0]' as a temporary buffer. */
const char *s=X509_get_default_cert_area();
#ifdef OPENSSL_SYS_VMS
strncpy(buf[0],X509_get_default_cert_area(),
sizeof(buf[0])-1-sizeof(CONFIG_FILE));
tofree=OPENSSL_malloc(strlen(s)+sizeof(CONFIG_FILE));
strcpy(tofree,s);
#else
strncpy(buf[0],X509_get_default_cert_area(),
sizeof(buf[0])-2-sizeof(CONFIG_FILE));
buf[0][sizeof(buf[0])-2-sizeof(CONFIG_FILE)]='\0';
strcat(buf[0],"/");
tofree=OPENSSL_malloc(strlen(s)+sizeof(CONFIG_FILE)+1);
strcpy(tofree,s);
strcat(tofree,"/");
#endif
strcat(buf[0],CONFIG_FILE);
configfile=buf[0];
strcat(tofree,CONFIG_FILE);
configfile=tofree;
}
BIO_printf(bio_err,"Using configuration from %s\n",configfile);
@@ -593,6 +596,8 @@ bad:
,errorline,configfile);
goto err;
}
if(tofree)
OPENSSL_free(tofree);
if (!load_config(bio_err, conf))
goto err;
@@ -699,9 +704,9 @@ bad:
goto err;
}
}
pkey = load_key(bio_err, keyfile, keyform, key, e,
pkey = load_key(bio_err, keyfile, keyform, 0, key, e,
"CA private key");
if (key) memset(key,0,strlen(key));
if (key) OPENSSL_cleanse(key,strlen(key));
if (pkey == NULL)
{
/* load_key() has already printed an appropriate message */
@@ -1158,9 +1163,14 @@ bad:
}
if (verbose)
{
if ((f=BN_bn2hex(serial)) == NULL) goto err;
BIO_printf(bio_err,"next serial number is %s\n",f);
OPENSSL_free(f);
if (BN_is_zero(serial))
BIO_printf(bio_err,"next serial number is 00\n");
else
{
if ((f=BN_bn2hex(serial)) == NULL) goto err;
BIO_printf(bio_err,"next serial number is %s\n",f);
OPENSSL_free(f);
}
}
if ((attribs=NCONF_get_section(conf,policy)) == NULL)
@@ -1280,8 +1290,13 @@ bad:
BIO_printf(bio_err,"Write out database with %d new entries\n",sk_X509_num(cert_sk));
strncpy(buf[0],serialfile,BSIZE-4);
buf[0][BSIZE-4]='\0';
if(strlen(serialfile) > BSIZE-5 || strlen(dbfile) > BSIZE-5)
{
BIO_printf(bio_err,"file name too long\n");
goto err;
}
strcpy(buf[0],serialfile);
#ifdef OPENSSL_SYS_VMS
strcat(buf[0],"-new");
@@ -1291,8 +1306,7 @@ bad:
if (!save_serial(buf[0],serial)) goto err;
strncpy(buf[1],dbfile,BSIZE-4);
buf[1][BSIZE-4]='\0';
strcpy(buf[1],dbfile);
#ifdef OPENSSL_SYS_VMS
strcat(buf[1],"-new");
@@ -1322,8 +1336,13 @@ bad:
j=x->cert_info->serialNumber->length;
p=(char *)x->cert_info->serialNumber->data;
strncpy(buf[2],outdir,BSIZE-(j*2)-6);
buf[2][BSIZE-(j*2)-6]='\0';
if(strlen(outdir) >= (size_t)(j ? BSIZE-j*2-6 : BSIZE-8))
{
BIO_printf(bio_err,"certificate file name too long\n");
goto err;
}
strcpy(buf[2],outdir);
#ifndef OPENSSL_SYS_VMS
strcat(buf[2],"/");
@@ -1557,8 +1576,13 @@ bad:
if (j <= 0) goto err;
X509_free(revcert);
strncpy(buf[0],dbfile,BSIZE-4);
buf[0][BSIZE-4]='\0';
if(strlen(dbfile) > BSIZE-5)
{
BIO_printf(bio_err,"filename too long\n");
goto err;
}
strcpy(buf[0],dbfile);
#ifndef OPENSSL_SYS_VMS
strcat(buf[0],".new");
#else
@@ -1602,6 +1626,8 @@ bad:
/*****************************************************************/
ret=0;
err:
if(tofree)
OPENSSL_free(tofree);
BIO_free_all(Cout);
BIO_free_all(Sout);
BIO_free_all(out);
@@ -1621,7 +1647,7 @@ err:
NCONF_free(conf);
OBJ_cleanup();
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
static void lookup_fail(char *name, char *tag)
@@ -1686,7 +1712,7 @@ static BIGNUM *load_serial(char *serialfile)
ret=ASN1_INTEGER_to_BN(ai,NULL);
if (ret == NULL)
{
BIO_printf(bio_err,"error converting number from bin to BIGNUM");
BIO_printf(bio_err,"error converting number from bin to BIGNUM\n");
goto err;
}
err:
@@ -2089,9 +2115,11 @@ again2:
}
}
row[DB_name]=X509_NAME_oneline(dn_subject,NULL,0);
row[DB_serial]=BN_bn2hex(serial);
if ((row[DB_name] == NULL) || (row[DB_serial] == NULL))
if (BN_is_zero(serial))
row[DB_serial]=BUF_strdup("00");
else
row[DB_serial]=BN_bn2hex(serial);
if (row[DB_serial] == NULL)
{
BIO_printf(bio_err,"Memory allocation failure\n");
goto err;
@@ -2304,10 +2332,10 @@ again2:
/* row[DB_serial] done already */
row[DB_file]=(char *)OPENSSL_malloc(8);
/* row[DB_name] done already */
row[DB_name]=X509_NAME_oneline(X509_get_subject_name(ret),NULL,0);
if ((row[DB_type] == NULL) || (row[DB_exp_date] == NULL) ||
(row[DB_file] == NULL))
(row[DB_file] == NULL) || (row[DB_name] == NULL))
{
BIO_printf(bio_err,"Memory allocation failure\n");
goto err;
@@ -2574,7 +2602,10 @@ static int do_revoke(X509 *x509, TXT_DB *db, int type, char *value)
row[i]=NULL;
row[DB_name]=X509_NAME_oneline(X509_get_subject_name(x509),NULL,0);
bn = ASN1_INTEGER_to_BN(X509_get_serialNumber(x509),NULL);
row[DB_serial]=BN_bn2hex(bn);
if (BN_is_zero(bn))
row[DB_serial]=BUF_strdup("00");
else
row[DB_serial]=BN_bn2hex(bn);
BN_free(bn);
if ((row[DB_name] == NULL) || (row[DB_serial] == NULL))
{
@@ -3043,55 +3074,59 @@ X509_NAME *do_subject(char *subject, long chtype)
sp++; /* skip leading / */
while (*sp)
{
{
/* collect type */
ne_types[ne_num] = bp;
while (*sp)
{
{
if (*sp == '\\') /* is there anything to escape in the type...? */
{
if (*++sp)
*bp++ = *sp++;
else
{
{
BIO_printf(bio_err, "escape character at end of string\n");
goto error;
}
}
else if (*sp == '=')
{
{
sp++;
*bp++ = '\0';
break;
}
}
else
*bp++ = *sp++;
}
}
if (!*sp)
{
{
BIO_printf(bio_err, "end of string encountered while processing type of subject name element #%d\n", ne_num);
goto error;
}
}
ne_values[ne_num] = bp;
while (*sp)
{
{
if (*sp == '\\')
{
if (*++sp)
*bp++ = *sp++;
else
{
{
BIO_printf(bio_err, "escape character at end of string\n");
goto error;
}
}
else if (*sp == '/')
{
{
sp++;
break;
}
}
else
*bp++ = *sp++;
}
}
*bp++ = '\0';
ne_num++;
}
}
if (!(n = X509_NAME_new()))
goto error;

View File

@@ -187,7 +187,7 @@ int MAIN(int argc, char **argv)
{
BIO_puts(STDout,SSL_CIPHER_description(
sk_SSL_CIPHER_value(sk,i),
buf,512));
buf,sizeof buf));
}
}
@@ -203,6 +203,6 @@ end:
if (ssl != NULL) SSL_free(ssl);
if (STDout != NULL) BIO_free_all(STDout);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}

View File

@@ -377,7 +377,7 @@ end:
X509_STORE_free(store);
}
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
static X509_CRL *load_crl(char *infile, int format)

View File

@@ -280,7 +280,7 @@ end:
if (crl != NULL) X509_CRL_free(crl);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
/*

View File

@@ -117,7 +117,7 @@ int MAIN(int argc, char **argv)
goto end;
/* first check the program name */
program_name(argv[0],pname,PROG_NAME_SIZE);
program_name(argv[0],pname,sizeof pname);
md=EVP_get_digestbyname(pname);
@@ -277,10 +277,10 @@ int MAIN(int argc, char **argv)
if(keyfile)
{
if (want_pub)
sigkey = load_pubkey(bio_err, keyfile, keyform, NULL,
sigkey = load_pubkey(bio_err, keyfile, keyform, 0, NULL,
e, "key file");
else
sigkey = load_key(bio_err, keyfile, keyform, NULL,
sigkey = load_key(bio_err, keyfile, keyform, 0, NULL,
e, "key file");
if (!sigkey)
{
@@ -356,7 +356,7 @@ int MAIN(int argc, char **argv)
end:
if (buf != NULL)
{
memset(buf,0,BUFSIZE);
OPENSSL_cleanse(buf,BUFSIZE);
OPENSSL_free(buf);
}
if (in != NULL) BIO_free(in);
@@ -365,7 +365,7 @@ end:
if(sigbuf) OPENSSL_free(sigbuf);
if (bmd != NULL) BIO_free(bmd);
apps_shutdown();
EXIT(err);
OPENSSL_EXIT(err);
}
int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,

View File

@@ -333,6 +333,6 @@ end:
if (out != NULL) BIO_free_all(out);
if (dh != NULL) DH_free(dh);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
#endif

View File

@@ -519,7 +519,7 @@ end:
if (out != NULL) BIO_free_all(out);
if (dh != NULL) DH_free(dh);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
/* dh_cb is identical to dsa_cb in apps/dsaparam.c */

View File

@@ -314,6 +314,6 @@ end:
if(passin) OPENSSL_free(passin);
if(passout) OPENSSL_free(passout);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
#endif

View File

@@ -372,7 +372,7 @@ end:
if (out != NULL) BIO_free_all(out);
if (dsa != NULL) DSA_free(dsa);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
static void MS_CALLBACK dsa_cb(int p, int n, void *arg)

View File

@@ -102,7 +102,7 @@ int MAIN(int argc, char **argv)
{
ENGINE *e = NULL;
static const char magic[]="Salted__";
char mbuf[8]; /* should be 1 smaller than magic */
char mbuf[sizeof magic-1];
char *strbuf=NULL;
unsigned char *buff=NULL,*bufsize=NULL;
int bsize=BSIZE,verbose=0;
@@ -131,7 +131,7 @@ int MAIN(int argc, char **argv)
goto end;
/* first check the program name */
program_name(argv[0],pname,PROG_NAME_SIZE);
program_name(argv[0],pname,sizeof pname);
if (strcmp(pname,"base64") == 0)
base64=1;
@@ -216,7 +216,7 @@ int MAIN(int argc, char **argv)
goto bad;
}
buf[0]='\0';
fgets(buf,128,infile);
fgets(buf,sizeof buf,infile);
fclose(infile);
i=strlen(buf);
if ((i > 0) &&
@@ -442,12 +442,12 @@ bad:
else {
if(enc) {
if(hsalt) {
if(!set_hex(hsalt,salt,PKCS5_SALT_LEN)) {
if(!set_hex(hsalt,salt,sizeof salt)) {
BIO_printf(bio_err,
"invalid hex salt value\n");
goto end;
}
} else if (RAND_pseudo_bytes(salt, PKCS5_SALT_LEN) < 0)
} else if (RAND_pseudo_bytes(salt, sizeof salt) < 0)
goto end;
/* If -P option then don't bother writing */
if((printkey != 2)
@@ -455,14 +455,14 @@ bad:
sizeof magic-1) != sizeof magic-1
|| BIO_write(wbio,
(char *)salt,
PKCS5_SALT_LEN) != PKCS5_SALT_LEN)) {
sizeof salt) != sizeof salt)) {
BIO_printf(bio_err,"error writing output file\n");
goto end;
}
} else if(BIO_read(rbio,mbuf,sizeof mbuf) != sizeof mbuf
|| BIO_read(rbio,
(unsigned char *)salt,
PKCS5_SALT_LEN) != PKCS5_SALT_LEN) {
sizeof salt) != sizeof salt) {
BIO_printf(bio_err,"error reading input file\n");
goto end;
} else if(memcmp(mbuf,magic,sizeof magic-1)) {
@@ -481,9 +481,9 @@ bad:
* bug picked up by
* Larry J. Hughes Jr. <hughes@indiana.edu> */
if (str == strbuf)
memset(str,0,SIZE);
OPENSSL_cleanse(str,SIZE);
else
memset(str,0,strlen(str));
OPENSSL_cleanse(str,strlen(str));
}
if ((hiv != NULL) && !set_hex(hiv,iv,sizeof iv))
{
@@ -524,7 +524,7 @@ bad:
if (!nosalt)
{
printf("salt=");
for (i=0; i<PKCS5_SALT_LEN; i++)
for (i=0; i<sizeof salt; i++)
printf("%02X",salt[i]);
printf("\n");
}
@@ -586,7 +586,7 @@ end:
if (b64 != NULL) BIO_free(b64);
if(pass) OPENSSL_free(pass);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
int set_hex(char *in, unsigned char *out, int size)

View File

@@ -516,5 +516,5 @@ end:
sk_pop_free(post_cmds, identity);
if (bio_out != NULL) BIO_free_all(bio_out);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}

View File

@@ -122,5 +122,5 @@ int MAIN(int argc, char **argv)
}
}
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}

View File

@@ -198,7 +198,7 @@ end:
if (out != NULL) BIO_free_all(out);
if (dh != NULL) DH_free(dh);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
static void MS_CALLBACK dh_cb(int p, int n, void *arg)

View File

@@ -246,6 +246,6 @@ end:
if (dsa != NULL) DSA_free(dsa);
if(passout) OPENSSL_free(passout);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
#endif

View File

@@ -258,7 +258,7 @@ err:
if (ret != 0)
ERR_print_errors(bio_err);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
static void MS_CALLBACK genrsa_cb(int p, int n, void *arg)

View File

@@ -15,22 +15,10 @@ $!
$! It was written so it would try to determine what "C" compiler to
$! use or you can specify which "C" compiler to use.
$!
$! Specify RSAREF as P1 to compile with the RSAREF library instead of
$! the regular one. If you specify NORSAREF it will compile with the
$! regular RSAREF routines. (Note: If you are in the United States
$! you MUST compile with RSAREF unless you have a license from RSA).
$!
$! Note: The RSAREF libraries are NOT INCLUDED and you have to
$! download it from "ftp://ftp.rsa.com/rsaref". You have to
$! get the ".tar-Z" file as the ".zip" file dosen't have the
$! directory structure stored. You have to extract the file
$! into the [.RSAREF] directory under the root directory as that
$! is where the scripts will look for the files.
$!
$! Specify DEBUG or NODEBUG as P2 to compile with or without debugger
$! Specify DEBUG or NODEBUG as P1 to compile with or without debugger
$! information.
$!
$! Specify which compiler at P3 to try to compile under.
$! Specify which compiler at P2 to try to compile under.
$!
$! VAXC For VAX C.
$! DECC For DEC C.
@@ -39,16 +27,16 @@ $!
$! If you don't speficy a compiler, it will try to determine which
$! "C" compiler to use.
$!
$! P4, if defined, sets a TCP/IP library to use, through one of the following
$! P3, if defined, sets a TCP/IP library to use, through one of the following
$! keywords:
$!
$! UCX for UCX
$! SOCKETSHR for SOCKETSHR+NETLIB
$! TCPIP for TCPIP (post UCX)
$!
$! P5, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
$! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
$!
$! P6, if defined, sets a choice of programs to compile.
$! P5, if defined, sets a choice of programs to compile.
$!
$!
$! Define A TCP/IP Library That We Will Need To Link To.
@@ -101,10 +89,6 @@ $! Define The CRYPTO Library.
$!
$ CRYPTO_LIB := SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO.OLB
$!
$! Define The RSAREF Library.
$!
$ RSAREF_LIB := SYS$DISK:[-.'ARCH'.EXE.RSAREF]LIBRSAGLUE.OLB
$!
$! Define The SSL Library.
$!
$ SSL_LIB := SYS$DISK:[-.'ARCH'.EXE.SSL]LIBSSL.OLB
@@ -293,73 +277,31 @@ $ WRITE SYS$OUTPUT FILE_NAME," needs a TCP/IP library. Can't link. Skipping.
$ GOTO NEXT_FILE
$ ENDIF
$!
$! Link The Program, Check To See If We Need To Link With RSAREF Or Not.
$! Link The Program.
$! Check To See If We Are To Link With A Specific TCP/IP Library.
$!
$ IF (RSAREF.EQS."TRUE")
$ IF (TCPIP_LIB.NES."")
$ THEN
$!
$! Check To See If We Are To Link With A Specific TCP/IP Library.
$! Don't Link With The RSAREF Routines And TCP/IP Library.
$!
$ IF (TCPIP_LIB.NES."")
$ THEN
$!
$! Link With The RSAREF Library And A Specific TCP/IP Library.
$!
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
'OBJECT_FILE''EXTRA_OBJ', -
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY,'RSAREF_LIB'/LIBRARY, -
'TCPIP_LIB','OPT_FILE'/OPTION
$!
$! Else...
$!
$ ELSE
$!
$! Link With The RSAREF Library And NO TCP/IP Library.
$!
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
'OBJECT_FILE''EXTRA_OBJ', -
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY,'RSAREF_LIB'/LIBRARY, -
'OPT_FILE'/OPTION
$!
$! End The TCP/IP Library Check.
$!
$ ENDIF
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
'OBJECT_FILE''EXTRA_OBJ', -
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
'TCPIP_LIB','OPT_FILE'/OPTION
$!
$! Else...
$!
$ ELSE
$!
$! Don't Link With The RSAREF Routines.
$! Don't Link With The RSAREF Routines And Link With A TCP/IP Library.
$!
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
'OBJECT_FILE''EXTRA_OBJ', -
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
'OPT_FILE'/OPTION
$!
$! Check To See If We Are To Link With A Specific TCP/IP Library.
$!
$ IF (TCPIP_LIB.NES."")
$ THEN
$!
$! Don't Link With The RSAREF Routines And TCP/IP Library.
$!
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
'OBJECT_FILE''EXTRA_OBJ', -
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
'TCPIP_LIB','OPT_FILE'/OPTION
$!
$! Else...
$!
$ ELSE
$!
$! Don't Link With The RSAREF Routines And Link With A TCP/IP Library.
$!
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
'OBJECT_FILE''EXTRA_OBJ', -
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
'OPT_FILE'/OPTION
$!
$! End The TCP/IP Library Check.
$!
$ ENDIF
$!
$! End The RSAREF Link Check.
$! End The TCP/IP Library Check.
$!
$ ENDIF
$!
@@ -526,32 +468,6 @@ $! End The Crypto Library Check.
$!
$ ENDIF
$!
$! See If We Need The RSAREF Library.
$!
$ IF (RSAREF.EQS."TRUE")
$ THEN
$!
$! Look For The Library LIBRSAGLUE.OLB.
$!
$ IF (F$SEARCH(RSAREF_LIB).EQS."")
$ THEN
$!
$! Tell The User We Can't Find The LIBRSAGLUE.OLB Library.
$!
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "Can't Find The Library ",RSAREF_LIB,"."
$ WRITE SYS$OUTPUT "We Can't Link Without It."
$ WRITE SYS$OUTPUT ""
$!
$! Since We Can't Link Without It, Exit.
$!
$ EXIT
$ ENDIF
$!
$! End The RSAREF Library Check.
$!
$ ENDIF
$!
$! Look For The Library LIBSSL.OLB.
$!
$ IF (F$SEARCH(SSL_LIB).EQS."")
@@ -582,87 +498,10 @@ $ CHECK_OPTIONS:
$!
$! Check To See If P1 Is Blank.
$!
$ P1 = "NORSAREF"
$ IF (P1.EQS."NORSAREF")
$ IF (P1.EQS."NODEBUG")
$ THEN
$!
$! P1 Is NORSAREF, So Compile With The Regular RSA Libraries.
$!
$ RSAREF = "FALSE"
$!
$! Else...
$!
$ ELSE
$!
$! Check To See If We Are To Use The RSAREF Library.
$!
$ IF (P1.EQS."RSAREF")
$ THEN
$!
$! Check To Make Sure We Have The RSAREF Source Code Directory.
$!
$ IF (F$SEARCH("SYS$DISK:[-.RSAREF]SOURCE.DIR").EQS."")
$ THEN
$!
$! We Don't Have The RSAREF Souce Code Directory, So Tell The
$! User This.
$!
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "It appears that you don't have the RSAREF Souce Code."
$ WRITE SYS$OUTPUT "You need to go to 'ftp://ftp.rsa.com/rsaref'. You have to"
$ WRITE SYS$OUTPUT "get the '.tar-Z' file as the '.zip' file dosen't have the"
$ WRITE SYS$OUTPUT "directory structure stored. You have to extract the file"
$ WRITE SYS$OUTPUT "into the [.RSAREF] directory under the root directory"
$ WRITE SYS$OUTPUT "as that is where the scripts will look for the files."
$ WRITE SYS$OUTPUT ""
$!
$! Time To Exit.
$!
$ EXIT
$!
$! Else...
$!
$ ELSE
$!
$! Compile Using The RSAREF Library.
$!
$ RSAREF = "TRUE"
$!
$! End The RSAREF Soure Directory Check.
$!
$ ENDIF
$!
$! Else...
$!
$ ELSE
$!
$! They Entered An Invalid Option..
$!
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " RSAREF : Compile With The RSAREF Library."
$ WRITE SYS$OUTPUT " NORSAREF : Compile With The Regular RSA Library."
$ WRITE SYS$OUTPUT ""
$!
$! Time To EXIT.
$!
$ EXIT
$!
$! End The Valid Arguement Check.
$!
$ ENDIF
$!
$! End P1 Check.
$!
$ ENDIF
$!
$! Check To See If P2 Is Blank.
$!
$ IF (P2.EQS."NODEBUG")
$ THEN
$!
$! P2 Is NODEBUG, So Compile Without Debugger Information.
$! P1 Is NODEBUG, So Compile Without Debugger Information.
$!
$ DEBUGGER = "NODEBUG"
$ TRACEBACK = "NOTRACEBACK"
@@ -677,7 +516,7 @@ $ ELSE
$!
$! Check To See If We Are To Compile With Debugger Information.
$!
$ IF (P2.EQS."DEBUG")
$ IF (P1.EQS."DEBUG")
$ THEN
$!
$! Compile With Debugger Information.
@@ -693,7 +532,7 @@ $!
$! Tell The User Entered An Invalid Option..
$!
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
@@ -707,13 +546,13 @@ $! End The Valid Arguement Check.
$!
$ ENDIF
$!
$! End The P2 Check.
$! End The P1 Check.
$!
$ ENDIF
$!
$! Check To See If P3 Is Blank.
$! Check To See If P2 Is Blank.
$!
$ IF (P3.EQS."")
$ IF (P2.EQS."")
$ THEN
$!
$! O.K., The User Didn't Specify A Compiler, Let's Try To
@@ -726,7 +565,7 @@ $ THEN
$!
$! Looks Like GNUC, Set To Use GNUC.
$!
$ P3 = "GNUC"
$ P2 = "GNUC"
$!
$! Else...
$!
@@ -739,7 +578,7 @@ $ THEN
$!
$! Looks Like DECC, Set To Use DECC.
$!
$ P3 = "DECC"
$ P2 = "DECC"
$!
$! Else...
$!
@@ -747,7 +586,7 @@ $ ELSE
$!
$! Looks Like VAXC, Set To Use VAXC.
$!
$ P3 = "VAXC"
$ P2 = "VAXC"
$!
$! End The VAXC Compiler Check.
$!
@@ -761,9 +600,9 @@ $! End The Compiler Check.
$!
$ ENDIF
$!
$! Check To See If We Have A Option For P4.
$! Check To See If We Have A Option For P3.
$!
$ IF (P4.EQS."")
$ IF (P3.EQS."")
$ THEN
$!
$! Find out what socket library we have available
@@ -773,7 +612,7 @@ $ THEN
$!
$! We have SOCKETSHR, and it is my opinion that it's the best to use.
$!
$ P4 = "SOCKETSHR"
$ P3 = "SOCKETSHR"
$!
$! Tell the user
$!
@@ -793,7 +632,7 @@ $ THEN
$!
$! Last resort: a UCX or UCX-compatible library
$!
$ P4 = "UCX"
$ P3 = "UCX"
$!
$! Tell the user
$!
@@ -817,12 +656,12 @@ $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
$!
$! Check To See If The User Entered A Valid Paramter.
$!
$ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC")
$ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC")
$ THEN
$!
$! Check To See If The User Wanted DECC.
$!
$ IF (P3.EQS."DECC")
$ IF (P2.EQS."DECC")
$ THEN
$!
$! Looks Like DECC, Set To Use DECC.
@@ -852,7 +691,7 @@ $ ENDIF
$!
$! Check To See If We Are To Use VAXC.
$!
$ IF (P3.EQS."VAXC")
$ IF (P2.EQS."VAXC")
$ THEN
$!
$! Looks Like VAXC, Set To Use VAXC.
@@ -889,7 +728,7 @@ $ ENDIF
$!
$! Check To See If We Are To Use GNU C.
$!
$ IF (P3.EQS."GNUC")
$ IF (P2.EQS."GNUC")
$ THEN
$!
$! Looks Like GNUC, Set To Use GNUC.
@@ -918,31 +757,6 @@ $! Set up default defines
$!
$ CCDEFS = """FLAT_INC=1""," + CCDEFS
$!
$! Check To See If We Are To Compile With RSAREF Routines.
$!
$ IF (RSAREF.EQS."TRUE")
$ THEN
$!
$! Compile With RSAREF.
$!
$ CCDEFS = CCDEFS + ",""RSAref=1"""
$!
$! Tell The User This.
$!
$ WRITE SYS$OUTPUT "Compiling With RSAREF Routines."
$!
$! Else, We Don't Care. Compile Without The RSAREF Library.
$!
$ ELSE
$!
$! Tell The User We Are Compile Without The RSAREF Routines.
$!
$ WRITE SYS$OUTPUT "Compiling Without The RSAREF Routines.
$!
$! End The RSAREF Check.
$!
$ ENDIF
$!
$! Else The User Entered An Invalid Arguement.
$!
$ ELSE
@@ -950,7 +764,7 @@ $!
$! Tell The User We Don't Know What They Want.
$!
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
@@ -964,13 +778,13 @@ $ ENDIF
$!
$! Time to check the contents, and to make sure we get the correct library.
$!
$ IF P4.EQS."SOCKETSHR" .OR. P4.EQS."MULTINET" .OR. P4.EQS."UCX" -
.OR. P4.EQS."TCPIP" .OR. P4.EQS."NONE"
$ IF P3.EQS."SOCKETSHR" .OR. P3.EQS."MULTINET" .OR. P3.EQS."UCX" -
.OR. P3.EQS."TCPIP" .OR. P3.EQS."NONE"
$ THEN
$!
$! Check to see if SOCKETSHR was chosen
$!
$ IF P4.EQS."SOCKETSHR"
$ IF P3.EQS."SOCKETSHR"
$ THEN
$!
$! Set the library to use SOCKETSHR
@@ -983,12 +797,12 @@ $ ENDIF
$!
$! Check to see if MULTINET was chosen
$!
$ IF P4.EQS."MULTINET"
$ IF P3.EQS."MULTINET"
$ THEN
$!
$! Set the library to use UCX emulation.
$!
$ P4 = "UCX"
$ P3 = "UCX"
$!
$! Done with MULTINET
$!
@@ -996,7 +810,7 @@ $ ENDIF
$!
$! Check to see if UCX was chosen
$!
$ IF P4.EQS."UCX"
$ IF P3.EQS."UCX"
$ THEN
$!
$! Set the library to use UCX.
@@ -1016,7 +830,7 @@ $ ENDIF
$!
$! Check to see if TCPIP (post UCX) was chosen
$!
$ IF P4.EQS."TCPIP"
$ IF P3.EQS."TCPIP"
$ THEN
$!
$! Set the library to use TCPIP.
@@ -1029,7 +843,7 @@ $ ENDIF
$!
$! Check to see if NONE was chosen
$!
$ IF P4.EQS."NONE"
$ IF P3.EQS."NONE"
$ THEN
$!
$! Do not use TCPIP.
@@ -1042,7 +856,7 @@ $ ENDIF
$!
$! Add TCP/IP type to CC definitions.
$!
$ CCDEFS = CCDEFS + ",TCPIP_TYPE_''P4'"
$ CCDEFS = CCDEFS + ",TCPIP_TYPE_''P3'"
$!
$! Print info
$!
@@ -1055,7 +869,7 @@ $!
$! Tell The User We Don't Know What They Want.
$!
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
@@ -1086,7 +900,7 @@ $ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
$!
$! Show user the result
$!
$ WRITE SYS$OUTPUT "Main Compiling Command: ",CC
$ WRITE/SYMBOL SYS$OUTPUT "Main Compiling Command: ",CC
$!
$! Special Threads For OpenVMS v7.1 Or Later
$!
@@ -1094,9 +908,9 @@ $! Written By: Richard Levitte
$! richard@levitte.org
$!
$!
$! Check To See If We Have A Option For P5.
$! Check To See If We Have A Option For P4.
$!
$ IF (P5.EQS."")
$ IF (P4.EQS."")
$ THEN
$!
$! Get The Version Of VMS We Are Using.
@@ -1118,15 +932,15 @@ $! End The VMS Version Check.
$!
$ ENDIF
$!
$! End The P5 Check.
$! End The P4 Check.
$!
$ ENDIF
$!
$! Check if the user wanted to compile just a subset of all the programs.
$!
$ IF P6 .NES. ""
$ IF P5 .NES. ""
$ THEN
$ PROGRAMS = P6
$ PROGRAMS = P5
$ ENDIF
$!
$! Time To RETURN...

View File

@@ -102,7 +102,7 @@ int MAIN(int argc, char **argv)
BIO_printf (bio_err, "-in file input file\n");
BIO_printf (bio_err, "-out file output file\n");
BIO_printf (bio_err, "-toseq output NS Sequence file\n");
EXIT(1);
OPENSSL_EXIT(1);
}
if (infile) {
@@ -162,6 +162,6 @@ end:
BIO_free_all(out);
NETSCAPE_CERT_SEQUENCE_free(seq);
EXIT(ret);
OPENSSL_EXIT(ret);
}

View File

@@ -613,11 +613,11 @@ int MAIN(int argc, char **argv)
NULL, e, "CA certificate");
if (rcertfile)
{
rother = load_certs(bio_err, sign_certfile, FORMAT_PEM,
rother = load_certs(bio_err, rcertfile, FORMAT_PEM,
NULL, e, "responder other certificates");
if (!sign_other) goto end;
if (!rother) goto end;
}
rkey = load_key(bio_err, rkeyfile, FORMAT_PEM, NULL, NULL,
rkey = load_key(bio_err, rkeyfile, FORMAT_PEM, 0, NULL, NULL,
"responder private key");
if (!rkey)
goto end;
@@ -663,7 +663,7 @@ int MAIN(int argc, char **argv)
NULL, e, "signer certificates");
if (!sign_other) goto end;
}
key = load_key(bio_err, keyfile, FORMAT_PEM, NULL, NULL,
key = load_key(bio_err, keyfile, FORMAT_PEM, 0, NULL, NULL,
"signer private key");
if (!key)
goto end;
@@ -899,7 +899,7 @@ end:
SSL_CTX_free(ctx);
}
EXIT(ret);
OPENSSL_EXIT(ret);
}
static int add_ocsp_cert(OCSP_REQUEST **req, X509 *cert, X509 *issuer,
@@ -1120,7 +1120,10 @@ static char **lookup_serial(TXT_DB *db, ASN1_INTEGER *ser)
char *itmp, *row[DB_NUMBER],**rrow;
for (i = 0; i < DB_NUMBER; i++) row[i] = NULL;
bn = ASN1_INTEGER_to_BN(ser,NULL);
itmp = BN_bn2hex(bn);
if (BN_is_zero(bn))
itmp = BUF_strdup("00");
else
itmp = BN_bn2hex(bn);
row[DB_serial] = itmp;
BN_free(bn);
rrow=TXT_DB_get_by_index(db,DB_serial,row);
@@ -1176,7 +1179,7 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio, char *port
for(;;)
{
len = BIO_gets(cbio, inbuf, 1024);
len = BIO_gets(cbio, inbuf, sizeof inbuf);
if (len <= 0)
return 1;
/* Look for "POST" signalling start of query */

View File

@@ -139,11 +139,11 @@ static unsigned long MS_CALLBACK hash(const void *a_void);
static int MS_CALLBACK cmp(const void *a_void,const void *b_void);
static LHASH *prog_init(void );
static int do_cmd(LHASH *prog,int argc,char *argv[]);
CONF *config=NULL;
char *default_config_file=NULL;
/* Make sure there is only one when MONOLITH is defined */
#ifdef MONOLITH
CONF *config=NULL;
BIO *bio_err=NULL;
#endif
@@ -218,7 +218,8 @@ int main(int Argc, char *Argv[])
#define PROG_NAME_SIZE 39
char pname[PROG_NAME_SIZE+1];
FUNCTION f,*fp;
MS_STATIC char *prompt,buf[1024],config_name[256];
MS_STATIC char *prompt,buf[1024];
char *to_free=NULL;
int n,i,ret=0;
int argc;
char **argv,*p;
@@ -228,6 +229,10 @@ int main(int Argc, char *Argv[])
arg.data=NULL;
arg.count=0;
if (bio_err == NULL)
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
if (getenv("OPENSSL_DEBUG_MEMORY") != NULL) /* if not defined, use compiled-in library defaults */
{
if (!(0 == strcmp(getenv("OPENSSL_DEBUG_MEMORY"), "off")))
@@ -252,23 +257,12 @@ int main(int Argc, char *Argv[])
apps_startup();
if (bio_err == NULL)
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
/* Lets load up our environment a little */
p=getenv("OPENSSL_CONF");
if (p == NULL)
p=getenv("SSLEAY_CONF");
if (p == NULL)
{
strcpy(config_name,X509_get_default_cert_area());
#ifndef OPENSSL_SYS_VMS
strcat(config_name,"/");
#endif
strcat(config_name,OPENSSL_CONF);
p=config_name;
}
p=to_free=make_config_name();
default_config_file=p;
@@ -284,7 +278,7 @@ int main(int Argc, char *Argv[])
prog=prog_init();
/* first check the program name */
program_name(Argv[0],pname,PROG_NAME_SIZE);
program_name(Argv[0],pname,sizeof pname);
f.name=pname;
fp=(FUNCTION *)lh_retrieve(prog,&f);
@@ -312,7 +306,7 @@ int main(int Argc, char *Argv[])
{
ret=0;
p=buf;
n=1024;
n=sizeof buf;
i=0;
for (;;)
{
@@ -346,6 +340,8 @@ int main(int Argc, char *Argv[])
BIO_printf(bio_err,"bad exit\n");
ret=1;
end:
if (to_free)
OPENSSL_free(to_free);
if (config != NULL)
{
NCONF_free(config);
@@ -362,7 +358,7 @@ end:
BIO_free(bio_err);
bio_err=NULL;
}
EXIT(ret);
OPENSSL_EXIT(ret);
}
#define LIST_STANDARD_COMMANDS "list-standard-commands"

View File

@@ -19,7 +19,6 @@
# include <openssl/des.h>
#endif
#ifndef NO_MD5CRYPT_1
# include <openssl/evp.h>
# include <openssl/md5.h>
#endif
@@ -293,7 +292,7 @@ err:
if (out)
BIO_free_all(out);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
@@ -506,6 +505,6 @@ err:
int MAIN(int argc, char **argv)
{
fputs("Program not available.\n", stderr)
EXIT(1);
OPENSSL_EXIT(1);
}
#endif

View File

@@ -399,7 +399,7 @@ int MAIN(int argc, char **argv)
#ifdef CRYPTO_MDEBUG
CRYPTO_push_info("read MAC password");
#endif
if(EVP_read_pw_string (macpass, 50, "Enter MAC Password:", export_cert))
if(EVP_read_pw_string (macpass, sizeof macpass, "Enter MAC Password:", export_cert))
{
BIO_printf (bio_err, "Can't read Password\n");
goto end;
@@ -427,7 +427,7 @@ int MAIN(int argc, char **argv)
CRYPTO_push_info("process -export_cert");
CRYPTO_push_info("reading private key");
#endif
key = load_key(bio_err, keyname ? keyname : infile, FORMAT_PEM,
key = load_key(bio_err, keyname ? keyname : infile, FORMAT_PEM, 1,
passin, e, "private key");
if (!key) {
goto export_end;
@@ -508,9 +508,10 @@ int MAIN(int argc, char **argv)
/* Exclude verified certificate */
for (i = 1; i < sk_X509_num (chain2) ; i++)
sk_X509_push(certs, sk_X509_value (chain2, i));
}
sk_X509_free(chain2);
if (vret) {
/* Free first certificate */
X509_free(sk_X509_value(chain2, 0));
sk_X509_free(chain2);
} else {
BIO_printf (bio_err, "Error %s getting chain.\n",
X509_verify_cert_error_string(vret));
goto export_end;
@@ -537,8 +538,6 @@ int MAIN(int argc, char **argv)
}
sk_X509_pop_free(certs, X509_free);
certs = NULL;
/* ucert is part of certs so it is already freed */
ucert = NULL;
#ifdef CRYPTO_MDEBUG
CRYPTO_pop_info();
@@ -546,7 +545,7 @@ int MAIN(int argc, char **argv)
#endif
if(!noprompt &&
EVP_read_pw_string(pass, 50, "Enter Export Password:", 1)) {
EVP_read_pw_string(pass, sizeof pass, "Enter Export Password:", 1)) {
BIO_printf (bio_err, "Can't read Password\n");
goto export_end;
}
@@ -627,7 +626,6 @@ int MAIN(int argc, char **argv)
if (certs) sk_X509_pop_free(certs, X509_free);
if (safes) sk_PKCS7_pop_free(safes, PKCS7_free);
if (bags) sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free);
if (ucert) X509_free(ucert);
#ifdef CRYPTO_MDEBUG
CRYPTO_pop_info();
@@ -644,7 +642,7 @@ int MAIN(int argc, char **argv)
#ifdef CRYPTO_MDEBUG
CRYPTO_push_info("read import password");
#endif
if(!noprompt && EVP_read_pw_string(pass, 50, "Enter Import Password:", 0)) {
if(!noprompt && EVP_read_pw_string(pass, sizeof pass, "Enter Import Password:", 0)) {
BIO_printf (bio_err, "Can't read Password\n");
goto end;
}
@@ -698,7 +696,7 @@ int MAIN(int argc, char **argv)
if(passin) OPENSSL_free(passin);
if(passout) OPENSSL_free(passout);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
int dump_certs_keys_p12 (BIO *out, PKCS12 *p12, char *pass,

View File

@@ -301,5 +301,5 @@ end:
if (in != NULL) BIO_free(in);
if (out != NULL) BIO_free_all(out);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}

View File

@@ -63,7 +63,6 @@
#include <openssl/evp.h>
#include <openssl/pkcs12.h>
#include "apps.h"
#define PROG pkcs8_main
int MAIN(int, char **);
@@ -222,7 +221,8 @@ int MAIN(int argc, char **argv)
if (topk8)
{
BIO_free(in); /* Not needed in this section */
pkey = load_key(bio_err, infile, informat, passin, e, "key");
pkey = load_key(bio_err, infile, informat, 1,
passin, e, "key");
if (!pkey) {
return (1);
}
@@ -244,7 +244,8 @@ int MAIN(int argc, char **argv)
if(passout) p8pass = passout;
else {
p8pass = pass;
EVP_read_pw_string(pass, 50, "Enter Encryption Password:", 1);
if (EVP_read_pw_string(pass, sizeof pass, "Enter Encryption Password:", 1))
return (1);
}
app_RAND_load_file(NULL, bio_err, 0);
if (!(p8 = PKCS8_encrypt(pbe_nid, cipher,
@@ -301,7 +302,7 @@ int MAIN(int argc, char **argv)
if(passin) p8pass = passin;
else {
p8pass = pass;
EVP_read_pw_string(pass, 50, "Enter Password:", 0);
EVP_read_pw_string(pass, sizeof pass, "Enter Password:", 0);
}
p8inf = PKCS8_decrypt(p8, p8pass, strlen(p8pass));
X509_SIG_free(p8);

View File

@@ -213,5 +213,5 @@ err:
if (out)
BIO_free_all(out);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}

View File

@@ -73,6 +73,7 @@
#include <openssl/x509v3.h>
#include <openssl/objects.h>
#include <openssl/pem.h>
#include "../crypto/cryptlib.h"
#define SECTION "req"
@@ -151,7 +152,7 @@ int MAIN(int argc, char **argv)
#ifndef OPENSSL_NO_DSA
DSA *dsa_params=NULL;
#endif
unsigned long nmflag = 0;
unsigned long nmflag = 0, reqflag = 0;
int ex=1,x509=0,days=30;
X509 *x509ss=NULL;
X509_REQ *req=NULL;
@@ -176,7 +177,7 @@ int MAIN(int argc, char **argv)
const EVP_MD *md_alg=NULL,*digest=EVP_md5();
unsigned long chtype = MBSTRING_ASC;
#ifndef MONOLITH
MS_STATIC char config_name[256];
char *to_free;
long errline;
#endif
@@ -356,6 +357,11 @@ int MAIN(int argc, char **argv)
if (--argc < 1) goto bad;
if (!set_name_ex(&nmflag, *(++argv))) goto bad;
}
else if (strcmp(*argv,"-reqopt") == 0)
{
if (--argc < 1) goto bad;
if (!set_cert_ex(&reqflag, *(++argv))) goto bad;
}
else if (strcmp(*argv,"-subject") == 0)
subject=1;
else if (strcmp(*argv,"-text") == 0)
@@ -448,7 +454,8 @@ bad:
BIO_printf(bio_err," -extensions .. specify certificate extension section (override value in config file)\n");
BIO_printf(bio_err," -reqexts .. specify request extension section (override value in config file)\n");
BIO_printf(bio_err," -utf8 input characters are UTF8 (default ASCII)\n");
BIO_printf(bio_err," -nameopt arg - various certificate name options\n");
BIO_printf(bio_err," -nameopt arg - various certificate name options\n");
BIO_printf(bio_err," -reqopt arg - various request text options\n\n");
goto end;
}
@@ -464,14 +471,7 @@ bad:
if (p == NULL)
p=getenv("SSLEAY_CONF");
if (p == NULL)
{
strcpy(config_name,X509_get_default_cert_area());
#ifndef OPENSSL_SYS_VMS
strcat(config_name,"/");
#endif
strcat(config_name,OPENSSL_CONF);
p=config_name;
}
p=to_free=make_config_name();
default_config_file=p;
config=NCONF_new(NULL);
i=NCONF_load(config, p, &errline);
@@ -479,7 +479,7 @@ bad:
if (template != NULL)
{
long errline;
long errline = -1;
if( verbose )
BIO_printf(bio_err,"Using configuration from %s\n",template);
@@ -622,7 +622,7 @@ bad:
if (keyfile != NULL)
{
pkey = load_key(bio_err, keyfile, keyform, passin, e,
pkey = load_key(bio_err, keyfile, keyform, 0, passin, e,
"Private Key");
if (!pkey)
{
@@ -981,9 +981,9 @@ loop:
if (text)
{
if (x509)
X509_print(out,x509ss);
X509_print_ex(out, x509ss, nmflag, reqflag);
else
X509_REQ_print(out,req);
X509_REQ_print_ex(out, req, nmflag, reqflag);
}
if(subject)
@@ -1053,6 +1053,10 @@ loop:
}
ex=0;
end:
#ifndef MONOLITH
if(to_free)
OPENSSL_free(to_free);
#endif
if (ex)
{
ERR_print_errors(bio_err);
@@ -1071,7 +1075,7 @@ end:
if (dsa_params != NULL) DSA_free(dsa_params);
#endif
apps_shutdown();
EXIT(ex);
OPENSSL_EXIT(ex);
}
static int make_REQ(X509_REQ *req, EVP_PKEY *pkey, char *subj, int attribs,
@@ -1212,13 +1216,19 @@ start: for (;;)
}
/* If OBJ not recognised ignore it */
if ((nid=OBJ_txt2nid(type)) == NID_undef) goto start;
if(strlen(v->name) > sizeof buf-9)
{
BIO_printf(bio_err,"Name '%s' too long\n",v->name);
return 0;
}
sprintf(buf,"%s_default",v->name);
if ((def=NCONF_get_string(req_conf,dn_sect,buf)) == NULL)
{
ERR_clear_error();
def="";
}
sprintf(buf,"%s_value",v->name);
if ((value=NCONF_get_string(req_conf,dn_sect,buf)) == NULL)
{
@@ -1265,6 +1275,12 @@ start2: for (;;)
if ((nid=OBJ_txt2nid(type)) == NID_undef)
goto start2;
if(strlen(v->name) > sizeof buf-9)
{
BIO_printf(bio_err,"Name '%s' too long\n",v->name);
return 0;
}
sprintf(buf,"%s_default",type);
if ((def=NCONF_get_string(req_conf,attr_sect,buf))
== NULL)
@@ -1368,6 +1384,7 @@ start:
(void)BIO_flush(bio_err);
if(value != NULL)
{
OPENSSL_assert(strlen(value) < sizeof buf-2);
strcpy(buf,value);
strcat(buf,"\n");
BIO_printf(bio_err,"%s\n",value);
@@ -1377,7 +1394,7 @@ start:
buf[0]='\0';
if (!batch)
{
fgets(buf,1024,stdin);
fgets(buf,sizeof buf,stdin);
}
else
{
@@ -1426,6 +1443,7 @@ start:
(void)BIO_flush(bio_err);
if (value != NULL)
{
OPENSSL_assert(strlen(value) < sizeof buf-2);
strcpy(buf,value);
strcat(buf,"\n");
BIO_printf(bio_err,"%s\n",value);
@@ -1435,7 +1453,7 @@ start:
buf[0]='\0';
if (!batch)
{
fgets(buf,1024,stdin);
fgets(buf,sizeof buf,stdin);
}
else
{

View File

@@ -238,12 +238,12 @@ bad:
if (pubin)
pkey = load_pubkey(bio_err, infile,
(informat == FORMAT_NETSCAPE && sgckey ?
FORMAT_IISSGC : informat),
FORMAT_IISSGC : informat), 1,
passin, e, "Public Key");
else
pkey = load_key(bio_err, infile,
(informat == FORMAT_NETSCAPE && sgckey ?
FORMAT_IISSGC : informat),
FORMAT_IISSGC : informat), 1,
passin, e, "Private Key");
if (pkey != NULL)
@@ -369,7 +369,7 @@ end:
if(passin) OPENSSL_free(passin);
if(passout) OPENSSL_free(passout);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
#else /* !OPENSSL_NO_RSA */

View File

@@ -169,12 +169,12 @@ int MAIN(int argc, char **argv)
switch(key_type) {
case KEY_PRIVKEY:
pkey = load_key(bio_err, keyfile, keyform,
pkey = load_key(bio_err, keyfile, keyform, 0,
NULL, e, "Private Key");
break;
case KEY_PUBKEY:
pkey = load_pubkey(bio_err, keyfile, keyform,
pkey = load_pubkey(bio_err, keyfile, keyform, 0,
NULL, e, "Public Key");
break;

View File

@@ -134,7 +134,7 @@ int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
err= X509_STORE_CTX_get_error(ctx);
depth= X509_STORE_CTX_get_error_depth(ctx);
X509_NAME_oneline(X509_get_subject_name(err_cert),buf,256);
X509_NAME_oneline(X509_get_subject_name(err_cert),buf,sizeof buf);
BIO_printf(bio_err,"depth=%d %s\n",depth,buf);
if (!ok)
{
@@ -154,7 +154,7 @@ int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
switch (ctx->error)
{
case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert),buf,256);
X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert),buf,sizeof buf);
BIO_printf(bio_err,"issuer= %s\n",buf);
break;
case X509_V_ERR_CERT_NOT_YET_VALID:

View File

@@ -140,6 +140,14 @@ typedef unsigned int u_int;
#include <conio.h>
#endif
#ifdef OPENSSL_SYS_WINCE
/* Windows CE incorrectly defines fileno as returning void*, so to avoid problems below... */
#ifdef fileno
#undef fileno
#endif
#define fileno(a) (int)_fileno(a)
#endif
#if (defined(OPENSSL_SYS_VMS) && __VMS_VER < 70000000)
/* FIONBIO used as a switch to enable ioctl, and that isn't in VMS < 7.0 */
@@ -662,7 +670,11 @@ re_start:
tv.tv_usec = 0;
i=select(width,(void *)&readfds,(void *)&writefds,
NULL,&tv);
#ifdef OPENSSL_SYS_WINCE
if(!i && (!_kbhit() || !read_tty) ) continue;
#else
if(!i && (!((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) || !read_tty) ) continue;
#endif
} else i=select(width,(void *)&readfds,(void *)&writefds,
NULL,NULL);
}
@@ -746,8 +758,8 @@ re_start:
goto shut;
}
}
#ifdef OPENSSL_SYS_WINDOWS
/* Assume Windows can always write */
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
/* Assume Windows/DOS can always write */
else if (!ssl_pending && write_tty)
#else
else if (!ssl_pending && FD_ISSET(fileno(stdout),&writefds))
@@ -828,7 +840,11 @@ printf("read=%d pending=%d peek=%d\n",k,SSL_pending(con),SSL_peek(con,zbuf,10240
}
#ifdef OPENSSL_SYS_WINDOWS
#ifdef OPENSSL_SYS_WINCE
else if (_kbhit())
#else
else if ((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0)))
#endif
#else
else if (FD_ISSET(fileno(stdin),&readfds))
#endif
@@ -892,16 +908,16 @@ end:
if (con != NULL) SSL_free(con);
if (con2 != NULL) SSL_free(con2);
if (ctx != NULL) SSL_CTX_free(ctx);
if (cbuf != NULL) { memset(cbuf,0,BUFSIZZ); OPENSSL_free(cbuf); }
if (sbuf != NULL) { memset(sbuf,0,BUFSIZZ); OPENSSL_free(sbuf); }
if (mbuf != NULL) { memset(mbuf,0,BUFSIZZ); OPENSSL_free(mbuf); }
if (cbuf != NULL) { OPENSSL_cleanse(cbuf,BUFSIZZ); OPENSSL_free(cbuf); }
if (sbuf != NULL) { OPENSSL_cleanse(sbuf,BUFSIZZ); OPENSSL_free(sbuf); }
if (mbuf != NULL) { OPENSSL_cleanse(mbuf,BUFSIZZ); OPENSSL_free(mbuf); }
if (bio_c_out != NULL)
{
BIO_free(bio_c_out);
bio_c_out=NULL;
}
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
@@ -930,10 +946,10 @@ static void print_stuff(BIO *bio, SSL *s, int full)
for (i=0; i<sk_X509_num(sk); i++)
{
X509_NAME_oneline(X509_get_subject_name(
sk_X509_value(sk,i)),buf,BUFSIZ);
sk_X509_value(sk,i)),buf,sizeof buf);
BIO_printf(bio,"%2d s:%s\n",i,buf);
X509_NAME_oneline(X509_get_issuer_name(
sk_X509_value(sk,i)),buf,BUFSIZ);
sk_X509_value(sk,i)),buf,sizeof buf);
BIO_printf(bio," i:%s\n",buf);
if (c_showcerts)
PEM_write_bio_X509(bio,sk_X509_value(sk,i));
@@ -948,10 +964,10 @@ static void print_stuff(BIO *bio, SSL *s, int full)
if (!(c_showcerts && got_a_chain)) /* Redundant if we showed the whole chain */
PEM_write_bio_X509(bio,peer);
X509_NAME_oneline(X509_get_subject_name(peer),
buf,BUFSIZ);
buf,sizeof buf);
BIO_printf(bio,"subject=%s\n",buf);
X509_NAME_oneline(X509_get_issuer_name(peer),
buf,BUFSIZ);
buf,sizeof buf);
BIO_printf(bio,"issuer=%s\n",buf);
}
else
@@ -973,7 +989,7 @@ static void print_stuff(BIO *bio, SSL *s, int full)
{
BIO_printf(bio,"---\nNo client certificate CA names sent\n");
}
p=SSL_get_shared_ciphers(s,buf,BUFSIZ);
p=SSL_get_shared_ciphers(s,buf,sizeof buf);
if (p != NULL)
{
/* This works only for SSL 2. In later protocol

View File

@@ -144,6 +144,14 @@ typedef unsigned int u_int;
#include <conio.h>
#endif
#ifdef OPENSSL_SYS_WINCE
/* Windows CE incorrectly defines fileno as returning void*, so to avoid problems below... */
#ifdef fileno
#undef fileno
#endif
#define fileno(a) (int)_fileno(a)
#endif
#if (defined(OPENSSL_SYS_VMS) && __VMS_VER < 70000000)
/* FIONBIO used as a switch to enable ioctl, and that isn't in VMS < 7.0 */
#undef FIONBIO
@@ -320,10 +328,10 @@ static char **local_argv;
static int ebcdic_new(BIO *bi);
static int ebcdic_free(BIO *a);
static int ebcdic_read(BIO *b, char *out, int outl);
static int ebcdic_write(BIO *b, char *in, int inl);
static long ebcdic_ctrl(BIO *b, int cmd, long num, char *ptr);
static int ebcdic_write(BIO *b, const char *in, int inl);
static long ebcdic_ctrl(BIO *b, int cmd, long num, void *ptr);
static int ebcdic_gets(BIO *bp, char *buf, int size);
static int ebcdic_puts(BIO *bp, char *str);
static int ebcdic_puts(BIO *bp, const char *str);
#define BIO_TYPE_EBCDIC_FILTER (18|0x0200)
static BIO_METHOD methods_ebcdic=
@@ -388,7 +396,7 @@ static int ebcdic_read(BIO *b, char *out, int outl)
return(ret);
}
static int ebcdic_write(BIO *b, char *in, int inl)
static int ebcdic_write(BIO *b, const char *in, int inl)
{
EBCDIC_OUTBUFF *wbuf;
int ret=0;
@@ -421,7 +429,7 @@ static int ebcdic_write(BIO *b, char *in, int inl)
return(ret);
}
static long ebcdic_ctrl(BIO *b, int cmd, long num, char *ptr)
static long ebcdic_ctrl(BIO *b, int cmd, long num, void *ptr)
{
long ret;
@@ -440,7 +448,7 @@ static long ebcdic_ctrl(BIO *b, int cmd, long num, char *ptr)
static int ebcdic_gets(BIO *bp, char *buf, int size)
{
int i, ret;
int i, ret=0;
if (bp->next_bio == NULL) return(0);
/* return(BIO_gets(bp->next_bio,buf,size));*/
for (i=0; i<size-1; ++i)
@@ -459,7 +467,7 @@ static int ebcdic_gets(BIO *bp, char *buf, int size)
return (ret < 0 && i == 0) ? ret : i;
}
static int ebcdic_puts(BIO *bp, char *str)
static int ebcdic_puts(BIO *bp, const char *str)
{
if (bp->next_bio == NULL) return(0);
return ebcdic_write(bp, str, strlen(str));
@@ -860,7 +868,7 @@ end:
bio_s_out=NULL;
}
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
static void print_stats(BIO *bio, SSL_CTX *ssl_ctx)
@@ -1176,7 +1184,7 @@ err:
BIO_printf(bio_s_out,"CONNECTION CLOSED\n");
if (buf != NULL)
{
memset(buf,0,bufsize);
OPENSSL_cleanse(buf,bufsize);
OPENSSL_free(buf);
}
if (ret >= 0)
@@ -1228,14 +1236,14 @@ static int init_ssl_connection(SSL *con)
{
BIO_printf(bio_s_out,"Client certificate\n");
PEM_write_bio_X509(bio_s_out,peer);
X509_NAME_oneline(X509_get_subject_name(peer),buf,BUFSIZ);
X509_NAME_oneline(X509_get_subject_name(peer),buf,sizeof buf);
BIO_printf(bio_s_out,"subject=%s\n",buf);
X509_NAME_oneline(X509_get_issuer_name(peer),buf,BUFSIZ);
X509_NAME_oneline(X509_get_issuer_name(peer),buf,sizeof buf);
BIO_printf(bio_s_out,"issuer=%s\n",buf);
X509_free(peer);
}
if (SSL_get_shared_ciphers(con,buf,BUFSIZ) != NULL)
if (SSL_get_shared_ciphers(con,buf,sizeof buf) != NULL)
BIO_printf(bio_s_out,"Shared ciphers:%s\n",buf);
str=SSL_CIPHER_get_name(SSL_get_current_cipher(con));
BIO_printf(bio_s_out,"CIPHER is %s\n",(str != NULL)?str:"(NONE)");
@@ -1395,7 +1403,7 @@ static int www_body(char *hostname, int s, unsigned char *context)
else
{
BIO_printf(bio_s_out,"read R BLOCK\n");
#ifndef OPENSSL_SYS_MSDOS
#if !defined(OPENSSL_SYS_MSDOS) && !defined(__DJGPP__)
sleep(1);
#endif
continue;

View File

@@ -83,9 +83,9 @@ typedef unsigned int u_int;
static struct hostent *GetHostByName(char *name);
#ifdef OPENSSL_SYS_WINDOWS
static void sock_cleanup(void);
static void ssl_sock_cleanup(void);
#endif
static int sock_init(void);
static int ssl_sock_init(void);
static int init_client_ip(int *sock,unsigned char ip[4], int port);
static int init_server(int *sock, int port);
static int init_server_long(int *sock, int port,char *ip);
@@ -118,7 +118,7 @@ static LONG FAR PASCAL topHookProc(HWND hwnd, UINT message, WPARAM wParam,
case WM_DESTROY:
case WM_CLOSE:
SetWindowLong(topWnd,GWL_WNDPROC,(LONG)lpTopWndProc);
sock_cleanup();
ssl_sock_cleanup();
break;
}
}
@@ -135,26 +135,34 @@ static BOOL CALLBACK enumproc(HWND hwnd,LPARAM lParam)
#endif /* OPENSSL_SYS_WINDOWS */
#ifdef OPENSSL_SYS_WINDOWS
static void sock_cleanup(void)
static void ssl_sock_cleanup(void)
{
if (wsa_init_done)
{
wsa_init_done=0;
#ifndef OPENSSL_SYS_WINCE
WSACancelBlockingCall();
#endif
WSACleanup();
}
}
#endif
static int sock_init(void)
static int ssl_sock_init(void)
{
#ifdef OPENSSL_SYS_WINDOWS
#ifdef WATT32
extern int _watt_do_exit;
_watt_do_exit = 0;
dbug_init();
if (sock_init())
return (0);
#elif defined(OPENSSL_SYS_WINDOWS)
if (!wsa_init_done)
{
int err;
#ifdef SIGINT
signal(SIGINT,(void (*)(int))sock_cleanup);
signal(SIGINT,(void (*)(int))ssl_sock_cleanup);
#endif
wsa_init_done=1;
memset(&wsa_state,0,sizeof(wsa_state));
@@ -196,7 +204,7 @@ static int init_client_ip(int *sock, unsigned char ip[4], int port)
struct sockaddr_in them;
int s,i;
if (!sock_init()) return(0);
if (!ssl_sock_init()) return(0);
memset((char *)&them,0,sizeof(them));
them.sin_family=AF_INET;
@@ -261,7 +269,7 @@ static int init_server_long(int *sock, int port, char *ip)
struct sockaddr_in server;
int s= -1,i;
if (!sock_init()) return(0);
if (!ssl_sock_init()) return(0);
memset((char *)&server,0,sizeof(server));
server.sin_family=AF_INET;
@@ -318,7 +326,7 @@ static int do_accept(int acc_sock, int *sock, char **host)
int len;
/* struct linger ling; */
if (!sock_init()) return(0);
if (!ssl_sock_init()) return(0);
#ifndef OPENSSL_SYS_WINDOWS
redoit:
@@ -448,7 +456,7 @@ static int host_ip(char *str, unsigned char ip[4])
{ /* do a gethostbyname */
struct hostent *he;
if (!sock_init()) return(0);
if (!ssl_sock_init()) return(0);
he=GetHostByName(str);
if (he == NULL)
@@ -529,9 +537,12 @@ static struct hostent *GetHostByName(char *name)
ret=gethostbyname(name);
if (ret == NULL) return(NULL);
/* else add to cache */
strncpy(ghbn_cache[lowi].name,name,128);
memcpy((char *)&(ghbn_cache[lowi].ent),ret,sizeof(struct hostent));
ghbn_cache[lowi].order=ghbn_miss+ghbn_hits;
if(strlen(name) < sizeof ghbn_cache[0].name)
{
strcpy(ghbn_cache[lowi].name,name);
memcpy((char *)&(ghbn_cache[lowi].ent),ret,sizeof(struct hostent));
ghbn_cache[lowi].order=ghbn_miss+ghbn_hits;
}
return(ret);
}
else

View File

@@ -146,6 +146,8 @@
#undef BUFSIZZ
#define BUFSIZZ 1024*10
#define MYBUFSIZ 1024*8
#undef min
#undef max
#define min(a,b) (((a) < (b)) ? (a) : (b))
@@ -320,6 +322,11 @@ static int parseArgs(int argc, char **argv)
{
if (--argc < 1) goto bad;
s_www_path= *(++argv);
if(strlen(s_www_path) > MYBUFSIZ-100)
{
BIO_printf(bio_err,"-www option too long\n");
badop=1;
}
}
else if(strcmp(*argv,"-bugs") == 0)
st_bugs=1;
@@ -480,7 +487,7 @@ int MAIN(int argc, char **argv)
tm_Time_F(START);
for (;;)
{
if (finishtime < time(NULL)) break;
if (finishtime < (long)time(NULL)) break;
#ifdef WIN32_STUFF
if( flushWinMsgs(0) == -1 )
@@ -531,9 +538,9 @@ int MAIN(int argc, char **argv)
}
totalTime += tm_Time_F(STOP); /* Add the time for this iteration */
i=(int)(time(NULL)-finishtime+maxTime);
i=(int)((long)time(NULL)-finishtime+maxTime);
printf( "\n\n%d connections in %.2fs; %.2f connections/user sec, bytes read %ld\n", nConn, totalTime, ((double)nConn/totalTime),bytes_read);
printf( "%d connections in %ld real seconds, %ld bytes read per connection\n",nConn,time(NULL)-finishtime+maxTime,bytes_read/nConn);
printf( "%d connections in %ld real seconds, %ld bytes read per connection\n",nConn,(long)time(NULL)-finishtime+maxTime,bytes_read/nConn);
/* Now loop and time connections using the same session id over and over */
@@ -565,7 +572,7 @@ next:
nConn = 0;
totalTime = 0.0;
finishtime=time(NULL)+maxTime;
finishtime=(long)time(NULL)+maxTime;
printf( "starting\n" );
bytes_read=0;
@@ -573,7 +580,7 @@ next:
for (;;)
{
if (finishtime < time(NULL)) break;
if (finishtime < (long)time(NULL)) break;
#ifdef WIN32_STUFF
if( flushWinMsgs(0) == -1 )
@@ -623,7 +630,7 @@ next:
printf( "\n\n%d connections in %.2fs; %.2f connections/user sec, bytes read %ld\n", nConn, totalTime, ((double)nConn/totalTime),bytes_read);
printf( "%d connections in %ld real seconds, %ld bytes read per connection\n",nConn,time(NULL)-finishtime+maxTime,bytes_read/nConn);
printf( "%d connections in %ld real seconds, %ld bytes read per connection\n",nConn,(long)time(NULL)-finishtime+maxTime,bytes_read/nConn);
ret=0;
end:
@@ -635,7 +642,7 @@ end:
tm_ctx=NULL;
}
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
/***********************************************************************

View File

@@ -273,7 +273,7 @@ end:
if (out != NULL) BIO_free_all(out);
if (x != NULL) SSL_SESSION_free(x);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
static SSL_SESSION *load_sess_id(char *infile, int format)

View File

@@ -428,7 +428,7 @@ int MAIN(int argc, char **argv)
} else keyfile = NULL;
if(keyfile) {
key = load_key(bio_err, keyfile, keyform, passin, e,
key = load_key(bio_err, keyfile, keyform, 0, passin, e,
"signing key file");
if (!key) {
goto end;

View File

@@ -187,7 +187,8 @@
/* The following if from times(3) man page. It may need to be changed */
#ifndef HZ
# ifdef _SC_CLK_TCK
# if defined(_SC_CLK_TCK) \
&& (!defined(OPENSSL_SYS_VMS) || __CTRL_VER >= 70000000)
# define HZ ((double)sysconf(_SC_CLK_TCK))
# else
# ifndef CLK_TCK
@@ -861,7 +862,7 @@ int MAIN(int argc, char **argv)
BIO_printf(bio_err,"\n");
BIO_printf(bio_err,"Available options:\n");
#ifdef TIMES
#if defined(TIMES) || defined(USE_TOD)
BIO_printf(bio_err,"-elapsed measure time in real time instead of CPU user time.\n");
#endif
BIO_printf(bio_err,"-engine e use engine e, possibly a hardware device.\n");
@@ -1728,7 +1729,7 @@ end:
DSA_free(dsa_key[i]);
#endif
apps_shutdown();
EXIT(mret);
OPENSSL_EXIT(mret);
}
static void print_message(const char *s, long num, int length)
@@ -1781,7 +1782,7 @@ static char *sstrsep(char **string, const char *delim)
if (**string == 0)
return NULL;
memset(isdelim, 0, 256);
memset(isdelim, 0, sizeof isdelim);
isdelim[0] = 1;
while (*delim)

View File

@@ -186,7 +186,7 @@ bad:
if(keyfile) {
pkey = load_key(bio_err,
strcmp(keyfile, "-") ? keyfile : NULL,
FORMAT_PEM, passin, e, "private key");
FORMAT_PEM, 1, passin, e, "private key");
if(!pkey) {
goto end;
}
@@ -295,5 +295,5 @@ end:
EVP_PKEY_free(pkey);
if(passin) OPENSSL_free(passin);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}

View File

@@ -232,7 +232,7 @@ end:
sk_X509_pop_free(untrusted, X509_free);
sk_X509_pop_free(trusted, X509_free);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
static int check(X509_STORE *ctx, char *file, STACK_OF(X509) *uchain, STACK_OF(X509) *tchain, int purpose, ENGINE *e)
@@ -330,7 +330,8 @@ static int MS_CALLBACK cb(int ok, X509_STORE_CTX *ctx)
if (!ok)
{
X509_NAME_oneline(
X509_get_subject_name(ctx->current_cert),buf,256);
X509_get_subject_name(ctx->current_cert),buf,
sizeof buf);
printf("%s\n",buf);
printf("error %d at %d depth lookup:%s\n",ctx->error,
ctx->error_depth,

View File

@@ -200,5 +200,5 @@ int MAIN(int argc, char **argv)
if (dir) printf("%s\n",SSLeay_version(SSLEAY_DIR));
end:
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}

View File

@@ -118,7 +118,6 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
char buffer[200];
static int seeded = 0;
switch (iMsg)

View File

@@ -122,7 +122,7 @@ static char *x509_usage[]={
" -CAkey arg - set the CA key, must be PEM format\n",
" missing, it is assumed to be in the CA file.\n",
" -CAcreateserial - create serial number file if it does not exist\n",
" -CAserial - serial file\n",
" -CAserial arg - serial file\n",
" -set_serial - serial number to use\n",
" -text - print the certificate in text form\n",
" -C - print out C code forms\n",
@@ -479,7 +479,7 @@ bad:
if (extfile)
{
long errorline;
long errorline = -1;
X509V3_CTX ctx2;
extconf = NCONF_new(NULL);
if (!NCONF_load(extconf, extfile,&errorline))
@@ -770,10 +770,11 @@ bad:
int y,z;
X509_NAME_oneline(X509_get_subject_name(x),
buf,256);
buf,sizeof buf);
BIO_printf(STDout,"/* subject:%s */\n",buf);
m=X509_NAME_oneline(
X509_get_issuer_name(x),buf,256);
X509_get_issuer_name(x),buf,
sizeof buf);
BIO_printf(STDout,"/* issuer :%s */\n",buf);
z=i2d_X509(x,NULL);
@@ -861,8 +862,8 @@ bad:
if (Upkey == NULL)
{
Upkey=load_key(bio_err,
keyfile,keyformat, passin, e,
"Private key");
keyfile, keyformat, 0,
passin, e, "Private key");
if (Upkey == NULL) goto end;
}
#ifndef OPENSSL_NO_DSA
@@ -880,8 +881,9 @@ bad:
if (CAkeyfile != NULL)
{
CApkey=load_key(bio_err,
CAkeyfile,CAkeyformat, passin,
e, "CA Private Key");
CAkeyfile, CAkeyformat,
0, passin, e,
"CA Private Key");
if (CApkey == NULL) goto end;
}
#ifndef OPENSSL_NO_DSA
@@ -908,8 +910,8 @@ bad:
else
{
pk=load_key(bio_err,
keyfile,FORMAT_PEM, passin, e,
"request key");
keyfile, FORMAT_PEM, 0,
passin, e, "request key");
if (pk == NULL) goto end;
}
@@ -1015,7 +1017,7 @@ end:
sk_ASN1_OBJECT_pop_free(reject, ASN1_OBJECT_free);
if (passin) OPENSSL_free(passin);
apps_shutdown();
EXIT(ret);
OPENSSL_EXIT(ret);
}
static ASN1_INTEGER *load_serial(char *CAfile, char *serialfile, int create)
@@ -1073,7 +1075,7 @@ static ASN1_INTEGER *load_serial(char *CAfile, char *serialfile, int create)
}
else
{
if (!a2i_ASN1_INTEGER(io,bs,buf2,1024))
if (!a2i_ASN1_INTEGER(io,bs,buf2,sizeof buf2))
{
BIO_printf(bio_err,"unable to load serial number from %s\n",buf);
ERR_print_errors(bio_err);

11
config
View File

@@ -351,6 +351,10 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
*CRAY*)
echo "j90-cray-unicos"; exit 0;
;;
NONSTOP_KERNEL*)
echo "nsr-tandem-nsk"; exit 0;
;;
esac
#
@@ -393,6 +397,9 @@ exit 0
GCCVER=`(gcc -dumpversion) 2>/dev/null`
if [ "$GCCVER" != "" ]; then
CC=gcc
# then strip off whatever prefix egcs prepends the number with...
# Hopefully, this will work for any future prefixes as well.
GCCVER=`echo $GCCVER | sed 's/^[a-zA-Z]*\-//'`
# Since gcc 3.1 gcc --version behaviour has changed. gcc -dumpversion
# does give us what we want though, so we use that. We just just the
# major and minor version numbers.
@@ -578,6 +585,7 @@ EOF
arm*-*-linux2) OUT="linux-elf-arm" ;;
s390-*-linux2) OUT="linux-s390" ;;
s390x-*-linux?) OUT="linux-s390x" ;;
x86_64-*-linux?) OUT="linux-x86_64" ;;
*-*-linux2) OUT="linux-elf"
if [ "$GCCVER" -gt 28 ]; then
if grep '^model.*Pentium' /proc/cpuinfo >/dev/null ; then
@@ -722,6 +730,7 @@ EOF
*-*-cygwin) OUT="Cygwin" ;;
t3e-cray-unicosmk) OUT="cray-t3e" ;;
j90-cray-unicos) OUT="cray-j90" ;;
nsr-tandem-nsk) OUT="tandem-c89" ;;
*) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
esac
@@ -756,7 +765,7 @@ case "$GUESSOS" in
i386-*) options="$options 386" ;;
esac
for i in bf cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 rijndael ripemd rsa sha
for i in bf cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 aes ripemd rsa sha
do
if [ ! -d crypto/$i ]
then

View File

@@ -36,8 +36,8 @@ GENERAL=Makefile README crypto-lib.com install.com
LIB= $(TOP)/libcrypto.a
SHARED_LIB= libcrypto$(SHLIB_EXT)
LIBSRC= cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c o_time.c
LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o
LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c o_time.c
LIBOBJ= cryptlib.o mem.o mem_clr.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o
SRC= $(LIBSRC)
@@ -98,7 +98,7 @@ lib: $(LIBOBJ)
shared:
if [ -n "$(SHARED_LIBS)" ]; then \
(cd ..; make $(SHARED_LIB)); \
(cd ..; $(MAKE) $(SHARED_LIB)); \
fi
libs:
@@ -136,7 +136,7 @@ lint:
depend:
if [ ! -f buildinf.h ]; then touch buildinf.h; fi # fake buildinf.h if it does not exist
$(MAKEDEPEND) $(CFLAG) $(INCLUDE) $(DEPFLAG) $(PROGS) $(LIBSRC)
$(MAKEDEPEND) -- $(CFLAG) $(INCLUDE) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
if [ ! -s buildinf.h ]; then rm buildinf.h; fi
@for i in $(SDIRS) ;\
do \
@@ -193,6 +193,10 @@ mem.o: ../include/openssl/err.h ../include/openssl/lhash.h
mem.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
mem.o: ../include/openssl/safestack.h ../include/openssl/stack.h
mem.o: ../include/openssl/symhacks.h cryptlib.h mem.c
mem_clr.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
mem_clr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
mem_clr.o: ../include/openssl/safestack.h ../include/openssl/stack.h
mem_clr.o: ../include/openssl/symhacks.h mem_clr.c
mem_dbg.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
mem_dbg.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
mem_dbg.o: ../include/openssl/err.h ../include/openssl/lhash.h

View File

@@ -75,7 +75,7 @@ lint:
lint -DLINT $(INCLUDES) $(SRC)>fluff
depend:
$(MAKEDEPEND) $(CFLAG) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
$(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
dclean:
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new

View File

@@ -99,7 +99,9 @@ void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,
unsigned char *ivec, int *num);
void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
const unsigned long length, const AES_KEY *key,
unsigned char *counter, unsigned int *num);
unsigned char counter[AES_BLOCK_SIZE],
unsigned char ecount_buf[AES_BLOCK_SIZE],
unsigned int *num);
#ifdef __cplusplus

View File

@@ -49,7 +49,13 @@
*
*/
#ifndef AES_DEBUG
# ifndef NDEBUG
# define NDEBUG
# endif
#endif
#include <assert.h>
#include <openssl/aes.h>
#include "aes_locl.h"
@@ -57,33 +63,49 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
const unsigned long length, const AES_KEY *key,
unsigned char *ivec, const int enc) {
int n;
unsigned long n;
unsigned long len = length;
unsigned char tmp[16];
unsigned char tmp[AES_BLOCK_SIZE];
assert(in && out && key && ivec);
assert(length % AES_BLOCK_SIZE == 0);
assert((AES_ENCRYPT == enc)||(AES_DECRYPT == enc));
if (AES_ENCRYPT == enc)
while (len > 0) {
for(n=0; n < 16; ++n)
if (AES_ENCRYPT == enc) {
while (len >= AES_BLOCK_SIZE) {
for(n=0; n < sizeof tmp; ++n)
tmp[n] = in[n] ^ ivec[n];
AES_encrypt(tmp, out, key);
memcpy(ivec, out, 16);
len -= 16;
in += 16;
out += 16;
memcpy(ivec, out, AES_BLOCK_SIZE);
len -= AES_BLOCK_SIZE;
in += AES_BLOCK_SIZE;
out += AES_BLOCK_SIZE;
}
else
while (len > 0) {
memcpy(tmp, in, 16);
if (len) {
for(n=0; n < len; ++n)
tmp[n] = in[n] ^ ivec[n];
for(n=len; n < AES_BLOCK_SIZE; ++n)
tmp[n] = ivec[n];
AES_encrypt(tmp, tmp, key);
memcpy(out, tmp, len);
memcpy(ivec, tmp, sizeof tmp);
}
} else {
while (len >= AES_BLOCK_SIZE) {
memcpy(tmp, in, sizeof tmp);
AES_decrypt(in, out, key);
for(n=0; n < 16; ++n)
for(n=0; n < AES_BLOCK_SIZE; ++n)
out[n] ^= ivec[n];
memcpy(ivec, tmp, 16);
len -= 16;
in += 16;
out += 16;
memcpy(ivec, tmp, AES_BLOCK_SIZE);
len -= AES_BLOCK_SIZE;
in += AES_BLOCK_SIZE;
out += AES_BLOCK_SIZE;
}
if (len) {
memcpy(tmp, in, sizeof tmp);
AES_decrypt(tmp, tmp, key);
for(n=0; n < len; ++n)
out[n] ^= ivec[n];
memcpy(ivec, tmp, sizeof tmp);
}
}
}

View File

@@ -105,7 +105,13 @@
* [including the GNU Public Licence.]
*/
#ifndef AES_DEBUG
# ifndef NDEBUG
# define NDEBUG
# endif
#endif
#include <assert.h>
#include <openssl/aes.h>
#include "aes_locl.h"

View File

@@ -28,7 +28,13 @@
/* Note: rewritten a little bit to provide error control and an OpenSSL-
compatible API */
#ifndef AES_DEBUG
# ifndef NDEBUG
# define NDEBUG
# endif
#endif
#include <assert.h>
#include <stdlib.h>
#include <openssl/aes.h>
#include "aes_locl.h"

View File

@@ -49,7 +49,13 @@
*
*/
#ifndef AES_DEBUG
# ifndef NDEBUG
# define NDEBUG
# endif
#endif
#include <assert.h>
#include <openssl/aes.h>
#include "aes_locl.h"
@@ -90,26 +96,31 @@ static void AES_ctr128_inc(unsigned char *counter) {
/* The input encrypted as though 128bit counter mode is being
* used. The extra state information to record how much of the
* 128bit block we have used is contained in *num;
* 128bit block we have used is contained in *num, and the
* encrypted counter is kept in ecount_buf. Both *num and
* ecount_buf must be initialised with zeros before the first
* call to AES_ctr128_encrypt().
*/
void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
const unsigned long length, const AES_KEY *key,
unsigned char *counter, unsigned int *num) {
unsigned char counter[AES_BLOCK_SIZE],
unsigned char ecount_buf[AES_BLOCK_SIZE],
unsigned int *num) {
unsigned int n;
unsigned long l=length;
unsigned char tmp[AES_BLOCK_SIZE];
assert(in && out && key && counter && num);
assert(*num < AES_BLOCK_SIZE);
n = *num;
while (l--) {
if (n == 0) {
AES_encrypt(counter, tmp, key);
AES_encrypt(counter, ecount_buf, key);
AES_ctr128_inc(counter);
}
*(out++) = *(in++) ^ tmp[n];
*(out++) = *(in++) ^ ecount_buf[n];
n = (n+1) % AES_BLOCK_SIZE;
}

View File

@@ -49,7 +49,13 @@
*
*/
#ifndef AES_DEBUG
# ifndef NDEBUG
# define NDEBUG
# endif
#endif
#include <assert.h>
#include <openssl/aes.h>
#include "aes_locl.h"

View File

@@ -62,7 +62,7 @@
#include <stdlib.h>
#include <string.h>
#ifdef _MSC_VER
#if defined(_MSC_VER) && !defined(OPENSSL_SYS_WINCE)
# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
# define GETU32(p) SWAP(*((u32 *)(p)))
# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }

View File

@@ -105,7 +105,13 @@
* [including the GNU Public Licence.]
*/
#ifndef AES_DEBUG
# ifndef NDEBUG
# define NDEBUG
# endif
#endif
#include <assert.h>
#include <openssl/aes.h>
#include "aes_locl.h"

View File

@@ -98,7 +98,7 @@ lint:
lint -DLINT $(INCLUDES) $(SRC)>fluff
depend:
$(MAKEDEPEND) $(CFLAG) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
$(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
dclean:
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
@@ -286,13 +286,14 @@ a_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
a_sign.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
a_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
a_sign.o: ../cryptlib.h a_sign.c
a_strex.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
a_strex.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
a_strex.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
a_strex.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
a_strex.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
a_strex.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
a_strex.o: ../../include/openssl/e_os2.h ../../include/openssl/evp.h
a_strex.o: ../../e_os.h ../../include/openssl/aes.h
a_strex.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
a_strex.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
a_strex.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
a_strex.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
a_strex.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
a_strex.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
a_strex.o: ../../include/openssl/err.h ../../include/openssl/evp.h
a_strex.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
a_strex.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
a_strex.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
@@ -305,7 +306,7 @@ a_strex.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
a_strex.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
a_strex.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
a_strex.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
a_strex.o: ../../include/openssl/x509_vfy.h a_strex.c charmap.h
a_strex.o: ../../include/openssl/x509_vfy.h ../cryptlib.h a_strex.c charmap.h
a_strnid.o: ../../e_os.h ../../include/openssl/asn1.h
a_strnid.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
a_strnid.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h

View File

@@ -120,6 +120,12 @@ ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, unsigned char **pp,
unsigned char *p,*s;
int i;
if (len < 1)
{
i=ASN1_R_STRING_TOO_SHORT;
goto err;
}
if ((a == NULL) || ((*a) == NULL))
{
if ((ret=M_ASN1_BIT_STRING_new()) == NULL) return(NULL);
@@ -185,7 +191,9 @@ int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
if (a->data == NULL)
c=(unsigned char *)OPENSSL_malloc(w+1);
else
c=(unsigned char *)OPENSSL_realloc(a->data,w+1);
c=(unsigned char *)OPENSSL_realloc_clean(a->data,
a->length,
w+1);
if (c == NULL) return(0);
if (w+1-a->length > 0) memset(c+a->length, 0, w+1-a->length);
a->data=c;

View File

@@ -285,7 +285,7 @@ static int asn1_collate_primitive(ASN1_STRING *a, ASN1_CTX *c)
goto err;
}
if (!BUF_MEM_grow(&b,num+os->length))
if (!BUF_MEM_grow_clean(&b,num+os->length))
{
c->error=ERR_R_BUF_LIB;
goto err;

View File

@@ -166,7 +166,7 @@ static int asn1_d2i_read_bio(BIO *in, BUF_MEM **pb)
{
want-=(len-off);
if (!BUF_MEM_grow(b,len+want))
if (!BUF_MEM_grow_clean(b,len+want))
{
ASN1err(ASN1_F_ASN1_D2I_BIO,ERR_R_MALLOC_FAILURE);
goto err;
@@ -221,18 +221,23 @@ static int asn1_d2i_read_bio(BIO *in, BUF_MEM **pb)
if (want > (len-off))
{
want-=(len-off);
if (!BUF_MEM_grow(b,len+want))
if (!BUF_MEM_grow_clean(b,len+want))
{
ASN1err(ASN1_F_ASN1_D2I_BIO,ERR_R_MALLOC_FAILURE);
goto err;
}
i=BIO_read(in,&(b->data[len]),want);
if (i <= 0)
while (want > 0)
{
ASN1err(ASN1_F_ASN1_D2I_BIO,ASN1_R_NOT_ENOUGH_DATA);
goto err;
i=BIO_read(in,&(b->data[len]),want);
if (i <= 0)
{
ASN1err(ASN1_F_ASN1_D2I_BIO,
ASN1_R_NOT_ENOUGH_DATA);
goto err;
}
len+=i;
want -= i;
}
len+=i;
}
off+=(int)c.slen;
if (eos <= 0)

View File

@@ -183,8 +183,8 @@ int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a)
if ((a == NULL) || (a->data == NULL))
return(BIO_write(bp,"NULL",4));
i=i2t_ASN1_OBJECT(buf,80,a);
if (i > 80) i=80;
i=i2t_ASN1_OBJECT(buf,sizeof buf,a);
if (i > sizeof buf) i=sizeof buf;
BIO_write(bp,buf,i);
return(i);
}

View File

@@ -204,9 +204,9 @@ int ASN1_sign(int (*i2d)(), X509_ALGOR *algor1, X509_ALGOR *algor2,
err:
EVP_MD_CTX_cleanup(&ctx);
if (buf_in != NULL)
{ memset((char *)buf_in,0,(unsigned int)inl); OPENSSL_free(buf_in); }
{ OPENSSL_cleanse((char *)buf_in,(unsigned int)inl); OPENSSL_free(buf_in); }
if (buf_out != NULL)
{ memset((char *)buf_out,0,outll); OPENSSL_free(buf_out); }
{ OPENSSL_cleanse((char *)buf_out,outll); OPENSSL_free(buf_out); }
return(outl);
}
@@ -287,8 +287,8 @@ int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2,
err:
EVP_MD_CTX_cleanup(&ctx);
if (buf_in != NULL)
{ memset((char *)buf_in,0,(unsigned int)inl); OPENSSL_free(buf_in); }
{ OPENSSL_cleanse((char *)buf_in,(unsigned int)inl); OPENSSL_free(buf_in); }
if (buf_out != NULL)
{ memset((char *)buf_out,0,outll); OPENSSL_free(buf_out); }
{ OPENSSL_cleanse((char *)buf_out,outll); OPENSSL_free(buf_out); }
return(outl);
}

View File

@@ -63,6 +63,7 @@
#include <openssl/asn1.h>
#include "charmap.h"
#include "cryptlib.h"
/* ASN1_STRING_print_ex() and X509_NAME_print_ex().
* Enhanced string and name printing routines handling
@@ -114,14 +115,17 @@ typedef int char_io(void *arg, const void *buf, int len);
static int do_esc_char(unsigned long c, unsigned char flags, char *do_quotes, char_io *io_ch, void *arg)
{
unsigned char chflgs, chtmp;
char tmphex[11];
char tmphex[HEX_SIZE(long)+3];
if(c > 0xffffffffL)
return -1;
if(c > 0xffff) {
BIO_snprintf(tmphex, 11, "\\W%08lX", c);
BIO_snprintf(tmphex, sizeof tmphex, "\\W%08lX", c);
if(!io_ch(arg, tmphex, 10)) return -1;
return 10;
}
if(c > 0xff) {
BIO_snprintf(tmphex, 11, "\\U%04lX", c);
BIO_snprintf(tmphex, sizeof tmphex, "\\U%04lX", c);
if(!io_ch(arg, tmphex, 6)) return -1;
return 6;
}
@@ -195,7 +199,7 @@ static int do_buf(unsigned char *buf, int buflen,
if(type & BUF_TYPE_CONVUTF8) {
unsigned char utfbuf[6];
int utflen;
utflen = UTF8_putc(utfbuf, 6, c);
utflen = UTF8_putc(utfbuf, sizeof utfbuf, c);
for(i = 0; i < utflen; i++) {
/* We don't need to worry about setting orflags correctly
* because if utflen==1 its value will be correct anyway
@@ -461,7 +465,7 @@ static int do_name_ex(char_io *io_ch, void *arg, X509_NAME *n,
if(fn_opt != XN_FLAG_FN_NONE) {
int objlen, fld_len;
if((fn_opt == XN_FLAG_FN_OID) || (fn_nid==NID_undef) ) {
OBJ_obj2txt(objtmp, 80, fn, 1);
OBJ_obj2txt(objtmp, sizeof objtmp, fn, 1);
fld_len = 0; /* XXX: what should this be? */
objbuf = objtmp;
} else {
@@ -544,7 +548,7 @@ int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in)
{
ASN1_STRING stmp, *str = &stmp;
int mbflag, type, ret;
if(!*out || !in) return -1;
if(!in) return -1;
type = in->type;
if((type < 0) || (type > 30)) return -1;
mbflag = tag2nbyte[type];
@@ -553,6 +557,6 @@ int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in)
stmp.data = NULL;
ret = ASN1_mbstring_copy(&str, in->data, in->length, mbflag, B_ASN1_UTF8STRING);
if(ret < 0) return ret;
if(out) *out = stmp.data;
*out = stmp.data;
return stmp.length;
}

View File

@@ -152,7 +152,7 @@ ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZE
if (t->data[0] >= '5') strcpy(str, "19");
else strcpy(str, "20");
strcat(str, (char *)t->data);
BUF_strlcat(str, (char *)t->data, t->length+2);
return ret;
}

View File

@@ -62,7 +62,7 @@
int ASN1_TYPE_get(ASN1_TYPE *a)
{
if (a->value.ptr != NULL)
if ((a->value.ptr != NULL) || (a->type == V_ASN1_NULL))
return(a->type);
else
return(0);

View File

@@ -103,7 +103,7 @@ int ASN1_verify(int (*i2d)(), X509_ALGOR *a, ASN1_BIT_STRING *signature,
EVP_VerifyInit_ex(&ctx,type, NULL);
EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl);
memset(buf_in,0,(unsigned int)inl);
OPENSSL_cleanse(buf_in,(unsigned int)inl);
OPENSSL_free(buf_in);
if (EVP_VerifyFinal(&ctx,(unsigned char *)signature->data,
@@ -153,7 +153,7 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, ASN1_BIT_STRING *signat
EVP_VerifyInit_ex(&ctx,type, NULL);
EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl);
memset(buf_in,0,(unsigned int)inl);
OPENSSL_cleanse(buf_in,(unsigned int)inl);
OPENSSL_free(buf_in);
if (EVP_VerifyFinal(&ctx,(unsigned char *)signature->data,

View File

@@ -70,7 +70,6 @@
#include <openssl/symhacks.h>
#include <openssl/e_os2.h>
#include <openssl/ossl_typ.h>
#ifdef OPENSSL_BUILD_SHLIBCRYPTO

View File

@@ -57,6 +57,7 @@
*/
#include <stdio.h>
#include <limits.h>
#include "cryptlib.h"
#include <openssl/asn1.h>
#include <openssl/asn1_mac.h>
@@ -124,7 +125,7 @@ int ASN1_get_object(unsigned char **pp, long *plength, int *ptag, int *pclass,
(int)(omax+ *pp));
#endif
if (*plength > (omax - (*pp - p)))
if (*plength > (omax - (p - *pp)))
{
ASN1err(ASN1_F_ASN1_GET_OBJECT,ASN1_R_TOO_LONG);
/* Set this so that even if things are not long enough
@@ -141,7 +142,7 @@ err:
static int asn1_get_length(unsigned char **pp, int *inf, long *rl, int max)
{
unsigned char *p= *pp;
long ret=0;
unsigned long ret=0;
int i;
if (max-- < 1) return(0);
@@ -170,10 +171,10 @@ static int asn1_get_length(unsigned char **pp, int *inf, long *rl, int max)
else
ret=i;
}
if (ret < 0)
if (ret > LONG_MAX)
return 0;
*pp=p;
*rl=ret;
*rl=(long)ret;
return(1);
}

View File

@@ -79,12 +79,7 @@ static int asn1_print_info(BIO *bp, int tag, int xclass, int constructed,
else
p="prim: ";
if (BIO_write(bp,p,6) < 6) goto err;
if (indent)
{
if (indent > 128) indent=128;
memset(str,' ',indent);
if (BIO_write(bp,str,indent) < indent) goto err;
}
BIO_indent(bp,indent,128);
p=str;
if ((xclass & V_ASN1_PRIVATE) == V_ASN1_PRIVATE)

View File

@@ -169,8 +169,7 @@ int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size)
sp=(unsigned char *)OPENSSL_malloc(
(unsigned int)num+i*2);
else
sp=(unsigned char *)OPENSSL_realloc(s,
(unsigned int)num+i*2);
sp=OPENSSL_realloc_clean(s,slen,num+i*2);
if (sp == NULL)
{
ASN1err(ASN1_F_A2I_ASN1_INTEGER,ERR_R_MALLOC_FAILURE);

View File

@@ -187,7 +187,7 @@ int i2d_RSA_NET(const RSA *a, unsigned char **pp, int (*cb)(), int sgckey)
i2d_NETSCAPE_PKEY(pkey,&zz);
/* Wipe the private key encoding */
memset(pkey->private_key->data, 0, rsalen);
OPENSSL_cleanse(pkey->private_key->data, rsalen);
if (cb == NULL)
cb=EVP_read_pw_string;
@@ -206,7 +206,7 @@ int i2d_RSA_NET(const RSA *a, unsigned char **pp, int (*cb)(), int sgckey)
}
EVP_BytesToKey(EVP_rc4(),EVP_md5(),NULL,buf,i,1,key,NULL);
memset(buf,0,256);
OPENSSL_cleanse(buf,256);
/* Encrypt private key in place */
zz = enckey->enckey->digest->data;
@@ -294,7 +294,7 @@ static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os,
}
EVP_BytesToKey(EVP_rc4(),EVP_md5(),NULL,buf,i,1,key,NULL);
memset(buf,0,256);
OPENSSL_cleanse(buf,256);
EVP_CIPHER_CTX_init(&ctx);
EVP_DecryptInit_ex(&ctx,EVP_rc4(),NULL, key,NULL);

View File

@@ -68,8 +68,8 @@ static int pkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
if(operation == ASN1_OP_FREE_PRE) {
PKCS8_PRIV_KEY_INFO *key = (PKCS8_PRIV_KEY_INFO *)*pval;
if (key->pkey->value.octet_string)
memset(key->pkey->value.octet_string->data,
0, key->pkey->value.octet_string->length);
OPENSSL_cleanse(key->pkey->value.octet_string->data,
key->pkey->value.octet_string->length);
}
return 1;
}

View File

@@ -84,11 +84,11 @@ int X509_CRL_print_fp(FILE *fp, X509_CRL *x)
int X509_CRL_print(BIO *out, X509_CRL *x)
{
char buf[256];
STACK_OF(X509_REVOKED) *rev;
X509_REVOKED *r;
long l;
int i, n;
char *p;
BIO_printf(out, "Certificate Revocation List (CRL):\n");
l = X509_CRL_get_version(x);
@@ -96,8 +96,9 @@ int X509_CRL_print(BIO *out, X509_CRL *x)
i = OBJ_obj2nid(x->sig_alg->algorithm);
BIO_printf(out, "%8sSignature Algorithm: %s\n", "",
(i == NID_undef) ? "NONE" : OBJ_nid2ln(i));
X509_NAME_oneline(X509_CRL_get_issuer(x),buf,256);
BIO_printf(out,"%8sIssuer: %s\n","",buf);
p=X509_NAME_oneline(X509_CRL_get_issuer(x),NULL,0);
BIO_printf(out,"%8sIssuer: %s\n","",p);
OPENSSL_free(p);
BIO_printf(out,"%8sLast Update: ","");
ASN1_TIME_print(out,X509_CRL_get_lastUpdate(x));
BIO_printf(out,"\n%8sNext Update: ","");

View File

@@ -130,14 +130,10 @@ int RSA_print(BIO *bp, const RSA *x, int off)
goto err;
}
if (off)
{
if (off > 128) off=128;
memset(str,' ',off);
}
if (x->d != NULL)
{
if (off && (BIO_write(bp,str,off) <= 0)) goto err;
if(!BIO_indent(bp,off,128))
goto err;
if (BIO_printf(bp,"Private-Key: (%d bit)\n",BN_num_bits(x->n))
<= 0) goto err;
}
@@ -183,7 +179,6 @@ int DSA_print_fp(FILE *fp, const DSA *x, int off)
int DSA_print(BIO *bp, const DSA *x, int off)
{
char str[128];
unsigned char *m=NULL;
int ret=0;
size_t buf_len=0,i;
@@ -210,14 +205,10 @@ int DSA_print(BIO *bp, const DSA *x, int off)
goto err;
}
if (off)
{
if (off > 128) off=128;
memset(str,' ',off);
}
if (x->priv_key != NULL)
{
if (off && (BIO_write(bp,str,off) <= 0)) goto err;
if(!BIO_indent(bp,off,128))
goto err;
if (BIO_printf(bp,"Private-Key: (%d bit)\n",BN_num_bits(x->p))
<= 0) goto err;
}
@@ -240,17 +231,12 @@ static int print(BIO *bp, const char *number, BIGNUM *num, unsigned char *buf,
int off)
{
int n,i;
char str[128];
const char *neg;
if (num == NULL) return(1);
neg=(num->neg)?"-":"";
if (off)
{
if (off > 128) off=128;
memset(str,' ',off);
if (BIO_write(bp,str,off) <= 0) return(0);
}
if(!BIO_indent(bp,off,128))
return 0;
if (BN_num_bytes(num) <= BN_BYTES)
{
@@ -274,9 +260,9 @@ static int print(BIO *bp, const char *number, BIGNUM *num, unsigned char *buf,
{
if ((i%15) == 0)
{
str[0]='\n';
memset(&(str[1]),' ',off+4);
if (BIO_write(bp,str,off+1+4) <= 0) return(0);
if(BIO_puts(bp,"\n") <= 0
|| !BIO_indent(bp,off+4,128))
return 0;
}
if (BIO_printf(bp,"%02x%s",buf[i],((i+1) == n)?"":":")
<= 0) return(0);

View File

@@ -82,7 +82,7 @@ int X509_REQ_print_fp(FILE *fp, X509_REQ *x)
}
#endif
int X509_REQ_print(BIO *bp, X509_REQ *x)
int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflags, unsigned long cflag)
{
unsigned long l;
int i;
@@ -91,144 +91,186 @@ int X509_REQ_print(BIO *bp, X509_REQ *x)
EVP_PKEY *pkey;
STACK_OF(X509_ATTRIBUTE) *sk;
STACK_OF(X509_EXTENSION) *exts;
char str[128];
char mlch = ' ';
int nmindent = 0;
ri=x->req_info;
sprintf(str,"Certificate Request:\n");
if (BIO_puts(bp,str) <= 0) goto err;
sprintf(str,"%4sData:\n","");
if (BIO_puts(bp,str) <= 0) goto err;
neg=(ri->version->type == V_ASN1_NEG_INTEGER)?"-":"";
l=0;
for (i=0; i<ri->version->length; i++)
{ l<<=8; l+=ri->version->data[i]; }
sprintf(str,"%8sVersion: %s%lu (%s0x%lx)\n","",neg,l,neg,l);
if (BIO_puts(bp,str) <= 0) goto err;
sprintf(str,"%8sSubject: ","");
if (BIO_puts(bp,str) <= 0) goto err;
X509_NAME_print(bp,ri->subject,16);
sprintf(str,"\n%8sSubject Public Key Info:\n","");
if (BIO_puts(bp,str) <= 0) goto err;
i=OBJ_obj2nid(ri->pubkey->algor->algorithm);
sprintf(str,"%12sPublic Key Algorithm: %s\n","",
(i == NID_undef)?"UNKNOWN":OBJ_nid2ln(i));
if (BIO_puts(bp,str) <= 0) goto err;
pkey=X509_REQ_get_pubkey(x);
#ifndef OPENSSL_NO_RSA
if (pkey != NULL && pkey->type == EVP_PKEY_RSA)
{
BIO_printf(bp,"%12sRSA Public Key: (%d bit)\n","",
BN_num_bits(pkey->pkey.rsa->n));
RSA_print(bp,pkey->pkey.rsa,16);
}
else
#endif
#ifndef OPENSSL_NO_DSA
if (pkey != NULL && pkey->type == EVP_PKEY_DSA)
{
BIO_printf(bp,"%12sDSA Public Key:\n","");
DSA_print(bp,pkey->pkey.dsa,16);
}
else
#endif
BIO_printf(bp,"%12sUnknown Public Key:\n","");
if (pkey != NULL)
EVP_PKEY_free(pkey);
/* may not be */
sprintf(str,"%8sAttributes:\n","");
if (BIO_puts(bp,str) <= 0) goto err;
sk=x->req_info->attributes;
if (sk_X509_ATTRIBUTE_num(sk) == 0)
{
sprintf(str,"%12sa0:00\n","");
if (BIO_puts(bp,str) <= 0) goto err;
}
else
{
for (i=0; i<sk_X509_ATTRIBUTE_num(sk); i++)
{
ASN1_TYPE *at;
X509_ATTRIBUTE *a;
ASN1_BIT_STRING *bs=NULL;
ASN1_TYPE *t;
int j,type=0,count=1,ii=0;
a=sk_X509_ATTRIBUTE_value(sk,i);
if(X509_REQ_extension_nid(OBJ_obj2nid(a->object)))
continue;
sprintf(str,"%12s","");
if (BIO_puts(bp,str) <= 0) goto err;
if ((j=i2a_ASN1_OBJECT(bp,a->object)) > 0)
{
if (a->single)
{
t=a->value.single;
type=t->type;
bs=t->value.bit_string;
}
else
{
ii=0;
count=sk_ASN1_TYPE_num(a->value.set);
get_next:
at=sk_ASN1_TYPE_value(a->value.set,ii);
type=at->type;
bs=at->value.asn1_string;
}
}
for (j=25-j; j>0; j--)
if (BIO_write(bp," ",1) != 1) goto err;
if (BIO_puts(bp,":") <= 0) goto err;
if ( (type == V_ASN1_PRINTABLESTRING) ||
(type == V_ASN1_T61STRING) ||
(type == V_ASN1_IA5STRING))
{
if (BIO_write(bp,(char *)bs->data,bs->length)
!= bs->length)
goto err;
BIO_puts(bp,"\n");
}
else
{
BIO_puts(bp,"unable to print attribute\n");
}
if (++ii < count) goto get_next;
}
}
exts = X509_REQ_get_extensions(x);
if(exts) {
BIO_printf(bp,"%8sRequested Extensions:\n","");
for (i=0; i<sk_X509_EXTENSION_num(exts); i++) {
ASN1_OBJECT *obj;
X509_EXTENSION *ex;
int j;
ex=sk_X509_EXTENSION_value(exts, i);
if (BIO_printf(bp,"%12s","") <= 0) goto err;
obj=X509_EXTENSION_get_object(ex);
i2a_ASN1_OBJECT(bp,obj);
j=X509_EXTENSION_get_critical(ex);
if (BIO_printf(bp,": %s\n",j?"critical":"","") <= 0)
goto err;
if(!X509V3_EXT_print(bp, ex, 0, 16)) {
BIO_printf(bp, "%16s", "");
M_ASN1_OCTET_STRING_print(bp,ex->value);
}
if (BIO_write(bp,"\n",1) <= 0) goto err;
}
sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);
if((nmflags & XN_FLAG_SEP_MASK) == XN_FLAG_SEP_MULTILINE) {
mlch = '\n';
nmindent = 12;
}
if(!X509_signature_print(bp, x->sig_alg, x->signature)) goto err;
if(nmflags == X509_FLAG_COMPAT)
nmindent = 16;
ri=x->req_info;
if(!(cflag & X509_FLAG_NO_HEADER))
{
if (BIO_write(bp,"Certificate Request:\n",21) <= 0) goto err;
if (BIO_write(bp," Data:\n",10) <= 0) goto err;
}
if(!(cflag & X509_FLAG_NO_VERSION))
{
neg=(ri->version->type == V_ASN1_NEG_INTEGER)?"-":"";
l=0;
for (i=0; i<ri->version->length; i++)
{ l<<=8; l+=ri->version->data[i]; }
if(BIO_printf(bp,"%8sVersion: %s%lu (%s0x%lx)\n","",neg,l,neg,
l) <= 0)
goto err;
}
if(!(cflag & X509_FLAG_NO_SUBJECT))
{
if (BIO_printf(bp," Subject:%c",mlch) <= 0) goto err;
if (X509_NAME_print_ex(bp,ri->subject,nmindent, nmflags) < 0) goto err;
if (BIO_write(bp,"\n",1) <= 0) goto err;
}
if(!(cflag & X509_FLAG_NO_PUBKEY))
{
if (BIO_write(bp," Subject Public Key Info:\n",33) <= 0)
goto err;
if (BIO_printf(bp,"%12sPublic Key Algorithm: ","") <= 0)
goto err;
if (i2a_ASN1_OBJECT(bp, ri->pubkey->algor->algorithm) <= 0)
goto err;
if (BIO_puts(bp, "\n") <= 0)
goto err;
pkey=X509_REQ_get_pubkey(x);
if (pkey == NULL)
{
BIO_printf(bp,"%12sUnable to load Public Key\n","");
ERR_print_errors(bp);
}
else
#ifndef OPENSSL_NO_RSA
if (pkey->type == EVP_PKEY_RSA)
{
BIO_printf(bp,"%12sRSA Public Key: (%d bit)\n","",
BN_num_bits(pkey->pkey.rsa->n));
RSA_print(bp,pkey->pkey.rsa,16);
}
else
#endif
#ifndef OPENSSL_NO_DSA
if (pkey->type == EVP_PKEY_DSA)
{
BIO_printf(bp,"%12sDSA Public Key:\n","");
DSA_print(bp,pkey->pkey.dsa,16);
}
else
#endif
BIO_printf(bp,"%12sUnknown Public Key:\n","");
EVP_PKEY_free(pkey);
}
if(!(cflag & X509_FLAG_NO_ATTRIBUTES))
{
/* may not be */
if(BIO_printf(bp,"%8sAttributes:\n","") <= 0)
goto err;
sk=x->req_info->attributes;
if (sk_X509_ATTRIBUTE_num(sk) == 0)
{
if(BIO_printf(bp,"%12sa0:00\n","") <= 0)
goto err;
}
else
{
for (i=0; i<sk_X509_ATTRIBUTE_num(sk); i++)
{
ASN1_TYPE *at;
X509_ATTRIBUTE *a;
ASN1_BIT_STRING *bs=NULL;
ASN1_TYPE *t;
int j,type=0,count=1,ii=0;
a=sk_X509_ATTRIBUTE_value(sk,i);
if(X509_REQ_extension_nid(OBJ_obj2nid(a->object)))
continue;
if(BIO_printf(bp,"%12s","") <= 0)
goto err;
if ((j=i2a_ASN1_OBJECT(bp,a->object)) > 0)
{
if (a->single)
{
t=a->value.single;
type=t->type;
bs=t->value.bit_string;
}
else
{
ii=0;
count=sk_ASN1_TYPE_num(a->value.set);
get_next:
at=sk_ASN1_TYPE_value(a->value.set,ii);
type=at->type;
bs=at->value.asn1_string;
}
}
for (j=25-j; j>0; j--)
if (BIO_write(bp," ",1) != 1) goto err;
if (BIO_puts(bp,":") <= 0) goto err;
if ( (type == V_ASN1_PRINTABLESTRING) ||
(type == V_ASN1_T61STRING) ||
(type == V_ASN1_IA5STRING))
{
if (BIO_write(bp,(char *)bs->data,bs->length)
!= bs->length)
goto err;
BIO_puts(bp,"\n");
}
else
{
BIO_puts(bp,"unable to print attribute\n");
}
if (++ii < count) goto get_next;
}
}
}
if(!(cflag & X509_FLAG_NO_ATTRIBUTES))
{
exts = X509_REQ_get_extensions(x);
if(exts)
{
BIO_printf(bp,"%8sRequested Extensions:\n","");
for (i=0; i<sk_X509_EXTENSION_num(exts); i++)
{
ASN1_OBJECT *obj;
X509_EXTENSION *ex;
int j;
ex=sk_X509_EXTENSION_value(exts, i);
if (BIO_printf(bp,"%12s","") <= 0) goto err;
obj=X509_EXTENSION_get_object(ex);
i2a_ASN1_OBJECT(bp,obj);
j=X509_EXTENSION_get_critical(ex);
if (BIO_printf(bp,": %s\n",j?"critical":"","") <= 0)
goto err;
if(!X509V3_EXT_print(bp, ex, 0, 16))
{
BIO_printf(bp, "%16s", "");
M_ASN1_OCTET_STRING_print(bp,ex->value);
}
if (BIO_write(bp,"\n",1) <= 0) goto err;
}
sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);
}
}
if(!(cflag & X509_FLAG_NO_SIGDUMP))
{
if(!X509_signature_print(bp, x->sig_alg, x->signature)) goto err;
}
return(1);
err:
X509err(X509_F_X509_REQ_PRINT,ERR_R_BUF_LIB);
return(0);
}
int X509_REQ_print(BIO *bp, X509_REQ *x)
{
return X509_REQ_print_ex(bp, x, XN_FLAG_COMPAT, X509_FLAG_COMPAT);
}

View File

@@ -433,15 +433,17 @@ err:
int X509_NAME_print(BIO *bp, X509_NAME *name, int obase)
{
char *s,*c;
char *s,*c,*b;
int ret=0,l,ll,i,first=1;
char buf[256];
ll=80-2-obase;
s=X509_NAME_oneline(name,buf,256);
b=s=X509_NAME_oneline(name,NULL,0);
if (!*s)
{
OPENSSL_free(b);
return 1;
}
s++; /* skip the first slash */
l=ll;
@@ -497,6 +499,7 @@ int X509_NAME_print(BIO *bp, X509_NAME *name, int obase)
err:
X509err(X509_F_X509_NAME_PRINT,ERR_R_BUF_LIB);
}
OPENSSL_free(b);
return(ret);
}

View File

@@ -77,7 +77,7 @@ int X509_CERT_AUX_print(BIO *out, X509_CERT_AUX *aux, int indent)
for(i = 0; i < sk_ASN1_OBJECT_num(aux->trust); i++) {
if(!first) BIO_puts(out, ", ");
else first = 0;
OBJ_obj2txt(oidstr, 80,
OBJ_obj2txt(oidstr, sizeof oidstr,
sk_ASN1_OBJECT_value(aux->trust, i), 0);
BIO_puts(out, oidstr);
}
@@ -90,7 +90,7 @@ int X509_CERT_AUX_print(BIO *out, X509_CERT_AUX *aux, int indent)
for(i = 0; i < sk_ASN1_OBJECT_num(aux->reject); i++) {
if(!first) BIO_puts(out, ", ");
else first = 0;
OBJ_obj2txt(oidstr, 80,
OBJ_obj2txt(oidstr, sizeof oidstr,
sk_ASN1_OBJECT_value(aux->reject, i), 0);
BIO_puts(out, oidstr);
}

View File

@@ -664,7 +664,7 @@ static int asn1_d2i_ex_primitive(ASN1_VALUE **pval, unsigned char **in, long inl
if(!asn1_collect(&buf, &p, plen, inf, -1, V_ASN1_UNIVERSAL)) goto err;
len = buf.length;
/* Append a final null to string */
if(!BUF_MEM_grow(&buf, len + 1)) {
if(!BUF_MEM_grow_clean(&buf, len + 1)) {
ASN1err(ASN1_F_ASN1_D2I_EX_PRIMITIVE, ERR_R_MALLOC_FAILURE);
return 0;
}
@@ -857,7 +857,7 @@ static int collect_data(BUF_MEM *buf, unsigned char **p, long plen)
int len;
if(buf) {
len = buf->length;
if(!BUF_MEM_grow(buf, len + plen)) {
if(!BUF_MEM_grow_clean(buf, len + plen)) {
ASN1err(ASN1_F_COLLECT_DATA, ERR_R_MALLOC_FAILURE);
return 0;
}
@@ -913,10 +913,10 @@ static int asn1_check_tlen(long *olen, int *otag, unsigned char *oclass, char *i
ctx->ptag = ptag;
ctx->hdrlen = p - q;
ctx->valid = 1;
/* If definite length, length + header can't exceed total
* amount of data available.
/* If definite length, and no error, length +
* header can't exceed total amount of data available.
*/
if(!(i & 1) && ((plen + ctx->hdrlen) > len)) {
if(!(i & 0x81) && ((plen + ctx->hdrlen) > len)) {
ASN1err(ASN1_F_ASN1_CHECK_TLEN, ASN1_R_TOO_LONG);
asn1_tlc_clear(ctx);
return 0;

View File

@@ -206,7 +206,10 @@ void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
break;
case V_ASN1_BOOLEAN:
*(ASN1_BOOLEAN *)pval = it->size;
if (it)
*(ASN1_BOOLEAN *)pval = it->size;
else
*(ASN1_BOOLEAN *)pval = -1;
return;
case V_ASN1_NULL:

View File

@@ -305,7 +305,10 @@ int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
return 1;
case V_ASN1_BOOLEAN:
*(ASN1_BOOLEAN *)pval = it->size;
if (it)
*(ASN1_BOOLEAN *)pval = it->size;
else
*(ASN1_BOOLEAN *)pval = -1;
return 1;
case V_ASN1_NULL:

View File

@@ -186,7 +186,7 @@ if(*bool == -1) printf("BOOL MISSING\n");
char objbuf[80], *ln;
ln = OBJ_nid2ln(OBJ_obj2nid(fld));
if(!ln) ln = "";
OBJ_obj2txt(objbuf, 80, fld, 1);
OBJ_obj2txt(objbuf, sizeof objbuf, fld, 1);
BIO_printf(out, "%*s%s:%s (%s)", indent, "", "OBJECT", ln, objbuf);
} else {
BIO_printf(out, "%*s%s:", indent, "", name);

View File

@@ -96,7 +96,7 @@ lint:
lint -DLINT $(INCLUDES) $(SRC)>fluff
depend:
$(MAKEDEPEND) $(CFLAG) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
$(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
dclean:
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new

View File

@@ -63,6 +63,8 @@
#include <string.h>
#include <stdlib.h>
#include "../e_os.h"
#ifdef OPENSSL_NO_BF
int main(int argc, char *argv[])
{
@@ -275,7 +277,7 @@ int main(int argc, char *argv[])
else
ret=test();
exit(ret);
EXIT(ret);
return(0);
}
@@ -454,9 +456,9 @@ static int test(void)
len=strlen(cbc_data)+1;
BF_set_key(&key,16,cbc_key);
memset(cbc_in,0,40);
memset(cbc_out,0,40);
memcpy(iv,cbc_iv,8);
memset(cbc_in,0,sizeof cbc_in);
memset(cbc_out,0,sizeof cbc_out);
memcpy(iv,cbc_iv,sizeof iv);
BF_cbc_encrypt((unsigned char *)cbc_data,cbc_out,len,
&key,iv,BF_ENCRYPT);
if (memcmp(cbc_out,cbc_ok,32) != 0)

View File

@@ -78,7 +78,7 @@ lint:
lint -DLINT $(INCLUDES) $(SRC)>fluff
depend:
$(MAKEDEPEND) $(CFLAG) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
$(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
dclean:
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new

View File

@@ -109,7 +109,7 @@
* o ... (for OpenSSL)
*/
#if HAVE_LONG_DOUBLE
#ifdef HAVE_LONG_DOUBLE
#define LDOUBLE long double
#else
#define LDOUBLE double
@@ -483,7 +483,7 @@ fmtint(
{
int signvalue = 0;
unsigned LLONG uvalue;
char convert[20];
char convert[DECIMAL_SIZE(value)+1];
int place = 0;
int spadlen = 0;
int zpadlen = 0;
@@ -508,8 +508,8 @@ fmtint(
(caps ? "0123456789ABCDEF" : "0123456789abcdef")
[uvalue % (unsigned) base];
uvalue = (uvalue / (unsigned) base);
} while (uvalue && (place < 20));
if (place == 20)
} while (uvalue && (place < sizeof convert));
if (place == sizeof convert)
place--;
convert[place] = 0;
@@ -641,8 +641,8 @@ fmtfp(
(caps ? "0123456789ABCDEF"
: "0123456789abcdef")[intpart % 10];
intpart = (intpart / 10);
} while (intpart && (iplace < 20));
if (iplace == 20)
} while (intpart && (iplace < sizeof iplace));
if (iplace == sizeof iplace)
iplace--;
iconvert[iplace] = 0;
@@ -653,7 +653,7 @@ fmtfp(
: "0123456789abcdef")[fracpart % 10];
fracpart = (fracpart / 10);
} while (fplace < max);
if (fplace == 20)
if (fplace == sizeof fplace)
fplace--;
fconvert[fplace] = 0;

Some files were not shown because too many files have changed in this diff Show More