aboutsummaryrefslogtreecommitdiff
path: root/engines
AgeCommit message (Collapse)AuthorFilesLines
2016-02-29GH758: e_dasync_err.h: honor no-filenames optionViktor Szakats1-1/+1
Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-29Refactor the async wait fd logicMatt Caswell1-3/+74
Implementation experience has shown that the original plan for async wait fds was too simplistic. Originally the async logic created a pipe internally and user/engine code could then get access to it via API calls. It is more flexible if the engine is able to create its own fd and provide it to the async code. Another issue is that there can be a lot of churn in the fd value within the context of (say) a single SSL connection leading to continually adding and removing fds from (say) epoll. It is better if we can provide some stability of the fd value across a whole SSL connection. This is problematic because an engine has no concept of an SSL connection. This commit refactors things to introduce an ASYNC_WAIT_CTX which acts as a proxy for an SSL connection down at the engine layer. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-29Add forgotten change of check of disabled-dynamic-engineRichard Levitte1-1/+1
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-26Remove Ubsec engineMatt Caswell6-1419/+0
The ubsec engine is now considered obsolete and therefore has been removed. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-20Build dynamic engines even if configured "no-shared"Richard Levitte2-2/+2
Until now, the engines in engines/ were only built as dynamicaly loadable ones if shared libraries were built. We not dissociate the two and can build dynamicaly loadable engines even if we only build static libcrypto and libssl. This is controlled with the option (enable|disable|no)-static-engine, defaulting to no-static-engine. Note that the engines in crypto/engine/ (dynamic and cryptodev) will always be built into libcrypto. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-20Always build library object files with shared library cflagsRichard Levitte1-1/+1
This takes us away from the idea that we know exactly how our static libraries are going to get used. Instead, we make them available to build shareable things with, be it other shared libraries or DSOs. On the other hand, we also have greater control of when the shared library cflags. They will never be used with object files meant got binaries, such as apps/openssl or test/test*. With unified, we take this a bit further and prepare for having to deal with extra cflags specifically to be used with DSOs (dynamic engines), libraries and binaries (applications). Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-19Big rename fest of engine DSO names, from libFOO.so to FOO.soRichard Levitte2-34/+25
The engine DSOs were named as if they were shared libraries, and could end up having all sorts of fancy names: Cygwin: cygFOO.dll Mingw: FOOeay32.dll Unix: libFOO.so / libFOO.sl / libFOO.dylib / ... This may be confusing, since they look like libraries one should link with at link time, when they're just DSOs. It's therefore time to rename them, and do it consistently on all platforms: Cygwin & Mingw: FOO.dll Unix: FOO.{so,sl,dylib,...} Interestingly enough, the MSVC and VMS builds always did it this way. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-19Big rename fest in makefile.shared: link_a / link_o -> link_shlib / link_dsoRichard Levitte1-1/+1
Originally, the Makefile.shared targets described what they used as input for a shared object, be it a shared library or a DSO. It turned out, however, that the link_o targets were used exclusively for engines and the link_a targets were for libcrypto and libssl. This rename fest turns and indication on the kind of input the targets get to the intention with using them. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-18Remove all special make depend flags, as well as OPENSSL_DOING_MAKEDEPENDRichard Levitte1-1/+1
All those flags existed because we had all the dependencies versioned in the repository, and wanted to have it be consistent, no matter what the local configuration was. Now that the dependencies are gone from the versioned Makefile.ins, it makes much more sense to use the exact same flags as when compiling the object files. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-17Finish 02f7114a7fbb3f3ac171bae87be8c13bc69e4005David Woodhouse4-4/+4
Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-02-13Pass $(CC) to perlasm scripts via the environmentRichard Levitte1-2/+2
It seems that on some platforms, the perlasm scripts call the C compiler for certain checks. These scripts need the environment variable CC to have the C compiler command. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-12Rename INSTALL_PREFIX to DESTDIR, remove option --install_prefixRichard Levitte1-5/+5
INSTALL_PREFIX is a confusing name, as there's also --prefix. Instead, tag along with the rest of the open source world and adopt the Makefile variable DESTDIR to designate the desired staging directory. The Configure option --install_prefix is removed, the only way to designate a staging directory is with the Makefile variable (this is also implemented for VMS' descrip.mms et al). Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-11Test for and use AES CSP for RSA if present.Dr Stephen Henson1-2/+22
Some keys are attached to the full RSA CSP which doesn't support SHA2 algorithms: uses the AES CSP if present. Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-02-10clean away old VMS cruftRichard Levitte5-1130/+0
The old building scripts get removed, they are hopelessly gone in bit rot by now. Also remove the old symbol hacks. They were needed needed to shorten some names to 31 characters, and to resolve other symbol clashes. Because we now compile with /NAMES=(AS_IS,SHORTENED), this is no longer required. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-10unified build scheme: add a "unified" template for Unix MakefileRichard Levitte1-0/+7
This also adds all the raw sections needed for some files. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-10Simplify the specification of include dirs in the build dirRichard Levitte1-5/+5
In build.info files, make the include directory in the build directory absolute, or Configure will think it should be added to the source directory top. Configure will turn it into a relative path if possible. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-09Auto init/deinit libcryptoMatt Caswell4-6/+11
This builds on the previous commit to auto initialise/deinitialise libcrypto. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-06Enhance and clear the support of linker flagsRichard Levitte1-2/+2
Some time ago, we had a ex_libs configuration setting that could be divided into lflags and ex_libs. These got divided in two settings, lflags and ex_libs, and the former was interpreted to be general linking flags. Unfortunately, that conclusion wasn't entirely accurate. Most of those linking were meant to end up in a very precise position on the linking command line, just before the spec of libraries the linking depends on. Back to the drawing board, we're diving things further, now having lflags, which are linking flags that aren't depending on command line position, plib_lflags, which are linking flags that should show up just before the spec of libraries to depend on, and finally ex_libs, which is the spec of extra libraries to depend on. Also, documentation is changed in Configurations/README. This was previously forgotten. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2016-02-01unified build scheme: add build.info filesRichard Levitte1-0/+22
Now that we have the foundation for the "unified" build scheme in place, we add build.info files. They have been generated from the Makefiles in the same directories. Things that are platform specific will appear in later commits. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-29Templatize util/domdRich Salz1-1/+1
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-29Configure et al: split up the lflags configuration item into twoRichard Levitte1-1/+1
The lflags configuration had a weird syntax with a % as separator. If it was present, whatever came before ended up as PEX_LIBS in Makefile (usually, this is LDFLAGS), while whatever came after ended up as EX_LIBS. This change splits that item into lflags and ex_libs, making their use more explicit. Also, PEX_LIBS in all the Makefiles are renamed to LDFLAGS. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-26Remove /* foo.c */ commentsRich Salz10-10/+0
This was done by the following find . -name '*.[ch]' | /tmp/pl where /tmp/pl is the following three-line script: print unless $. == 1 && m@/\* .*\.[ch] \*/@; close ARGV if eof; # Close file to reset $. And then some hand-editing of other files. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-25Small Makefile.in cleanupRichard Levitte1-2/+2
engines_obj changed name to padlock_obj in Configure. We need to do the corresponding ENGINES_ASM_OBJ -> PADLOCK_ASM_OBJ in appropriate Makefile.ins. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-20Remove update tagsRich Salz1-7/+2
Also remove depend/local_depend. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-19Remove the GOST engineMatt Caswell26-5651/+2
The GOST engine is now out of date and is removed by this commit. An up to date GOST engine is now being maintained in an external repository. See: https://wiki.openssl.org/index.php/Binaries Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-17Remove some old makefile targetsRich Salz2-26/+0
Remove lint, tags, dclean, tests. This is prep for a new makedepend scheme. This is temporary pending unified makefile, and might help it. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-15free up gost ciphersDr. Stephen Henson3-0/+10
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-12Move Makefiles to Makefile.inRich Salz3-322/+87
Create Makefile's from Makefile.in Rename Makefile.org to Makefile.in Rename Makefiles to Makefile.in Address review feedback from Viktor and Richard Reviewed-by: Viktor Dukhovni <viktor@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-12make updateRichard Levitte2-100/+132
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-12Adapt all engines that need it to opaque EVP_CIPHERRichard Levitte5-114/+164
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-12Adapt cipher implementations to opaque EVP_CIPHER_CTXRichard Levitte3-75/+93
Note: there's a larger number of implementations in crypto/evp/ that aren't affected because they include evp_locl.h. They will be handled in a separate commit. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-07mem functions cleanupRich Salz1-7/+8
Only two macros CRYPTO_MDEBUG and CRYPTO_MDEBUG_ABORT to control this. If CRYPTO_MDEBUG is not set, #ifdef out the whole debug machinery. (Thanks to Jakob Bohm for the suggestion!) Make the "change wrapper functions" be the only paradigm. Wrote documentation! Format the 'set func' functions so their paramlists are legible. Format some multi-line comments. Remove ability to get/set the "memory debug" functions at runtme. Remove MemCheck_* and CRYPTO_malloc_debug_init macros. Add CRYPTO_mem_debug(int flag) function. Add test/memleaktest. Rename CRYPTO_malloc_init to OPENSSL_malloc_init; remove needless calls. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-12-18Remove the "eay" c-file-style indicatorsRichard Levitte1-1/+1
Since we don't use the eay style any more, there's no point tryint to tell emacs to use it. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-12-16Rename some BUF_xxx to OPENSSL_xxxRich Salz4-7/+7
Rename BUF_{strdup,strlcat,strlcpy,memdup,strndup,strnlen} to OPENSSL_{strdup,strlcat,strlcpy,memdup,strndup,strnlen} Add #define's for the old names. Add CRYPTO_{memdup,strndup}, called by OPENSSL_{memdup,strndup} macros. Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-12-15Remove GMP engine.Rich Salz5-723/+4
Reviewed-by: Ben Laurie <ben@openssl.org>
2015-12-09make updateDr. Stephen Henson2-25/+10
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-12-09remove ecdsa.h header references.Dr. Stephen Henson1-1/+1
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-12-07Adapt all engines that add new EVP_MDsRichard Levitte7-137/+292
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-12-07Adjust all accesses to EVP_MD_CTX to use accessor functions.Richard Levitte5-21/+23
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-12-02Remove RSA_FLAG_SIGN_VER flag.Dr. Stephen Henson1-1/+1
Remove RSA_FLAG_SIGN_VER: this was origininally used to retain binary compatibility after RSA_METHOD was extended to include rsa_sign and rsa_verify fields. It is no longer needed. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-12-02Remove legacy sign/verify from EVP_MD.Dr. Stephen Henson4-18/+6
Remove sign/verify and required_pkey_type fields of EVP_MD: these are a legacy from when digests were linked to public key types. All signing is now handled by the corresponding EVP_PKEY_METHOD. Only allow supported digest types in RSA EVP_PKEY_METHOD: other algorithms already block unsupported types. Remove now obsolete EVP_dss1() and EVP_ecdsa(). Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-11-22Update dasync to use size_t for the sha1 updateKurt Roeckx1-2/+2
Reviewed-by: Matt Caswell <matt@openssl.org> MR #1350
2015-11-20Rename some daysnc functions for consistencyMatt Caswell1-11/+11
For some reason the dasync sha1 functions did not start with the dasync prefix like all of the other functions do. Changed for consistency. Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-11-20Initial Async notify code changesMatt Caswell1-11/+28
Initial API implemented for notifying applications that an ASYNC_JOB has completed. Currently only s_server is using this. The Dummy Async engine "cheats" in that it notifies that it has completed *before* it pauses the job. A normal async engine would not do that. Only the posix version of this has been implemented so far, so it will probably fail to compile on Windows at the moment. Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-11-20Add the Dummy Async engine (dasync)Matt Caswell5-3/+577
This engine is for developers of async aware applications. It simulates asynchronous activity with external hardware. This initial version supports SHA1 and RSA. Certain operations using those algorithms have async job "pauses" in them - using the new libcrypto async capability. Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-11-09Continue malloc standardisation in enginesMatt Caswell6-21/+26
Continuing from previous work standardise use of malloc in the engine code. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2015-10-30Replace "SSLeay" in API with OpenSSLRich Salz4-10/+10
All instances of SSLeay (any combination of case) were replaced with the case-equivalent OpenSSL. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-10-15Remove Obsolete enginesMatt Caswell31-7761/+6
There are a number of engines in the OpenSSL source code which are now obsolete. The following engines have been removed: 4758cca, aep, atalla, cswift, nuron, sureware. Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-09-29engine/e_capi.c: fix various warnings.Andy Polyakov1-16/+22
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-09-29Fix prototypes in e_ossttest.c.Andy Polyakov1-8/+8
Problem was exposed in mingw64 build, or in other words on P64 platform. Reviewed-by: Rich Salz <rsalz@openssl.org>