Commit Graph

856 Commits

Author SHA1 Message Date
Nicolas Williams
a9887a843f cf/crypto.m4: use AC_DEFINE() for hcrypto provider 2016-04-19 13:24:36 -05:00
Nicolas Williams
fca9bc45e2 Add --with-hcrypto-default-backend 2016-04-15 00:16:17 -05:00
Nicolas Williams
490337f4f9 Make OpenSSL an hcrypto backend proper
This adds a new backend for libhcrypto: the OpenSSL backend.

Now libhcrypto has these backends:

 - hcrypto itself (i.e., the algorithms coded in lib/hcrypto)
 - Common Crypto (OS X)
 - PKCS#11 (specifically for Solaris, but not Solaris-specific)
 - Windows CNG (Windows)
 - OpenSSL (generic)

The ./configure --with-openssl=... option no longer disables the use of
hcrypto.  Instead it enables the use of OpenSSL as a (and the default)
backend in libhcrypto.  The libhcrypto framework is now always used.

OpenSSL should no longer be used directly within Heimdal, except in the
OpenSSL hcrypto backend itself, and files where elliptic curve (EC)
crypto is needed.

Because libhcrypto's EC support is incomplete, we can only use OpenSSL
for EC.  Currently that means separating all EC-using code so that it
does not use hcrypto, thus the libhx509/hxtool and PKINIT EC code has
been moved out of the files it used to be in.
2016-04-15 00:16:17 -05:00
Nicolas Williams
bfa1d9ba09 Remove debug echo in cf/db.m4 2016-04-15 00:16:14 -05:00
Nicolas Williams
ab42f2882f Update valgrind suppressions 2016-02-26 00:55:33 -06:00
Nicolas Williams
16275048b8 Prefer LMDB to Berkeley DB 2016-02-26 00:55:32 -06:00
Nicolas Williams
a94dc50114 Add --with-db-type-preference config param 2016-02-26 00:55:32 -06:00
Nicolas Williams
c6f24e99f0 Revamp cf/db.m4; test LMDB 2016-02-26 00:55:32 -06:00
Nicolas Williams
96859fe687 maybe-valgrind.sh: don't --trace-children=yes 2016-02-26 00:55:31 -06:00
Nicolas Williams
0271b171e5 Add bswap64() 2016-02-16 20:49:33 -06:00
Luke Howard
fdf8782db2 hcrypto: PKCS#11 backend
implement a PKCS#11 backend for hcrypto. tested with Solaris 11 and
SoftHSM, this is now the default when building on Solaris.
2015-12-09 11:08:35 +11:00
Luke Howard
0de138a7dc cf: define __EXTENSIONS__ on Solaris
defining __EXTENSIONS__ is necessary to build on Solaris 11
2015-12-09 11:02:28 +11:00
hasufell
427a60057c Completely remove RAND_egd support
The EGD daemon is completely unmaintained and has not seen a release
since 13 years which is not an acceptable timeframe for cryptographic
software. It is not packaged in any linux distribution I know of
and definitely not in *BSD.

LibreSSL has already dropped support for RAND_egd.
2015-10-06 15:44:47 +02:00
Bernard
828f4f4fb1 Fix build when OpenSSL has no EGD support 2015-04-10 22:47:03 +02:00
Nicolas Williams
e75f790fe6 Use getauxval() for issuid() on Linux 2015-03-24 11:50:00 -05:00
Nicolas Williams
b48bed5f42 Daemons detach atomically to avoid having to wait
Tests that start daemons have to "wait" for them to start.

This commit makes Heimdal daemons prep to detach (when requested) by
forking early, then having the child signal readiness to the parent when
the child really is ready.  The parent exits only which the child is
ready.  This means that tests will no longer need to wait for daemons.

However, tests will still need a pidfile or such so they can stop the
daemons.

Note that the --detach options should not be used on OS X from launchd,
only from tests.
2015-03-24 11:49:59 -05:00
Simon Wilkinson
8485250989 roken: Add memset_s implementation
Add an implementation of memset_s to roken.

Some optimising compilers may remove the memset() instruction when it
is used immediately before a free, which defeats its purpose if the
intention is to zero memory before returning it to the heap or stack.

C11 added memset_s, provide a fallback in roken so that memset_s can
be used on all platforms.
2015-03-05 17:06:20 +00:00
Viktor Dukhovni
08c628b240 BN_is_negative is no longer a macro in OpenSSL master 2015-03-04 19:49:40 -05:00
Viktor Dukhovni
529f17bbec OpenSSL master requires more explicit #includes 2015-03-04 19:46:54 -05:00
Love Hörnquist Åstrand
f05236b202 hush autoconf 2014-08-22 21:52:27 -07:00
Love Hörnquist Åstrand
e6ed2bc9df use LT_INIT only, fixes #95 2014-08-22 21:52:10 -07:00
Love Hörnquist Åstrand
c93db5aa52 check for sys/errno.h 2014-07-18 17:46:25 +02:00
Nicolas Williams
816e8fcfa9 Use thread-safe errno on Solaris 2014-05-05 00:00:46 -05:00
Love Hörnquist Åstrand
f074a81c0c code sign all binaries when we can 2014-02-16 11:35:19 -08:00
Love Hörnquist Åstrand
bc0109489e include noinst_HEADERS 2014-02-16 10:04:56 -08:00
James Le Cuirot
97f1e2efb5 Fix roken-h-process.pl 2014-02-01 22:04:10 +00:00
Gustavo Zacarias
f76e8d5710 roken-h-process: use Getopt::Std, getopts.pl is deprecated
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Love Hörnquist Åstrand <lha@h5l.org>
2014-01-31 08:33:39 +01:00
Nicolas Williams
3e74e2e3bb Fix some DLL hell: use dladdr() to find plugin dir
Normally one would dlopen() a shared object's basename, not its absolute
path.  However, lib/krb5/plugin.c, in an effort to be zero-conf-ish,
wants to readdir() to find plugins to load, and in the process it ends
up defeating the RTLD's search-the-caller's-rpath.

This commit partially addresses this by allowing the use of $ORIGIN in
plugin_dir values and using them for the default (except on OS X).

This allows multiple Heimdal versions installed on the same host, but
with different plugin ABIs, to co-exist.  A step forward for doing make
check on hosts where Heimdal is installed.

For now we hardcode $ORIGIN/../lib/plugin/krb5 (linux, Solaris, *BSD),
or $ORIGIN (Windows; for assemblies objects need to be in the same
directory) and we eval $ORIGIN by using dladdr() (Linux, Solaris) or
GetModuleHandleEx() (Win32, via a dladdr() wrapper in libroken) to find
the path to libkrb5 whose dirname to use as $ORIGIN.  For Windows,
because we need the plugins to be in the same directory as libkrb5, we
require a prefix on plugin DLLs ("plugin_krb5_") to distinguish them
from other objects.

We should add a special token to mean "look in $ORIGIN, sure, but
dlopen() the plugin basenames only (so the RTLD can search the rpath)".
2013-09-06 16:51:53 -05:00
Love Hornquist Astrand
ad824fcd6a remove bit that might make old perl fail 2013-07-19 14:40:37 +02:00
Love Hornquist Astrand
581f834b4e include db6/db.h 2013-07-18 14:58:54 +02:00
Love Hornquist Astrand
787d9ceec9 check for db6/db.h 2013-07-18 14:58:54 +02:00
Love Hornquist Astrand
644bbff26f better documentation 2013-07-18 14:58:54 +02:00
Love Hornquist Astrand
6d356ae74d remove debug printf's 2013-05-07 13:27:10 -07:00
Love Hornquist Astrand
c98d31d186 fixup 2013-05-07 13:25:07 -07:00
Love Hornquist Astrand
dca1de8dc8 add doxygen support and json export document support 2013-04-30 11:25:35 -07:00
Howard Chu
9f95207933 Add support for OpenLDAP libmdb 2012-10-07 16:47:45 -07:00
Stef Walter
b0b94a445a Add pkg-config files for krb5 libraries
* These can be used along side krb5-config

Signed-off-by: Love Hornquist Astrand <lha@h5l.org>
2012-09-27 14:00:49 -07:00
Love Hornquist Astrand
8fb0c019ec use Getopt::Std, patch original from Leonardo <rnalrd@gmail.com>, updated by me 2012-09-23 10:41:34 -07:00
Nicolas Williams
98809e86ce Move base into lib
This involves reverting dd267e8fc3,
    but that gets lost in the move.

    This builds on Ubuntu and Windows at this time.
2012-06-20 19:32:08 -05:00
Eray Aslan
06130cf7bf Fix broken qop.5 man page generation
$base should not include sub directories.  Filter them out.

Signed-off-by: Love Hornquist Astrand <lha@h5l.org>
2012-05-30 16:36:18 +02:00
Samuel Thibault
0ef0446645 Properly activate the pthread support on GNU/Hurd.
Originally submitted as a patch to the Debian Heimdal package:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=483281

Signed-Off-By: Jelmer Vernooij <jelmer@debian.org>

Signed-off-by: Love Hörnquist Åstrand <lha@h5l.org>
2012-04-05 22:55:01 -07:00
Love Hörnquist Åstrand
2a11d93bc0 define DEVELOPER_MODE when --enable-developer 2012-02-29 21:58:48 -08:00
Love Hörnquist Åstrand
053c44e100 Rename over old file, but only if it changed 2012-02-29 21:56:07 -08:00
Love Hörnquist Åstrand
b83452dd37 Wno-unused-result (not supported on gcc-4.2) 2012-02-29 08:31:58 -08:00
Roland C. Dowdeswell
e8779d5d4a Add -Wshadow and deal with the warnings. 2012-02-21 11:17:55 +00:00
Roland C. Dowdeswell
cc47c8fa7b Turn on -Wextra -Wno-sign-compare -Wno-unused-paramter and fix issues.
We turn on a few extra warnings and fix the fallout that occurs
when building with --enable-developer.  Note that we get different
warnings on different machines and so this will be a work in
progress.  So far, we have built on NetBSD/amd64 5.99.64 (which
uses gcc 4.5.3) and Ubuntu 10.04.3 LTS (which uses gcc 4.4.3).

Notably, we fixed

	1.  a lot of missing structure initialisers,

	2.  unchecked return values for functions that glibc
	    marks as __attribute__((warn-unused-result)),

	3.  made minor modifications to slc and asn1_compile
	    which can generate code which generates warnings,
	    and

	4.  a few stragglers here and there.

We turned off the extended warnings for many programs in appl/ as
they are nearing the end of their useful lifetime, e.g.  rsh, rcp,
popper, ftp and telnet.

Interestingly, glibc's strncmp() macro needed to be worked around
whereas the function calls did not.

We have not yet tried this on 32 bit platforms, so there will be
a few more warnings when we do.
2012-02-20 19:45:41 +00:00
Nicolas Williams
6dd66df594 Make master build on Windows
Add strtoll()/strtoull() to lib/roken
    Add stdint.h to lib/roken (Windows only)
    Add logic to detect whether to use lib/roken's stdint.h based on
        Visual Studio version
    Add include of stdint.h in generated ASN.1 code
    Export missing symbols for 64-bit integers in lib/asn1
    Export missing symbols for FAST
    Add missing sources to kdc/NTMakefile
    Fix issue in kuserok
    Fix bsearch issues
2012-01-17 12:10:14 -06:00
Nicolas Williams
8aa248370f Make the build system make and install section 7 manpages 2011-12-21 15:43:56 -06:00
Love Hörnquist Åstrand
376181632b handle &&, from Jaideep Padhye 2011-11-20 09:55:15 -08:00
Love Hörnquist Åstrand
660d996dbf set compile-et to no if its not found, try to not use it 2011-11-20 09:55:15 -08:00