Commit graph

262 commits

Author SHA1 Message Date
Dr. Stephen Henson
744ecaa5b6 Avoid WIN32 signed/unsigned warnings. 2008-01-04 00:37:23 +00:00
Dr. Stephen Henson
eef0c1f34c Netware support.
Submitted by: Guenter Knauf <eflash@gmx.net>
2008-01-03 22:43:04 +00:00
Andy Polyakov
339a1820fd gmp engine was non-operational. 2007-12-04 20:28:52 +00:00
Dr. Stephen Henson
98057eba77 Submitted by: "Victor B. Wagner" <vitus@cryptocom.ru>
Update gost algorithm print routines.
2007-11-21 12:39:12 +00:00
Dr. Stephen Henson
097f9d8c52 Avoid warning. 2007-11-20 17:52:02 +00:00
Ben Laurie
10f0c85cfc Fix warnings. 2007-11-16 03:03:01 +00:00
Dr. Stephen Henson
37210fe7e2 GOST ENGINE information. 2007-10-26 23:50:40 +00:00
Dr. Stephen Henson
0e1dba934f 1. Changes for s_client.c to make it return non-zero exit code in case
of handshake failure

2. Changes to x509_certificate_type function (crypto/x509/x509type.c) to
make it recognize GOST certificates as EVP_PKT_SIGN|EVP_PKT_EXCH
(required for s3_srvr to accept GOST client certificates).

3. Changes to EVP
	- adding of function EVP_PKEY_CTX_get0_peerkey
	- Make function EVP_PKEY_derive_set_peerkey work for context with
	  ENCRYPT operation, because we use peerkey field in the context to
	  pass non-ephemeral secret key to GOST encrypt operation.
	- added EVP_PKEY_CTRL_SET_IV control command. It is really
	  GOST-specific, but it is used in SSL code, so it has to go
	  in some header file, available during libssl compilation

4. Fix to HMAC to avoid call of OPENSSL_cleanse on undefined data

5. Include des.h if KSSL_DEBUG is defined into some libssl files, to
  make debugging output which depends on constants defined there, work
  and other KSSL_DEBUG output fixes

6. Declaration of real GOST ciphersuites, two authentication methods
   SSL_aGOST94 and SSL_aGOST2001 and one key exchange method SSL_kGOST

7. Implementation  of these methods.

8. Support for sending unsolicited serverhello extension if GOST
  ciphersuite is selected. It is require for interoperability with
  CryptoPro CSP 3.0 and 3.6 and controlled by
  SSL_OP_CRYPTOPRO_TLSEXT_BUG constant.
  This constant is added to SSL_OP_ALL, because it does nothing, if
  non-GOST ciphersuite is selected, and all implementation of GOST
  include compatibility with CryptoPro.

9. Support for CertificateVerify message without length field. It is
   another CryptoPro bug, but support is made unconditional, because it
   does no harm for draft-conforming implementation.

10. In tls1_mac extra copy of stream mac context is no more done.
  When I've written currently commited code I haven't read
  EVP_DigestSignFinal manual carefully enough and haven't noticed that
  it does an internal digest ctx copying.

This implementation was tested against
1. CryptoPro CSP 3.6 client and server
2. Cryptopro CSP 3.0 server
2007-10-26 12:06:36 +00:00
Bodo Möller
1b827d7b6f Clean up error codes a bit.
(engines/ccgost/ remains utter chaos, though; "make errors" is not happy.)
2007-09-19 00:58:58 +00:00
Dr. Stephen Henson
3c07d3a3d3 Finish gcc 4.2 changes. 2007-06-07 13:14:42 +00:00
Dr. Stephen Henson
0aa08a2e34 Fix for GOST engine on platforms where sizeof(size_t) != sizeof(int). 2007-05-31 12:32:27 +00:00
Dr. Stephen Henson
7b8b797375 Revert broken change to ccgost.
Initialize context properly for HMAC pkey method.
2007-05-22 12:58:39 +00:00
Dr. Stephen Henson
9aba74e55a Fix warning and back out bad modification. 2007-05-21 12:16:36 +00:00
Andy Polyakov
61775daf00 Padlock engine fails to compile with -O0 -fPIC. 2007-05-20 07:13:45 +00:00
Dr. Stephen Henson
ec06417d52 Updated GOST MAC support.
Submitted by: vitus@cryptocom.ru
2007-05-18 15:55:55 +00:00
Dr. Stephen Henson
a4346646f1 Initial GOST MAC support. Not fully working yet... 2007-05-17 17:44:09 +00:00
Ben Laurie
38e952e8ae Missing config file. 2007-04-05 16:57:07 +00:00
Ben Laurie
2f877235a3 Missing return on error. Coverity ID 115. 2007-04-04 14:38:59 +00:00
Dr. Stephen Henson
9981a51e42 Stage 1 GOST ciphersuite support.
Submitted by: ran@cryptocom.ru
Reviewed by: steve@openssl.org
2007-03-23 17:04:05 +00:00
Richard Levitte
ebb326afe6 Synchronise the VMS build with recent movements in the Unix build. 2007-03-23 09:36:33 +00:00
Dr. Stephen Henson
53ca4761cc PR: 1483
Add support for GOST 28147-89 in Gost ENGINE.
2007-02-09 19:43:04 +00:00
Andy Polyakov
00b4e083fd Move eng_padlock.c to ./engines.
Submitted by: Michal Ludvig <michal@logix.cz>
2006-12-29 10:42:24 +00:00
Richard Levitte
ea46f5e0e5 Replace strdup() with BUF_strdup(). 2006-12-25 09:43:46 +00:00
Nils Larsch
afda1385bd use OPENSSL_NO_DYNAMIC_ENGINE macro, disable debug messages
PR: 1440
Submitted by: Victor B. Wagner" <vitus@cryptocom.ru>
2006-12-22 09:21:29 +00:00
Dr. Stephen Henson
4d7aff707e Update dependencies. 2006-11-30 13:41:47 +00:00
Dr. Stephen Henson
8bd11f3ec2 Add .cvsignore 2006-11-21 21:37:41 +00:00
Ben Laurie
84948b39df Fix various warnings. 2006-11-08 09:45:12 +00:00
Andy Polyakov
d7917c584a Yet another mingw warning. 2006-10-23 07:45:52 +00:00
Andy Polyakov
1e7b6c029c Avoid application relink on every make invocation. 2006-10-20 11:23:35 +00:00
Dr. Stephen Henson
6ec6cfc767 Updated file. 2006-09-21 16:19:10 +00:00
Dr. Stephen Henson
44181ea836 Add missing prototype. Fix various warnings (C++ comments, ; outside function). 2006-09-21 13:24:46 +00:00
Dr. Stephen Henson
ffa5ebf3f4 Compile in gost engine. 2006-09-21 13:07:57 +00:00
Dr. Stephen Henson
926c41bd29 Updated version of gost engine. 2006-09-21 13:04:43 +00:00
Dr. Stephen Henson
a04549cc75 GOST public key algorithm ENGINE donated to the OpenSSL by Cryptocom.
Very early version, doesn't do much yet, not even added to the build system.
2006-09-17 13:00:18 +00:00
Ulf Möller
4700aea951 Add BeOS support.
PR: 1312
Submitted by: Oliver Tappe <zooey@hirschkaefer.de>
Reviewed by: Ulf Moeller
2006-04-11 21:34:21 +00:00
Dr. Stephen Henson
4f59b6587f Implementation of pkey_rsa_verify. Some constification. 2006-04-10 01:06:17 +00:00
Nils Larsch
33af4421f2 remove unnecessary code 2006-03-18 14:22:20 +00:00
Nils Larsch
67b6f1ca88 fix problems found by coverity: remove useless code 2006-03-15 17:45:43 +00:00
Ulf Möller
3b408d83fe make update 2006-02-12 23:21:56 +00:00
Ulf Möller
c7235be6e3 RFC 3161 compliant time stamp request creation, response generation
and response verification.

Submitted by: Zoltan Glozik <zglozik@opentsa.org>
Reviewed by: Ulf Moeller
2006-02-12 23:11:56 +00:00
Dr. Stephen Henson
15ac971681 Update filenames in makefiles. 2006-02-04 01:45:59 +00:00
Nils Larsch
8c5a2bd6bb add additional checks + cleanup
Submitted by: David Hartman <david_hartman@symantec.com>
2006-01-29 23:12:22 +00:00
Bodo Möller
739a543ea8 Some error code cleanups (SSL lib. used SSL_R_... codes reserved for alerts) 2006-01-08 19:42:30 +00:00
Andy Polyakov
755c5b3330 Fix install problems on MacOS X and HP-UX.
PR: 1218,1185
2005-10-25 21:58:59 +00:00
Geoff Thorpe
f920c5b590 Fix signed/unsigned warnings. 2005-07-26 04:25:05 +00:00
Nils Larsch
3eeaab4bed make
./configure no-deprecated [no-dsa] [no-dh] [no-ec] [no-rsa]
    	make depend all test
work again

PR: 1159
2005-07-16 12:37:36 +00:00
Ben Laurie
45d8574b93 Fix warnings. 2005-06-29 10:25:06 +00:00
Andy Polyakov
02c31fa461 Jumbo Makfiles update.
- eliminate ambiguities between GNU-ish and SysV-ish make flavors;
- switch [back] to -e;
- fold/unify rules;

This is follow-up to the patch introducing common BUILDENV. Idea is
to collect as much parameters in $(TOP) as possible and "strip" lower
Makefiles for most variables [and thus makes them more readable].
2005-06-23 00:03:26 +00:00
Nils Larsch
edb0600583 clear dso pointer in case of an error
PR: 816
2005-06-17 21:26:36 +00:00
Nils Larsch
ac86d923fc update for the cswift engine:
- fix the problem described in bug report 825
- fix a segfault when the engine fails to initialize
- let the engine switch to software when keysize > 2048

PR: 825, 826
Submitted by: Frédéric Giudicelli
2005-06-17 20:27:41 +00:00
Richard Levitte
2333d65880 Change all relevant occurences of 'ncipher' to 'chil'. That's what nCipher always wanted... 2005-05-30 05:17:02 +00:00
Geoff Thorpe
a2c32e2d7f Change the source and output paths for 'chil' and '4758cca' engines so that
dynamic loading is consistent with respect to engine ids.
2005-05-29 19:14:21 +00:00
Geoff Thorpe
60192e96b8 Handle differences between engine IDs and their dynamic library names (and
source files, for that matter) by tolerating the alternatives. It would be
preferable to also change the generated shared library names, but that will
be taken up separately.
2005-05-25 02:54:28 +00:00
Richard Levitte
447aa49007 Patches for Cygwin, provided by Corinna Vinschen <vinschen@redhat.com> 2005-05-21 16:41:34 +00:00
Andy Polyakov
ce92b6eb9c Further BUILDENV refinement, further fool-proofing of Makefiles and
[most importantly] put back dependencies accidentaly eliminated in
check-in #13342.
2005-05-16 16:55:47 +00:00
Andy Polyakov
734540f887 Consolidate BUILDENV [idea is to keep all variables in one place]. 2005-05-15 23:53:34 +00:00
Andy Polyakov
81a86fcf17 Fool-proofing Makefiles 2005-05-15 22:23:26 +00:00
Bodo Möller
fbeaa3c47d Update util/ck_errf.pl script, and have it run automatically
during "make errors" and thus during "make update".

Fix lots of bugs that util/ck_errf.pl can detect automatically.
Various others of these are still left to fix; that's why
"make update" will complain loudly when run now.
2005-05-09 00:27:37 +00:00
Andy Polyakov
4c3a2d64e4 Fold rules in test/Makefiles [from stable]. 2005-04-30 21:39:39 +00:00
Richard Levitte
4bb61becbb Add emacs cache files to .cvsignore. 2005-04-11 14:17:07 +00:00
Ben Laurie
41a15c4f0f Give everything prototypes (well, everything that's actually used). 2005-03-31 09:26:39 +00:00
Ben Laurie
42ba5d2329 Blow away Makefile.ssl. 2005-03-30 13:05:57 +00:00
Geoff Thorpe
9081980565 This fixes the installation target for dynamic engines, which was trying to
install to a different location than it had created. (BTW, VMS will need a
matching fix in eng_list.c.) Note, these aren't ssl-specific, so I'm
putting "engines/" into the libs directory rather than at the "--prefix"
level or inside "ssl/".
2004-06-01 03:18:58 +00:00
Andy Polyakov
393b704d28 Minimal work-around for ./engine shared builds. "Minimal" means that I
think that proper Makefile clean-up is required.
2004-05-31 22:29:26 +00:00
Geoff Thorpe
f15390bdb4 The inclusion of bn.h from the engine.h API header has been deprecated, so
the engine implementations need to include bn.h to manipulate bignums.
2004-05-17 18:56:15 +00:00
Geoff Thorpe
c57bc2dc51 make update 2004-04-19 18:33:41 +00:00
Geoff Thorpe
28ded31b97 More updates for the header cleanups (and apologies, again, for not having
consolidated these prior to committing).
2004-04-19 18:30:41 +00:00
Geoff Thorpe
3a87a9b9db Reduce header interdependencies, initially in engine.h (the rest of the
changes are the fallout). As this could break source code that doesn't
directly include headers for interfaces it uses, changes to recursive
includes are covered by the OPENSSL_NO_DEPRECATED symbol. It's better to
define this when building and using openssl, and then adapt code where
necessary - this is how to stay current. However the mechanism exists for
the lethargic.
2004-04-19 17:46:04 +00:00
Geoff Thorpe
ea77fc3380 ... and this should likewise fix up those RSA implementations that weren't
already built and tested.
2004-03-25 02:55:17 +00:00
Geoff Thorpe
46ef873f0b By adding a BN_CTX parameter to the 'rsa_mod_exp' callback, private key
operations no longer require two distinct BN_CTX structures. This may put
more "strain" on the current BN_CTX implementation (which has a fixed limit
to the number of variables it will hold), but so far this limit is not
triggered by any of the tests pass and I will be changing BN_CTX in the
near future to avoid this problem anyway.

This also changes the default RSA implementation code to use the BN_CTX in
favour of initialising some of its variables locally in each function.
2004-03-25 02:52:04 +00:00
Richard Levitte
4d8743f490 Netware-specific changes,
PR: 780
Submitted by: Verdon Walker <VWalker@novell.com>
Reviewed by: Richard Levitte
2003-11-28 13:10:58 +00:00
Geoff Thorpe
d8ec0dcf45 Avoid some shadowed variable names.
Submitted by: Nils Larsch
2003-11-04 00:51:32 +00:00
Geoff Thorpe
2754597013 A general spring-cleaning (in autumn) to fix up signed/unsigned warnings.
I have tried to convert 'len' type variable declarations to unsigned as a
means to address these warnings when appropriate, but when in doubt I have
used casts in the comparisons instead. The better solution (that would get
us all lynched by API users) would be to go through and convert all the
function prototypes and structure definitions to use unsigned variables
except when signed is necessary. The proliferation of (signed) "int" for
strictly non-negative uses is unfortunate.
2003-10-29 20:24:15 +00:00
Richard Levitte
a99ce1a574 Conform with the standard prototype for engine control functions. 2003-06-26 07:10:10 +00:00
Richard Levitte
98cec7fc7b make update 2003-06-11 22:27:19 +00:00
Geoff Thorpe
dcfb57c736 This memset() in the ubsec ENGINE is a bug. Zeroing out the result array
should not be necessary in any case, but more importantly the result and
input BIGNUMs could be the same, in which case this is clearly a problem.

Submitted by: Jonathan Hersch
Reviewed by: Joe Orton
Approved by: Geoff Thorpe
2003-06-06 17:51:34 +00:00
Richard Levitte
a1d57849b3 make update 2003-01-30 17:53:02 +00:00
Geoff Thorpe
a85bef1899 Commit a slightly modified version of an old experiment to do RSA private
key operations using the GMP library. The default is not to build (or use)
this code unless OPENSSL_USE_GMP is defined (because it will impose header
and linker dependencies that might need specifying too).
2003-01-30 15:43:07 +00:00
Richard Levitte
0bdd2da5d2 Ingore the correct flag file. 2003-01-16 21:36:17 +00:00
Geoff Thorpe
0e4aa0d2d2 As with RSA, which was modified recently, this change makes it possible to
override key-generation implementations by placing handlers in the methods
for DSA and DH. Also, parameter generation for DSA and DH is possible by
another new handler for each method.
2003-01-15 02:01:55 +00:00
Richard Levitte
448666239c Name the flag file correctly 2003-01-10 16:04:07 +00:00
Geoff Thorpe
4ebb5293fc RSA_METHOD now supports key-generation, but (for now) none of these
ENGINEs implement it.
2003-01-07 05:53:58 +00:00
Andy Polyakov
97e2e71ef9 HP/UX 11i make gets upset by this line containing nothing but a Tab 2003-01-03 10:32:04 +00:00
Richard Levitte
ad492c3601 Link engines against libcrypto, even when a TCP/IP implementation is
specified...
2003-01-02 00:26:01 +00:00
Richard Levitte
5e42f9ab46 make update 2002-12-29 01:38:15 +00:00
Richard Levitte
30c08f2e3d Update the make system for installations:
- define a HERE variable to indicate where the source tree is (used
  very little right now)
- make more use of copying and making attribute changes to {file}.new,
  and then move it to {file}
- use 'mv -f' to avoid all those questions to the user when the file
  in question doesn't have write attributes for that user.
2002-12-15 05:59:13 +00:00
Richard Levitte
1c24347062 Declare another general file. 2002-12-05 01:42:14 +00:00
Richard Levitte
38d6e4bb50 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:56:58 +00:00
Richard Levitte
ced621e3c2 PR: 381 2002-12-05 00:05:48 +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
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
8f797f14b8 When build as dynamic engines, the loading functions should be defined
static.
2002-11-13 15:30:25 +00:00
Richard Levitte
892e9625d3 Stupid bug fixes. I've forgotten my DCL... 2002-11-06 17:27:11 +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
Geoff Thorpe
b76d66fbf6 Another ENGINE implementation dependant on string.h. 2002-10-18 19:23:27 +00:00
Geoff Thorpe
f6661d391c The loop variable is 'l', not 'i'. 2002-10-18 19:02:18 +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
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
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
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
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
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