And so it begins...
This commit is contained in:
45
CHANGES
45
CHANGES
@@ -2,7 +2,50 @@
|
||||
OpenSSL CHANGES
|
||||
_______________
|
||||
|
||||
Changes between 0.9.8e and 0.9.8f [xx XXX xxxx]
|
||||
Changes between 0.9.8e and 0.9.8f-fips [xx XXX xxxx]
|
||||
|
||||
*) Move error library so that all lhash dependencies are in a separate
|
||||
file. Include a simplified ERR_get_state() function for stand alone
|
||||
FIPS applications. Include a initialization function OPENSSL_init()
|
||||
to set all callbacks, automatically call OPENSSL_init() once when
|
||||
a cipher or digest is added. This should mean that almost all applications
|
||||
set the callbacks automatically. Exceptional cases can call OPENSSL_init()
|
||||
manually like this:
|
||||
|
||||
#ifdef OPENSSL_HAVE_INIT
|
||||
OPENSSL_init();
|
||||
#endif
|
||||
before starting any threads.
|
||||
[Steve Henson]
|
||||
|
||||
*) Collect common functions into header file "fips_utl.h".
|
||||
[Steve Henson]
|
||||
|
||||
*) Only enable dynamic lock functionality in CRYPTO_lock() when it is really
|
||||
needed. Move some lock functionality into new file dyn_lck.c .
|
||||
This further reduces FIPS dependencies allowing the complete removal
|
||||
of STACK and OBJ_bsearch().
|
||||
[Steve Henson]
|
||||
|
||||
*) Reduce FIPS test program dependencies by providing stand alone
|
||||
versions of some existing functions in libcrypto. Avoid use
|
||||
of BIOs by converting to system stdio. Move some functions in FIPS
|
||||
files: e.g. all use of BIO_printf().
|
||||
[Steve Henson]
|
||||
|
||||
*) Modify build of libcrypto in FIPS mode by using a perl
|
||||
script "arx.pl" which calls the archiver specifically
|
||||
excluding any FIPS dependencies in libcrypto.
|
||||
[Steve Henson]
|
||||
|
||||
*) Port OpenSSL 0.9.7 FIPS code to 0.9.8. Convert to new
|
||||
Makefile form. Update Configure. Convert and update
|
||||
FIPS source files. Update libcrypto, libssl and apps
|
||||
with additional functionality from 0.9.7 FIPS code.
|
||||
Update Windows build system.
|
||||
[Steve Henson]
|
||||
|
||||
Changes between 0.9.8e and 0.9.8f [23 Feb 2007]
|
||||
|
||||
*) In the SSL/TLS server implementation, be strict about session ID
|
||||
context matching (which matters if an application uses a single
|
||||
|
93
Configure
93
Configure
@@ -6,7 +6,9 @@ eval 'exec perl -S $0 ${1+"$@"}'
|
||||
##
|
||||
|
||||
require 5.000;
|
||||
use strict;
|
||||
eval 'use strict;';
|
||||
|
||||
print STDERR "Warning: perl module strict not found.\n" if ($@);
|
||||
|
||||
# see INSTALL for instructions.
|
||||
|
||||
@@ -562,6 +564,11 @@ my $prefix="";
|
||||
my $openssldir="";
|
||||
my $exe_ext="";
|
||||
my $install_prefix="";
|
||||
my $fipslibdir="/usr/local/ssl/lib/";
|
||||
my $nofipscanistercheck=0;
|
||||
my $fipsdso=0;
|
||||
my $fipscanisterinternal="n";
|
||||
my $baseaddr="0xFB00000";
|
||||
my $no_threads=0;
|
||||
my $threads=0;
|
||||
my $no_shared=0; # but "no-shared" is default
|
||||
@@ -584,6 +591,7 @@ my $rc2 ="crypto/rc2/rc2.h";
|
||||
my $bf ="crypto/bf/bf_locl.h";
|
||||
my $bn_asm ="bn_asm.o";
|
||||
my $des_enc="des_enc.o fcrypt_b.o";
|
||||
my $fips_des_enc="fips_des_enc.o";
|
||||
my $aes_enc="aes_core.o aes_cbc.o";
|
||||
my $bf_enc ="bf_enc.o";
|
||||
my $cast_enc="c_enc.o";
|
||||
@@ -595,6 +603,7 @@ my $rmd160_obj="";
|
||||
my $processor="";
|
||||
my $default_ranlib;
|
||||
my $perl;
|
||||
my $fips=0;
|
||||
|
||||
|
||||
# All of the following is disabled by default (RC5 was enabled before 0.9.8):
|
||||
@@ -718,12 +727,36 @@ PROCESS_ARGS:
|
||||
}
|
||||
elsif (/^386$/)
|
||||
{ $processor=386; }
|
||||
elsif (/^fips$/)
|
||||
{
|
||||
$fips=1;
|
||||
}
|
||||
elsif (/^rsaref$/)
|
||||
{
|
||||
# No RSAref support any more since it's not needed.
|
||||
# The check for the option is there so scripts aren't
|
||||
# broken
|
||||
}
|
||||
elsif (/^nofipscanistercheck$/)
|
||||
{
|
||||
$fips = 1;
|
||||
$nofipscanistercheck = 1;
|
||||
}
|
||||
elsif (/^fipscanisterbuild$/)
|
||||
{
|
||||
$fips = 1;
|
||||
$nofipscanistercheck = 1;
|
||||
$fipslibdir="";
|
||||
$fipscanisterinternal="y";
|
||||
}
|
||||
elsif (/^fipsdso$/)
|
||||
{
|
||||
$fips = 1;
|
||||
$nofipscanistercheck = 1;
|
||||
$fipslibdir="";
|
||||
$fipscanisterinternal="y";
|
||||
$fipsdso = 1;
|
||||
}
|
||||
elsif (/^[-+]/)
|
||||
{
|
||||
if (/^-[lL](.*)$/)
|
||||
@@ -922,6 +955,8 @@ my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
|
||||
|
||||
$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin" && !is_msys());
|
||||
|
||||
$no_shared = 0 if ($fipsdso && !$IsMK1MF);
|
||||
|
||||
$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
|
||||
$exe_ext=".pm" if ($target =~ /vos/);
|
||||
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
|
||||
@@ -1187,6 +1222,27 @@ $bn_obj = $bn_asm unless $bn_obj ne "";
|
||||
$cflags.=" -DOPENSSL_BN_ASM_PART_WORDS" if ($bn_obj =~ /bn86/);
|
||||
$cflags.=" -DOPENSSL_IA32_SSE2" if (!$no_sse2 && $bn_obj =~ /bn86/);
|
||||
|
||||
my $fips_des_obj;
|
||||
my $fips_aes_obj;
|
||||
my $fips_sha1_obj;
|
||||
if ($fips)
|
||||
{
|
||||
if ($des_obj =~ /\-elf\.o$/)
|
||||
{
|
||||
$fips_des_obj='asm/fips-dx86-elf.o';
|
||||
$openssl_other_defines.="#define OPENSSL_FIPS_DES_ASM\n";
|
||||
$fips_aes_obj='asm/fips-ax86-elf.o';
|
||||
$openssl_other_defines.="#define OPENSSL_FIPS_AES_ASM\n";
|
||||
}
|
||||
else {
|
||||
$fips_des_obj=$fips_des_enc;
|
||||
$fips_aes_obj='fips_aes_core.o';
|
||||
}
|
||||
$fips_sha1_obj='asm/fips-sx86-elf.o' if ($sha1_obj =~ /\-elf\.o$/);
|
||||
$des_obj=$sha1_obj=$aes_obj="";
|
||||
$openssl_other_defines.="#define OPENSSL_FIPS\n";
|
||||
}
|
||||
|
||||
$des_obj=$des_enc unless ($des_obj =~ /\.o$/);
|
||||
$bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);
|
||||
$cast_obj=$cast_enc unless ($cast_obj =~ /\.o$/);
|
||||
@@ -1297,6 +1353,8 @@ while (<IN>)
|
||||
s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
|
||||
s/^CPUID_OBJ=.*$/CPUID_OBJ= $cpuid_obj/;
|
||||
s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
|
||||
s/^FIPS_DES_ENC=.*$/FIPS_DES_ENC= $fips_des_obj/;
|
||||
s/^FIPS_AES_ENC=.*$/FIPS_AES_ENC= $fips_aes_obj/;
|
||||
s/^DES_ENC=.*$/DES_ENC= $des_obj/;
|
||||
s/^AES_ASM_OBJ=.*$/AES_ASM_OBJ= $aes_obj/;
|
||||
s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
|
||||
@@ -1305,6 +1363,7 @@ while (<IN>)
|
||||
s/^RC5_ENC=.*$/RC5_ENC= $rc5_obj/;
|
||||
s/^MD5_ASM_OBJ=.*$/MD5_ASM_OBJ= $md5_obj/;
|
||||
s/^SHA1_ASM_OBJ=.*$/SHA1_ASM_OBJ= $sha1_obj/;
|
||||
s/^FIPS_SHA1_ASM_OBJ=.*$/FIPS_SHA1_ASM_OBJ= $fips_sha1_obj/;
|
||||
s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/;
|
||||
s/^PROCESSOR=.*/PROCESSOR= $processor/;
|
||||
s/^RANLIB=.*/RANLIB= $ranlib/;
|
||||
@@ -1314,9 +1373,24 @@ while (<IN>)
|
||||
s/^LIBKRB5=.*/LIBKRB5=$withargs{"krb5-lib"}/;
|
||||
s/^LIBZLIB=.*/LIBZLIB=$withargs{"zlib-lib"}/;
|
||||
s/^ZLIB_INCLUDE=.*/ZLIB_INCLUDE=$withargs{"zlib-include"}/;
|
||||
s/^FIPSLIBDIR=.*/FIPSLIBDIR=$fipslibdir/;
|
||||
if ($fipsdso)
|
||||
{
|
||||
s/^FIPSCANLIB=.*/FIPSCANLIB=libfips/;
|
||||
s/^SHARED_FIPS=.*/SHARED_FIPS=libfips\$(SHLIB_EXT)/;
|
||||
s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl fips/;
|
||||
}
|
||||
else
|
||||
{
|
||||
s/^FIPSCANLIB=.*/FIPSCANLIB=libcrypto/ if $fips;
|
||||
s/^SHARED_FIPS=.*/SHARED_FIPS=/;
|
||||
s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl/;
|
||||
}
|
||||
s/^FIPSCANISTERINTERNAL=.*/FIPSCANISTERINTERNAL=$fipscanisterinternal/;
|
||||
s/^BASEADDR=.*/BASEADDR=$baseaddr/;
|
||||
s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
|
||||
s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
|
||||
s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
|
||||
s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL) \$(SHARED_FIPS)/ if (!$no_shared);
|
||||
if ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*$/)
|
||||
{
|
||||
my $sotmp = $1;
|
||||
@@ -1663,6 +1737,21 @@ libraries on this platform, they will at least look at it and try their best
|
||||
(but please first make sure you have tried with a current version of OpenSSL).
|
||||
EOF
|
||||
|
||||
print <<\EOF if ($fipscanisterinternal eq "y");
|
||||
|
||||
WARNING: OpenSSL has been configured using unsupported option(s) to internally
|
||||
generate a fipscanister.o object module for TESTING PURPOSES ONLY; that
|
||||
compiled module is NOT FIPS 140-2 validated and CANNOT be used to replace the
|
||||
OpenSSL FIPS Object Module as identified by the CMVP
|
||||
(http://csrc.nist.gov/cryptval/) in any application requiring the use of FIPS
|
||||
140-2 validated software.
|
||||
|
||||
This is a OpenSSL 0.9.8-fips test version.
|
||||
|
||||
See the file README.FIPS for details of how to build a test library.
|
||||
|
||||
EOF
|
||||
|
||||
exit(0);
|
||||
|
||||
sub usage
|
||||
|
144
Makefile.org
144
Makefile.org
@@ -65,6 +65,7 @@ EX_LIBS=
|
||||
EXE_EXT=
|
||||
ARFLAGS=
|
||||
AR=ar $(ARFLAGS) r
|
||||
ARD=ar $(ARFLAGS) d
|
||||
RANLIB= ranlib
|
||||
PERL= perl
|
||||
TAR= tar
|
||||
@@ -86,6 +87,8 @@ PROCESSOR=
|
||||
# CPUID module collects small commonly used assembler snippets
|
||||
CPUID_OBJ=
|
||||
BN_ASM= bn_asm.o
|
||||
FIPS_DES_ENC= des_enc.o fcrypt_b.o
|
||||
FIPS_AES_ENC= fips_aes_core.o
|
||||
DES_ENC= des_enc.o fcrypt_b.o
|
||||
AES_ASM_OBJ=aes_core.o aes_cbc.o
|
||||
BF_ENC= bf_enc.o
|
||||
@@ -93,6 +96,7 @@ CAST_ENC= c_enc.o
|
||||
RC4_ENC= rc4_enc.o
|
||||
RC5_ENC= rc5_enc.o
|
||||
MD5_ASM_OBJ=
|
||||
FIPS_SHA1_ASM_OBJ=
|
||||
SHA1_ASM_OBJ=
|
||||
RMD160_ASM_OBJ=
|
||||
|
||||
@@ -104,8 +108,34 @@ LIBKRB5=
|
||||
ZLIB_INCLUDE=
|
||||
LIBZLIB=
|
||||
|
||||
DIRS= crypto ssl engines apps test tools
|
||||
SHLIBDIRS= crypto ssl
|
||||
# This is the location of fipscanister.o and friends.
|
||||
# The FIPS module build will place it $(INSTALLTOP)/lib
|
||||
# but since $(INSTALLTOP) can only take the default value
|
||||
# when the module is built it will be in /usr/local/ssl/lib
|
||||
# $(INSTALLTOP) for this build make be different so hard
|
||||
# code the path.
|
||||
|
||||
FIPSLIBDIR=/usr/local/ssl/lib/
|
||||
|
||||
# This is set to "y" if fipscanister.o is compiled internally as
|
||||
# opposed to coming from an external validated location.
|
||||
|
||||
FIPSCANISTERINTERNAL=n
|
||||
|
||||
# The location of the library which contains fipscanister.o
|
||||
# normally it will be libcrypto unless fipsdso is set in which
|
||||
# case it will be libfips. If not compiling in FIPS mode at all
|
||||
# this is empty making it a useful test for a FIPS compile.
|
||||
|
||||
FIPSCANLIB=
|
||||
|
||||
# Shared library base address. Currently only used on Windows.
|
||||
#
|
||||
|
||||
BASEADDR=
|
||||
|
||||
DIRS= crypto fips-1.0 ssl engines apps test tools
|
||||
SHLIBDIRS= crypto ssl fips
|
||||
|
||||
# dirs in crypto to build
|
||||
SDIRS= \
|
||||
@@ -138,13 +168,14 @@ WDIRS= windows
|
||||
LIBS= libcrypto.a libssl.a
|
||||
SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
|
||||
SHARED_SSL=libssl$(SHLIB_EXT)
|
||||
SHARED_FIPS=
|
||||
SHARED_LIBS=
|
||||
SHARED_LIBS_LINK_EXTS=
|
||||
SHARED_LDFLAGS=
|
||||
|
||||
GENERAL= Makefile
|
||||
BASENAME= openssl
|
||||
NAME= $(BASENAME)-$(VERSION)
|
||||
NAME= $(BASENAME)-fips-$(VERSION)
|
||||
TARFILE= $(NAME).tar
|
||||
WTARFILE= $(NAME)-win.tar
|
||||
EXHEADER= e_os2.h
|
||||
@@ -191,6 +222,12 @@ BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
|
||||
SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' \
|
||||
MD5_ASM_OBJ='${MD5_ASM_OBJ}' \
|
||||
RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' \
|
||||
FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' \
|
||||
FIPS_DES_ENC='${FIPS_DES_ENC}' \
|
||||
FIPS_AES_ENC='${FIPS_AES_ENC}' \
|
||||
FIPSLIBDIR='${FIPSLIBDIR}' FIPSCANLIB='${FIPSCANLIB}' \
|
||||
FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' \
|
||||
FIPS_EX_OBJ='${FIPS_EX_OBJ}' \
|
||||
THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
|
||||
# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
|
||||
# which in turn eliminates ambiguities in variable treatment with -e.
|
||||
@@ -222,13 +259,81 @@ BUILD_ONE_CMD=\
|
||||
reflect:
|
||||
@[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)
|
||||
|
||||
FIPS_EX_OBJ= ../crypto/aes/aes_cbc.o \
|
||||
../crypto/aes/aes_cfb.o \
|
||||
../crypto/aes/aes_ecb.o \
|
||||
../crypto/aes/aes_ofb.o \
|
||||
../crypto/bn/bn_add.o \
|
||||
../crypto/bn/bn_blind.o \
|
||||
../crypto/bn/bn_ctx.o \
|
||||
../crypto/bn/bn_div.o \
|
||||
../crypto/bn/bn_exp2.o \
|
||||
../crypto/bn/bn_exp.o \
|
||||
../crypto/bn/bn_gcd.o \
|
||||
../crypto/bn/bn_lib.o \
|
||||
../crypto/bn/bn_mod.o \
|
||||
../crypto/bn/bn_mont.o \
|
||||
../crypto/bn/bn_mul.o \
|
||||
../crypto/bn/bn_prime.o \
|
||||
../crypto/bn/bn_rand.o \
|
||||
../crypto/bn/bn_recp.o \
|
||||
../crypto/bn/bn_shift.o \
|
||||
../crypto/bn/bn_sqr.o \
|
||||
../crypto/bn/bn_word.o \
|
||||
../crypto/bn/bn_x931p.o \
|
||||
../crypto/buffer/buf_str.o \
|
||||
../crypto/cryptlib.o \
|
||||
../crypto/des/cfb64ede.o \
|
||||
../crypto/des/cfb64enc.o \
|
||||
../crypto/des/cfb_enc.o \
|
||||
../crypto/des/des_enc.o \
|
||||
../crypto/des/ecb3_enc.o \
|
||||
../crypto/des/ecb_enc.o \
|
||||
../crypto/des/ofb64ede.o \
|
||||
../crypto/des/ofb64enc.o \
|
||||
../crypto/des/fcrypt_b.o \
|
||||
../crypto/des/fcrypt.o \
|
||||
../crypto/dsa/dsa_utl.o \
|
||||
../crypto/dsa/dsa_sign.o \
|
||||
../crypto/dsa/dsa_vrf.o \
|
||||
../crypto/err/err.o \
|
||||
../crypto/evp/digest.o \
|
||||
../crypto/evp/m_sha1.o \
|
||||
../crypto/evp/p_sign.o \
|
||||
../crypto/evp/p_verify.o \
|
||||
../crypto/mem_clr.o \
|
||||
../crypto/mem.o \
|
||||
../crypto/rand/md_rand.o \
|
||||
../crypto/rand/rand_egd.o \
|
||||
../crypto/rand/randfile.o \
|
||||
../crypto/rand/rand_lib.o \
|
||||
../crypto/rand/rand_os2.o \
|
||||
../crypto/rand/rand_unix.o \
|
||||
../crypto/rand/rand_win.o \
|
||||
../crypto/rsa/rsa_lib.o \
|
||||
../crypto/rsa/rsa_none.o \
|
||||
../crypto/rsa/rsa_oaep.o \
|
||||
../crypto/rsa/rsa_pk1.o \
|
||||
../crypto/rsa/rsa_pss.o \
|
||||
../crypto/rsa/rsa_ssl.o \
|
||||
../crypto/rsa/rsa_x931.o \
|
||||
../crypto/uid.o
|
||||
|
||||
sub_all: build_all
|
||||
build_all: build_libs build_apps build_tests build_tools
|
||||
|
||||
build_libs: build_crypto build_ssl build_engines
|
||||
build_libs: build_crypto build_fips build_ssl build_engines
|
||||
|
||||
build_crypto:
|
||||
@dir=crypto; target=all; $(BUILD_ONE_CMD)
|
||||
if [ -n "$(FIPSCANLIB)" ]; then \
|
||||
EXCL_OBJ='$(BN_ASM) $(CPUID_OBJ) $(FIPS_EX_OBJ)' ; export EXCL_OBJ ; \
|
||||
ARX='$(PERL) $${TOP}/util/arx.pl $(AR)' ; \
|
||||
else \
|
||||
ARX='${AR}' ; \
|
||||
fi ; export ARX ; \
|
||||
dir=crypto; target=all; $(BUILD_ONE_CMD)
|
||||
build_fips:
|
||||
@dir=fips-1.0; target=all; $(BUILD_ONE_CMD)
|
||||
build_ssl:
|
||||
@dir=ssl; target=all; $(BUILD_ONE_CMD)
|
||||
build_engines:
|
||||
@@ -244,12 +349,18 @@ all_testapps: build_libs build_testapps
|
||||
build_testapps:
|
||||
@dir=crypto; target=testapps; $(BUILD_ONE_CMD)
|
||||
|
||||
libcrypto$(SHLIB_EXT): libcrypto.a
|
||||
libcrypto$(SHLIB_EXT): libcrypto.a $(SHARED_FIPS)
|
||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||
$(MAKE) SHLIBDIRS=crypto build-shared; \
|
||||
if [ "$(FIPSCANLIB)" = "libfips" ]; then \
|
||||
( dir=fips-1.0; target=all; $(BUILD_ONE_CMD) ) ; \
|
||||
$(ARD) libcrypto.a fipscanister.o ; \
|
||||
$(MAKE) SHLIBDIRS='crypto' SHLIBDEPS='-lfips' build-shared; \
|
||||
$(AR) libcrypto.a fips-1.0/fipscanister.o ; \
|
||||
else \
|
||||
$(MAKE) SHLIBDIRS='crypto' build-shared; \
|
||||
fi \
|
||||
else \
|
||||
echo "There's no support for shared libraries on this platform" >&2; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
|
||||
@@ -260,6 +371,21 @@ libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
libfips$(SHLIB_EXT): libfips.a
|
||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||
if [ "$(FIPSCANLIB)" = "libfips" ]; then \
|
||||
FIPSLD_CC=$(CC); CC=fips-1.0/fipsld; FIPSLD_NPT="y"; \
|
||||
FIPSLD_LIBFIPS=y; \
|
||||
export CC FIPSLD_CC FIPSLD_NPT FIPSLD_LIBFIPS; \
|
||||
fi; \
|
||||
$(MAKE) -e SHLIBDIRS=fips build-shared; \
|
||||
else \
|
||||
echo "There's no support for shared libraries on this platform" >&2; \
|
||||
fi
|
||||
|
||||
libfips.a:
|
||||
dir=fips-1.0; target=all; $(BUILD_ONE_CMD)
|
||||
|
||||
clean-shared:
|
||||
@set -e; for i in $(SHLIBDIRS); do \
|
||||
if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
|
||||
@@ -451,7 +577,7 @@ tar:
|
||||
$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
|
||||
tardy --user_number=0 --user_name=openssl \
|
||||
--group_number=0 --group_name=openssl \
|
||||
--prefix=openssl-$(VERSION) - |\
|
||||
--prefix=openssl-fips-$(VERSION) - |\
|
||||
gzip --best >../$(TARFILE).gz; \
|
||||
rm -f ../$(TARFILE).list; \
|
||||
ls -l ../$(TARFILE).gz
|
||||
|
@@ -144,7 +144,9 @@ LINK_SO_A_UNPACKED= \
|
||||
SHOBJECTS=$$UNPACKDIR/*.o; \
|
||||
$(LINK_SO) && rm -rf $$UNPACKDIR
|
||||
|
||||
DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null
|
||||
# NB: force pass-through in case we are calling through fipsld.
|
||||
|
||||
DETECT_GNU_LD=(FIPSLD_NPT="" FIPSLD_LIBFIPS="" ${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null
|
||||
|
||||
DO_GNU_SO=$(CALC_VERSIONS); \
|
||||
SHLIB=lib$(LIBNAME).so; \
|
||||
|
8
README
8
README
@@ -1,10 +1,16 @@
|
||||
|
||||
OpenSSL 0.9.8f-dev
|
||||
OpenSSL 0.9.8f-fips-dev test version
|
||||
|
||||
Copyright (c) 1998-2007 The OpenSSL Project
|
||||
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
||||
All rights reserved.
|
||||
|
||||
WARNING
|
||||
-------
|
||||
|
||||
This version of OpenSSL is an initial port of the FIPS 140-2 code to OpenSSL
|
||||
0.9.8. See the file README.FIPS for brief usage details.
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
|
35
README.FIPS
Normal file
35
README.FIPS
Normal file
@@ -0,0 +1,35 @@
|
||||
|
||||
Brief instructions on using OpenSSL 0.9.8 FIPS test branch.
|
||||
|
||||
To avoid any confusion that this might generate a validate library just
|
||||
supplying "fips" on the command line wont work. Additional options are
|
||||
needed...
|
||||
|
||||
To build fipscanister and produce a usable distribution the configuration
|
||||
option "fipscanisterbuild" is used to either the config or Configure scripts.
|
||||
For example:
|
||||
|
||||
./config fipscanisterbuild
|
||||
|
||||
This builds static libraries in a way similar to the FIPS 1.1.1 distro.
|
||||
|
||||
To build the shared library fipscanister version use the configuration
|
||||
options "fipsdso".
|
||||
|
||||
Note that the fipscanister.o file is totally incompatible with the version
|
||||
produced by the FIPS 1.1.1 distribution and cannot be made to work with
|
||||
it.
|
||||
|
||||
Both options should also work under Windows and VC++. With this version the
|
||||
use of MinGW is unnecessary and the normal VC++ build procedure can be
|
||||
followed *except* the GNU linker "ld.exe" (for example from MinGW) must be
|
||||
accessible somewhere on the PATH. For example:
|
||||
|
||||
perl Configure VC-WIN32 fipsdso
|
||||
ms\do_masm
|
||||
nmake -f ms\ntdll.mak
|
||||
|
||||
Note that any warnings from a Windows version of "tar" about being unable to
|
||||
create symbolic links can be ignored.
|
||||
|
||||
|
920
apps/Makefile
920
apps/Makefile
File diff suppressed because it is too large
Load Diff
@@ -146,9 +146,11 @@ int WIN32_rename(const char *oldname,const char *newname);
|
||||
#ifndef NON_MAIN
|
||||
CONF *config=NULL;
|
||||
BIO *bio_err=NULL;
|
||||
int in_FIPS_mode=0;
|
||||
#else
|
||||
extern CONF *config;
|
||||
extern BIO *bio_err;
|
||||
extern int in_FIPS_mode;
|
||||
#endif
|
||||
|
||||
#else
|
||||
@@ -157,6 +159,7 @@ extern BIO *bio_err;
|
||||
extern CONF *config;
|
||||
extern char *default_config_file;
|
||||
extern BIO *bio_err;
|
||||
extern int in_FIPS_mode;
|
||||
|
||||
#endif
|
||||
|
||||
|
19
apps/dgst.c
19
apps/dgst.c
@@ -76,7 +76,7 @@
|
||||
|
||||
int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
|
||||
EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title,
|
||||
const char *file,BIO *bmd,const char *hmac_key);
|
||||
const char *file,BIO *bmd,const char *hmac_key, int non_fips_allow);
|
||||
|
||||
int MAIN(int, char **);
|
||||
|
||||
@@ -106,9 +106,10 @@ int MAIN(int argc, char **argv)
|
||||
char *engine=NULL;
|
||||
#endif
|
||||
char *hmac_key=NULL;
|
||||
int non_fips_allow = 0;
|
||||
|
||||
apps_startup();
|
||||
|
||||
ERR_load_crypto_strings();
|
||||
if ((buf=(unsigned char *)OPENSSL_malloc(BUFSIZE)) == NULL)
|
||||
{
|
||||
BIO_printf(bio_err,"out of memory\n");
|
||||
@@ -190,6 +191,8 @@ int MAIN(int argc, char **argv)
|
||||
out_bin = 1;
|
||||
else if (strcmp(*argv,"-d") == 0)
|
||||
debug=1;
|
||||
else if (strcmp(*argv,"-non-fips-allow") == 0)
|
||||
non_fips_allow=1;
|
||||
else if (!strcmp(*argv,"-hmac"))
|
||||
{
|
||||
if (--argc < 1)
|
||||
@@ -350,6 +353,12 @@ int MAIN(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
if (non_fips_allow)
|
||||
{
|
||||
EVP_MD_CTX *md_ctx;
|
||||
BIO_get_md_ctx(bmd,&md_ctx);
|
||||
EVP_MD_CTX_set_flags(md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
|
||||
}
|
||||
|
||||
|
||||
/* we use md as a filter, reading from 'in' */
|
||||
@@ -366,7 +375,7 @@ int MAIN(int argc, char **argv)
|
||||
{
|
||||
BIO_set_fp(in,stdin,BIO_NOCLOSE);
|
||||
err=do_fp(out, buf,inp,separator, out_bin, sigkey, sigbuf,
|
||||
siglen,"","(stdin)",bmd,hmac_key);
|
||||
siglen,"","(stdin)",bmd,hmac_key,non_fips_allow);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -392,7 +401,7 @@ int MAIN(int argc, char **argv)
|
||||
else
|
||||
tmp="";
|
||||
r=do_fp(out,buf,inp,separator,out_bin,sigkey,sigbuf,
|
||||
siglen,tmp,argv[i],bmd,hmac_key);
|
||||
siglen,tmp,argv[i],bmd,hmac_key,non_fips_allow);
|
||||
if(r)
|
||||
err=r;
|
||||
if(tofree)
|
||||
@@ -419,7 +428,7 @@ end:
|
||||
|
||||
int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
|
||||
EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title,
|
||||
const char *file,BIO *bmd,const char *hmac_key)
|
||||
const char *file,BIO *bmd,const char *hmac_key,int non_fips_allow)
|
||||
{
|
||||
unsigned int len;
|
||||
int i;
|
||||
|
11
apps/enc.c
11
apps/enc.c
@@ -127,6 +127,7 @@ int MAIN(int argc, char **argv)
|
||||
char *engine = NULL;
|
||||
#endif
|
||||
const EVP_MD *dgst=NULL;
|
||||
int non_fips_allow = 0;
|
||||
|
||||
apps_startup();
|
||||
|
||||
@@ -261,6 +262,8 @@ int MAIN(int argc, char **argv)
|
||||
if (--argc < 1) goto bad;
|
||||
md= *(++argv);
|
||||
}
|
||||
else if (strcmp(*argv,"-non-fips-allow") == 0)
|
||||
non_fips_allow = 1;
|
||||
else if ((argv[0][0] == '-') &&
|
||||
((c=EVP_get_cipherbyname(&(argv[0][1]))) != NULL))
|
||||
{
|
||||
@@ -314,6 +317,9 @@ bad:
|
||||
|
||||
if (dgst == NULL)
|
||||
{
|
||||
if (in_FIPS_mode)
|
||||
dgst = EVP_sha1();
|
||||
else
|
||||
dgst = EVP_md5();
|
||||
}
|
||||
|
||||
@@ -549,6 +555,11 @@ bad:
|
||||
*/
|
||||
|
||||
BIO_get_cipher_ctx(benc, &ctx);
|
||||
|
||||
if (non_fips_allow)
|
||||
EVP_CIPHER_CTX_set_flags(ctx,
|
||||
EVP_CIPH_FLAG_NON_FIPS_ALLOW);
|
||||
|
||||
if (!EVP_CipherInit_ex(ctx, cipher, NULL, NULL, NULL, enc))
|
||||
{
|
||||
BIO_printf(bio_err, "Error setting cipher %s\n",
|
||||
|
@@ -95,6 +95,7 @@ int MAIN(int argc, char **argv)
|
||||
int ret=1;
|
||||
int i,num=DEFBITS;
|
||||
long l;
|
||||
int use_x931 = 0;
|
||||
const EVP_CIPHER *enc=NULL;
|
||||
unsigned long f4=RSA_F4;
|
||||
char *outfile=NULL;
|
||||
@@ -138,6 +139,8 @@ int MAIN(int argc, char **argv)
|
||||
f4=3;
|
||||
else if (strcmp(*argv,"-F4") == 0 || strcmp(*argv,"-f4") == 0)
|
||||
f4=RSA_F4;
|
||||
else if (strcmp(*argv,"-x931") == 0)
|
||||
use_x931 = 1;
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
else if (strcmp(*argv,"-engine") == 0)
|
||||
{
|
||||
@@ -258,7 +261,17 @@ bad:
|
||||
BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n",
|
||||
num);
|
||||
|
||||
if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, &cb))
|
||||
if (use_x931)
|
||||
{
|
||||
BIGNUM *pubexp;
|
||||
pubexp = BN_new();
|
||||
if (!BN_set_word(pubexp, f4))
|
||||
goto err;
|
||||
if (!RSA_X931_generate_key_ex(rsa, num, pubexp, &cb))
|
||||
goto err;
|
||||
BN_free(pubexp);
|
||||
}
|
||||
else if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, &cb))
|
||||
goto err;
|
||||
|
||||
app_RAND_write_file(NULL, bio_err);
|
||||
|
@@ -147,6 +147,7 @@ char *default_config_file=NULL;
|
||||
#ifdef MONOLITH
|
||||
CONF *config=NULL;
|
||||
BIO *bio_err=NULL;
|
||||
int in_FIPS_mode=0;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -232,6 +233,19 @@ int main(int Argc, char *Argv[])
|
||||
arg.data=NULL;
|
||||
arg.count=0;
|
||||
|
||||
in_FIPS_mode = 0;
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
if(getenv("OPENSSL_FIPS")) {
|
||||
if (!FIPS_mode_set(1)) {
|
||||
ERR_load_crypto_strings();
|
||||
ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
|
||||
EXIT(1);
|
||||
}
|
||||
in_FIPS_mode = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (bio_err == NULL)
|
||||
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
|
||||
BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
|
||||
|
@@ -110,7 +110,7 @@ int MAIN(int argc, char **argv)
|
||||
int maciter = PKCS12_DEFAULT_ITER;
|
||||
int twopass = 0;
|
||||
int keytype = 0;
|
||||
int cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;
|
||||
int cert_pbe;
|
||||
int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
|
||||
int ret = 1;
|
||||
int macver = 1;
|
||||
@@ -127,6 +127,13 @@ int MAIN(int argc, char **argv)
|
||||
|
||||
apps_startup();
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
if (FIPS_mode())
|
||||
cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
|
||||
else
|
||||
#endif
|
||||
cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;
|
||||
|
||||
enc = EVP_des_ede3_cbc();
|
||||
if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);
|
||||
|
||||
|
@@ -33,8 +33,8 @@ GENERAL=Makefile README crypto-lib.com install.com
|
||||
|
||||
LIB= $(TOP)/libcrypto.a
|
||||
SHARED_LIB= libcrypto$(SHLIB_EXT)
|
||||
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 o_str.c o_dir.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 o_str.o o_dir.o $(CPUID_OBJ)
|
||||
LIBSRC= cryptlib.c dyn_lck.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 o_str.c o_dir.c o_init.c fips_err.c
|
||||
LIBOBJ= cryptlib.o dyn_lck.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 o_str.o o_dir.o o_init.o fips_err.o $(CPUID_OBJ)
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
@@ -98,7 +98,7 @@ links:
|
||||
lib: $(LIB)
|
||||
@touch lib
|
||||
$(LIB): $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
|
||||
shared: buildinf.h lib subdirs
|
||||
@@ -159,6 +159,13 @@ cversion.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
cversion.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||
cversion.o: ../include/openssl/stack.h ../include/openssl/symhacks.h buildinf.h
|
||||
cversion.o: cryptlib.h cversion.c
|
||||
dyn_lck.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
dyn_lck.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||
dyn_lck.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
||||
dyn_lck.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
dyn_lck.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||
dyn_lck.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||
dyn_lck.o: dyn_lck.c
|
||||
ebcdic.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h ebcdic.c
|
||||
ex_data.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
ex_data.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||
@@ -167,6 +174,13 @@ ex_data.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
ex_data.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||
ex_data.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||
ex_data.o: ex_data.c
|
||||
fips_err.o: ../include/openssl/bio.h ../include/openssl/crypto.h
|
||||
fips_err.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
fips_err.o: ../include/openssl/fips.h ../include/openssl/lhash.h
|
||||
fips_err.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
fips_err.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||
fips_err.o: ../include/openssl/stack.h ../include/openssl/symhacks.h fips_err.c
|
||||
fips_err.o: fips_err.h
|
||||
mem.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
mem.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||
mem.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
||||
@@ -187,6 +201,12 @@ mem_dbg.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||
mem_dbg.o: mem_dbg.c
|
||||
o_dir.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
|
||||
o_dir.o: LPdir_unix.c o_dir.c o_dir.h
|
||||
o_init.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/crypto.h
|
||||
o_init.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
o_init.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||
o_init.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
||||
o_init.o: ../include/openssl/safestack.h ../include/openssl/stack.h
|
||||
o_init.o: ../include/openssl/symhacks.h o_init.c
|
||||
o_str.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
|
||||
o_str.o: o_str.c o_str.h
|
||||
o_time.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_time.c
|
||||
|
@@ -41,7 +41,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
|
@@ -66,6 +66,10 @@
|
||||
#define AES_MAXNR 14
|
||||
#define AES_BLOCK_SIZE 16
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
#define FIPS_AES_SIZE_T int
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
@@ -59,6 +59,7 @@
|
||||
#include <openssl/aes.h>
|
||||
#include "aes_locl.h"
|
||||
|
||||
#if !defined(OPENSSL_FIPS_AES_ASM)
|
||||
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) {
|
||||
@@ -129,3 +130,4 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@@ -39,6 +39,8 @@
|
||||
#include <openssl/aes.h>
|
||||
#include "aes_locl.h"
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
|
||||
/*
|
||||
Te0[x] = S [x].[02, 01, 01, 03];
|
||||
Te1[x] = S [x].[03, 02, 01, 01];
|
||||
@@ -1157,3 +1159,5 @@ void AES_decrypt(const unsigned char *in, unsigned char *out,
|
||||
}
|
||||
|
||||
#endif /* AES_ASM */
|
||||
|
||||
#endif
|
||||
|
@@ -63,7 +63,7 @@ pk: pk.c
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -142,9 +142,9 @@ a_digest.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
a_digest.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
a_digest.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
a_digest.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
a_digest.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
a_digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
a_digest.o: ../../include/openssl/opensslconf.h
|
||||
a_digest.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
a_digest.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
a_digest.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
a_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
a_digest.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
a_digest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
@@ -250,27 +250,27 @@ a_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
a_sign.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
a_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
a_sign.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
a_sign.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
a_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
a_sign.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
a_sign.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
a_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
a_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
a_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
a_sign.o: ../cryptlib.h a_sign.c
|
||||
a_sign.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
a_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
a_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
a_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
a_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
a_sign.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
a_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
a_sign.o: ../../include/openssl/x509_vfy.h ../cryptlib.h a_sign.c
|
||||
a_strex.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
a_strex.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
a_strex.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
a_strex.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
a_strex.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
a_strex.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
a_strex.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
a_strex.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
a_strex.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
a_strex.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
a_strex.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
a_strex.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
a_strex.o: ../cryptlib.h a_strex.c charmap.h
|
||||
a_strex.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
a_strex.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
a_strex.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
a_strex.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
a_strex.o: ../../include/openssl/pkcs7.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/x509.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/buffer.h
|
||||
a_strnid.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
@@ -317,8 +317,9 @@ a_verify.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
a_verify.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
a_verify.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
a_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
a_verify.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
a_verify.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
a_verify.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
a_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
a_verify.o: ../../include/openssl/opensslconf.h
|
||||
a_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
a_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
a_verify.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
@@ -337,8 +338,9 @@ asn1_gen.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
asn1_gen.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
asn1_gen.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
asn1_gen.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
asn1_gen.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
asn1_gen.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
asn1_gen.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
asn1_gen.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
asn1_gen.o: ../../include/openssl/opensslconf.h
|
||||
asn1_gen.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
asn1_gen.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
asn1_gen.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
@@ -368,9 +370,9 @@ asn_moid.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
asn_moid.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
|
||||
asn_moid.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
asn_moid.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
asn_moid.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
asn_moid.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
asn_moid.o: ../../include/openssl/opensslconf.h
|
||||
asn_moid.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
asn_moid.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
asn_moid.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
asn_moid.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
asn_moid.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
asn_moid.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
@@ -389,23 +391,23 @@ d2i_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
d2i_pr.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
|
||||
d2i_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
d2i_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
d2i_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
d2i_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
d2i_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
d2i_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
d2i_pr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
d2i_pr.o: ../cryptlib.h d2i_pr.c
|
||||
d2i_pr.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
d2i_pr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
d2i_pr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
d2i_pr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
|
||||
d2i_pr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
d2i_pr.o: ../../include/openssl/symhacks.h ../cryptlib.h d2i_pr.c
|
||||
d2i_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
d2i_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
d2i_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
|
||||
d2i_pu.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
d2i_pu.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
d2i_pu.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
d2i_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
d2i_pu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
d2i_pu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
d2i_pu.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
d2i_pu.o: ../cryptlib.h d2i_pu.c
|
||||
d2i_pu.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
d2i_pu.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
d2i_pu.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
d2i_pu.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
|
||||
d2i_pu.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
d2i_pu.o: ../../include/openssl/symhacks.h ../cryptlib.h d2i_pu.c
|
||||
evp_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
evp_asn1.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
|
||||
evp_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
@@ -441,71 +443,73 @@ i2d_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
i2d_pr.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
|
||||
i2d_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
i2d_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
i2d_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
i2d_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
i2d_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
i2d_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
i2d_pr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
i2d_pr.o: ../cryptlib.h i2d_pr.c
|
||||
i2d_pr.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
i2d_pr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
i2d_pr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
i2d_pr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
|
||||
i2d_pr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
i2d_pr.o: ../../include/openssl/symhacks.h ../cryptlib.h i2d_pr.c
|
||||
i2d_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
i2d_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
i2d_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
|
||||
i2d_pu.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
i2d_pu.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
i2d_pu.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
i2d_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
i2d_pu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
i2d_pu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
i2d_pu.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
i2d_pu.o: ../cryptlib.h i2d_pu.c
|
||||
i2d_pu.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
i2d_pu.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
i2d_pu.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
i2d_pu.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
|
||||
i2d_pu.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
i2d_pu.o: ../../include/openssl/symhacks.h ../cryptlib.h i2d_pu.c
|
||||
n_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
n_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/asn1t.h
|
||||
n_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
n_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
n_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
n_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
n_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
n_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
n_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
n_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
n_pkey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
n_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
n_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
n_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h n_pkey.c
|
||||
n_pkey.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
n_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
n_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
n_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
n_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
n_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
n_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
n_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
n_pkey.o: ../cryptlib.h n_pkey.c
|
||||
nsseq.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
|
||||
nsseq.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
nsseq.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
nsseq.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
nsseq.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
|
||||
nsseq.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
nsseq.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
nsseq.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
nsseq.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
nsseq.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
nsseq.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
nsseq.o: ../../include/openssl/x509_vfy.h nsseq.c
|
||||
nsseq.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
nsseq.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
nsseq.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
nsseq.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
nsseq.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
nsseq.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
nsseq.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h nsseq.c
|
||||
p5_pbe.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
p5_pbe.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
p5_pbe.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
p5_pbe.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
p5_pbe.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
p5_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p5_pbe.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p5_pbe.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p5_pbe.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p5_pbe.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
|
||||
p5_pbe.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
p5_pbe.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
p5_pbe.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
p5_pbe.o: ../cryptlib.h p5_pbe.c
|
||||
p5_pbe.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
p5_pbe.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p5_pbe.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
p5_pbe.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
p5_pbe.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
p5_pbe.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p5_pbe.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p5_pbe.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p5_pbe.c
|
||||
p5_pbev2.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
p5_pbev2.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
p5_pbev2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
p5_pbev2.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
p5_pbev2.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
p5_pbev2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p5_pbev2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p5_pbev2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p5_pbev2.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
p5_pbev2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p5_pbev2.o: ../../include/openssl/opensslconf.h
|
||||
p5_pbev2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p5_pbev2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
|
||||
p5_pbev2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
@@ -518,41 +522,42 @@ p8_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
p8_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
p8_pkey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
p8_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p8_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p8_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p8_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p8_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
p8_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p8_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p8_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p8_pkey.c
|
||||
p8_pkey.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
p8_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p8_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
p8_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
p8_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
p8_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
p8_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
p8_pkey.o: ../cryptlib.h p8_pkey.c
|
||||
t_bitst.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
t_bitst.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
t_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
t_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
t_bitst.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
t_bitst.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
t_bitst.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
t_bitst.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
t_bitst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
t_bitst.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
t_bitst.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
t_bitst.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
t_bitst.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
|
||||
t_bitst.o: ../cryptlib.h t_bitst.c
|
||||
t_bitst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
t_bitst.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
t_bitst.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
t_bitst.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
t_bitst.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
t_bitst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
t_bitst.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
t_bitst.o: ../../include/openssl/x509v3.h ../cryptlib.h t_bitst.c
|
||||
t_crl.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
t_crl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
t_crl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
t_crl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
t_crl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
t_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
t_crl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
t_crl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
t_crl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
t_crl.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
t_crl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
t_crl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
t_crl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
|
||||
t_crl.o: ../cryptlib.h t_crl.c
|
||||
t_crl.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
t_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
t_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
t_crl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
t_crl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
t_crl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
t_crl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
t_crl.o: ../../include/openssl/x509v3.h ../cryptlib.h t_crl.c
|
||||
t_pkey.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
t_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
t_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
|
||||
@@ -570,57 +575,57 @@ t_req.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
t_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
t_req.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
t_req.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
t_req.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
t_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
t_req.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
t_req.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
t_req.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
t_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
t_req.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
t_req.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
|
||||
t_req.o: ../cryptlib.h t_req.c
|
||||
t_req.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
t_req.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
t_req.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
t_req.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
t_req.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
t_req.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
t_req.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
t_req.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
t_req.o: ../../include/openssl/x509v3.h ../cryptlib.h t_req.c
|
||||
t_spki.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
t_spki.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
t_spki.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
|
||||
t_spki.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
t_spki.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
t_spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
t_spki.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
t_spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
t_spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
t_spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
t_spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
t_spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
t_spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
t_spki.o: ../cryptlib.h t_spki.c
|
||||
t_spki.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
t_spki.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
t_spki.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
t_spki.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
t_spki.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
t_spki.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
t_spki.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
t_spki.o: ../../include/openssl/x509_vfy.h ../cryptlib.h t_spki.c
|
||||
t_x509.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
t_x509.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
t_x509.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
t_x509.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
t_x509.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
t_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
t_x509.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
t_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
t_x509.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
t_x509.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
t_x509.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
t_x509.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
t_x509.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
t_x509.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
|
||||
t_x509.o: ../cryptlib.h t_x509.c
|
||||
t_x509.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
t_x509.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
t_x509.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
t_x509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
t_x509.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
t_x509.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
t_x509.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
t_x509.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
t_x509.o: ../../include/openssl/x509v3.h ../cryptlib.h t_x509.c
|
||||
t_x509a.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
t_x509a.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
t_x509a.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
t_x509a.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
t_x509a.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
t_x509a.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
t_x509a.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
t_x509a.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
t_x509a.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
t_x509a.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
t_x509a.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
t_x509a.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
t_x509a.o: ../cryptlib.h t_x509a.c
|
||||
t_x509a.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
t_x509a.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
t_x509a.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
t_x509a.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
t_x509a.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
t_x509a.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
t_x509a.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
t_x509a.o: ../../include/openssl/x509_vfy.h ../cryptlib.h t_x509a.c
|
||||
tasn_dec.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
|
||||
tasn_dec.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
tasn_dec.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
@@ -673,21 +678,23 @@ x_algor.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
x_algor.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
x_algor.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
x_algor.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
|
||||
x_algor.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_algor.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_algor.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_algor.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_algor.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_algor.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_algor.o: ../../include/openssl/x509_vfy.h x_algor.c
|
||||
x_algor.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_algor.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_algor.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_algor.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_algor.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_algor.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_algor.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_algor.o: x_algor.c
|
||||
x_attrib.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
x_attrib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
x_attrib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_attrib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
x_attrib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
x_attrib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
x_attrib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_attrib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_attrib.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_attrib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_attrib.o: ../../include/openssl/opensslconf.h
|
||||
x_attrib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_attrib.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_attrib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
@@ -708,37 +715,40 @@ x_crl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_crl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
x_crl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
x_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
x_crl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_crl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_crl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_crl.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_crl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_crl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_crl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_crl.c
|
||||
x_crl.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_crl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_crl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_crl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_crl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_crl.o: ../cryptlib.h x_crl.c
|
||||
x_exten.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
|
||||
x_exten.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
x_exten.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
x_exten.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
x_exten.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
|
||||
x_exten.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_exten.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_exten.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_exten.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_exten.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_exten.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_exten.o: ../../include/openssl/x509_vfy.h x_exten.c
|
||||
x_exten.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_exten.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_exten.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_exten.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_exten.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_exten.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_exten.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_exten.o: x_exten.c
|
||||
x_info.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
x_info.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_info.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
x_info.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
x_info.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
x_info.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_info.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_info.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_info.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_info.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_info.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_info.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_info.c
|
||||
x_info.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_info.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_info.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_info.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_info.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_info.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_info.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_info.o: ../cryptlib.h x_info.c
|
||||
x_long.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
x_long.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
x_long.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
@@ -754,35 +764,37 @@ x_name.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_name.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
x_name.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
x_name.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
x_name.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_name.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_name.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_name.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_name.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_name.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_name.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_name.c
|
||||
x_name.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_name.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_name.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_name.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_name.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_name.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_name.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_name.o: ../cryptlib.h x_name.c
|
||||
x_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
x_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
|
||||
x_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
x_pkey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
x_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
x_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_pkey.c
|
||||
x_pkey.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_pkey.o: ../cryptlib.h x_pkey.c
|
||||
x_pubkey.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
x_pubkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
x_pubkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_pubkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
x_pubkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
x_pubkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
x_pubkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
x_pubkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_pubkey.o: ../../include/openssl/opensslconf.h
|
||||
x_pubkey.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
x_pubkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_pubkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_pubkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_pubkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
x_pubkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
@@ -795,76 +807,82 @@ x_req.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_req.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
x_req.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
x_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
x_req.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_req.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_req.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_req.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_req.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_req.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_req.c
|
||||
x_req.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_req.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_req.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_req.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_req.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_req.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_req.o: ../cryptlib.h x_req.c
|
||||
x_sig.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
x_sig.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
x_sig.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_sig.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
x_sig.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
x_sig.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
x_sig.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_sig.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_sig.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_sig.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_sig.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_sig.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_sig.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_sig.c
|
||||
x_sig.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_sig.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_sig.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_sig.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_sig.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_sig.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_sig.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_sig.o: ../cryptlib.h x_sig.c
|
||||
x_spki.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
x_spki.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
x_spki.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_spki.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
x_spki.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
x_spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
x_spki.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_spki.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_spki.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_spki.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_spki.c
|
||||
x_spki.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_spki.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_spki.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_spki.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_spki.o: ../cryptlib.h x_spki.c
|
||||
x_val.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
x_val.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
x_val.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_val.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
x_val.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
x_val.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
x_val.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_val.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_val.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_val.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_val.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_val.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_val.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_val.c
|
||||
x_val.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_val.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_val.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_val.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_val.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_val.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_val.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_val.o: ../cryptlib.h x_val.c
|
||||
x_x509.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
x_x509.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
x_x509.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
|
||||
x_x509.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
x_x509.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
x_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
x_x509.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
x_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_x509.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_x509.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_x509.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_x509.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_x509.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_x509.o: ../../include/openssl/x509v3.h ../cryptlib.h x_x509.c
|
||||
x_x509.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
x_x509.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_x509.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_x509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_x509.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_x509.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_x509.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_x509.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
|
||||
x_x509.o: ../cryptlib.h x_x509.c
|
||||
x_x509a.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
x_x509a.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
x_x509a.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
x_x509a.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
x_x509a.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
x_x509a.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
x_x509a.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
x_x509a.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
x_x509a.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
x_x509a.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
x_x509a.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
x_x509a.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
x_x509a.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_x509a.c
|
||||
x_x509a.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
x_x509a.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
x_x509a.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
x_x509a.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
x_x509a.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
x_x509a.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
x_x509a.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
x_x509a.o: ../cryptlib.h x_x509a.c
|
||||
|
@@ -40,7 +40,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -103,5 +103,9 @@ bf_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
|
||||
bf_enc.o: ../../include/openssl/opensslconf.h bf_enc.c bf_locl.h
|
||||
bf_ofb64.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
|
||||
bf_ofb64.o: ../../include/openssl/opensslconf.h bf_locl.h bf_ofb64.c
|
||||
bf_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
|
||||
bf_skey.o: ../../include/openssl/opensslconf.h bf_locl.h bf_pi.h bf_skey.c
|
||||
bf_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/crypto.h
|
||||
bf_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/fips.h
|
||||
bf_skey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bf_skey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
bf_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bf_skey.o: bf_locl.h bf_pi.h bf_skey.c
|
||||
|
@@ -59,10 +59,12 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <openssl/blowfish.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/fips.h>
|
||||
#include "bf_locl.h"
|
||||
#include "bf_pi.h"
|
||||
|
||||
void BF_set_key(BF_KEY *key, int len, const unsigned char *data)
|
||||
FIPS_NON_FIPS_VCIPHER_Init(BF)
|
||||
{
|
||||
int i;
|
||||
BF_LONG *p,ri,in[2];
|
||||
|
@@ -104,7 +104,9 @@ typedef struct bf_key_st
|
||||
BF_LONG S[4*256];
|
||||
} BF_KEY;
|
||||
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
void private_BF_set_key(BF_KEY *key, int len, const unsigned char *data);
|
||||
#endif
|
||||
void BF_set_key(BF_KEY *key, int len, const unsigned char *data);
|
||||
|
||||
void BF_encrypt(BF_LONG *data,const BF_KEY *key);
|
||||
|
@@ -45,7 +45,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
|
@@ -28,13 +28,13 @@ LIBSRC= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c \
|
||||
bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c \
|
||||
bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_asm.c \
|
||||
bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c \
|
||||
bn_depr.c bn_const.c
|
||||
bn_depr.c bn_const.c bn_x931p.c bn_opt.c
|
||||
|
||||
LIBOBJ= bn_add.o bn_div.o bn_exp.o bn_lib.o bn_ctx.o bn_mul.o bn_mod.o \
|
||||
bn_print.o bn_rand.o bn_shift.o bn_word.o bn_blind.o \
|
||||
bn_kron.o bn_sqrt.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o $(BN_ASM) \
|
||||
bn_recp.o bn_mont.o bn_mpi.o bn_exp2.o bn_gf2m.o bn_nist.o \
|
||||
bn_depr.o bn_const.o
|
||||
bn_depr.o bn_const.o bn_x931p.o bn_opt.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
@@ -58,7 +58,7 @@ bnbug: bnbug.c ../../libcrypto.a top
|
||||
cc -g -I../../include bnbug.c -o bnbug ../../libcrypto.a
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -283,6 +283,13 @@ bn_nist.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bn_nist.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
bn_nist.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_nist.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_nist.c
|
||||
bn_opt.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_opt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_opt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bn_opt.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bn_opt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
bn_opt.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_opt.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_opt.c
|
||||
bn_prime.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_prime.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_prime.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
@@ -341,3 +348,6 @@ bn_word.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bn_word.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
bn_word.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_word.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_word.c
|
||||
bn_x931p.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h
|
||||
bn_x931p.o: ../../include/openssl/opensslconf.h
|
||||
bn_x931p.o: ../../include/openssl/ossl_typ.h bn_x931p.c
|
||||
|
@@ -516,6 +516,26 @@ int BN_is_prime_ex(const BIGNUM *p,int nchecks, BN_CTX *ctx, BN_GENCB *cb);
|
||||
int BN_is_prime_fasttest_ex(const BIGNUM *p,int nchecks, BN_CTX *ctx,
|
||||
int do_trial_division, BN_GENCB *cb);
|
||||
|
||||
int BN_X931_derive_prime(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,
|
||||
void (*cb)(int, int, void *), void *cb_arg,
|
||||
const BIGNUM *Xp, const BIGNUM *Xp1, const BIGNUM *Xp2,
|
||||
const BIGNUM *e, BN_CTX *ctx);
|
||||
int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx);
|
||||
int BN_X931_generate_prime(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,
|
||||
BIGNUM *Xp1, BIGNUM *Xp2,
|
||||
const BIGNUM *Xp,
|
||||
const BIGNUM *e, BN_CTX *ctx,
|
||||
void (*cb)(int, int, void *), void *cb_arg);
|
||||
|
||||
int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,
|
||||
const BIGNUM *Xp, const BIGNUM *Xp1, const BIGNUM *Xp2,
|
||||
const BIGNUM *e, BN_CTX *ctx, BN_GENCB *cb);
|
||||
int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,
|
||||
BIGNUM *Xp1, BIGNUM *Xp2,
|
||||
const BIGNUM *Xp,
|
||||
const BIGNUM *e, BN_CTX *ctx,
|
||||
BN_GENCB *cb);
|
||||
|
||||
BN_MONT_CTX *BN_MONT_CTX_new(void );
|
||||
void BN_MONT_CTX_init(BN_MONT_CTX *ctx);
|
||||
int BN_mod_mul_montgomery(BIGNUM *r,const BIGNUM *a,const BIGNUM *b,
|
||||
|
@@ -109,4 +109,26 @@ int BN_is_prime_fasttest(const BIGNUM *a, int checks,
|
||||
return BN_is_prime_fasttest_ex(a, checks, ctx_passed,
|
||||
do_trial_division, &cb);
|
||||
}
|
||||
|
||||
int BN_X931_derive_prime(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,
|
||||
void (*callback)(int, int, void *), void *cb_arg,
|
||||
const BIGNUM *Xp, const BIGNUM *Xp1, const BIGNUM *Xp2,
|
||||
const BIGNUM *e, BN_CTX *ctx)
|
||||
{
|
||||
BN_GENCB cb;
|
||||
BN_GENCB_set_old(&cb, callback, cb_arg);
|
||||
return BN_X931_derive_prime_ex(p, p1, p2, Xp, Xp1, Xp2, e, ctx, &cb);
|
||||
}
|
||||
|
||||
int BN_X931_generate_prime(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,
|
||||
BIGNUM *Xp1, BIGNUM *Xp2,
|
||||
const BIGNUM *Xp,
|
||||
const BIGNUM *e, BN_CTX *ctx,
|
||||
void (*callback)(int, int, void *), void *cb_arg)
|
||||
{
|
||||
BN_GENCB cb;
|
||||
BN_GENCB_set_old(&cb, callback, cb_arg);
|
||||
return BN_X931_generate_prime_ex(p, p1, p2, Xp1, Xp2, Xp, e, ctx, &cb);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -139,25 +139,6 @@ const BIGNUM *BN_value_one(void)
|
||||
return(&const_one);
|
||||
}
|
||||
|
||||
char *BN_options(void)
|
||||
{
|
||||
static int init=0;
|
||||
static char data[16];
|
||||
|
||||
if (!init)
|
||||
{
|
||||
init++;
|
||||
#ifdef BN_LLONG
|
||||
BIO_snprintf(data,sizeof data,"bn(%d,%d)",
|
||||
(int)sizeof(BN_ULLONG)*8,(int)sizeof(BN_ULONG)*8);
|
||||
#else
|
||||
BIO_snprintf(data,sizeof data,"bn(%d,%d)",
|
||||
(int)sizeof(BN_ULONG)*8,(int)sizeof(BN_ULONG)*8);
|
||||
#endif
|
||||
}
|
||||
return(data);
|
||||
}
|
||||
|
||||
int BN_num_bits_word(BN_ULONG l)
|
||||
{
|
||||
static const char bits[256]={
|
||||
|
87
crypto/bn/bn_opt.c
Normal file
87
crypto/bn/bn_opt.c
Normal file
@@ -0,0 +1,87 @@
|
||||
/* crypto/bn/bn_opt.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#ifndef BN_DEBUG
|
||||
# undef NDEBUG /* avoid conflicting definitions */
|
||||
# define NDEBUG
|
||||
#endif
|
||||
|
||||
#include <assert.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "bn_lcl.h"
|
||||
|
||||
char *BN_options(void)
|
||||
{
|
||||
static int init=0;
|
||||
static char data[16];
|
||||
|
||||
if (!init)
|
||||
{
|
||||
init++;
|
||||
#ifdef BN_LLONG
|
||||
BIO_snprintf(data,sizeof data,"bn(%d,%d)",
|
||||
(int)sizeof(BN_ULLONG)*8,(int)sizeof(BN_ULONG)*8);
|
||||
#else
|
||||
BIO_snprintf(data,sizeof data,"bn(%d,%d)",
|
||||
(int)sizeof(BN_ULONG)*8,(int)sizeof(BN_ULONG)*8);
|
||||
#endif
|
||||
}
|
||||
return(data);
|
||||
}
|
272
crypto/bn/bn_x931p.c
Normal file
272
crypto/bn/bn_x931p.c
Normal file
@@ -0,0 +1,272 @@
|
||||
/* bn_x931p.c */
|
||||
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||
* project 2005.
|
||||
*/
|
||||
/* ====================================================================
|
||||
* Copyright (c) 2005 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* licensing@OpenSSL.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <openssl/bn.h>
|
||||
|
||||
/* X9.31 routines for prime derivation */
|
||||
|
||||
/* X9.31 prime derivation. This is used to generate the primes pi
|
||||
* (p1, p2, q1, q2) from a parameter Xpi by checking successive odd
|
||||
* integers.
|
||||
*/
|
||||
|
||||
static int bn_x931_derive_pi(BIGNUM *pi, const BIGNUM *Xpi, BN_CTX *ctx,
|
||||
BN_GENCB *cb)
|
||||
{
|
||||
int i = 0;
|
||||
if (!BN_copy(pi, Xpi))
|
||||
return 0;
|
||||
if (!BN_is_odd(pi) && !BN_add_word(pi, 1))
|
||||
return 0;
|
||||
for(;;)
|
||||
{
|
||||
i++;
|
||||
BN_GENCB_call(cb, 0, i);
|
||||
/* NB 27 MR is specificed in X9.31 */
|
||||
if (BN_is_prime_fasttest_ex(pi, 27, ctx, 1, cb))
|
||||
break;
|
||||
if (!BN_add_word(pi, 2))
|
||||
return 0;
|
||||
}
|
||||
BN_GENCB_call(cb, 2, i);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* This is the main X9.31 prime derivation function. From parameters
|
||||
* Xp1, Xp2 and Xp derive the prime p. If the parameters p1 or p2 are
|
||||
* not NULL they will be returned too: this is needed for testing.
|
||||
*/
|
||||
|
||||
int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,
|
||||
const BIGNUM *Xp, const BIGNUM *Xp1, const BIGNUM *Xp2,
|
||||
const BIGNUM *e, BN_CTX *ctx, BN_GENCB *cb)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
BIGNUM *t, *p1p2, *pm1;
|
||||
|
||||
/* Only even e supported */
|
||||
if (!BN_is_odd(e))
|
||||
return 0;
|
||||
|
||||
BN_CTX_start(ctx);
|
||||
if (!p1)
|
||||
p1 = BN_CTX_get(ctx);
|
||||
|
||||
if (!p2)
|
||||
p2 = BN_CTX_get(ctx);
|
||||
|
||||
t = BN_CTX_get(ctx);
|
||||
|
||||
p1p2 = BN_CTX_get(ctx);
|
||||
|
||||
pm1 = BN_CTX_get(ctx);
|
||||
|
||||
if (!bn_x931_derive_pi(p1, Xp1, ctx, cb))
|
||||
goto err;
|
||||
|
||||
if (!bn_x931_derive_pi(p2, Xp2, ctx, cb))
|
||||
goto err;
|
||||
|
||||
if (!BN_mul(p1p2, p1, p2, ctx))
|
||||
goto err;
|
||||
|
||||
/* First set p to value of Rp */
|
||||
|
||||
if (!BN_mod_inverse(p, p2, p1, ctx))
|
||||
goto err;
|
||||
|
||||
if (!BN_mul(p, p, p2, ctx))
|
||||
goto err;
|
||||
|
||||
if (!BN_mod_inverse(t, p1, p2, ctx))
|
||||
goto err;
|
||||
|
||||
if (!BN_mul(t, t, p1, ctx))
|
||||
goto err;
|
||||
|
||||
if (!BN_sub(p, p, t))
|
||||
goto err;
|
||||
|
||||
if (p->neg && !BN_add(p, p, p1p2))
|
||||
goto err;
|
||||
|
||||
/* p now equals Rp */
|
||||
|
||||
if (!BN_mod_sub(p, p, Xp, p1p2, ctx))
|
||||
goto err;
|
||||
|
||||
if (!BN_add(p, p, Xp))
|
||||
goto err;
|
||||
|
||||
/* p now equals Yp0 */
|
||||
|
||||
for (;;)
|
||||
{
|
||||
int i = 1;
|
||||
BN_GENCB_call(cb, 0, i++);
|
||||
if (!BN_copy(pm1, p))
|
||||
goto err;
|
||||
if (!BN_sub_word(pm1, 1))
|
||||
goto err;
|
||||
if (!BN_gcd(t, pm1, e, ctx))
|
||||
goto err;
|
||||
if (BN_is_one(t)
|
||||
/* X9.31 specifies 8 MR and 1 Lucas test or any prime test
|
||||
* offering similar or better guarantees 50 MR is considerably
|
||||
* better.
|
||||
*/
|
||||
&& BN_is_prime_fasttest_ex(p, 50, ctx, 1, cb))
|
||||
break;
|
||||
if (!BN_add(p, p, p1p2))
|
||||
goto err;
|
||||
}
|
||||
|
||||
BN_GENCB_call(cb, 3, 0);
|
||||
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
|
||||
BN_CTX_end(ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Generate pair of paramters Xp, Xq for X9.31 prime generation.
|
||||
* Note: nbits paramter is sum of number of bits in both.
|
||||
*/
|
||||
|
||||
int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx)
|
||||
{
|
||||
BIGNUM *t;
|
||||
int i;
|
||||
/* Number of bits for each prime is of the form
|
||||
* 512+128s for s = 0, 1, ...
|
||||
*/
|
||||
if ((nbits < 1024) || (nbits & 0xff))
|
||||
return 0;
|
||||
nbits >>= 1;
|
||||
/* The random value Xp must be between sqrt(2) * 2^(nbits-1) and
|
||||
* 2^nbits - 1. By setting the top two bits we ensure that the lower
|
||||
* bound is exceeded.
|
||||
*/
|
||||
if (!BN_rand(Xp, nbits, 1, 0))
|
||||
return 0;
|
||||
|
||||
BN_CTX_start(ctx);
|
||||
t = BN_CTX_get(ctx);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
if (!BN_rand(Xq, nbits, 1, 0))
|
||||
return 0;
|
||||
/* Check that |Xp - Xq| > 2^(nbits - 100) */
|
||||
BN_sub(t, Xp, Xq);
|
||||
if (BN_num_bits(t) > (nbits - 100))
|
||||
break;
|
||||
}
|
||||
|
||||
BN_CTX_end(ctx);
|
||||
|
||||
if (i < 1000)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
/* Generate primes using X9.31 algorithm. Of the values p, p1, p2, Xp1
|
||||
* and Xp2 only 'p' needs to be non-NULL. If any of the others are not NULL
|
||||
* the relevant parameter will be stored in it.
|
||||
*
|
||||
* Due to the fact that |Xp - Xq| > 2^(nbits - 100) must be satisfied Xp and Xq
|
||||
* are generated using the previous function and supplied as input.
|
||||
*/
|
||||
|
||||
int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,
|
||||
BIGNUM *Xp1, BIGNUM *Xp2,
|
||||
const BIGNUM *Xp,
|
||||
const BIGNUM *e, BN_CTX *ctx,
|
||||
BN_GENCB *cb)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
BN_CTX_start(ctx);
|
||||
if (!Xp1)
|
||||
Xp1 = BN_CTX_get(ctx);
|
||||
if (!Xp2)
|
||||
Xp2 = BN_CTX_get(ctx);
|
||||
|
||||
if (!BN_rand(Xp1, 101, 0, 0))
|
||||
goto error;
|
||||
if (!BN_rand(Xp2, 101, 0, 0))
|
||||
goto error;
|
||||
if (!BN_X931_derive_prime_ex(p, p1, p2, Xp, Xp1, Xp2, e, ctx, cb))
|
||||
goto error;
|
||||
|
||||
ret = 1;
|
||||
|
||||
error:
|
||||
BN_CTX_end(ctx);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
@@ -17,8 +17,8 @@ TEST=
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= buffer.c buf_err.c
|
||||
LIBOBJ= buffer.o buf_err.o
|
||||
LIBSRC= buffer.c buf_str.c buf_err.c
|
||||
LIBOBJ= buffer.o buf_str.o buf_err.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
@@ -33,7 +33,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -81,6 +81,13 @@ buf_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
buf_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
buf_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
buf_err.o: buf_err.c
|
||||
buf_str.o: ../../e_os.h ../../include/openssl/bio.h
|
||||
buf_str.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
buf_str.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
buf_str.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
buf_str.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
buf_str.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
buf_str.o: ../../include/openssl/symhacks.h ../cryptlib.h buf_str.c
|
||||
buffer.o: ../../e_os.h ../../include/openssl/bio.h
|
||||
buffer.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
buffer.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
|
116
crypto/buffer/buf_str.c
Normal file
116
crypto/buffer/buf_str.c
Normal file
@@ -0,0 +1,116 @@
|
||||
/* crypto/buffer/buf_str.c */
|
||||
/* ====================================================================
|
||||
* Copyright (c) 2007 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* licensing@OpenSSL.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/buffer.h>
|
||||
|
||||
char *BUF_strdup(const char *str)
|
||||
{
|
||||
if (str == NULL) return(NULL);
|
||||
return BUF_strndup(str, strlen(str));
|
||||
}
|
||||
|
||||
char *BUF_strndup(const char *str, size_t siz)
|
||||
{
|
||||
char *ret;
|
||||
|
||||
if (str == NULL) return(NULL);
|
||||
|
||||
ret=OPENSSL_malloc(siz+1);
|
||||
if (ret == NULL)
|
||||
{
|
||||
BUFerr(BUF_F_BUF_STRNDUP,ERR_R_MALLOC_FAILURE);
|
||||
return(NULL);
|
||||
}
|
||||
BUF_strlcpy(ret,str,siz+1);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
void *BUF_memdup(const void *data, size_t siz)
|
||||
{
|
||||
void *ret;
|
||||
|
||||
if (data == NULL) return(NULL);
|
||||
|
||||
ret=OPENSSL_malloc(siz);
|
||||
if (ret == NULL)
|
||||
{
|
||||
BUFerr(BUF_F_BUF_MEMDUP,ERR_R_MALLOC_FAILURE);
|
||||
return(NULL);
|
||||
}
|
||||
return memcpy(ret, data, siz);
|
||||
}
|
||||
|
||||
size_t BUF_strlcpy(char *dst, const char *src, size_t size)
|
||||
{
|
||||
size_t l = 0;
|
||||
for(; size > 1 && *src; size--)
|
||||
{
|
||||
*dst++ = *src++;
|
||||
l++;
|
||||
}
|
||||
if (size)
|
||||
*dst = '\0';
|
||||
return l + strlen(src);
|
||||
}
|
||||
|
||||
size_t BUF_strlcat(char *dst, const char *src, size_t size)
|
||||
{
|
||||
size_t l = 0;
|
||||
for(; size > 0 && *dst; size--, dst++)
|
||||
l++;
|
||||
return l + BUF_strlcpy(dst, src, size);
|
||||
}
|
@@ -161,61 +161,3 @@ int BUF_MEM_grow_clean(BUF_MEM *str, int len)
|
||||
}
|
||||
return(len);
|
||||
}
|
||||
|
||||
char *BUF_strdup(const char *str)
|
||||
{
|
||||
if (str == NULL) return(NULL);
|
||||
return BUF_strndup(str, strlen(str));
|
||||
}
|
||||
|
||||
char *BUF_strndup(const char *str, size_t siz)
|
||||
{
|
||||
char *ret;
|
||||
|
||||
if (str == NULL) return(NULL);
|
||||
|
||||
ret=OPENSSL_malloc(siz+1);
|
||||
if (ret == NULL)
|
||||
{
|
||||
BUFerr(BUF_F_BUF_STRNDUP,ERR_R_MALLOC_FAILURE);
|
||||
return(NULL);
|
||||
}
|
||||
BUF_strlcpy(ret,str,siz+1);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
void *BUF_memdup(const void *data, size_t siz)
|
||||
{
|
||||
void *ret;
|
||||
|
||||
if (data == NULL) return(NULL);
|
||||
|
||||
ret=OPENSSL_malloc(siz);
|
||||
if (ret == NULL)
|
||||
{
|
||||
BUFerr(BUF_F_BUF_MEMDUP,ERR_R_MALLOC_FAILURE);
|
||||
return(NULL);
|
||||
}
|
||||
return memcpy(ret, data, siz);
|
||||
}
|
||||
|
||||
size_t BUF_strlcpy(char *dst, const char *src, size_t size)
|
||||
{
|
||||
size_t l = 0;
|
||||
for(; size > 1 && *src; size--)
|
||||
{
|
||||
*dst++ = *src++;
|
||||
l++;
|
||||
}
|
||||
if (size)
|
||||
*dst = '\0';
|
||||
return l + strlen(src);
|
||||
}
|
||||
|
||||
size_t BUF_strlcat(char *dst, const char *src, size_t size)
|
||||
{
|
||||
size_t l = 0;
|
||||
for(; size > 0 && *dst; size--, dst++)
|
||||
l++;
|
||||
return l + BUF_strlcpy(dst, src, size);
|
||||
}
|
||||
|
@@ -41,7 +41,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
|
@@ -38,7 +38,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -102,5 +102,8 @@ c_ofb64.o: ../../e_os.h ../../include/openssl/cast.h
|
||||
c_ofb64.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
c_ofb64.o: c_ofb64.c cast_lcl.h
|
||||
c_skey.o: ../../e_os.h ../../include/openssl/cast.h
|
||||
c_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
c_skey.o: c_skey.c cast_lcl.h cast_s.h
|
||||
c_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
c_skey.o: ../../include/openssl/fips.h ../../include/openssl/opensslconf.h
|
||||
c_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
c_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
c_skey.o: ../../include/openssl/symhacks.h c_skey.c cast_lcl.h cast_s.h
|
||||
|
@@ -57,6 +57,8 @@
|
||||
*/
|
||||
|
||||
#include <openssl/cast.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/fips.h>
|
||||
#include "cast_lcl.h"
|
||||
#include "cast_s.h"
|
||||
|
||||
@@ -72,7 +74,7 @@
|
||||
#define S6 CAST_S_table6
|
||||
#define S7 CAST_S_table7
|
||||
|
||||
void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data)
|
||||
FIPS_NON_FIPS_VCIPHER_Init(CAST)
|
||||
{
|
||||
CAST_LONG x[16];
|
||||
CAST_LONG z[16];
|
||||
|
@@ -83,7 +83,9 @@ typedef struct cast_key_st
|
||||
int short_key; /* Use reduced rounds for short key */
|
||||
} CAST_KEY;
|
||||
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
void private_CAST_set_key(CAST_KEY *key, int len, const unsigned char *data);
|
||||
#endif
|
||||
void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data);
|
||||
void CAST_ecb_encrypt(const unsigned char *in,unsigned char *out,CAST_KEY *key,
|
||||
int enc);
|
||||
|
@@ -36,7 +36,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
|
@@ -36,7 +36,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -114,8 +114,8 @@ conf_mall.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
|
||||
conf_mall.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
conf_mall.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
|
||||
conf_mall.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
conf_mall.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
conf_mall.o: ../../include/openssl/objects.h
|
||||
conf_mall.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
conf_mall.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
conf_mall.o: ../../include/openssl/opensslconf.h
|
||||
conf_mall.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
conf_mall.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
@@ -128,9 +128,9 @@ conf_mod.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
conf_mod.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
|
||||
conf_mod.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
conf_mod.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
conf_mod.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
conf_mod.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
conf_mod.o: ../../include/openssl/opensslconf.h
|
||||
conf_mod.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
conf_mod.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
conf_mod.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
conf_mod.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
conf_mod.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
conf_mod.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
@@ -143,8 +143,9 @@ conf_sap.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
|
||||
conf_sap.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
conf_sap.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
|
||||
conf_sap.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
conf_sap.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
conf_sap.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
conf_sap.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
conf_sap.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
conf_sap.o: ../../include/openssl/opensslconf.h
|
||||
conf_sap.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
conf_sap.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
conf_sap.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
|
@@ -121,275 +121,17 @@
|
||||
static double SSLeay_MSVC5_hack=0.0; /* and for VC1.5 */
|
||||
#endif
|
||||
|
||||
DECLARE_STACK_OF(CRYPTO_dynlock)
|
||||
IMPLEMENT_STACK_OF(CRYPTO_dynlock)
|
||||
|
||||
/* real #defines in crypto.h, keep these upto date */
|
||||
static const char* const lock_names[CRYPTO_NUM_LOCKS] =
|
||||
{
|
||||
"<<ERROR>>",
|
||||
"err",
|
||||
"ex_data",
|
||||
"x509",
|
||||
"x509_info",
|
||||
"x509_pkey",
|
||||
"x509_crl",
|
||||
"x509_req",
|
||||
"dsa",
|
||||
"rsa",
|
||||
"evp_pkey",
|
||||
"x509_store",
|
||||
"ssl_ctx",
|
||||
"ssl_cert",
|
||||
"ssl_session",
|
||||
"ssl_sess_cert",
|
||||
"ssl",
|
||||
"ssl_method",
|
||||
"rand",
|
||||
"rand2",
|
||||
"debug_malloc",
|
||||
"BIO",
|
||||
"gethostbyname",
|
||||
"getservbyname",
|
||||
"readdir",
|
||||
"RSA_blinding",
|
||||
"dh",
|
||||
"debug_malloc2",
|
||||
"dso",
|
||||
"dynlock",
|
||||
"engine",
|
||||
"ui",
|
||||
"ecdsa",
|
||||
"ec",
|
||||
"ecdh",
|
||||
"bn",
|
||||
"ec_pre_comp",
|
||||
"store",
|
||||
"comp",
|
||||
#if CRYPTO_NUM_LOCKS != 39
|
||||
# error "Inconsistency between crypto.h and cryptlib.c"
|
||||
#endif
|
||||
};
|
||||
|
||||
/* This is for applications to allocate new type names in the non-dynamic
|
||||
array of lock names. These are numbered with positive numbers. */
|
||||
static STACK *app_locks=NULL;
|
||||
|
||||
/* For applications that want a more dynamic way of handling threads, the
|
||||
following stack is used. These are externally numbered with negative
|
||||
numbers. */
|
||||
static STACK_OF(CRYPTO_dynlock) *dyn_locks=NULL;
|
||||
|
||||
|
||||
static void (MS_FAR *locking_callback)(int mode,int type,
|
||||
const char *file,int line)=NULL;
|
||||
static int (MS_FAR *add_lock_callback)(int *pointer,int amount,
|
||||
int type,const char *file,int line)=NULL;
|
||||
static unsigned long (MS_FAR *id_callback)(void)=NULL;
|
||||
static struct CRYPTO_dynlock_value *(MS_FAR *dynlock_create_callback)
|
||||
(const char *file,int line)=NULL;
|
||||
static void (MS_FAR *dynlock_lock_callback)(int mode,
|
||||
struct CRYPTO_dynlock_value *l, const char *file,int line)=NULL;
|
||||
static void (MS_FAR *dynlock_destroy_callback)(struct CRYPTO_dynlock_value *l,
|
||||
const char *file,int line)=NULL;
|
||||
|
||||
int CRYPTO_get_new_lockid(char *name)
|
||||
{
|
||||
char *str;
|
||||
int i;
|
||||
|
||||
#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN16)
|
||||
/* A hack to make Visual C++ 5.0 work correctly when linking as
|
||||
* a DLL using /MT. Without this, the application cannot use
|
||||
* and floating point printf's.
|
||||
* It also seems to be needed for Visual C 1.5 (win16) */
|
||||
SSLeay_MSVC5_hack=(double)name[0]*(double)name[1];
|
||||
#endif
|
||||
|
||||
if ((app_locks == NULL) && ((app_locks=sk_new_null()) == NULL))
|
||||
{
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_LOCKID,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
if ((str=BUF_strdup(name)) == NULL)
|
||||
{
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_LOCKID,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
i=sk_push(app_locks,str);
|
||||
if (!i)
|
||||
OPENSSL_free(str);
|
||||
else
|
||||
i+=CRYPTO_NUM_LOCKS; /* gap of one :-) */
|
||||
return(i);
|
||||
}
|
||||
|
||||
int CRYPTO_num_locks(void)
|
||||
{
|
||||
return CRYPTO_NUM_LOCKS;
|
||||
}
|
||||
|
||||
int CRYPTO_get_new_dynlockid(void)
|
||||
{
|
||||
int i = 0;
|
||||
CRYPTO_dynlock *pointer = NULL;
|
||||
|
||||
if (dynlock_create_callback == NULL)
|
||||
{
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID,CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK);
|
||||
return(0);
|
||||
}
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_DYNLOCK);
|
||||
if ((dyn_locks == NULL)
|
||||
&& ((dyn_locks=sk_CRYPTO_dynlock_new_null()) == NULL))
|
||||
{
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
pointer = (CRYPTO_dynlock *)OPENSSL_malloc(sizeof(CRYPTO_dynlock));
|
||||
if (pointer == NULL)
|
||||
{
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
pointer->references = 1;
|
||||
pointer->data = dynlock_create_callback(__FILE__,__LINE__);
|
||||
if (pointer->data == NULL)
|
||||
{
|
||||
OPENSSL_free(pointer);
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_DYNLOCK);
|
||||
/* First, try to find an existing empty slot */
|
||||
i=sk_CRYPTO_dynlock_find(dyn_locks,NULL);
|
||||
/* If there was none, push, thereby creating a new one */
|
||||
if (i == -1)
|
||||
/* Since sk_push() returns the number of items on the
|
||||
stack, not the location of the pushed item, we need
|
||||
to transform the returned number into a position,
|
||||
by decreasing it. */
|
||||
i=sk_CRYPTO_dynlock_push(dyn_locks,pointer) - 1;
|
||||
else
|
||||
/* If we found a place with a NULL pointer, put our pointer
|
||||
in it. */
|
||||
sk_CRYPTO_dynlock_set(dyn_locks,i,pointer);
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
if (i == -1)
|
||||
{
|
||||
dynlock_destroy_callback(pointer->data,__FILE__,__LINE__);
|
||||
OPENSSL_free(pointer);
|
||||
}
|
||||
else
|
||||
i += 1; /* to avoid 0 */
|
||||
return -i;
|
||||
}
|
||||
|
||||
void CRYPTO_destroy_dynlockid(int i)
|
||||
{
|
||||
CRYPTO_dynlock *pointer = NULL;
|
||||
if (i)
|
||||
i = -i-1;
|
||||
if (dynlock_destroy_callback == NULL)
|
||||
return;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
if (dyn_locks == NULL || i >= sk_CRYPTO_dynlock_num(dyn_locks))
|
||||
{
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
return;
|
||||
}
|
||||
pointer = sk_CRYPTO_dynlock_value(dyn_locks, i);
|
||||
if (pointer != NULL)
|
||||
{
|
||||
--pointer->references;
|
||||
#ifdef REF_CHECK
|
||||
if (pointer->references < 0)
|
||||
{
|
||||
fprintf(stderr,"CRYPTO_destroy_dynlockid, bad reference count\n");
|
||||
abort();
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (pointer->references <= 0)
|
||||
{
|
||||
sk_CRYPTO_dynlock_set(dyn_locks, i, NULL);
|
||||
}
|
||||
else
|
||||
pointer = NULL;
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
if (pointer)
|
||||
{
|
||||
dynlock_destroy_callback(pointer->data,__FILE__,__LINE__);
|
||||
OPENSSL_free(pointer);
|
||||
}
|
||||
}
|
||||
|
||||
struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i)
|
||||
{
|
||||
CRYPTO_dynlock *pointer = NULL;
|
||||
if (i)
|
||||
i = -i-1;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
if (dyn_locks != NULL && i < sk_CRYPTO_dynlock_num(dyn_locks))
|
||||
pointer = sk_CRYPTO_dynlock_value(dyn_locks, i);
|
||||
if (pointer)
|
||||
pointer->references++;
|
||||
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
if (pointer)
|
||||
return pointer->data;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct CRYPTO_dynlock_value *(*CRYPTO_get_dynlock_create_callback(void))
|
||||
(const char *file,int line)
|
||||
{
|
||||
return(dynlock_create_callback);
|
||||
}
|
||||
|
||||
void (*CRYPTO_get_dynlock_lock_callback(void))(int mode,
|
||||
struct CRYPTO_dynlock_value *l, const char *file,int line)
|
||||
{
|
||||
return(dynlock_lock_callback);
|
||||
}
|
||||
|
||||
void (*CRYPTO_get_dynlock_destroy_callback(void))
|
||||
(struct CRYPTO_dynlock_value *l, const char *file,int line)
|
||||
{
|
||||
return(dynlock_destroy_callback);
|
||||
}
|
||||
|
||||
void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *(*func)
|
||||
(const char *file, int line))
|
||||
{
|
||||
dynlock_create_callback=func;
|
||||
}
|
||||
|
||||
void CRYPTO_set_dynlock_lock_callback(void (*func)(int mode,
|
||||
struct CRYPTO_dynlock_value *l, const char *file, int line))
|
||||
{
|
||||
dynlock_lock_callback=func;
|
||||
}
|
||||
|
||||
void CRYPTO_set_dynlock_destroy_callback(void (*func)
|
||||
(struct CRYPTO_dynlock_value *l, const char *file, int line))
|
||||
{
|
||||
dynlock_destroy_callback=func;
|
||||
}
|
||||
|
||||
|
||||
void (*CRYPTO_get_locking_callback(void))(int mode,int type,const char *file,
|
||||
int line)
|
||||
{
|
||||
@@ -445,6 +187,14 @@ unsigned long CRYPTO_thread_id(void)
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static void (*do_dynlock_cb)(int mode, int type, const char *file, int line);
|
||||
|
||||
void int_CRYPTO_set_do_dynlock_callback(
|
||||
void (*dyn_cb)(int mode, int type, const char *file, int line))
|
||||
{
|
||||
do_dynlock_cb = dyn_cb;
|
||||
}
|
||||
|
||||
void CRYPTO_lock(int mode, int type, const char *file, int line)
|
||||
{
|
||||
#ifdef LOCK_DEBUG
|
||||
@@ -472,17 +222,8 @@ void CRYPTO_lock(int mode, int type, const char *file, int line)
|
||||
#endif
|
||||
if (type < 0)
|
||||
{
|
||||
if (dynlock_lock_callback != NULL)
|
||||
{
|
||||
struct CRYPTO_dynlock_value *pointer
|
||||
= CRYPTO_get_dynlock_value(type);
|
||||
|
||||
OPENSSL_assert(pointer != NULL);
|
||||
|
||||
dynlock_lock_callback(mode, pointer, file, line);
|
||||
|
||||
CRYPTO_destroy_dynlockid(type);
|
||||
}
|
||||
if (do_dynlock_cb)
|
||||
do_dynlock_cb(mode, type, file, line);
|
||||
}
|
||||
else
|
||||
if (locking_callback != NULL)
|
||||
@@ -527,18 +268,6 @@ int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file,
|
||||
return(ret);
|
||||
}
|
||||
|
||||
const char *CRYPTO_get_lock_name(int type)
|
||||
{
|
||||
if (type < 0)
|
||||
return("dynamic");
|
||||
else if (type < CRYPTO_NUM_LOCKS)
|
||||
return(lock_names[type]);
|
||||
else if (type-CRYPTO_NUM_LOCKS > sk_num(app_locks))
|
||||
return("ERROR");
|
||||
else
|
||||
return(sk_value(app_locks,type-CRYPTO_NUM_LOCKS));
|
||||
}
|
||||
|
||||
#if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
|
||||
defined(__INTEL__) || \
|
||||
defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64)
|
||||
|
@@ -219,7 +219,9 @@ typedef struct openssl_item_st
|
||||
#define CRYPTO_LOCK_EC_PRE_COMP 36
|
||||
#define CRYPTO_LOCK_STORE 37
|
||||
#define CRYPTO_LOCK_COMP 38
|
||||
#define CRYPTO_NUM_LOCKS 39
|
||||
#define CRYPTO_LOCK_FIPS 39
|
||||
#define CRYPTO_LOCK_FIPS2 40
|
||||
#define CRYPTO_NUM_LOCKS 41
|
||||
|
||||
#define CRYPTO_LOCK 1
|
||||
#define CRYPTO_UNLOCK 2
|
||||
@@ -341,14 +343,7 @@ DECLARE_STACK_OF(CRYPTO_EX_DATA_FUNCS)
|
||||
|
||||
/* Set standard debugging functions (not done by default
|
||||
* unless CRYPTO_MDEBUG is defined) */
|
||||
#define CRYPTO_malloc_debug_init() do {\
|
||||
CRYPTO_set_mem_debug_functions(\
|
||||
CRYPTO_dbg_malloc,\
|
||||
CRYPTO_dbg_realloc,\
|
||||
CRYPTO_dbg_free,\
|
||||
CRYPTO_dbg_set_options,\
|
||||
CRYPTO_dbg_get_options);\
|
||||
} while(0)
|
||||
void CRYPTO_malloc_debug_init(void);
|
||||
|
||||
int CRYPTO_mem_ctrl(int mode);
|
||||
int CRYPTO_is_mem_check_on(void);
|
||||
@@ -427,6 +422,9 @@ const char *CRYPTO_get_lock_name(int type);
|
||||
int CRYPTO_add_lock(int *pointer,int amount,int type, const char *file,
|
||||
int line);
|
||||
|
||||
void int_CRYPTO_set_do_dynlock_callback(
|
||||
void (*do_dynlock_cb)(int mode, int type, const char *file, int line));
|
||||
|
||||
int CRYPTO_get_new_dynlockid(void);
|
||||
void CRYPTO_destroy_dynlockid(int i);
|
||||
struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i);
|
||||
@@ -451,6 +449,10 @@ int CRYPTO_set_mem_debug_functions(void (*m)(void *,int,const char *,int,int),
|
||||
void (*f)(void *,int),
|
||||
void (*so)(long),
|
||||
long (*go)(void));
|
||||
void CRYPTO_set_mem_info_functions(
|
||||
int (*push_info_fn)(const char *info, const char *file, int line),
|
||||
int (*pop_info_fn)(void),
|
||||
int (*remove_all_info_fn)(void));
|
||||
void CRYPTO_get_mem_functions(void *(**m)(size_t),void *(**r)(void *, size_t), void (**f)(void *));
|
||||
void CRYPTO_get_locked_mem_functions(void *(**m)(size_t), void (**f)(void *));
|
||||
void CRYPTO_get_mem_ex_functions(void *(**m)(size_t,const char *,int),
|
||||
@@ -506,6 +508,9 @@ void CRYPTO_dbg_free(void *addr,int before_p);
|
||||
void CRYPTO_dbg_set_options(long bits);
|
||||
long CRYPTO_dbg_get_options(void);
|
||||
|
||||
int CRYPTO_dbg_push_info(const char *info, const char *file, int line);
|
||||
int CRYPTO_dbg_pop_info(void);
|
||||
int CRYPTO_dbg_remove_all_info(void);
|
||||
|
||||
#ifndef OPENSSL_NO_FP_API
|
||||
void CRYPTO_mem_leaks_fp(FILE *);
|
||||
@@ -522,12 +527,69 @@ void OpenSSLDie(const char *file,int line,const char *assertion);
|
||||
unsigned long *OPENSSL_ia32cap_loc(void);
|
||||
#define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc()))
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
#define FIPS_ERROR_IGNORED(alg) OpenSSLDie(__FILE__, __LINE__, \
|
||||
alg " previous FIPS forbidden algorithm error ignored");
|
||||
|
||||
#define FIPS_BAD_ABORT(alg) OpenSSLDie(__FILE__, __LINE__, \
|
||||
#alg " Algorithm forbidden in FIPS mode");
|
||||
|
||||
#ifdef OPENSSL_FIPS_STRICT
|
||||
#define FIPS_BAD_ALGORITHM(alg) FIPS_BAD_ABORT(alg)
|
||||
#else
|
||||
#define FIPS_BAD_ALGORITHM(alg) \
|
||||
{ \
|
||||
FIPSerr(FIPS_F_HASH_FINAL,FIPS_R_NON_FIPS_METHOD); \
|
||||
ERR_add_error_data(2, "Algorithm=", #alg); \
|
||||
return 0; \
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Low level digest API blocking macro */
|
||||
|
||||
#define FIPS_NON_FIPS_MD_Init(alg) \
|
||||
int alg##_Init(alg##_CTX *c) \
|
||||
{ \
|
||||
if (FIPS_mode()) \
|
||||
FIPS_BAD_ALGORITHM(alg) \
|
||||
return private_##alg##_Init(c); \
|
||||
} \
|
||||
int private_##alg##_Init(alg##_CTX *c)
|
||||
|
||||
/* For ciphers the API often varies from cipher to cipher and each needs to
|
||||
* be treated as a special case. Variable key length ciphers (Blowfish, RC4,
|
||||
* CAST) however are very similar and can use a blocking macro.
|
||||
*/
|
||||
|
||||
#define FIPS_NON_FIPS_VCIPHER_Init(alg) \
|
||||
void alg##_set_key(alg##_KEY *key, int len, const unsigned char *data) \
|
||||
{ \
|
||||
if (FIPS_mode()) \
|
||||
FIPS_BAD_ABORT(alg) \
|
||||
private_##alg##_set_key(key, len, data); \
|
||||
} \
|
||||
void private_##alg##_set_key(alg##_KEY *key, int len, \
|
||||
const unsigned char *data)
|
||||
|
||||
#else
|
||||
|
||||
#define FIPS_NON_FIPS_VCIPHER_Init(alg) \
|
||||
void alg##_set_key(alg##_KEY *key, int len, const unsigned char *data)
|
||||
|
||||
#define FIPS_NON_FIPS_MD_Init(alg) \
|
||||
int alg##_Init(alg##_CTX *c)
|
||||
|
||||
#endif /* def OPENSSL_FIPS */
|
||||
|
||||
/* BEGIN ERROR CODES */
|
||||
/* The following lines are auto generated by the script mkerr.pl. Any changes
|
||||
* made after this point may be overwritten when the script is next run.
|
||||
*/
|
||||
void ERR_load_CRYPTO_strings(void);
|
||||
|
||||
#define OPENSSL_HAVE_INIT 1
|
||||
void OPENSSL_init(void);
|
||||
|
||||
/* Error codes for the CRYPTO functions. */
|
||||
|
||||
/* Function codes. */
|
||||
|
@@ -24,7 +24,7 @@ TEST=destest.c
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c \
|
||||
LIBSRC= des_lib.c cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c \
|
||||
ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c \
|
||||
fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c \
|
||||
qud_cksm.c rand_key.c rpc_enc.c set_key.c \
|
||||
@@ -33,7 +33,7 @@ LIBSRC= cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c \
|
||||
str2key.c cfb64ede.c ofb64ede.c ede_cbcm_enc.c des_old.c des_old2.c \
|
||||
read2pwd.c
|
||||
|
||||
LIBOBJ= set_key.o ecb_enc.o cbc_enc.o \
|
||||
LIBOBJ= des_lib.o set_key.o ecb_enc.o cbc_enc.o \
|
||||
ecb3_enc.o cfb64enc.o cfb64ede.o cfb_enc.o ofb64ede.o \
|
||||
enc_read.o enc_writ.o ofb64enc.o \
|
||||
ofb_enc.o str2key.o pcbc_enc.o qud_cksm.o rand_key.o \
|
||||
@@ -54,7 +54,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -156,7 +156,14 @@ des_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
des_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
des_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
des_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
|
||||
des_enc.o: des_enc.c des_locl.h ncbc_enc.c
|
||||
des_enc.o: des_enc.c des_locl.h
|
||||
des_lib.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
|
||||
des_lib.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
|
||||
des_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
des_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
des_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
des_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
des_lib.o: ../../include/openssl/ui_compat.h des_lib.c des_locl.h des_ver.h
|
||||
des_old.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
|
||||
des_old.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
des_old.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
@@ -175,14 +182,12 @@ ecb3_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
ecb3_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
ecb3_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
|
||||
ecb3_enc.o: des_locl.h ecb3_enc.c
|
||||
ecb_enc.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
|
||||
ecb_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
|
||||
ecb_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
ecb_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
ecb_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
ecb_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
ecb_enc.o: ../../include/openssl/ui_compat.h des_locl.h des_ver.h ecb_enc.c
|
||||
ecb_enc.o: spr.h
|
||||
ecb_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
ecb_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
ecb_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
|
||||
ecb_enc.o: des_locl.h ecb_enc.c spr.h
|
||||
ede_cbcm_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
|
||||
ede_cbcm_enc.o: ../../include/openssl/e_os2.h
|
||||
ede_cbcm_enc.o: ../../include/openssl/opensslconf.h
|
||||
|
@@ -58,6 +58,8 @@
|
||||
|
||||
#include "des_locl.h"
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
|
||||
void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
|
||||
{
|
||||
register DES_LONG l,r,t,u;
|
||||
@@ -287,8 +289,12 @@ void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,
|
||||
data[1]=r;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef DES_DEFAULT_OPTIONS
|
||||
|
||||
#if !defined(OPENSSL_FIPS_DES_ASM)
|
||||
|
||||
#undef CBC_ENC_C__DONT_UPDATE_IV
|
||||
#include "ncbc_enc.c" /* DES_ncbc_encrypt */
|
||||
|
||||
@@ -404,4 +410,6 @@ void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output,
|
||||
tin[0]=tin[1]=0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* DES_DEFAULT_OPTIONS */
|
||||
|
106
crypto/des/des_lib.c
Normal file
106
crypto/des/des_lib.c
Normal file
@@ -0,0 +1,106 @@
|
||||
/* crypto/des/ecb_enc.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#include "des_locl.h"
|
||||
#include "des_ver.h"
|
||||
#include <openssl/opensslv.h>
|
||||
#include <openssl/bio.h>
|
||||
|
||||
OPENSSL_GLOBAL const char libdes_version[]="libdes" OPENSSL_VERSION_PTEXT;
|
||||
OPENSSL_GLOBAL const char DES_version[]="DES" OPENSSL_VERSION_PTEXT;
|
||||
|
||||
const char *DES_options(void)
|
||||
{
|
||||
static int init=1;
|
||||
static char buf[32];
|
||||
|
||||
if (init)
|
||||
{
|
||||
const char *ptr,*unroll,*risc,*size;
|
||||
|
||||
#ifdef DES_PTR
|
||||
ptr="ptr";
|
||||
#else
|
||||
ptr="idx";
|
||||
#endif
|
||||
#if defined(DES_RISC1) || defined(DES_RISC2)
|
||||
#ifdef DES_RISC1
|
||||
risc="risc1";
|
||||
#endif
|
||||
#ifdef DES_RISC2
|
||||
risc="risc2";
|
||||
#endif
|
||||
#else
|
||||
risc="cisc";
|
||||
#endif
|
||||
#ifdef DES_UNROLL
|
||||
unroll="16";
|
||||
#else
|
||||
unroll="4";
|
||||
#endif
|
||||
if (sizeof(DES_LONG) != sizeof(long))
|
||||
size="int";
|
||||
else
|
||||
size="long";
|
||||
BIO_snprintf(buf,sizeof buf,"des(%s,%s,%s,%s)",ptr,risc,unroll,
|
||||
size);
|
||||
init=0;
|
||||
}
|
||||
return(buf);
|
||||
}
|
||||
|
@@ -57,54 +57,7 @@
|
||||
*/
|
||||
|
||||
#include "des_locl.h"
|
||||
#include "des_ver.h"
|
||||
#include "spr.h"
|
||||
#include <openssl/opensslv.h>
|
||||
#include <openssl/bio.h>
|
||||
|
||||
OPENSSL_GLOBAL const char libdes_version[]="libdes" OPENSSL_VERSION_PTEXT;
|
||||
OPENSSL_GLOBAL const char DES_version[]="DES" OPENSSL_VERSION_PTEXT;
|
||||
|
||||
const char *DES_options(void)
|
||||
{
|
||||
static int init=1;
|
||||
static char buf[32];
|
||||
|
||||
if (init)
|
||||
{
|
||||
const char *ptr,*unroll,*risc,*size;
|
||||
|
||||
#ifdef DES_PTR
|
||||
ptr="ptr";
|
||||
#else
|
||||
ptr="idx";
|
||||
#endif
|
||||
#if defined(DES_RISC1) || defined(DES_RISC2)
|
||||
#ifdef DES_RISC1
|
||||
risc="risc1";
|
||||
#endif
|
||||
#ifdef DES_RISC2
|
||||
risc="risc2";
|
||||
#endif
|
||||
#else
|
||||
risc="cisc";
|
||||
#endif
|
||||
#ifdef DES_UNROLL
|
||||
unroll="16";
|
||||
#else
|
||||
unroll="4";
|
||||
#endif
|
||||
if (sizeof(DES_LONG) != sizeof(long))
|
||||
size="int";
|
||||
else
|
||||
size="long";
|
||||
BIO_snprintf(buf,sizeof buf,"des(%s,%s,%s,%s)",ptr,risc,unroll,
|
||||
size);
|
||||
init=0;
|
||||
}
|
||||
return(buf);
|
||||
}
|
||||
|
||||
|
||||
void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output,
|
||||
DES_key_schedule *ks, int enc)
|
||||
|
@@ -65,6 +65,8 @@
|
||||
*/
|
||||
#include "des_locl.h"
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
|
||||
OPENSSL_IMPLEMENT_GLOBAL(int,DES_check_key); /* defaults to false */
|
||||
|
||||
static const unsigned char odd_parity[256]={
|
||||
@@ -405,3 +407,5 @@ void des_fixup_key_parity(des_cblock *key)
|
||||
des_set_odd_parity(key);
|
||||
}
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
@@ -33,7 +33,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
|
@@ -167,6 +167,11 @@ struct dh_st
|
||||
|
||||
const DH_METHOD *DH_OpenSSL(void);
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
DH * FIPS_dh_new(void);
|
||||
void FIPS_dh_free(DH *dh);
|
||||
#endif
|
||||
|
||||
void DH_set_default_method(const DH_METHOD *meth);
|
||||
const DH_METHOD *DH_get_default_method(void);
|
||||
int DH_set_method(DH *dh, const DH_METHOD *meth);
|
||||
@@ -218,6 +223,9 @@ void ERR_load_DH_strings(void);
|
||||
#define DH_F_DHPARAMS_PRINT 100
|
||||
#define DH_F_DHPARAMS_PRINT_FP 101
|
||||
#define DH_F_DH_BUILTIN_GENPARAMS 106
|
||||
#define DH_F_DH_COMPUTE_KEY 107
|
||||
#define DH_F_DH_GENERATE_KEY 108
|
||||
#define DH_F_DH_GENERATE_PARAMETERS 109
|
||||
#define DH_F_DH_NEW_METHOD 105
|
||||
#define DH_F_GENERATE_KEY 103
|
||||
#define DH_F_GENERATE_PARAMETERS 104
|
||||
|
@@ -70,6 +70,8 @@
|
||||
* should hold.
|
||||
*/
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
|
||||
int DH_check(const DH *dh, int *ret)
|
||||
{
|
||||
int ok=0;
|
||||
@@ -140,3 +142,5 @@ err:
|
||||
if (q != NULL) BN_free(q);
|
||||
return(ok);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
247
crypto/dh/dh_eng.c
Normal file
247
crypto/dh/dh_eng.c
Normal file
@@ -0,0 +1,247 @@
|
||||
/* crypto/dh/dh_lib.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/dh.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
|
||||
const char DH_version[]="Diffie-Hellman" OPENSSL_VERSION_PTEXT;
|
||||
|
||||
static const DH_METHOD *default_DH_method = NULL;
|
||||
|
||||
void DH_set_default_method(const DH_METHOD *meth)
|
||||
{
|
||||
default_DH_method = meth;
|
||||
}
|
||||
|
||||
const DH_METHOD *DH_get_default_method(void)
|
||||
{
|
||||
if(!default_DH_method)
|
||||
default_DH_method = DH_OpenSSL();
|
||||
return default_DH_method;
|
||||
}
|
||||
|
||||
int DH_set_method(DH *dh, const DH_METHOD *meth)
|
||||
{
|
||||
/* NB: The caller is specifically setting a method, so it's not up to us
|
||||
* to deal with which ENGINE it comes from. */
|
||||
const DH_METHOD *mtmp;
|
||||
mtmp = dh->meth;
|
||||
if (mtmp->finish) mtmp->finish(dh);
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if (dh->engine)
|
||||
{
|
||||
ENGINE_finish(dh->engine);
|
||||
dh->engine = NULL;
|
||||
}
|
||||
#endif
|
||||
dh->meth = meth;
|
||||
if (meth->init) meth->init(dh);
|
||||
return 1;
|
||||
}
|
||||
|
||||
DH *DH_new(void)
|
||||
{
|
||||
return DH_new_method(NULL);
|
||||
}
|
||||
|
||||
DH *DH_new_method(ENGINE *engine)
|
||||
{
|
||||
DH *ret;
|
||||
|
||||
ret=(DH *)OPENSSL_malloc(sizeof(DH));
|
||||
if (ret == NULL)
|
||||
{
|
||||
DHerr(DH_F_DH_NEW_METHOD,ERR_R_MALLOC_FAILURE);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
ret->meth = DH_get_default_method();
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if (engine)
|
||||
{
|
||||
if (!ENGINE_init(engine))
|
||||
{
|
||||
DHerr(DH_F_DH_NEW_METHOD, ERR_R_ENGINE_LIB);
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
ret->engine = engine;
|
||||
}
|
||||
else
|
||||
ret->engine = ENGINE_get_default_DH();
|
||||
if(ret->engine)
|
||||
{
|
||||
ret->meth = ENGINE_get_DH(ret->engine);
|
||||
if(!ret->meth)
|
||||
{
|
||||
DHerr(DH_F_DH_NEW_METHOD,ERR_R_ENGINE_LIB);
|
||||
ENGINE_finish(ret->engine);
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
ret->pad=0;
|
||||
ret->version=0;
|
||||
ret->p=NULL;
|
||||
ret->g=NULL;
|
||||
ret->length=0;
|
||||
ret->pub_key=NULL;
|
||||
ret->priv_key=NULL;
|
||||
ret->q=NULL;
|
||||
ret->j=NULL;
|
||||
ret->seed = NULL;
|
||||
ret->seedlen = 0;
|
||||
ret->counter = NULL;
|
||||
ret->method_mont_p=NULL;
|
||||
ret->references = 1;
|
||||
ret->flags=ret->meth->flags;
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_DH, ret, &ret->ex_data);
|
||||
if ((ret->meth->init != NULL) && !ret->meth->init(ret))
|
||||
{
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if (ret->engine)
|
||||
ENGINE_finish(ret->engine);
|
||||
#endif
|
||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DH, ret, &ret->ex_data);
|
||||
OPENSSL_free(ret);
|
||||
ret=NULL;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
void DH_free(DH *r)
|
||||
{
|
||||
int i;
|
||||
if(r == NULL) return;
|
||||
i = CRYPTO_add(&r->references, -1, CRYPTO_LOCK_DH);
|
||||
#ifdef REF_PRINT
|
||||
REF_PRINT("DH",r);
|
||||
#endif
|
||||
if (i > 0) return;
|
||||
#ifdef REF_CHECK
|
||||
if (i < 0)
|
||||
{
|
||||
fprintf(stderr,"DH_free, bad reference count\n");
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
|
||||
if (r->meth->finish)
|
||||
r->meth->finish(r);
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if (r->engine)
|
||||
ENGINE_finish(r->engine);
|
||||
#endif
|
||||
|
||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DH, r, &r->ex_data);
|
||||
|
||||
if (r->p != NULL) BN_clear_free(r->p);
|
||||
if (r->g != NULL) BN_clear_free(r->g);
|
||||
if (r->q != NULL) BN_clear_free(r->q);
|
||||
if (r->j != NULL) BN_clear_free(r->j);
|
||||
if (r->seed) OPENSSL_free(r->seed);
|
||||
if (r->counter != NULL) BN_clear_free(r->counter);
|
||||
if (r->pub_key != NULL) BN_clear_free(r->pub_key);
|
||||
if (r->priv_key != NULL) BN_clear_free(r->priv_key);
|
||||
OPENSSL_free(r);
|
||||
}
|
||||
|
||||
int DH_up_ref(DH *r)
|
||||
{
|
||||
int i = CRYPTO_add(&r->references, 1, CRYPTO_LOCK_DH);
|
||||
#ifdef REF_PRINT
|
||||
REF_PRINT("DH",r);
|
||||
#endif
|
||||
#ifdef REF_CHECK
|
||||
if (i < 2)
|
||||
{
|
||||
fprintf(stderr, "DH_up, bad reference count\n");
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
return ((i > 1) ? 1 : 0);
|
||||
}
|
||||
|
||||
int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
|
||||
CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
|
||||
{
|
||||
return CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH, argl, argp,
|
||||
new_func, dup_func, free_func);
|
||||
}
|
||||
|
||||
int DH_set_ex_data(DH *d, int idx, void *arg)
|
||||
{
|
||||
return(CRYPTO_set_ex_data(&d->ex_data,idx,arg));
|
||||
}
|
||||
|
||||
void *DH_get_ex_data(DH *d, int idx)
|
||||
{
|
||||
return(CRYPTO_get_ex_data(&d->ex_data,idx));
|
||||
}
|
||||
|
||||
int DH_size(const DH *dh)
|
||||
{
|
||||
return(BN_num_bytes(dh->p));
|
||||
}
|
@@ -74,6 +74,9 @@ static ERR_STRING_DATA DH_str_functs[]=
|
||||
{ERR_FUNC(DH_F_DHPARAMS_PRINT), "DHparams_print"},
|
||||
{ERR_FUNC(DH_F_DHPARAMS_PRINT_FP), "DHparams_print_fp"},
|
||||
{ERR_FUNC(DH_F_DH_BUILTIN_GENPARAMS), "DH_BUILTIN_GENPARAMS"},
|
||||
{ERR_FUNC(DH_F_DH_COMPUTE_KEY), "DH_compute_key"},
|
||||
{ERR_FUNC(DH_F_DH_GENERATE_KEY), "DH_generate_key"},
|
||||
{ERR_FUNC(DH_F_DH_GENERATE_PARAMETERS), "DH_generate_parameters"},
|
||||
{ERR_FUNC(DH_F_DH_NEW_METHOD), "DH_new_method"},
|
||||
{ERR_FUNC(DH_F_GENERATE_KEY), "GENERATE_KEY"},
|
||||
{ERR_FUNC(DH_F_GENERATE_PARAMETERS), "GENERATE_PARAMETERS"},
|
||||
|
@@ -66,6 +66,8 @@
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/dh.h>
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
|
||||
static int dh_builtin_genparams(DH *ret, int prime_len, int generator, BN_GENCB *cb);
|
||||
|
||||
int DH_generate_parameters_ex(DH *ret, int prime_len, int generator, BN_GENCB *cb)
|
||||
@@ -173,3 +175,5 @@ err:
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -62,6 +62,8 @@
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/dh.h>
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
|
||||
static int generate_key(DH *dh);
|
||||
static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh);
|
||||
static int dh_bn_mod_exp(const DH *dh, BIGNUM *r,
|
||||
@@ -261,3 +263,5 @@ static int dh_finish(DH *dh)
|
||||
BN_MONT_CTX_free(dh->method_mont_p);
|
||||
return(1);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
247
crypto/dh/dh_utl.c
Normal file
247
crypto/dh/dh_utl.c
Normal file
@@ -0,0 +1,247 @@
|
||||
/* crypto/dh/dh_lib.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/dh.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
|
||||
const char DH_version[]="Diffie-Hellman" OPENSSL_VERSION_PTEXT;
|
||||
|
||||
static const DH_METHOD *default_DH_method = NULL;
|
||||
|
||||
void DH_set_default_method(const DH_METHOD *meth)
|
||||
{
|
||||
default_DH_method = meth;
|
||||
}
|
||||
|
||||
const DH_METHOD *DH_get_default_method(void)
|
||||
{
|
||||
if(!default_DH_method)
|
||||
default_DH_method = DH_OpenSSL();
|
||||
return default_DH_method;
|
||||
}
|
||||
|
||||
int DH_set_method(DH *dh, const DH_METHOD *meth)
|
||||
{
|
||||
/* NB: The caller is specifically setting a method, so it's not up to us
|
||||
* to deal with which ENGINE it comes from. */
|
||||
const DH_METHOD *mtmp;
|
||||
mtmp = dh->meth;
|
||||
if (mtmp->finish) mtmp->finish(dh);
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if (dh->engine)
|
||||
{
|
||||
ENGINE_finish(dh->engine);
|
||||
dh->engine = NULL;
|
||||
}
|
||||
#endif
|
||||
dh->meth = meth;
|
||||
if (meth->init) meth->init(dh);
|
||||
return 1;
|
||||
}
|
||||
|
||||
DH *DH_new(void)
|
||||
{
|
||||
return DH_new_method(NULL);
|
||||
}
|
||||
|
||||
DH *DH_new_method(ENGINE *engine)
|
||||
{
|
||||
DH *ret;
|
||||
|
||||
ret=(DH *)OPENSSL_malloc(sizeof(DH));
|
||||
if (ret == NULL)
|
||||
{
|
||||
DHerr(DH_F_DH_NEW_METHOD,ERR_R_MALLOC_FAILURE);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
ret->meth = DH_get_default_method();
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if (engine)
|
||||
{
|
||||
if (!ENGINE_init(engine))
|
||||
{
|
||||
DHerr(DH_F_DH_NEW_METHOD, ERR_R_ENGINE_LIB);
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
ret->engine = engine;
|
||||
}
|
||||
else
|
||||
ret->engine = ENGINE_get_default_DH();
|
||||
if(ret->engine)
|
||||
{
|
||||
ret->meth = ENGINE_get_DH(ret->engine);
|
||||
if(!ret->meth)
|
||||
{
|
||||
DHerr(DH_F_DH_NEW_METHOD,ERR_R_ENGINE_LIB);
|
||||
ENGINE_finish(ret->engine);
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
ret->pad=0;
|
||||
ret->version=0;
|
||||
ret->p=NULL;
|
||||
ret->g=NULL;
|
||||
ret->length=0;
|
||||
ret->pub_key=NULL;
|
||||
ret->priv_key=NULL;
|
||||
ret->q=NULL;
|
||||
ret->j=NULL;
|
||||
ret->seed = NULL;
|
||||
ret->seedlen = 0;
|
||||
ret->counter = NULL;
|
||||
ret->method_mont_p=NULL;
|
||||
ret->references = 1;
|
||||
ret->flags=ret->meth->flags;
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_DH, ret, &ret->ex_data);
|
||||
if ((ret->meth->init != NULL) && !ret->meth->init(ret))
|
||||
{
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if (ret->engine)
|
||||
ENGINE_finish(ret->engine);
|
||||
#endif
|
||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DH, ret, &ret->ex_data);
|
||||
OPENSSL_free(ret);
|
||||
ret=NULL;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
void DH_free(DH *r)
|
||||
{
|
||||
int i;
|
||||
if(r == NULL) return;
|
||||
i = CRYPTO_add(&r->references, -1, CRYPTO_LOCK_DH);
|
||||
#ifdef REF_PRINT
|
||||
REF_PRINT("DH",r);
|
||||
#endif
|
||||
if (i > 0) return;
|
||||
#ifdef REF_CHECK
|
||||
if (i < 0)
|
||||
{
|
||||
fprintf(stderr,"DH_free, bad reference count\n");
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
|
||||
if (r->meth->finish)
|
||||
r->meth->finish(r);
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if (r->engine)
|
||||
ENGINE_finish(r->engine);
|
||||
#endif
|
||||
|
||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DH, r, &r->ex_data);
|
||||
|
||||
if (r->p != NULL) BN_clear_free(r->p);
|
||||
if (r->g != NULL) BN_clear_free(r->g);
|
||||
if (r->q != NULL) BN_clear_free(r->q);
|
||||
if (r->j != NULL) BN_clear_free(r->j);
|
||||
if (r->seed) OPENSSL_free(r->seed);
|
||||
if (r->counter != NULL) BN_clear_free(r->counter);
|
||||
if (r->pub_key != NULL) BN_clear_free(r->pub_key);
|
||||
if (r->priv_key != NULL) BN_clear_free(r->priv_key);
|
||||
OPENSSL_free(r);
|
||||
}
|
||||
|
||||
int DH_up_ref(DH *r)
|
||||
{
|
||||
int i = CRYPTO_add(&r->references, 1, CRYPTO_LOCK_DH);
|
||||
#ifdef REF_PRINT
|
||||
REF_PRINT("DH",r);
|
||||
#endif
|
||||
#ifdef REF_CHECK
|
||||
if (i < 2)
|
||||
{
|
||||
fprintf(stderr, "DH_up, bad reference count\n");
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
return ((i > 1) ? 1 : 0);
|
||||
}
|
||||
|
||||
int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
|
||||
CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
|
||||
{
|
||||
return CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH, argl, argp,
|
||||
new_func, dup_func, free_func);
|
||||
}
|
||||
|
||||
int DH_set_ex_data(DH *d, int idx, void *arg)
|
||||
{
|
||||
return(CRYPTO_set_ex_data(&d->ex_data,idx,arg));
|
||||
}
|
||||
|
||||
void *DH_get_ex_data(DH *d, int idx)
|
||||
{
|
||||
return(CRYPTO_get_ex_data(&d->ex_data,idx));
|
||||
}
|
||||
|
||||
int DH_size(const DH *dh)
|
||||
{
|
||||
return(BN_num_bytes(dh->p));
|
||||
}
|
@@ -18,9 +18,9 @@ APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= dsa_gen.c dsa_key.c dsa_lib.c dsa_asn1.c dsa_vrf.c dsa_sign.c \
|
||||
dsa_err.c dsa_ossl.c dsa_depr.c
|
||||
dsa_err.c dsa_ossl.c dsa_depr.c dsa_utl.c
|
||||
LIBOBJ= dsa_gen.o dsa_key.o dsa_lib.o dsa_asn1.o dsa_vrf.o dsa_sign.o \
|
||||
dsa_err.o dsa_ossl.o dsa_depr.o
|
||||
dsa_err.o dsa_ossl.o dsa_depr.o dsa_utl.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
@@ -35,7 +35,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -90,8 +90,9 @@ dsa_depr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_depr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dsa_depr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
dsa_depr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
dsa_depr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
dsa_depr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
dsa_depr.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
dsa_depr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
dsa_depr.o: ../../include/openssl/opensslconf.h
|
||||
dsa_depr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
dsa_depr.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
dsa_depr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
@@ -108,12 +109,13 @@ dsa_gen.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_gen.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dsa_gen.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
dsa_gen.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
dsa_gen.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
dsa_gen.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
dsa_gen.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
dsa_gen.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
dsa_gen.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
dsa_gen.o: ../../include/openssl/symhacks.h ../cryptlib.h dsa_gen.c
|
||||
dsa_gen.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
dsa_gen.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
dsa_gen.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dsa_gen.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
dsa_gen.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
dsa_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dsa_gen.o: ../cryptlib.h dsa_gen.c
|
||||
dsa_key.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dsa_key.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
@@ -146,19 +148,29 @@ dsa_sign.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
dsa_sign.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dsa_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
dsa_sign.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dsa_sign.o: ../../include/openssl/opensslconf.h
|
||||
dsa_sign.o: ../../include/openssl/err.h ../../include/openssl/fips.h
|
||||
dsa_sign.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
dsa_sign.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
dsa_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dsa_sign.o: ../cryptlib.h dsa_sign.c
|
||||
dsa_utl.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
dsa_utl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_utl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dsa_utl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
dsa_utl.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
|
||||
dsa_utl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dsa_utl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dsa_utl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
dsa_utl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dsa_utl.o: ../cryptlib.h dsa_utl.c
|
||||
dsa_vrf.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
dsa_vrf.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
|
||||
dsa_vrf.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
dsa_vrf.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
|
||||
dsa_vrf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
dsa_vrf.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dsa_vrf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
dsa_vrf.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
dsa_vrf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dsa_vrf.o: ../cryptlib.h dsa_vrf.c
|
||||
dsa_vrf.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
dsa_vrf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dsa_vrf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
dsa_vrf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dsa_vrf.o: ../../include/openssl/symhacks.h ../cryptlib.h dsa_vrf.c
|
||||
|
@@ -97,6 +97,17 @@
|
||||
* be used for all exponents.
|
||||
*/
|
||||
|
||||
/* If this flag is set external DSA_METHOD callbacks are allowed in FIPS mode
|
||||
* it is then the applications responsibility to ensure the external method
|
||||
* is compliant.
|
||||
*/
|
||||
|
||||
#define DSA_FLAG_FIPS_EXTERNAL_METHOD_ALLOW 0x04
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
#define FIPS_DSA_SIZE_T int
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -189,6 +200,11 @@ void DSA_set_default_method(const DSA_METHOD *);
|
||||
const DSA_METHOD *DSA_get_default_method(void);
|
||||
int DSA_set_method(DSA *dsa, const DSA_METHOD *);
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
DSA * FIPS_dsa_new(void);
|
||||
void FIPS_dsa_free (DSA *r);
|
||||
#endif
|
||||
|
||||
DSA * DSA_new(void);
|
||||
DSA * DSA_new_method(ENGINE *engine);
|
||||
void DSA_free (DSA *r);
|
||||
|
@@ -83,7 +83,7 @@ ASN1_SEQUENCE_cb(DSA_SIG, sig_cb) = {
|
||||
ASN1_SIMPLE(DSA_SIG, s, CBIGNUM)
|
||||
} ASN1_SEQUENCE_END_cb(DSA_SIG, DSA_SIG)
|
||||
|
||||
IMPLEMENT_ASN1_FUNCTIONS_const(DSA_SIG)
|
||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA_SIG,DSA_SIG,DSA_SIG)
|
||||
|
||||
/* Override the default free and new methods */
|
||||
static int dsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
|
||||
@@ -138,3 +138,61 @@ ASN1_CHOICE_cb(DSAPublicKey, dsa_cb) = {
|
||||
} ASN1_CHOICE_END_cb(DSA, DSAPublicKey, write_params)
|
||||
|
||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPublicKey, DSAPublicKey)
|
||||
|
||||
int DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
|
||||
unsigned int *siglen, DSA *dsa)
|
||||
{
|
||||
DSA_SIG *s;
|
||||
s=DSA_do_sign(dgst,dlen,dsa);
|
||||
if (s == NULL)
|
||||
{
|
||||
*siglen=0;
|
||||
return(0);
|
||||
}
|
||||
*siglen=i2d_DSA_SIG(s,&sig);
|
||||
DSA_SIG_free(s);
|
||||
return(1);
|
||||
}
|
||||
|
||||
int DSA_size(const DSA *r)
|
||||
{
|
||||
int ret,i;
|
||||
ASN1_INTEGER bs;
|
||||
unsigned char buf[4]; /* 4 bytes looks really small.
|
||||
However, i2d_ASN1_INTEGER() will not look
|
||||
beyond the first byte, as long as the second
|
||||
parameter is NULL. */
|
||||
|
||||
i=BN_num_bits(r->q);
|
||||
bs.length=(i+7)/8;
|
||||
bs.data=buf;
|
||||
bs.type=V_ASN1_INTEGER;
|
||||
/* If the top bit is set the asn1 encoding is 1 larger. */
|
||||
buf[0]=0xff;
|
||||
|
||||
i=i2d_ASN1_INTEGER(&bs,NULL);
|
||||
i+=i; /* r and s */
|
||||
ret=ASN1_object_size(1,i,V_ASN1_SEQUENCE);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
/* data has already been hashed (probably with SHA or SHA-1). */
|
||||
/* returns
|
||||
* 1: correct signature
|
||||
* 0: incorrect signature
|
||||
* -1: error
|
||||
*/
|
||||
int DSA_verify(int type, const unsigned char *dgst, int dgst_len,
|
||||
const unsigned char *sigbuf, int siglen, DSA *dsa)
|
||||
{
|
||||
DSA_SIG *s;
|
||||
int ret=-1;
|
||||
|
||||
s = DSA_SIG_new();
|
||||
if (s == NULL) return(ret);
|
||||
if (d2i_DSA_SIG(&s,&sigbuf,siglen) == NULL) goto err;
|
||||
ret=DSA_do_verify(dgst,dgst_len,s,dsa);
|
||||
err:
|
||||
DSA_SIG_free(s);
|
||||
return(ret);
|
||||
}
|
||||
|
@@ -82,6 +82,8 @@
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/sha.h>
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
|
||||
static int dsa_builtin_paramgen(DSA *ret, int bits,
|
||||
unsigned char *seed_in, int seed_len,
|
||||
int *counter_ret, unsigned long *h_ret, BN_GENCB *cb);
|
||||
@@ -313,3 +315,4 @@ err:
|
||||
return ok;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -64,6 +64,8 @@
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/rand.h>
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
|
||||
static int dsa_builtin_keygen(DSA *dsa);
|
||||
|
||||
int DSA_generate_key(DSA *dsa)
|
||||
@@ -126,3 +128,5 @@ err:
|
||||
return(ok);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -233,28 +233,6 @@ int DSA_up_ref(DSA *r)
|
||||
return ((i > 1) ? 1 : 0);
|
||||
}
|
||||
|
||||
int DSA_size(const DSA *r)
|
||||
{
|
||||
int ret,i;
|
||||
ASN1_INTEGER bs;
|
||||
unsigned char buf[4]; /* 4 bytes looks really small.
|
||||
However, i2d_ASN1_INTEGER() will not look
|
||||
beyond the first byte, as long as the second
|
||||
parameter is NULL. */
|
||||
|
||||
i=BN_num_bits(r->q);
|
||||
bs.length=(i+7)/8;
|
||||
bs.data=buf;
|
||||
bs.type=V_ASN1_INTEGER;
|
||||
/* If the top bit is set the asn1 encoding is 1 larger. */
|
||||
buf[0]=0xff;
|
||||
|
||||
i=i2d_ASN1_INTEGER(&bs,NULL);
|
||||
i+=i; /* r and s */
|
||||
ret=ASN1_object_size(1,i,V_ASN1_SEQUENCE);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
|
||||
CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
|
||||
{
|
||||
|
@@ -65,6 +65,8 @@
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
|
||||
static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa);
|
||||
static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp);
|
||||
static int dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
|
||||
@@ -391,3 +393,4 @@ static int dsa_finish(DSA *dsa)
|
||||
return(1);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -64,29 +64,25 @@
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/asn1.h>
|
||||
#include <openssl/fips.h>
|
||||
|
||||
DSA_SIG * DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
|
||||
{
|
||||
#ifdef OPENSSL_FIPS
|
||||
if(FIPS_mode() && !(dsa->flags & DSA_FLAG_FIPS_EXTERNAL_METHOD_ALLOW)
|
||||
&& !FIPS_dsa_check(dsa))
|
||||
return NULL;
|
||||
#endif
|
||||
return dsa->meth->dsa_do_sign(dgst, dlen, dsa);
|
||||
}
|
||||
|
||||
int DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
|
||||
unsigned int *siglen, DSA *dsa)
|
||||
{
|
||||
DSA_SIG *s;
|
||||
s=DSA_do_sign(dgst,dlen,dsa);
|
||||
if (s == NULL)
|
||||
{
|
||||
*siglen=0;
|
||||
return(0);
|
||||
}
|
||||
*siglen=i2d_DSA_SIG(s,&sig);
|
||||
DSA_SIG_free(s);
|
||||
return(1);
|
||||
}
|
||||
|
||||
int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
|
||||
{
|
||||
#ifdef OPENSSL_FIPS
|
||||
if(FIPS_mode() && !(dsa->flags & DSA_FLAG_FIPS_EXTERNAL_METHOD_ALLOW)
|
||||
&& !FIPS_dsa_check(dsa))
|
||||
return 0;
|
||||
#endif
|
||||
return dsa->meth->dsa_sign_setup(dsa, ctx_in, kinvp, rp);
|
||||
}
|
||||
|
||||
|
95
crypto/dsa/dsa_utl.c
Normal file
95
crypto/dsa/dsa_utl.c
Normal file
@@ -0,0 +1,95 @@
|
||||
/* crypto/dsa/dsa_lib.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
/* Original version from Steven Schoch <schoch@sheba.arc.nasa.gov> */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/asn1.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DH
|
||||
#include <openssl/dh.h>
|
||||
#endif
|
||||
|
||||
DSA_SIG *DSA_SIG_new(void)
|
||||
{
|
||||
DSA_SIG *sig;
|
||||
sig = OPENSSL_malloc(sizeof(DSA_SIG));
|
||||
if (!sig)
|
||||
return NULL;
|
||||
sig->r = NULL;
|
||||
sig->s = NULL;
|
||||
return sig;
|
||||
}
|
||||
|
||||
void DSA_SIG_free(DSA_SIG *sig)
|
||||
{
|
||||
if (sig)
|
||||
{
|
||||
if (sig->r)
|
||||
BN_free(sig->r);
|
||||
if (sig->s)
|
||||
BN_free(sig->s);
|
||||
OPENSSL_free(sig);
|
||||
}
|
||||
}
|
||||
|
@@ -64,31 +64,16 @@
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/asn1.h>
|
||||
#include <openssl/fips.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
|
||||
DSA *dsa)
|
||||
{
|
||||
#ifdef OPENSSL_FIPS
|
||||
if(FIPS_mode() && !(dsa->flags & DSA_FLAG_FIPS_EXTERNAL_METHOD_ALLOW)
|
||||
&& !FIPS_dsa_check(dsa))
|
||||
return -1;
|
||||
#endif
|
||||
return dsa->meth->dsa_do_verify(dgst, dgst_len, sig, dsa);
|
||||
}
|
||||
|
||||
/* data has already been hashed (probably with SHA or SHA-1). */
|
||||
/* returns
|
||||
* 1: correct signature
|
||||
* 0: incorrect signature
|
||||
* -1: error
|
||||
*/
|
||||
int DSA_verify(int type, const unsigned char *dgst, int dgst_len,
|
||||
const unsigned char *sigbuf, int siglen, DSA *dsa)
|
||||
{
|
||||
DSA_SIG *s;
|
||||
int ret=-1;
|
||||
|
||||
s = DSA_SIG_new();
|
||||
if (s == NULL) return(ret);
|
||||
if (d2i_DSA_SIG(&s,&sigbuf,siglen) == NULL) goto err;
|
||||
ret=DSA_do_verify(dgst,dgst_len,s,dsa);
|
||||
err:
|
||||
DSA_SIG_free(s);
|
||||
return(ret);
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
|
422
crypto/dyn_lck.c
Normal file
422
crypto/dyn_lck.c
Normal file
@@ -0,0 +1,422 @@
|
||||
/* crypto/cryptlib.c */
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
/* ====================================================================
|
||||
* Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
|
||||
* ECDH support in OpenSSL originally developed by
|
||||
* SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
|
||||
*/
|
||||
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/safestack.h>
|
||||
|
||||
#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN16)
|
||||
static double SSLeay_MSVC5_hack=0.0; /* and for VC1.5 */
|
||||
#endif
|
||||
|
||||
DECLARE_STACK_OF(CRYPTO_dynlock)
|
||||
IMPLEMENT_STACK_OF(CRYPTO_dynlock)
|
||||
|
||||
/* real #defines in crypto.h, keep these upto date */
|
||||
static const char* const lock_names[CRYPTO_NUM_LOCKS] =
|
||||
{
|
||||
"<<ERROR>>",
|
||||
"err",
|
||||
"ex_data",
|
||||
"x509",
|
||||
"x509_info",
|
||||
"x509_pkey",
|
||||
"x509_crl",
|
||||
"x509_req",
|
||||
"dsa",
|
||||
"rsa",
|
||||
"evp_pkey",
|
||||
"x509_store",
|
||||
"ssl_ctx",
|
||||
"ssl_cert",
|
||||
"ssl_session",
|
||||
"ssl_sess_cert",
|
||||
"ssl",
|
||||
"ssl_method",
|
||||
"rand",
|
||||
"rand2",
|
||||
"debug_malloc",
|
||||
"BIO",
|
||||
"gethostbyname",
|
||||
"getservbyname",
|
||||
"readdir",
|
||||
"RSA_blinding",
|
||||
"dh",
|
||||
"debug_malloc2",
|
||||
"dso",
|
||||
"dynlock",
|
||||
"engine",
|
||||
"ui",
|
||||
"ecdsa",
|
||||
"ec",
|
||||
"ecdh",
|
||||
"bn",
|
||||
"ec_pre_comp",
|
||||
"store",
|
||||
"comp",
|
||||
"fips",
|
||||
"fips2",
|
||||
#if CRYPTO_NUM_LOCKS != 41
|
||||
# error "Inconsistency between crypto.h and cryptlib.c"
|
||||
#endif
|
||||
};
|
||||
|
||||
/* This is for applications to allocate new type names in the non-dynamic
|
||||
array of lock names. These are numbered with positive numbers. */
|
||||
static STACK *app_locks=NULL;
|
||||
|
||||
/* For applications that want a more dynamic way of handling threads, the
|
||||
following stack is used. These are externally numbered with negative
|
||||
numbers. */
|
||||
static STACK_OF(CRYPTO_dynlock) *dyn_locks=NULL;
|
||||
|
||||
|
||||
static struct CRYPTO_dynlock_value *(MS_FAR *dynlock_create_callback)
|
||||
(const char *file,int line)=NULL;
|
||||
static void (MS_FAR *dynlock_lock_callback)(int mode,
|
||||
struct CRYPTO_dynlock_value *l, const char *file,int line)=NULL;
|
||||
static void (MS_FAR *dynlock_destroy_callback)(struct CRYPTO_dynlock_value *l,
|
||||
const char *file,int line)=NULL;
|
||||
|
||||
int CRYPTO_get_new_lockid(char *name)
|
||||
{
|
||||
char *str;
|
||||
int i;
|
||||
|
||||
#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN16)
|
||||
/* A hack to make Visual C++ 5.0 work correctly when linking as
|
||||
* a DLL using /MT. Without this, the application cannot use
|
||||
* and floating point printf's.
|
||||
* It also seems to be needed for Visual C 1.5 (win16) */
|
||||
SSLeay_MSVC5_hack=(double)name[0]*(double)name[1];
|
||||
#endif
|
||||
|
||||
if ((app_locks == NULL) && ((app_locks=sk_new_null()) == NULL))
|
||||
{
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_LOCKID,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
if ((str=BUF_strdup(name)) == NULL)
|
||||
{
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_LOCKID,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
i=sk_push(app_locks,str);
|
||||
if (!i)
|
||||
OPENSSL_free(str);
|
||||
else
|
||||
i+=CRYPTO_NUM_LOCKS; /* gap of one :-) */
|
||||
return(i);
|
||||
}
|
||||
|
||||
int CRYPTO_get_new_dynlockid(void)
|
||||
{
|
||||
int i = 0;
|
||||
CRYPTO_dynlock *pointer = NULL;
|
||||
|
||||
if (dynlock_create_callback == NULL)
|
||||
{
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID,CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK);
|
||||
return(0);
|
||||
}
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_DYNLOCK);
|
||||
if ((dyn_locks == NULL)
|
||||
&& ((dyn_locks=sk_CRYPTO_dynlock_new_null()) == NULL))
|
||||
{
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
pointer = (CRYPTO_dynlock *)OPENSSL_malloc(sizeof(CRYPTO_dynlock));
|
||||
if (pointer == NULL)
|
||||
{
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
pointer->references = 1;
|
||||
pointer->data = dynlock_create_callback(__FILE__,__LINE__);
|
||||
if (pointer->data == NULL)
|
||||
{
|
||||
OPENSSL_free(pointer);
|
||||
CRYPTOerr(CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID,ERR_R_MALLOC_FAILURE);
|
||||
return(0);
|
||||
}
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_DYNLOCK);
|
||||
/* First, try to find an existing empty slot */
|
||||
i=sk_CRYPTO_dynlock_find(dyn_locks,NULL);
|
||||
/* If there was none, push, thereby creating a new one */
|
||||
if (i == -1)
|
||||
/* Since sk_push() returns the number of items on the
|
||||
stack, not the location of the pushed item, we need
|
||||
to transform the returned number into a position,
|
||||
by decreasing it. */
|
||||
i=sk_CRYPTO_dynlock_push(dyn_locks,pointer) - 1;
|
||||
else
|
||||
/* If we found a place with a NULL pointer, put our pointer
|
||||
in it. */
|
||||
sk_CRYPTO_dynlock_set(dyn_locks,i,pointer);
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
if (i == -1)
|
||||
{
|
||||
dynlock_destroy_callback(pointer->data,__FILE__,__LINE__);
|
||||
OPENSSL_free(pointer);
|
||||
}
|
||||
else
|
||||
i += 1; /* to avoid 0 */
|
||||
return -i;
|
||||
}
|
||||
|
||||
void CRYPTO_destroy_dynlockid(int i)
|
||||
{
|
||||
CRYPTO_dynlock *pointer = NULL;
|
||||
if (i)
|
||||
i = -i-1;
|
||||
if (dynlock_destroy_callback == NULL)
|
||||
return;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
if (dyn_locks == NULL || i >= sk_CRYPTO_dynlock_num(dyn_locks))
|
||||
{
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
return;
|
||||
}
|
||||
pointer = sk_CRYPTO_dynlock_value(dyn_locks, i);
|
||||
if (pointer != NULL)
|
||||
{
|
||||
--pointer->references;
|
||||
#ifdef REF_CHECK
|
||||
if (pointer->references < 0)
|
||||
{
|
||||
fprintf(stderr,"CRYPTO_destroy_dynlockid, bad reference count\n");
|
||||
abort();
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (pointer->references <= 0)
|
||||
{
|
||||
sk_CRYPTO_dynlock_set(dyn_locks, i, NULL);
|
||||
}
|
||||
else
|
||||
pointer = NULL;
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
if (pointer)
|
||||
{
|
||||
dynlock_destroy_callback(pointer->data,__FILE__,__LINE__);
|
||||
OPENSSL_free(pointer);
|
||||
}
|
||||
}
|
||||
|
||||
struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i)
|
||||
{
|
||||
CRYPTO_dynlock *pointer = NULL;
|
||||
if (i)
|
||||
i = -i-1;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
if (dyn_locks != NULL && i < sk_CRYPTO_dynlock_num(dyn_locks))
|
||||
pointer = sk_CRYPTO_dynlock_value(dyn_locks, i);
|
||||
if (pointer)
|
||||
pointer->references++;
|
||||
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_DYNLOCK);
|
||||
|
||||
if (pointer)
|
||||
return pointer->data;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct CRYPTO_dynlock_value *(*CRYPTO_get_dynlock_create_callback(void))
|
||||
(const char *file,int line)
|
||||
{
|
||||
return(dynlock_create_callback);
|
||||
}
|
||||
|
||||
void (*CRYPTO_get_dynlock_lock_callback(void))(int mode,
|
||||
struct CRYPTO_dynlock_value *l, const char *file,int line)
|
||||
{
|
||||
return(dynlock_lock_callback);
|
||||
}
|
||||
|
||||
void (*CRYPTO_get_dynlock_destroy_callback(void))
|
||||
(struct CRYPTO_dynlock_value *l, const char *file,int line)
|
||||
{
|
||||
return(dynlock_destroy_callback);
|
||||
}
|
||||
|
||||
void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *(*func)
|
||||
(const char *file, int line))
|
||||
{
|
||||
dynlock_create_callback=func;
|
||||
}
|
||||
|
||||
static void do_dynlock(int mode, int type, const char *file, int line)
|
||||
{
|
||||
if (dynlock_lock_callback != NULL)
|
||||
{
|
||||
struct CRYPTO_dynlock_value *pointer
|
||||
= CRYPTO_get_dynlock_value(type);
|
||||
|
||||
OPENSSL_assert(pointer != NULL);
|
||||
|
||||
dynlock_lock_callback(mode, pointer, file, line);
|
||||
|
||||
CRYPTO_destroy_dynlockid(type);
|
||||
}
|
||||
}
|
||||
|
||||
void CRYPTO_set_dynlock_lock_callback(void (*func)(int mode,
|
||||
struct CRYPTO_dynlock_value *l, const char *file, int line))
|
||||
{
|
||||
/* Set callback so CRYPTO_lock() can now handle dynamic locks.
|
||||
* This is OK because at this point and application shouldn't be using
|
||||
* OpenSSL from multiple threads because it is setting up the locking
|
||||
* callbacks.
|
||||
*/
|
||||
static int done = 0;
|
||||
if (!done)
|
||||
{
|
||||
int_CRYPTO_set_do_dynlock_callback(do_dynlock);
|
||||
done = 1;
|
||||
}
|
||||
|
||||
dynlock_lock_callback=func;
|
||||
}
|
||||
|
||||
void CRYPTO_set_dynlock_destroy_callback(void (*func)
|
||||
(struct CRYPTO_dynlock_value *l, const char *file, int line))
|
||||
{
|
||||
dynlock_destroy_callback=func;
|
||||
}
|
||||
|
||||
const char *CRYPTO_get_lock_name(int type)
|
||||
{
|
||||
if (type < 0)
|
||||
return("dynamic");
|
||||
else if (type < CRYPTO_NUM_LOCKS)
|
||||
return(lock_names[type]);
|
||||
else if (type-CRYPTO_NUM_LOCKS > sk_num(app_locks))
|
||||
return("ERROR");
|
||||
else
|
||||
return(sk_value(app_locks,type-CRYPTO_NUM_LOCKS));
|
||||
}
|
||||
|
@@ -38,7 +38,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
|
@@ -34,7 +34,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
|
@@ -34,7 +34,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
|
@@ -41,7 +41,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -101,7 +101,8 @@ eng_cnf.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_cnf.c eng_int.h
|
||||
eng_cryptodev.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
eng_cryptodev.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
|
||||
eng_cryptodev.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
|
||||
eng_cryptodev.o: ../../include/openssl/evp.h ../../include/openssl/obj_mac.h
|
||||
eng_cryptodev.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
eng_cryptodev.o: ../../include/openssl/obj_mac.h
|
||||
eng_cryptodev.o: ../../include/openssl/objects.h
|
||||
eng_cryptodev.o: ../../include/openssl/opensslconf.h
|
||||
eng_cryptodev.o: ../../include/openssl/opensslv.h
|
||||
@@ -171,8 +172,9 @@ eng_openssl.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
|
||||
eng_openssl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
eng_openssl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
eng_openssl.o: ../../include/openssl/engine.h ../../include/openssl/err.h
|
||||
eng_openssl.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
eng_openssl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
eng_openssl.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
eng_openssl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
eng_openssl.o: ../../include/openssl/objects.h
|
||||
eng_openssl.o: ../../include/openssl/opensslconf.h
|
||||
eng_openssl.o: ../../include/openssl/opensslv.h
|
||||
eng_openssl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
|
||||
@@ -186,8 +188,9 @@ eng_padlock.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
|
||||
eng_padlock.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
|
||||
eng_padlock.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
|
||||
eng_padlock.o: ../../include/openssl/engine.h ../../include/openssl/err.h
|
||||
eng_padlock.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
eng_padlock.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
eng_padlock.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
eng_padlock.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
eng_padlock.o: ../../include/openssl/objects.h
|
||||
eng_padlock.o: ../../include/openssl/opensslconf.h
|
||||
eng_padlock.o: ../../include/openssl/opensslv.h
|
||||
eng_padlock.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
@@ -205,8 +208,9 @@ eng_table.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
eng_table.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
eng_table.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
eng_table.o: ../../include/openssl/engine.h ../../include/openssl/err.h
|
||||
eng_table.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
eng_table.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
eng_table.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
eng_table.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
eng_table.o: ../../include/openssl/objects.h
|
||||
eng_table.o: ../../include/openssl/opensslconf.h
|
||||
eng_table.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
eng_table.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
|
@@ -231,8 +231,8 @@ padlock_bind_fn(ENGINE *e, const char *id)
|
||||
return 1;
|
||||
}
|
||||
|
||||
IMPLEMENT_DYNAMIC_CHECK_FN ();
|
||||
IMPLEMENT_DYNAMIC_BIND_FN (padlock_bind_fn);
|
||||
IMPLEMENT_DYNAMIC_CHECK_FN ()
|
||||
IMPLEMENT_DYNAMIC_BIND_FN (padlock_bind_fn)
|
||||
#endif /* DYNAMIC_ENGINE */
|
||||
|
||||
/* ===== Here comes the "real" engine ===== */
|
||||
|
@@ -17,8 +17,8 @@ TEST=
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC=err.c err_all.c err_prn.c
|
||||
LIBOBJ=err.o err_all.o err_prn.o
|
||||
LIBSRC=err.c err_def.c err_all.c err_prn.c err_str.c err_bio.c
|
||||
LIBOBJ=err.o err_def.o err_all.o err_prn.o err_str.o err_bio.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
@@ -33,7 +33,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -89,17 +89,31 @@ err_all.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
|
||||
err_all.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
err_all.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
|
||||
err_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
err_all.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
err_all.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
|
||||
err_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
err_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem2.h
|
||||
err_all.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
|
||||
err_all.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
|
||||
err_all.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
err_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
err_all.o: ../../include/openssl/ui.h ../../include/openssl/x509.h
|
||||
err_all.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
|
||||
err_all.o: err_all.c
|
||||
err_all.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
err_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
err_all.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
|
||||
err_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
err_all.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
|
||||
err_all.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
|
||||
err_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
err_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
err_all.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
err_all.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
err_all.o: ../../include/openssl/x509v3.h err_all.c
|
||||
err_bio.o: ../../e_os.h ../../include/openssl/bio.h
|
||||
err_bio.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
err_bio.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
err_bio.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
err_bio.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
err_bio.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
err_bio.o: ../../include/openssl/symhacks.h ../cryptlib.h err_bio.c
|
||||
err_def.o: ../../e_os.h ../../include/openssl/bio.h
|
||||
err_def.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
err_def.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
err_def.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
err_def.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
err_def.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
err_def.o: ../../include/openssl/symhacks.h ../cryptlib.h err_def.c
|
||||
err_prn.o: ../../e_os.h ../../include/openssl/bio.h
|
||||
err_prn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
err_prn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
@@ -107,3 +121,10 @@ err_prn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
err_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
err_prn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
err_prn.o: ../../include/openssl/symhacks.h ../cryptlib.h err_prn.c
|
||||
err_str.o: ../../e_os.h ../../include/openssl/bio.h
|
||||
err_str.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
err_str.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
err_str.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
err_str.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
err_str.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
err_str.o: ../../include/openssl/symhacks.h ../cryptlib.h err_str.c
|
||||
|
778
crypto/err/err.c
778
crypto/err/err.c
@@ -119,479 +119,10 @@
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
static void err_load_strings(int lib, ERR_STRING_DATA *str);
|
||||
|
||||
static void ERR_STATE_free(ERR_STATE *s);
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
static ERR_STRING_DATA ERR_str_libraries[]=
|
||||
{
|
||||
{ERR_PACK(ERR_LIB_NONE,0,0) ,"unknown library"},
|
||||
{ERR_PACK(ERR_LIB_SYS,0,0) ,"system library"},
|
||||
{ERR_PACK(ERR_LIB_BN,0,0) ,"bignum routines"},
|
||||
{ERR_PACK(ERR_LIB_RSA,0,0) ,"rsa routines"},
|
||||
{ERR_PACK(ERR_LIB_DH,0,0) ,"Diffie-Hellman routines"},
|
||||
{ERR_PACK(ERR_LIB_EVP,0,0) ,"digital envelope routines"},
|
||||
{ERR_PACK(ERR_LIB_BUF,0,0) ,"memory buffer routines"},
|
||||
{ERR_PACK(ERR_LIB_OBJ,0,0) ,"object identifier routines"},
|
||||
{ERR_PACK(ERR_LIB_PEM,0,0) ,"PEM routines"},
|
||||
{ERR_PACK(ERR_LIB_DSA,0,0) ,"dsa routines"},
|
||||
{ERR_PACK(ERR_LIB_X509,0,0) ,"x509 certificate routines"},
|
||||
{ERR_PACK(ERR_LIB_ASN1,0,0) ,"asn1 encoding routines"},
|
||||
{ERR_PACK(ERR_LIB_CONF,0,0) ,"configuration file routines"},
|
||||
{ERR_PACK(ERR_LIB_CRYPTO,0,0) ,"common libcrypto routines"},
|
||||
{ERR_PACK(ERR_LIB_EC,0,0) ,"elliptic curve routines"},
|
||||
{ERR_PACK(ERR_LIB_SSL,0,0) ,"SSL routines"},
|
||||
{ERR_PACK(ERR_LIB_BIO,0,0) ,"BIO routines"},
|
||||
{ERR_PACK(ERR_LIB_PKCS7,0,0) ,"PKCS7 routines"},
|
||||
{ERR_PACK(ERR_LIB_X509V3,0,0) ,"X509 V3 routines"},
|
||||
{ERR_PACK(ERR_LIB_PKCS12,0,0) ,"PKCS12 routines"},
|
||||
{ERR_PACK(ERR_LIB_RAND,0,0) ,"random number generator"},
|
||||
{ERR_PACK(ERR_LIB_DSO,0,0) ,"DSO support routines"},
|
||||
{ERR_PACK(ERR_LIB_ENGINE,0,0) ,"engine routines"},
|
||||
{ERR_PACK(ERR_LIB_OCSP,0,0) ,"OCSP routines"},
|
||||
{0,NULL},
|
||||
};
|
||||
|
||||
static ERR_STRING_DATA ERR_str_functs[]=
|
||||
{
|
||||
{ERR_PACK(0,SYS_F_FOPEN,0), "fopen"},
|
||||
{ERR_PACK(0,SYS_F_CONNECT,0), "connect"},
|
||||
{ERR_PACK(0,SYS_F_GETSERVBYNAME,0), "getservbyname"},
|
||||
{ERR_PACK(0,SYS_F_SOCKET,0), "socket"},
|
||||
{ERR_PACK(0,SYS_F_IOCTLSOCKET,0), "ioctlsocket"},
|
||||
{ERR_PACK(0,SYS_F_BIND,0), "bind"},
|
||||
{ERR_PACK(0,SYS_F_LISTEN,0), "listen"},
|
||||
{ERR_PACK(0,SYS_F_ACCEPT,0), "accept"},
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
{ERR_PACK(0,SYS_F_WSASTARTUP,0), "WSAstartup"},
|
||||
#endif
|
||||
{ERR_PACK(0,SYS_F_OPENDIR,0), "opendir"},
|
||||
{ERR_PACK(0,SYS_F_FREAD,0), "fread"},
|
||||
{0,NULL},
|
||||
};
|
||||
|
||||
static ERR_STRING_DATA ERR_str_reasons[]=
|
||||
{
|
||||
{ERR_R_SYS_LIB ,"system lib"},
|
||||
{ERR_R_BN_LIB ,"BN lib"},
|
||||
{ERR_R_RSA_LIB ,"RSA lib"},
|
||||
{ERR_R_DH_LIB ,"DH lib"},
|
||||
{ERR_R_EVP_LIB ,"EVP lib"},
|
||||
{ERR_R_BUF_LIB ,"BUF lib"},
|
||||
{ERR_R_OBJ_LIB ,"OBJ lib"},
|
||||
{ERR_R_PEM_LIB ,"PEM lib"},
|
||||
{ERR_R_DSA_LIB ,"DSA lib"},
|
||||
{ERR_R_X509_LIB ,"X509 lib"},
|
||||
{ERR_R_ASN1_LIB ,"ASN1 lib"},
|
||||
{ERR_R_CONF_LIB ,"CONF lib"},
|
||||
{ERR_R_CRYPTO_LIB ,"CRYPTO lib"},
|
||||
{ERR_R_EC_LIB ,"EC lib"},
|
||||
{ERR_R_SSL_LIB ,"SSL lib"},
|
||||
{ERR_R_BIO_LIB ,"BIO lib"},
|
||||
{ERR_R_PKCS7_LIB ,"PKCS7 lib"},
|
||||
{ERR_R_X509V3_LIB ,"X509V3 lib"},
|
||||
{ERR_R_PKCS12_LIB ,"PKCS12 lib"},
|
||||
{ERR_R_RAND_LIB ,"RAND lib"},
|
||||
{ERR_R_DSO_LIB ,"DSO lib"},
|
||||
{ERR_R_ENGINE_LIB ,"ENGINE lib"},
|
||||
{ERR_R_OCSP_LIB ,"OCSP lib"},
|
||||
|
||||
{ERR_R_NESTED_ASN1_ERROR ,"nested asn1 error"},
|
||||
{ERR_R_BAD_ASN1_OBJECT_HEADER ,"bad asn1 object header"},
|
||||
{ERR_R_BAD_GET_ASN1_OBJECT_CALL ,"bad get asn1 object call"},
|
||||
{ERR_R_EXPECTING_AN_ASN1_SEQUENCE ,"expecting an asn1 sequence"},
|
||||
{ERR_R_ASN1_LENGTH_MISMATCH ,"asn1 length mismatch"},
|
||||
{ERR_R_MISSING_ASN1_EOS ,"missing asn1 eos"},
|
||||
|
||||
{ERR_R_FATAL ,"fatal"},
|
||||
{ERR_R_MALLOC_FAILURE ,"malloc failure"},
|
||||
{ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED ,"called a function you should not call"},
|
||||
{ERR_R_PASSED_NULL_PARAMETER ,"passed a null parameter"},
|
||||
{ERR_R_INTERNAL_ERROR ,"internal error"},
|
||||
{ERR_R_DISABLED ,"called a function that was disabled at compile-time"},
|
||||
|
||||
{0,NULL},
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
/* Define the predeclared (but externally opaque) "ERR_FNS" type */
|
||||
struct st_ERR_FNS
|
||||
{
|
||||
/* Works on the "error_hash" string table */
|
||||
LHASH *(*cb_err_get)(int create);
|
||||
void (*cb_err_del)(void);
|
||||
ERR_STRING_DATA *(*cb_err_get_item)(const ERR_STRING_DATA *);
|
||||
ERR_STRING_DATA *(*cb_err_set_item)(ERR_STRING_DATA *);
|
||||
ERR_STRING_DATA *(*cb_err_del_item)(ERR_STRING_DATA *);
|
||||
/* Works on the "thread_hash" error-state table */
|
||||
LHASH *(*cb_thread_get)(int create);
|
||||
void (*cb_thread_release)(LHASH **hash);
|
||||
ERR_STATE *(*cb_thread_get_item)(const ERR_STATE *);
|
||||
ERR_STATE *(*cb_thread_set_item)(ERR_STATE *);
|
||||
void (*cb_thread_del_item)(const ERR_STATE *);
|
||||
/* Returns the next available error "library" numbers */
|
||||
int (*cb_get_next_lib)(void);
|
||||
};
|
||||
|
||||
/* Predeclarations of the "err_defaults" functions */
|
||||
static LHASH *int_err_get(int create);
|
||||
static void int_err_del(void);
|
||||
static ERR_STRING_DATA *int_err_get_item(const ERR_STRING_DATA *);
|
||||
static ERR_STRING_DATA *int_err_set_item(ERR_STRING_DATA *);
|
||||
static ERR_STRING_DATA *int_err_del_item(ERR_STRING_DATA *);
|
||||
static LHASH *int_thread_get(int create);
|
||||
static void int_thread_release(LHASH **hash);
|
||||
static ERR_STATE *int_thread_get_item(const ERR_STATE *);
|
||||
static ERR_STATE *int_thread_set_item(ERR_STATE *);
|
||||
static void int_thread_del_item(const ERR_STATE *);
|
||||
static int int_err_get_next_lib(void);
|
||||
/* The static ERR_FNS table using these defaults functions */
|
||||
static const ERR_FNS err_defaults =
|
||||
{
|
||||
int_err_get,
|
||||
int_err_del,
|
||||
int_err_get_item,
|
||||
int_err_set_item,
|
||||
int_err_del_item,
|
||||
int_thread_get,
|
||||
int_thread_release,
|
||||
int_thread_get_item,
|
||||
int_thread_set_item,
|
||||
int_thread_del_item,
|
||||
int_err_get_next_lib
|
||||
};
|
||||
|
||||
/* The replacable table of ERR_FNS functions we use at run-time */
|
||||
static const ERR_FNS *err_fns = NULL;
|
||||
|
||||
/* Eg. rather than using "err_get()", use "ERRFN(err_get)()". */
|
||||
#define ERRFN(a) err_fns->cb_##a
|
||||
|
||||
/* The internal state used by "err_defaults" - as such, the setting, reading,
|
||||
* creating, and deleting of this data should only be permitted via the
|
||||
* "err_defaults" functions. This way, a linked module can completely defer all
|
||||
* ERR state operation (together with requisite locking) to the implementations
|
||||
* and state in the loading application. */
|
||||
static LHASH *int_error_hash = NULL;
|
||||
static LHASH *int_thread_hash = NULL;
|
||||
static int int_thread_hash_references = 0;
|
||||
static int int_err_library_number= ERR_LIB_USER;
|
||||
|
||||
/* Internal function that checks whether "err_fns" is set and if not, sets it to
|
||||
* the defaults. */
|
||||
static void err_fns_check(void)
|
||||
{
|
||||
if (err_fns) return;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
if (!err_fns)
|
||||
err_fns = &err_defaults;
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
}
|
||||
|
||||
/* API functions to get or set the underlying ERR functions. */
|
||||
|
||||
const ERR_FNS *ERR_get_implementation(void)
|
||||
{
|
||||
err_fns_check();
|
||||
return err_fns;
|
||||
}
|
||||
|
||||
int ERR_set_implementation(const ERR_FNS *fns)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
/* It's too late if 'err_fns' is non-NULL. BTW: not much point setting
|
||||
* an error is there?! */
|
||||
if (!err_fns)
|
||||
{
|
||||
err_fns = fns;
|
||||
ret = 1;
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* These are the callbacks provided to "lh_new()" when creating the LHASH tables
|
||||
* internal to the "err_defaults" implementation. */
|
||||
|
||||
/* static unsigned long err_hash(ERR_STRING_DATA *a); */
|
||||
static unsigned long err_hash(const void *a_void);
|
||||
/* static int err_cmp(ERR_STRING_DATA *a, ERR_STRING_DATA *b); */
|
||||
static int err_cmp(const void *a_void, const void *b_void);
|
||||
/* static unsigned long pid_hash(ERR_STATE *pid); */
|
||||
static unsigned long pid_hash(const void *pid_void);
|
||||
/* static int pid_cmp(ERR_STATE *a,ERR_STATE *pid); */
|
||||
static int pid_cmp(const void *a_void,const void *pid_void);
|
||||
static unsigned long get_error_values(int inc,int top,const char **file,int *line,
|
||||
static unsigned long get_error_values(int inc,int top,
|
||||
const char **file,int *line,
|
||||
const char **data,int *flags);
|
||||
|
||||
/* The internal functions used in the "err_defaults" implementation */
|
||||
|
||||
static LHASH *int_err_get(int create)
|
||||
{
|
||||
LHASH *ret = NULL;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
if (!int_error_hash && create)
|
||||
{
|
||||
CRYPTO_push_info("int_err_get (err.c)");
|
||||
int_error_hash = lh_new(err_hash, err_cmp);
|
||||
CRYPTO_pop_info();
|
||||
}
|
||||
if (int_error_hash)
|
||||
ret = int_error_hash;
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void int_err_del(void)
|
||||
{
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
if (int_error_hash)
|
||||
{
|
||||
lh_free(int_error_hash);
|
||||
int_error_hash = NULL;
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
}
|
||||
|
||||
static ERR_STRING_DATA *int_err_get_item(const ERR_STRING_DATA *d)
|
||||
{
|
||||
ERR_STRING_DATA *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(err_get)(0);
|
||||
if (!hash)
|
||||
return NULL;
|
||||
|
||||
CRYPTO_r_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STRING_DATA *)lh_retrieve(hash, d);
|
||||
CRYPTO_r_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
static ERR_STRING_DATA *int_err_set_item(ERR_STRING_DATA *d)
|
||||
{
|
||||
ERR_STRING_DATA *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(err_get)(1);
|
||||
if (!hash)
|
||||
return NULL;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STRING_DATA *)lh_insert(hash, d);
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
static ERR_STRING_DATA *int_err_del_item(ERR_STRING_DATA *d)
|
||||
{
|
||||
ERR_STRING_DATA *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(err_get)(0);
|
||||
if (!hash)
|
||||
return NULL;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STRING_DATA *)lh_delete(hash, d);
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
static LHASH *int_thread_get(int create)
|
||||
{
|
||||
LHASH *ret = NULL;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
if (!int_thread_hash && create)
|
||||
{
|
||||
CRYPTO_push_info("int_thread_get (err.c)");
|
||||
int_thread_hash = lh_new(pid_hash, pid_cmp);
|
||||
CRYPTO_pop_info();
|
||||
}
|
||||
if (int_thread_hash)
|
||||
{
|
||||
int_thread_hash_references++;
|
||||
ret = int_thread_hash;
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void int_thread_release(LHASH **hash)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (hash == NULL || *hash == NULL)
|
||||
return;
|
||||
|
||||
i = CRYPTO_add(&int_thread_hash_references, -1, CRYPTO_LOCK_ERR);
|
||||
|
||||
#ifdef REF_PRINT
|
||||
fprintf(stderr,"%4d:%s\n",int_thread_hash_references,"ERR");
|
||||
#endif
|
||||
if (i > 0) return;
|
||||
#ifdef REF_CHECK
|
||||
if (i < 0)
|
||||
{
|
||||
fprintf(stderr,"int_thread_release, bad reference count\n");
|
||||
abort(); /* ok */
|
||||
}
|
||||
#endif
|
||||
*hash = NULL;
|
||||
}
|
||||
|
||||
static ERR_STATE *int_thread_get_item(const ERR_STATE *d)
|
||||
{
|
||||
ERR_STATE *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(thread_get)(0);
|
||||
if (!hash)
|
||||
return NULL;
|
||||
|
||||
CRYPTO_r_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STATE *)lh_retrieve(hash, d);
|
||||
CRYPTO_r_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
ERRFN(thread_release)(&hash);
|
||||
return p;
|
||||
}
|
||||
|
||||
static ERR_STATE *int_thread_set_item(ERR_STATE *d)
|
||||
{
|
||||
ERR_STATE *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(thread_get)(1);
|
||||
if (!hash)
|
||||
return NULL;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STATE *)lh_insert(hash, d);
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
ERRFN(thread_release)(&hash);
|
||||
return p;
|
||||
}
|
||||
|
||||
static void int_thread_del_item(const ERR_STATE *d)
|
||||
{
|
||||
ERR_STATE *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(thread_get)(0);
|
||||
if (!hash)
|
||||
return;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STATE *)lh_delete(hash, d);
|
||||
/* make sure we don't leak memory */
|
||||
if (int_thread_hash_references == 1
|
||||
&& int_thread_hash && (lh_num_items(int_thread_hash) == 0))
|
||||
{
|
||||
lh_free(int_thread_hash);
|
||||
int_thread_hash = NULL;
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
ERRFN(thread_release)(&hash);
|
||||
if (p)
|
||||
ERR_STATE_free(p);
|
||||
}
|
||||
|
||||
static int int_err_get_next_lib(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
ret = int_err_library_number++;
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
#define NUM_SYS_STR_REASONS 127
|
||||
#define LEN_SYS_STR_REASON 32
|
||||
|
||||
static ERR_STRING_DATA SYS_str_reasons[NUM_SYS_STR_REASONS + 1];
|
||||
/* SYS_str_reasons is filled with copies of strerror() results at
|
||||
* initialization.
|
||||
* 'errno' values up to 127 should cover all usual errors,
|
||||
* others will be displayed numerically by ERR_error_string.
|
||||
* It is crucial that we have something for each reason code
|
||||
* that occurs in ERR_str_reasons, or bogus reason strings
|
||||
* will be returned for SYSerr(), which always gets an errno
|
||||
* value and never one of those 'standard' reason codes. */
|
||||
|
||||
static void build_SYS_str_reasons(void)
|
||||
{
|
||||
/* OPENSSL_malloc cannot be used here, use static storage instead */
|
||||
static char strerror_tab[NUM_SYS_STR_REASONS][LEN_SYS_STR_REASON];
|
||||
int i;
|
||||
static int init = 1;
|
||||
|
||||
CRYPTO_r_lock(CRYPTO_LOCK_ERR);
|
||||
if (!init)
|
||||
{
|
||||
CRYPTO_r_unlock(CRYPTO_LOCK_ERR);
|
||||
return;
|
||||
}
|
||||
|
||||
CRYPTO_r_unlock(CRYPTO_LOCK_ERR);
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
if (!init)
|
||||
{
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 1; i <= NUM_SYS_STR_REASONS; i++)
|
||||
{
|
||||
ERR_STRING_DATA *str = &SYS_str_reasons[i - 1];
|
||||
|
||||
str->error = (unsigned long)i;
|
||||
if (str->string == NULL)
|
||||
{
|
||||
char (*dest)[LEN_SYS_STR_REASON] = &(strerror_tab[i - 1]);
|
||||
char *src = strerror(i);
|
||||
if (src != NULL)
|
||||
{
|
||||
strncpy(*dest, src, sizeof *dest);
|
||||
(*dest)[sizeof *dest - 1] = '\0';
|
||||
str->string = *dest;
|
||||
}
|
||||
}
|
||||
if (str->string == NULL)
|
||||
str->string = "unknown";
|
||||
}
|
||||
|
||||
/* Now we still have SYS_str_reasons[NUM_SYS_STR_REASONS] = {0, NULL},
|
||||
* as required by ERR_load_strings. */
|
||||
|
||||
init = 0;
|
||||
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define err_clear_data(p,i) \
|
||||
do { \
|
||||
if (((p)->err_data[i] != NULL) && \
|
||||
@@ -612,68 +143,6 @@ static void build_SYS_str_reasons(void)
|
||||
(p)->err_line[i]= -1; \
|
||||
} while(0)
|
||||
|
||||
static void ERR_STATE_free(ERR_STATE *s)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (s == NULL)
|
||||
return;
|
||||
|
||||
for (i=0; i<ERR_NUM_ERRORS; i++)
|
||||
{
|
||||
err_clear_data(s,i);
|
||||
}
|
||||
OPENSSL_free(s);
|
||||
}
|
||||
|
||||
void ERR_load_ERR_strings(void)
|
||||
{
|
||||
err_fns_check();
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
err_load_strings(0,ERR_str_libraries);
|
||||
err_load_strings(0,ERR_str_reasons);
|
||||
err_load_strings(ERR_LIB_SYS,ERR_str_functs);
|
||||
build_SYS_str_reasons();
|
||||
err_load_strings(ERR_LIB_SYS,SYS_str_reasons);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void err_load_strings(int lib, ERR_STRING_DATA *str)
|
||||
{
|
||||
while (str->error)
|
||||
{
|
||||
if (lib)
|
||||
str->error|=ERR_PACK(lib,0,0);
|
||||
ERRFN(err_set_item)(str);
|
||||
str++;
|
||||
}
|
||||
}
|
||||
|
||||
void ERR_load_strings(int lib, ERR_STRING_DATA *str)
|
||||
{
|
||||
ERR_load_ERR_strings();
|
||||
err_load_strings(lib, str);
|
||||
}
|
||||
|
||||
void ERR_unload_strings(int lib, ERR_STRING_DATA *str)
|
||||
{
|
||||
while (str->error)
|
||||
{
|
||||
if (lib)
|
||||
str->error|=ERR_PACK(lib,0,0);
|
||||
ERRFN(err_del_item)(str);
|
||||
str++;
|
||||
}
|
||||
}
|
||||
|
||||
void ERR_free_strings(void)
|
||||
{
|
||||
err_fns_check();
|
||||
ERRFN(err_del)();
|
||||
}
|
||||
|
||||
/********************************************************/
|
||||
|
||||
void ERR_put_error(int lib, int func, int reason, const char *file,
|
||||
int line)
|
||||
{
|
||||
@@ -828,218 +297,6 @@ static unsigned long get_error_values(int inc, int top, const char **file, int *
|
||||
return ret;
|
||||
}
|
||||
|
||||
void ERR_error_string_n(unsigned long e, char *buf, size_t len)
|
||||
{
|
||||
char lsbuf[64], fsbuf[64], rsbuf[64];
|
||||
const char *ls,*fs,*rs;
|
||||
unsigned long l,f,r;
|
||||
|
||||
l=ERR_GET_LIB(e);
|
||||
f=ERR_GET_FUNC(e);
|
||||
r=ERR_GET_REASON(e);
|
||||
|
||||
ls=ERR_lib_error_string(e);
|
||||
fs=ERR_func_error_string(e);
|
||||
rs=ERR_reason_error_string(e);
|
||||
|
||||
if (ls == NULL)
|
||||
BIO_snprintf(lsbuf, sizeof(lsbuf), "lib(%lu)", l);
|
||||
if (fs == NULL)
|
||||
BIO_snprintf(fsbuf, sizeof(fsbuf), "func(%lu)", f);
|
||||
if (rs == NULL)
|
||||
BIO_snprintf(rsbuf, sizeof(rsbuf), "reason(%lu)", r);
|
||||
|
||||
BIO_snprintf(buf, len,"error:%08lX:%s:%s:%s", e, ls?ls:lsbuf,
|
||||
fs?fs:fsbuf, rs?rs:rsbuf);
|
||||
if (strlen(buf) == len-1)
|
||||
{
|
||||
/* output may be truncated; make sure we always have 5
|
||||
* colon-separated fields, i.e. 4 colons ... */
|
||||
#define NUM_COLONS 4
|
||||
if (len > NUM_COLONS) /* ... if possible */
|
||||
{
|
||||
int i;
|
||||
char *s = buf;
|
||||
|
||||
for (i = 0; i < NUM_COLONS; i++)
|
||||
{
|
||||
char *colon = strchr(s, ':');
|
||||
if (colon == NULL || colon > &buf[len-1] - NUM_COLONS + i)
|
||||
{
|
||||
/* set colon no. i at last possible position
|
||||
* (buf[len-1] is the terminating 0)*/
|
||||
colon = &buf[len-1] - NUM_COLONS + i;
|
||||
*colon = ':';
|
||||
}
|
||||
s = colon + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* BAD for multi-threading: uses a local buffer if ret == NULL */
|
||||
/* ERR_error_string_n should be used instead for ret != NULL
|
||||
* as ERR_error_string cannot know how large the buffer is */
|
||||
char *ERR_error_string(unsigned long e, char *ret)
|
||||
{
|
||||
static char buf[256];
|
||||
|
||||
if (ret == NULL) ret=buf;
|
||||
ERR_error_string_n(e, ret, 256);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
LHASH *ERR_get_string_table(void)
|
||||
{
|
||||
err_fns_check();
|
||||
return ERRFN(err_get)(0);
|
||||
}
|
||||
|
||||
LHASH *ERR_get_err_state_table(void)
|
||||
{
|
||||
err_fns_check();
|
||||
return ERRFN(thread_get)(0);
|
||||
}
|
||||
|
||||
void ERR_release_err_state_table(LHASH **hash)
|
||||
{
|
||||
err_fns_check();
|
||||
ERRFN(thread_release)(hash);
|
||||
}
|
||||
|
||||
const char *ERR_lib_error_string(unsigned long e)
|
||||
{
|
||||
ERR_STRING_DATA d,*p;
|
||||
unsigned long l;
|
||||
|
||||
err_fns_check();
|
||||
l=ERR_GET_LIB(e);
|
||||
d.error=ERR_PACK(l,0,0);
|
||||
p=ERRFN(err_get_item)(&d);
|
||||
return((p == NULL)?NULL:p->string);
|
||||
}
|
||||
|
||||
const char *ERR_func_error_string(unsigned long e)
|
||||
{
|
||||
ERR_STRING_DATA d,*p;
|
||||
unsigned long l,f;
|
||||
|
||||
err_fns_check();
|
||||
l=ERR_GET_LIB(e);
|
||||
f=ERR_GET_FUNC(e);
|
||||
d.error=ERR_PACK(l,f,0);
|
||||
p=ERRFN(err_get_item)(&d);
|
||||
return((p == NULL)?NULL:p->string);
|
||||
}
|
||||
|
||||
const char *ERR_reason_error_string(unsigned long e)
|
||||
{
|
||||
ERR_STRING_DATA d,*p=NULL;
|
||||
unsigned long l,r;
|
||||
|
||||
err_fns_check();
|
||||
l=ERR_GET_LIB(e);
|
||||
r=ERR_GET_REASON(e);
|
||||
d.error=ERR_PACK(l,0,r);
|
||||
p=ERRFN(err_get_item)(&d);
|
||||
if (!p)
|
||||
{
|
||||
d.error=ERR_PACK(0,0,r);
|
||||
p=ERRFN(err_get_item)(&d);
|
||||
}
|
||||
return((p == NULL)?NULL:p->string);
|
||||
}
|
||||
|
||||
/* static unsigned long err_hash(ERR_STRING_DATA *a) */
|
||||
static unsigned long err_hash(const void *a_void)
|
||||
{
|
||||
unsigned long ret,l;
|
||||
|
||||
l=((const ERR_STRING_DATA *)a_void)->error;
|
||||
ret=l^ERR_GET_LIB(l)^ERR_GET_FUNC(l);
|
||||
return(ret^ret%19*13);
|
||||
}
|
||||
|
||||
/* static int err_cmp(ERR_STRING_DATA *a, ERR_STRING_DATA *b) */
|
||||
static int err_cmp(const void *a_void, const void *b_void)
|
||||
{
|
||||
return((int)(((const ERR_STRING_DATA *)a_void)->error -
|
||||
((const ERR_STRING_DATA *)b_void)->error));
|
||||
}
|
||||
|
||||
/* static unsigned long pid_hash(ERR_STATE *a) */
|
||||
static unsigned long pid_hash(const void *a_void)
|
||||
{
|
||||
return(((const ERR_STATE *)a_void)->pid*13);
|
||||
}
|
||||
|
||||
/* static int pid_cmp(ERR_STATE *a, ERR_STATE *b) */
|
||||
static int pid_cmp(const void *a_void, const void *b_void)
|
||||
{
|
||||
return((int)((long)((const ERR_STATE *)a_void)->pid -
|
||||
(long)((const ERR_STATE *)b_void)->pid));
|
||||
}
|
||||
|
||||
void ERR_remove_state(unsigned long pid)
|
||||
{
|
||||
ERR_STATE tmp;
|
||||
|
||||
err_fns_check();
|
||||
if (pid == 0)
|
||||
pid=(unsigned long)CRYPTO_thread_id();
|
||||
tmp.pid=pid;
|
||||
/* thread_del_item automatically destroys the LHASH if the number of
|
||||
* items reaches zero. */
|
||||
ERRFN(thread_del_item)(&tmp);
|
||||
}
|
||||
|
||||
ERR_STATE *ERR_get_state(void)
|
||||
{
|
||||
static ERR_STATE fallback;
|
||||
ERR_STATE *ret,tmp,*tmpp=NULL;
|
||||
int i;
|
||||
unsigned long pid;
|
||||
|
||||
err_fns_check();
|
||||
pid=(unsigned long)CRYPTO_thread_id();
|
||||
tmp.pid=pid;
|
||||
ret=ERRFN(thread_get_item)(&tmp);
|
||||
|
||||
/* ret == the error state, if NULL, make a new one */
|
||||
if (ret == NULL)
|
||||
{
|
||||
ret=(ERR_STATE *)OPENSSL_malloc(sizeof(ERR_STATE));
|
||||
if (ret == NULL) return(&fallback);
|
||||
ret->pid=pid;
|
||||
ret->top=0;
|
||||
ret->bottom=0;
|
||||
for (i=0; i<ERR_NUM_ERRORS; i++)
|
||||
{
|
||||
ret->err_data[i]=NULL;
|
||||
ret->err_data_flags[i]=0;
|
||||
}
|
||||
tmpp = ERRFN(thread_set_item)(ret);
|
||||
/* To check if insertion failed, do a get. */
|
||||
if (ERRFN(thread_get_item)(ret) != ret)
|
||||
{
|
||||
ERR_STATE_free(ret); /* could not insert it */
|
||||
return(&fallback);
|
||||
}
|
||||
/* If a race occured in this function and we came second, tmpp
|
||||
* is the first one that we just replaced. */
|
||||
if (tmpp)
|
||||
ERR_STATE_free(tmpp);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ERR_get_next_error_library(void)
|
||||
{
|
||||
err_fns_check();
|
||||
return ERRFN(get_next_lib)();
|
||||
}
|
||||
|
||||
void ERR_set_error_data(char *data, int flags)
|
||||
{
|
||||
ERR_STATE *es;
|
||||
@@ -1126,3 +383,34 @@ int ERR_pop_to_mark(void)
|
||||
es->err_flags[es->top]&=~ERR_FLAG_MARK;
|
||||
return 1;
|
||||
}
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
|
||||
static ERR_STATE *fget_state(void)
|
||||
{
|
||||
static ERR_STATE fstate;
|
||||
return &fstate;
|
||||
}
|
||||
|
||||
ERR_STATE *(*get_state_func)(void) = fget_state;
|
||||
void (*remove_state_func)(unsigned long pid);
|
||||
|
||||
ERR_STATE *ERR_get_state(void)
|
||||
{
|
||||
return get_state_func();
|
||||
}
|
||||
|
||||
void int_ERR_set_state_func(ERR_STATE *(*get_func)(void),
|
||||
void (*remove_func)(unsigned long pid))
|
||||
{
|
||||
get_state_func = get_func;
|
||||
remove_state_func = remove_func;
|
||||
}
|
||||
|
||||
void ERR_remove_state(unsigned long pid)
|
||||
{
|
||||
if (remove_state_func)
|
||||
remove_state_func(pid);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -140,6 +140,7 @@ typedef struct err_state_st
|
||||
#define ERR_LIB_ECDSA 42
|
||||
#define ERR_LIB_ECDH 43
|
||||
#define ERR_LIB_STORE 44
|
||||
#define ERR_LIB_FIPS 45
|
||||
|
||||
#define ERR_LIB_USER 128
|
||||
|
||||
@@ -171,6 +172,7 @@ typedef struct err_state_st
|
||||
#define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),__FILE__,__LINE__)
|
||||
#define ECDHerr(f,r) ERR_PUT_error(ERR_LIB_ECDH,(f),(r),__FILE__,__LINE__)
|
||||
#define STOREerr(f,r) ERR_PUT_error(ERR_LIB_STORE,(f),(r),__FILE__,__LINE__)
|
||||
#define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),__FILE__,__LINE__)
|
||||
|
||||
/* Borland C seems too stupid to be able to shift and do longs in
|
||||
* the pre-processor :-( */
|
||||
@@ -302,6 +304,12 @@ int ERR_get_next_error_library(void);
|
||||
int ERR_set_mark(void);
|
||||
int ERR_pop_to_mark(void);
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
void int_ERR_set_state_func(ERR_STATE *(*get_func)(void),
|
||||
void (*remove_func)(unsigned long pid));
|
||||
void int_ERR_lib_init(void);
|
||||
#endif
|
||||
|
||||
/* Already defined in ossl_typ.h */
|
||||
/* typedef struct st_ERR_FNS ERR_FNS; */
|
||||
/* An application can use this function and provide the return value to loaded
|
||||
|
@@ -94,6 +94,7 @@
|
||||
#include <openssl/ui.h>
|
||||
#include <openssl/ocsp.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/fips.h>
|
||||
|
||||
void ERR_load_crypto_strings(void)
|
||||
{
|
||||
@@ -138,5 +139,8 @@ void ERR_load_crypto_strings(void)
|
||||
#endif
|
||||
ERR_load_OCSP_strings();
|
||||
ERR_load_UI_strings();
|
||||
#ifdef OPENSSL_FIPS
|
||||
ERR_load_FIPS_strings();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
75
crypto/err/err_bio.c
Normal file
75
crypto/err/err_bio.c
Normal file
@@ -0,0 +1,75 @@
|
||||
/* crypto/err/err_prn.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/lhash.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/buffer.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
static int print_bio(const char *str, size_t len, void *bp)
|
||||
{
|
||||
return BIO_write((BIO *)bp, str, len);
|
||||
}
|
||||
void ERR_print_errors(BIO *bp)
|
||||
{
|
||||
ERR_print_errors_cb(print_bio, bp);
|
||||
}
|
||||
|
||||
|
665
crypto/err/err_def.c
Normal file
665
crypto/err/err_def.c
Normal file
@@ -0,0 +1,665 @@
|
||||
/* crypto/err/err_def.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/lhash.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/buffer.h>
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#define err_clear_data(p,i) \
|
||||
do { \
|
||||
if (((p)->err_data[i] != NULL) && \
|
||||
(p)->err_data_flags[i] & ERR_TXT_MALLOCED) \
|
||||
{ \
|
||||
OPENSSL_free((p)->err_data[i]); \
|
||||
(p)->err_data[i]=NULL; \
|
||||
} \
|
||||
(p)->err_data_flags[i]=0; \
|
||||
} while(0)
|
||||
|
||||
#define err_clear(p,i) \
|
||||
do { \
|
||||
(p)->err_flags[i]=0; \
|
||||
(p)->err_buffer[i]=0; \
|
||||
err_clear_data(p,i); \
|
||||
(p)->err_file[i]=NULL; \
|
||||
(p)->err_line[i]= -1; \
|
||||
} while(0)
|
||||
|
||||
static void err_load_strings(int lib, ERR_STRING_DATA *str);
|
||||
|
||||
static void ERR_STATE_free(ERR_STATE *s);
|
||||
|
||||
/* Define the predeclared (but externally opaque) "ERR_FNS" type */
|
||||
struct st_ERR_FNS
|
||||
{
|
||||
/* Works on the "error_hash" string table */
|
||||
LHASH *(*cb_err_get)(int create);
|
||||
void (*cb_err_del)(void);
|
||||
ERR_STRING_DATA *(*cb_err_get_item)(const ERR_STRING_DATA *);
|
||||
ERR_STRING_DATA *(*cb_err_set_item)(ERR_STRING_DATA *);
|
||||
ERR_STRING_DATA *(*cb_err_del_item)(ERR_STRING_DATA *);
|
||||
/* Works on the "thread_hash" error-state table */
|
||||
LHASH *(*cb_thread_get)(int create);
|
||||
void (*cb_thread_release)(LHASH **hash);
|
||||
ERR_STATE *(*cb_thread_get_item)(const ERR_STATE *);
|
||||
ERR_STATE *(*cb_thread_set_item)(ERR_STATE *);
|
||||
void (*cb_thread_del_item)(const ERR_STATE *);
|
||||
/* Returns the next available error "library" numbers */
|
||||
int (*cb_get_next_lib)(void);
|
||||
};
|
||||
|
||||
/* Predeclarations of the "err_defaults" functions */
|
||||
static LHASH *int_err_get(int create);
|
||||
static void int_err_del(void);
|
||||
static ERR_STRING_DATA *int_err_get_item(const ERR_STRING_DATA *);
|
||||
static ERR_STRING_DATA *int_err_set_item(ERR_STRING_DATA *);
|
||||
static ERR_STRING_DATA *int_err_del_item(ERR_STRING_DATA *);
|
||||
static LHASH *int_thread_get(int create);
|
||||
static void int_thread_release(LHASH **hash);
|
||||
static ERR_STATE *int_thread_get_item(const ERR_STATE *);
|
||||
static ERR_STATE *int_thread_set_item(ERR_STATE *);
|
||||
static void int_thread_del_item(const ERR_STATE *);
|
||||
static int int_err_get_next_lib(void);
|
||||
/* The static ERR_FNS table using these defaults functions */
|
||||
static const ERR_FNS err_defaults =
|
||||
{
|
||||
int_err_get,
|
||||
int_err_del,
|
||||
int_err_get_item,
|
||||
int_err_set_item,
|
||||
int_err_del_item,
|
||||
int_thread_get,
|
||||
int_thread_release,
|
||||
int_thread_get_item,
|
||||
int_thread_set_item,
|
||||
int_thread_del_item,
|
||||
int_err_get_next_lib
|
||||
};
|
||||
|
||||
/* The replacable table of ERR_FNS functions we use at run-time */
|
||||
static const ERR_FNS *err_fns = NULL;
|
||||
|
||||
/* Eg. rather than using "err_get()", use "ERRFN(err_get)()". */
|
||||
#define ERRFN(a) err_fns->cb_##a
|
||||
|
||||
/* The internal state used by "err_defaults" - as such, the setting, reading,
|
||||
* creating, and deleting of this data should only be permitted via the
|
||||
* "err_defaults" functions. This way, a linked module can completely defer all
|
||||
* ERR state operation (together with requisite locking) to the implementations
|
||||
* and state in the loading application. */
|
||||
static LHASH *int_error_hash = NULL;
|
||||
static LHASH *int_thread_hash = NULL;
|
||||
static int int_thread_hash_references = 0;
|
||||
static int int_err_library_number= ERR_LIB_USER;
|
||||
|
||||
/* Internal function that checks whether "err_fns" is set and if not, sets it to
|
||||
* the defaults. */
|
||||
static void err_fns_check(void)
|
||||
{
|
||||
if (err_fns) return;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
if (!err_fns)
|
||||
err_fns = &err_defaults;
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
}
|
||||
|
||||
/* API functions to get or set the underlying ERR functions. */
|
||||
|
||||
const ERR_FNS *ERR_get_implementation(void)
|
||||
{
|
||||
err_fns_check();
|
||||
return err_fns;
|
||||
}
|
||||
|
||||
int ERR_set_implementation(const ERR_FNS *fns)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
/* It's too late if 'err_fns' is non-NULL. BTW: not much point setting
|
||||
* an error is there?! */
|
||||
if (!err_fns)
|
||||
{
|
||||
err_fns = fns;
|
||||
ret = 1;
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* These are the callbacks provided to "lh_new()" when creating the LHASH tables
|
||||
* internal to the "err_defaults" implementation. */
|
||||
|
||||
/* static unsigned long err_hash(ERR_STRING_DATA *a); */
|
||||
static unsigned long err_hash(const void *a_void);
|
||||
/* static int err_cmp(ERR_STRING_DATA *a, ERR_STRING_DATA *b); */
|
||||
static int err_cmp(const void *a_void, const void *b_void);
|
||||
/* static unsigned long pid_hash(ERR_STATE *pid); */
|
||||
static unsigned long pid_hash(const void *pid_void);
|
||||
/* static int pid_cmp(ERR_STATE *a,ERR_STATE *pid); */
|
||||
static int pid_cmp(const void *a_void,const void *pid_void);
|
||||
|
||||
/* The internal functions used in the "err_defaults" implementation */
|
||||
|
||||
static LHASH *int_err_get(int create)
|
||||
{
|
||||
LHASH *ret = NULL;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
if (!int_error_hash && create)
|
||||
{
|
||||
CRYPTO_push_info("int_err_get (err.c)");
|
||||
int_error_hash = lh_new(err_hash, err_cmp);
|
||||
CRYPTO_pop_info();
|
||||
}
|
||||
if (int_error_hash)
|
||||
ret = int_error_hash;
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void int_err_del(void)
|
||||
{
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
if (int_error_hash)
|
||||
{
|
||||
lh_free(int_error_hash);
|
||||
int_error_hash = NULL;
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
}
|
||||
|
||||
static ERR_STRING_DATA *int_err_get_item(const ERR_STRING_DATA *d)
|
||||
{
|
||||
ERR_STRING_DATA *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(err_get)(0);
|
||||
if (!hash)
|
||||
return NULL;
|
||||
|
||||
CRYPTO_r_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STRING_DATA *)lh_retrieve(hash, d);
|
||||
CRYPTO_r_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
static ERR_STRING_DATA *int_err_set_item(ERR_STRING_DATA *d)
|
||||
{
|
||||
ERR_STRING_DATA *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(err_get)(1);
|
||||
if (!hash)
|
||||
return NULL;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STRING_DATA *)lh_insert(hash, d);
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
static ERR_STRING_DATA *int_err_del_item(ERR_STRING_DATA *d)
|
||||
{
|
||||
ERR_STRING_DATA *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(err_get)(0);
|
||||
if (!hash)
|
||||
return NULL;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STRING_DATA *)lh_delete(hash, d);
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
static LHASH *int_thread_get(int create)
|
||||
{
|
||||
LHASH *ret = NULL;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
if (!int_thread_hash && create)
|
||||
{
|
||||
CRYPTO_push_info("int_thread_get (err.c)");
|
||||
int_thread_hash = lh_new(pid_hash, pid_cmp);
|
||||
CRYPTO_pop_info();
|
||||
}
|
||||
if (int_thread_hash)
|
||||
{
|
||||
int_thread_hash_references++;
|
||||
ret = int_thread_hash;
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void int_thread_release(LHASH **hash)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (hash == NULL || *hash == NULL)
|
||||
return;
|
||||
|
||||
i = CRYPTO_add(&int_thread_hash_references, -1, CRYPTO_LOCK_ERR);
|
||||
|
||||
#ifdef REF_PRINT
|
||||
fprintf(stderr,"%4d:%s\n",int_thread_hash_references,"ERR");
|
||||
#endif
|
||||
if (i > 0) return;
|
||||
#ifdef REF_CHECK
|
||||
if (i < 0)
|
||||
{
|
||||
fprintf(stderr,"int_thread_release, bad reference count\n");
|
||||
abort(); /* ok */
|
||||
}
|
||||
#endif
|
||||
*hash = NULL;
|
||||
}
|
||||
|
||||
static ERR_STATE *int_thread_get_item(const ERR_STATE *d)
|
||||
{
|
||||
ERR_STATE *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(thread_get)(0);
|
||||
if (!hash)
|
||||
return NULL;
|
||||
|
||||
CRYPTO_r_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STATE *)lh_retrieve(hash, d);
|
||||
CRYPTO_r_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
ERRFN(thread_release)(&hash);
|
||||
return p;
|
||||
}
|
||||
|
||||
static ERR_STATE *int_thread_set_item(ERR_STATE *d)
|
||||
{
|
||||
ERR_STATE *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(thread_get)(1);
|
||||
if (!hash)
|
||||
return NULL;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STATE *)lh_insert(hash, d);
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
ERRFN(thread_release)(&hash);
|
||||
return p;
|
||||
}
|
||||
|
||||
static void int_thread_del_item(const ERR_STATE *d)
|
||||
{
|
||||
ERR_STATE *p;
|
||||
LHASH *hash;
|
||||
|
||||
err_fns_check();
|
||||
hash = ERRFN(thread_get)(0);
|
||||
if (!hash)
|
||||
return;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
p = (ERR_STATE *)lh_delete(hash, d);
|
||||
/* make sure we don't leak memory */
|
||||
if (int_thread_hash_references == 1
|
||||
&& int_thread_hash && (lh_num_items(int_thread_hash) == 0))
|
||||
{
|
||||
lh_free(int_thread_hash);
|
||||
int_thread_hash = NULL;
|
||||
}
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
ERRFN(thread_release)(&hash);
|
||||
if (p)
|
||||
ERR_STATE_free(p);
|
||||
}
|
||||
|
||||
static int int_err_get_next_lib(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
ret = int_err_library_number++;
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void ERR_STATE_free(ERR_STATE *s)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (s == NULL)
|
||||
return;
|
||||
|
||||
for (i=0; i<ERR_NUM_ERRORS; i++)
|
||||
{
|
||||
err_clear_data(s,i);
|
||||
}
|
||||
OPENSSL_free(s);
|
||||
}
|
||||
|
||||
static void err_load_strings(int lib, ERR_STRING_DATA *str)
|
||||
{
|
||||
while (str->error)
|
||||
{
|
||||
if (lib)
|
||||
str->error|=ERR_PACK(lib,0,0);
|
||||
ERRFN(err_set_item)(str);
|
||||
str++;
|
||||
}
|
||||
}
|
||||
|
||||
void ERR_load_strings(int lib, ERR_STRING_DATA *str)
|
||||
{
|
||||
err_fns_check();
|
||||
err_load_strings(lib, str);
|
||||
}
|
||||
|
||||
void ERR_unload_strings(int lib, ERR_STRING_DATA *str)
|
||||
{
|
||||
while (str->error)
|
||||
{
|
||||
if (lib)
|
||||
str->error|=ERR_PACK(lib,0,0);
|
||||
ERRFN(err_del_item)(str);
|
||||
str++;
|
||||
}
|
||||
}
|
||||
|
||||
void ERR_free_strings(void)
|
||||
{
|
||||
err_fns_check();
|
||||
ERRFN(err_del)();
|
||||
}
|
||||
|
||||
LHASH *ERR_get_string_table(void)
|
||||
{
|
||||
err_fns_check();
|
||||
return ERRFN(err_get)(0);
|
||||
}
|
||||
|
||||
LHASH *ERR_get_err_state_table(void)
|
||||
{
|
||||
err_fns_check();
|
||||
return ERRFN(thread_get)(0);
|
||||
}
|
||||
|
||||
void ERR_release_err_state_table(LHASH **hash)
|
||||
{
|
||||
err_fns_check();
|
||||
ERRFN(thread_release)(hash);
|
||||
}
|
||||
|
||||
const char *ERR_lib_error_string(unsigned long e)
|
||||
{
|
||||
ERR_STRING_DATA d,*p;
|
||||
unsigned long l;
|
||||
|
||||
err_fns_check();
|
||||
l=ERR_GET_LIB(e);
|
||||
d.error=ERR_PACK(l,0,0);
|
||||
p=ERRFN(err_get_item)(&d);
|
||||
return((p == NULL)?NULL:p->string);
|
||||
}
|
||||
|
||||
const char *ERR_func_error_string(unsigned long e)
|
||||
{
|
||||
ERR_STRING_DATA d,*p;
|
||||
unsigned long l,f;
|
||||
|
||||
err_fns_check();
|
||||
l=ERR_GET_LIB(e);
|
||||
f=ERR_GET_FUNC(e);
|
||||
d.error=ERR_PACK(l,f,0);
|
||||
p=ERRFN(err_get_item)(&d);
|
||||
return((p == NULL)?NULL:p->string);
|
||||
}
|
||||
|
||||
const char *ERR_reason_error_string(unsigned long e)
|
||||
{
|
||||
ERR_STRING_DATA d,*p=NULL;
|
||||
unsigned long l,r;
|
||||
|
||||
err_fns_check();
|
||||
l=ERR_GET_LIB(e);
|
||||
r=ERR_GET_REASON(e);
|
||||
d.error=ERR_PACK(l,0,r);
|
||||
p=ERRFN(err_get_item)(&d);
|
||||
if (!p)
|
||||
{
|
||||
d.error=ERR_PACK(0,0,r);
|
||||
p=ERRFN(err_get_item)(&d);
|
||||
}
|
||||
return((p == NULL)?NULL:p->string);
|
||||
}
|
||||
|
||||
/* static unsigned long err_hash(ERR_STRING_DATA *a) */
|
||||
static unsigned long err_hash(const void *a_void)
|
||||
{
|
||||
unsigned long ret,l;
|
||||
|
||||
l=((const ERR_STRING_DATA *)a_void)->error;
|
||||
ret=l^ERR_GET_LIB(l)^ERR_GET_FUNC(l);
|
||||
return(ret^ret%19*13);
|
||||
}
|
||||
|
||||
/* static int err_cmp(ERR_STRING_DATA *a, ERR_STRING_DATA *b) */
|
||||
static int err_cmp(const void *a_void, const void *b_void)
|
||||
{
|
||||
return((int)(((const ERR_STRING_DATA *)a_void)->error -
|
||||
((const ERR_STRING_DATA *)b_void)->error));
|
||||
}
|
||||
|
||||
/* static unsigned long pid_hash(ERR_STATE *a) */
|
||||
static unsigned long pid_hash(const void *a_void)
|
||||
{
|
||||
return(((const ERR_STATE *)a_void)->pid*13);
|
||||
}
|
||||
|
||||
/* static int pid_cmp(ERR_STATE *a, ERR_STATE *b) */
|
||||
static int pid_cmp(const void *a_void, const void *b_void)
|
||||
{
|
||||
return((int)((long)((const ERR_STATE *)a_void)->pid -
|
||||
(long)((const ERR_STATE *)b_void)->pid));
|
||||
}
|
||||
#ifdef OPENSSL_FIPS
|
||||
static void int_err_remove_state(unsigned long pid)
|
||||
#else
|
||||
void ERR_remove_state(unsigned long pid)
|
||||
#endif
|
||||
{
|
||||
ERR_STATE tmp;
|
||||
|
||||
err_fns_check();
|
||||
if (pid == 0)
|
||||
pid=(unsigned long)CRYPTO_thread_id();
|
||||
tmp.pid=pid;
|
||||
/* thread_del_item automatically destroys the LHASH if the number of
|
||||
* items reaches zero. */
|
||||
ERRFN(thread_del_item)(&tmp);
|
||||
}
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
static ERR_STATE *int_err_get_state(void)
|
||||
#else
|
||||
ERR_STATE *ERR_get_state(void)
|
||||
#endif
|
||||
{
|
||||
static ERR_STATE fallback;
|
||||
ERR_STATE *ret,tmp,*tmpp=NULL;
|
||||
int i;
|
||||
unsigned long pid;
|
||||
|
||||
err_fns_check();
|
||||
pid=(unsigned long)CRYPTO_thread_id();
|
||||
tmp.pid=pid;
|
||||
ret=ERRFN(thread_get_item)(&tmp);
|
||||
|
||||
/* ret == the error state, if NULL, make a new one */
|
||||
if (ret == NULL)
|
||||
{
|
||||
ret=(ERR_STATE *)OPENSSL_malloc(sizeof(ERR_STATE));
|
||||
if (ret == NULL) return(&fallback);
|
||||
ret->pid=pid;
|
||||
ret->top=0;
|
||||
ret->bottom=0;
|
||||
for (i=0; i<ERR_NUM_ERRORS; i++)
|
||||
{
|
||||
ret->err_data[i]=NULL;
|
||||
ret->err_data_flags[i]=0;
|
||||
}
|
||||
tmpp = ERRFN(thread_set_item)(ret);
|
||||
/* To check if insertion failed, do a get. */
|
||||
if (ERRFN(thread_get_item)(ret) != ret)
|
||||
{
|
||||
ERR_STATE_free(ret); /* could not insert it */
|
||||
return(&fallback);
|
||||
}
|
||||
/* If a race occured in this function and we came second, tmpp
|
||||
* is the first one that we just replaced. */
|
||||
if (tmpp)
|
||||
ERR_STATE_free(tmpp);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
void int_ERR_lib_init(void)
|
||||
{
|
||||
int_ERR_set_state_func(int_err_get_state, int_err_remove_state);
|
||||
}
|
||||
#endif
|
||||
|
||||
int ERR_get_next_error_library(void)
|
||||
{
|
||||
err_fns_check();
|
||||
return ERRFN(get_next_lib)();
|
||||
}
|
@@ -86,12 +86,7 @@ void ERR_print_errors_cb(int (*cb)(const char *str, size_t len, void *u),
|
||||
#ifndef OPENSSL_NO_FP_API
|
||||
static int print_fp(const char *str, size_t len, void *fp)
|
||||
{
|
||||
BIO bio;
|
||||
|
||||
BIO_set(&bio,BIO_s_file());
|
||||
BIO_set_fp(&bio,fp,BIO_NOCLOSE);
|
||||
|
||||
return BIO_printf(&bio, "%s", str);
|
||||
return fwrite(str, 1, len, fp);
|
||||
}
|
||||
void ERR_print_errors_fp(FILE *fp)
|
||||
{
|
||||
@@ -99,13 +94,64 @@ void ERR_print_errors_fp(FILE *fp)
|
||||
}
|
||||
#endif
|
||||
|
||||
static int print_bio(const char *str, size_t len, void *bp)
|
||||
void ERR_error_string_n(unsigned long e, char *buf, size_t len)
|
||||
{
|
||||
return BIO_write((BIO *)bp, str, len);
|
||||
char lsbuf[64], fsbuf[64], rsbuf[64];
|
||||
const char *ls,*fs,*rs;
|
||||
unsigned long l,f,r;
|
||||
|
||||
l=ERR_GET_LIB(e);
|
||||
f=ERR_GET_FUNC(e);
|
||||
r=ERR_GET_REASON(e);
|
||||
|
||||
ls=ERR_lib_error_string(e);
|
||||
fs=ERR_func_error_string(e);
|
||||
rs=ERR_reason_error_string(e);
|
||||
|
||||
if (ls == NULL)
|
||||
BIO_snprintf(lsbuf, sizeof(lsbuf), "lib(%lu)", l);
|
||||
if (fs == NULL)
|
||||
BIO_snprintf(fsbuf, sizeof(fsbuf), "func(%lu)", f);
|
||||
if (rs == NULL)
|
||||
BIO_snprintf(rsbuf, sizeof(rsbuf), "reason(%lu)", r);
|
||||
|
||||
BIO_snprintf(buf, len,"error:%08lX:%s:%s:%s", e, ls?ls:lsbuf,
|
||||
fs?fs:fsbuf, rs?rs:rsbuf);
|
||||
if (strlen(buf) == len-1)
|
||||
{
|
||||
/* output may be truncated; make sure we always have 5
|
||||
* colon-separated fields, i.e. 4 colons ... */
|
||||
#define NUM_COLONS 4
|
||||
if (len > NUM_COLONS) /* ... if possible */
|
||||
{
|
||||
int i;
|
||||
char *s = buf;
|
||||
|
||||
for (i = 0; i < NUM_COLONS; i++)
|
||||
{
|
||||
char *colon = strchr(s, ':');
|
||||
if (colon == NULL || colon > &buf[len-1] - NUM_COLONS + i)
|
||||
{
|
||||
/* set colon no. i at last possible position
|
||||
* (buf[len-1] is the terminating 0)*/
|
||||
colon = &buf[len-1] - NUM_COLONS + i;
|
||||
*colon = ':';
|
||||
}
|
||||
s = colon + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
void ERR_print_errors(BIO *bp)
|
||||
{
|
||||
ERR_print_errors_cb(print_bio, bp);
|
||||
}
|
||||
|
||||
/* BAD for multi-threading: uses a local buffer if ret == NULL */
|
||||
/* ERR_error_string_n should be used instead for ret != NULL
|
||||
* as ERR_error_string cannot know how large the buffer is */
|
||||
char *ERR_error_string(unsigned long e, char *ret)
|
||||
{
|
||||
static char buf[256];
|
||||
|
||||
if (ret == NULL) ret=buf;
|
||||
ERR_error_string_n(e, ret, 256);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
293
crypto/err/err_str.c
Normal file
293
crypto/err/err_str.c
Normal file
@@ -0,0 +1,293 @@
|
||||
/* crypto/err/err_str.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/lhash.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/buffer.h>
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
static ERR_STRING_DATA ERR_str_libraries[]=
|
||||
{
|
||||
{ERR_PACK(ERR_LIB_NONE,0,0) ,"unknown library"},
|
||||
{ERR_PACK(ERR_LIB_SYS,0,0) ,"system library"},
|
||||
{ERR_PACK(ERR_LIB_BN,0,0) ,"bignum routines"},
|
||||
{ERR_PACK(ERR_LIB_RSA,0,0) ,"rsa routines"},
|
||||
{ERR_PACK(ERR_LIB_DH,0,0) ,"Diffie-Hellman routines"},
|
||||
{ERR_PACK(ERR_LIB_EVP,0,0) ,"digital envelope routines"},
|
||||
{ERR_PACK(ERR_LIB_BUF,0,0) ,"memory buffer routines"},
|
||||
{ERR_PACK(ERR_LIB_OBJ,0,0) ,"object identifier routines"},
|
||||
{ERR_PACK(ERR_LIB_PEM,0,0) ,"PEM routines"},
|
||||
{ERR_PACK(ERR_LIB_DSA,0,0) ,"dsa routines"},
|
||||
{ERR_PACK(ERR_LIB_X509,0,0) ,"x509 certificate routines"},
|
||||
{ERR_PACK(ERR_LIB_ASN1,0,0) ,"asn1 encoding routines"},
|
||||
{ERR_PACK(ERR_LIB_CONF,0,0) ,"configuration file routines"},
|
||||
{ERR_PACK(ERR_LIB_CRYPTO,0,0) ,"common libcrypto routines"},
|
||||
{ERR_PACK(ERR_LIB_EC,0,0) ,"elliptic curve routines"},
|
||||
{ERR_PACK(ERR_LIB_SSL,0,0) ,"SSL routines"},
|
||||
{ERR_PACK(ERR_LIB_BIO,0,0) ,"BIO routines"},
|
||||
{ERR_PACK(ERR_LIB_PKCS7,0,0) ,"PKCS7 routines"},
|
||||
{ERR_PACK(ERR_LIB_X509V3,0,0) ,"X509 V3 routines"},
|
||||
{ERR_PACK(ERR_LIB_PKCS12,0,0) ,"PKCS12 routines"},
|
||||
{ERR_PACK(ERR_LIB_RAND,0,0) ,"random number generator"},
|
||||
{ERR_PACK(ERR_LIB_DSO,0,0) ,"DSO support routines"},
|
||||
{ERR_PACK(ERR_LIB_ENGINE,0,0) ,"engine routines"},
|
||||
{ERR_PACK(ERR_LIB_OCSP,0,0) ,"OCSP routines"},
|
||||
{ERR_PACK(ERR_LIB_FIPS,0,0) ,"FIPS routines"},
|
||||
{0,NULL},
|
||||
};
|
||||
|
||||
static ERR_STRING_DATA ERR_str_functs[]=
|
||||
{
|
||||
{ERR_PACK(0,SYS_F_FOPEN,0), "fopen"},
|
||||
{ERR_PACK(0,SYS_F_CONNECT,0), "connect"},
|
||||
{ERR_PACK(0,SYS_F_GETSERVBYNAME,0), "getservbyname"},
|
||||
{ERR_PACK(0,SYS_F_SOCKET,0), "socket"},
|
||||
{ERR_PACK(0,SYS_F_IOCTLSOCKET,0), "ioctlsocket"},
|
||||
{ERR_PACK(0,SYS_F_BIND,0), "bind"},
|
||||
{ERR_PACK(0,SYS_F_LISTEN,0), "listen"},
|
||||
{ERR_PACK(0,SYS_F_ACCEPT,0), "accept"},
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
{ERR_PACK(0,SYS_F_WSASTARTUP,0), "WSAstartup"},
|
||||
#endif
|
||||
{ERR_PACK(0,SYS_F_OPENDIR,0), "opendir"},
|
||||
{ERR_PACK(0,SYS_F_FREAD,0), "fread"},
|
||||
{0,NULL},
|
||||
};
|
||||
|
||||
static ERR_STRING_DATA ERR_str_reasons[]=
|
||||
{
|
||||
{ERR_R_SYS_LIB ,"system lib"},
|
||||
{ERR_R_BN_LIB ,"BN lib"},
|
||||
{ERR_R_RSA_LIB ,"RSA lib"},
|
||||
{ERR_R_DH_LIB ,"DH lib"},
|
||||
{ERR_R_EVP_LIB ,"EVP lib"},
|
||||
{ERR_R_BUF_LIB ,"BUF lib"},
|
||||
{ERR_R_OBJ_LIB ,"OBJ lib"},
|
||||
{ERR_R_PEM_LIB ,"PEM lib"},
|
||||
{ERR_R_DSA_LIB ,"DSA lib"},
|
||||
{ERR_R_X509_LIB ,"X509 lib"},
|
||||
{ERR_R_ASN1_LIB ,"ASN1 lib"},
|
||||
{ERR_R_CONF_LIB ,"CONF lib"},
|
||||
{ERR_R_CRYPTO_LIB ,"CRYPTO lib"},
|
||||
{ERR_R_EC_LIB ,"EC lib"},
|
||||
{ERR_R_SSL_LIB ,"SSL lib"},
|
||||
{ERR_R_BIO_LIB ,"BIO lib"},
|
||||
{ERR_R_PKCS7_LIB ,"PKCS7 lib"},
|
||||
{ERR_R_X509V3_LIB ,"X509V3 lib"},
|
||||
{ERR_R_PKCS12_LIB ,"PKCS12 lib"},
|
||||
{ERR_R_RAND_LIB ,"RAND lib"},
|
||||
{ERR_R_DSO_LIB ,"DSO lib"},
|
||||
{ERR_R_ENGINE_LIB ,"ENGINE lib"},
|
||||
{ERR_R_OCSP_LIB ,"OCSP lib"},
|
||||
|
||||
{ERR_R_NESTED_ASN1_ERROR ,"nested asn1 error"},
|
||||
{ERR_R_BAD_ASN1_OBJECT_HEADER ,"bad asn1 object header"},
|
||||
{ERR_R_BAD_GET_ASN1_OBJECT_CALL ,"bad get asn1 object call"},
|
||||
{ERR_R_EXPECTING_AN_ASN1_SEQUENCE ,"expecting an asn1 sequence"},
|
||||
{ERR_R_ASN1_LENGTH_MISMATCH ,"asn1 length mismatch"},
|
||||
{ERR_R_MISSING_ASN1_EOS ,"missing asn1 eos"},
|
||||
|
||||
{ERR_R_FATAL ,"fatal"},
|
||||
{ERR_R_MALLOC_FAILURE ,"malloc failure"},
|
||||
{ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED ,"called a function you should not call"},
|
||||
{ERR_R_PASSED_NULL_PARAMETER ,"passed a null parameter"},
|
||||
{ERR_R_INTERNAL_ERROR ,"internal error"},
|
||||
{ERR_R_DISABLED ,"called a function that was disabled at compile-time"},
|
||||
|
||||
{0,NULL},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
#define NUM_SYS_STR_REASONS 127
|
||||
#define LEN_SYS_STR_REASON 32
|
||||
|
||||
static ERR_STRING_DATA SYS_str_reasons[NUM_SYS_STR_REASONS + 1];
|
||||
/* SYS_str_reasons is filled with copies of strerror() results at
|
||||
* initialization.
|
||||
* 'errno' values up to 127 should cover all usual errors,
|
||||
* others will be displayed numerically by ERR_error_string.
|
||||
* It is crucial that we have something for each reason code
|
||||
* that occurs in ERR_str_reasons, or bogus reason strings
|
||||
* will be returned for SYSerr(), which always gets an errno
|
||||
* value and never one of those 'standard' reason codes. */
|
||||
|
||||
static void build_SYS_str_reasons(void)
|
||||
{
|
||||
/* OPENSSL_malloc cannot be used here, use static storage instead */
|
||||
static char strerror_tab[NUM_SYS_STR_REASONS][LEN_SYS_STR_REASON];
|
||||
int i;
|
||||
static int init = 1;
|
||||
|
||||
CRYPTO_r_lock(CRYPTO_LOCK_ERR);
|
||||
if (!init)
|
||||
{
|
||||
CRYPTO_r_unlock(CRYPTO_LOCK_ERR);
|
||||
return;
|
||||
}
|
||||
|
||||
CRYPTO_r_unlock(CRYPTO_LOCK_ERR);
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_ERR);
|
||||
if (!init)
|
||||
{
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 1; i <= NUM_SYS_STR_REASONS; i++)
|
||||
{
|
||||
ERR_STRING_DATA *str = &SYS_str_reasons[i - 1];
|
||||
|
||||
str->error = (unsigned long)i;
|
||||
if (str->string == NULL)
|
||||
{
|
||||
char (*dest)[LEN_SYS_STR_REASON] = &(strerror_tab[i - 1]);
|
||||
char *src = strerror(i);
|
||||
if (src != NULL)
|
||||
{
|
||||
strncpy(*dest, src, sizeof *dest);
|
||||
(*dest)[sizeof *dest - 1] = '\0';
|
||||
str->string = *dest;
|
||||
}
|
||||
}
|
||||
if (str->string == NULL)
|
||||
str->string = "unknown";
|
||||
}
|
||||
|
||||
/* Now we still have SYS_str_reasons[NUM_SYS_STR_REASONS] = {0, NULL},
|
||||
* as required by ERR_load_strings. */
|
||||
|
||||
init = 0;
|
||||
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
|
||||
}
|
||||
#endif
|
||||
|
||||
void ERR_load_ERR_strings(void)
|
||||
{
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
if (ERR_func_error_string(ERR_str_functs[0].error) == NULL)
|
||||
{
|
||||
ERR_load_strings(0,ERR_str_libraries);
|
||||
ERR_load_strings(0,ERR_str_reasons);
|
||||
ERR_load_strings(ERR_LIB_SYS,ERR_str_functs);
|
||||
build_SYS_str_reasons();
|
||||
ERR_load_strings(ERR_LIB_SYS,SYS_str_reasons);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@@ -31,6 +31,7 @@ L COMP crypto/comp/comp.h crypto/comp/comp_err.c
|
||||
L ECDSA crypto/ecdsa/ecdsa.h crypto/ecdsa/ecs_err.c
|
||||
L ECDH crypto/ecdh/ecdh.h crypto/ecdh/ech_err.c
|
||||
L STORE crypto/store/store.h crypto/store/str_err.c
|
||||
L FIPS fips-1.0/fips.h crypto/fips_err.h
|
||||
|
||||
# additional header files to be scanned for function names
|
||||
L NONE crypto/x509/x509_vfy.h NONE
|
||||
|
@@ -18,7 +18,7 @@ TESTDATA=evptests.txt
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= encode.c digest.c evp_enc.c evp_key.c evp_acnf.c \
|
||||
LIBSRC= encode.c digest.c dig_eng.c evp_enc.c evp_key.c evp_acnf.c \
|
||||
e_des.c e_bf.c e_idea.c e_des3.c e_camellia.c\
|
||||
e_rc4.c e_aes.c names.c \
|
||||
e_xcbc_d.c e_rc2.c e_cast.c e_rc5.c \
|
||||
@@ -30,7 +30,7 @@ LIBSRC= encode.c digest.c evp_enc.c evp_key.c evp_acnf.c \
|
||||
evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c \
|
||||
e_old.c
|
||||
|
||||
LIBOBJ= encode.o digest.o evp_enc.o evp_key.o evp_acnf.o \
|
||||
LIBOBJ= encode.o digest.o dig_eng.o evp_enc.o evp_key.o evp_acnf.o \
|
||||
e_des.o e_bf.o e_idea.o e_des3.o e_camellia.o\
|
||||
e_rc4.o e_aes.o names.o \
|
||||
e_xcbc_d.o e_rc2.o e_cast.o e_rc5.o \
|
||||
@@ -55,7 +55,7 @@ top:
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(ARX) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
@touch lib
|
||||
|
||||
@@ -101,169 +101,191 @@ bio_b64.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
bio_b64.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bio_b64.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
bio_b64.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
bio_b64.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
bio_b64.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
bio_b64.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
bio_b64.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bio_b64.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_b64.c
|
||||
bio_b64.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
bio_b64.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
bio_b64.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bio_b64.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
bio_b64.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bio_b64.o: ../cryptlib.h bio_b64.c
|
||||
bio_enc.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
bio_enc.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bio_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
bio_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
bio_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
bio_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
bio_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
bio_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bio_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_enc.c
|
||||
bio_enc.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
bio_enc.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
bio_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bio_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
bio_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bio_enc.o: ../cryptlib.h bio_enc.c
|
||||
bio_md.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
bio_md.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bio_md.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bio_md.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
bio_md.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
bio_md.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bio_md.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
bio_md.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bio_md.o: ../cryptlib.h bio_md.c
|
||||
bio_md.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
bio_md.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
bio_md.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
bio_md.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
bio_md.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bio_md.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_md.c
|
||||
bio_ok.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
bio_ok.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bio_ok.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bio_ok.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
bio_ok.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
bio_ok.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bio_ok.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
bio_ok.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bio_ok.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_ok.c
|
||||
bio_ok.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
bio_ok.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
bio_ok.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
bio_ok.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
bio_ok.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
bio_ok.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bio_ok.o: ../cryptlib.h bio_ok.c
|
||||
c_all.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
c_all.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
c_all.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
|
||||
c_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
c_all.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
c_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
c_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
c_all.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
c_all.o: ../../include/openssl/symhacks.h ../cryptlib.h c_all.c
|
||||
c_all.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
c_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
c_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
c_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
c_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
c_all.o: ../cryptlib.h c_all.c
|
||||
c_allc.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
c_allc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
c_allc.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
c_allc.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
c_allc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
c_allc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
c_allc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
c_allc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
c_allc.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
|
||||
c_allc.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
c_allc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
c_allc.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
c_allc.o: ../cryptlib.h c_allc.c
|
||||
c_allc.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
c_allc.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
c_allc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
c_allc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
|
||||
c_allc.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
c_allc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
c_allc.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
c_allc.o: ../../include/openssl/x509_vfy.h ../cryptlib.h c_allc.c
|
||||
c_alld.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
c_alld.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
c_alld.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
c_alld.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
c_alld.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
c_alld.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
c_alld.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
c_alld.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
c_alld.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
|
||||
c_alld.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
c_alld.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
c_alld.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
c_alld.o: ../cryptlib.h c_alld.c
|
||||
c_alld.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
c_alld.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
c_alld.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
c_alld.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
|
||||
c_alld.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
c_alld.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
c_alld.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
c_alld.o: ../../include/openssl/x509_vfy.h ../cryptlib.h c_alld.c
|
||||
dig_eng.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
dig_eng.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
dig_eng.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
dig_eng.o: ../../include/openssl/engine.h ../../include/openssl/err.h
|
||||
dig_eng.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
dig_eng.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
dig_eng.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
dig_eng.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
dig_eng.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dig_eng.o: ../../include/openssl/symhacks.h ../cryptlib.h dig_eng.c evp_locl.h
|
||||
digest.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
digest.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
digest.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
|
||||
digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
digest.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
digest.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
digest.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
digest.o: ../../include/openssl/symhacks.h ../cryptlib.h digest.c
|
||||
digest.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
digest.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
digest.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
digest.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
digest.o: ../cryptlib.h digest.c evp_locl.h
|
||||
e_aes.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
|
||||
e_aes.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
|
||||
e_aes.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
e_aes.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
e_aes.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_aes.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
e_aes.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
e_aes.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h e_aes.c
|
||||
e_aes.o: evp_locl.h
|
||||
e_aes.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
e_aes.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
e_aes.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
e_aes.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
e_aes.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
e_aes.o: ../../include/openssl/symhacks.h e_aes.c evp_locl.h
|
||||
e_bf.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_bf.o: ../../include/openssl/blowfish.h ../../include/openssl/buffer.h
|
||||
e_bf.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
e_bf.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_bf.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
e_bf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
e_bf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
e_bf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
e_bf.o: ../../include/openssl/symhacks.h ../cryptlib.h e_bf.c evp_locl.h
|
||||
e_bf.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
e_bf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_bf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
e_bf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
e_bf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
e_bf.o: ../cryptlib.h e_bf.c evp_locl.h
|
||||
e_camellia.o: ../../include/openssl/opensslconf.h e_camellia.c
|
||||
e_cast.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_cast.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_cast.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
e_cast.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_cast.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
e_cast.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
e_cast.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
e_cast.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
e_cast.o: ../../include/openssl/symhacks.h ../cryptlib.h e_cast.c evp_locl.h
|
||||
e_cast.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
e_cast.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_cast.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
e_cast.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
e_cast.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
e_cast.o: ../cryptlib.h e_cast.c evp_locl.h
|
||||
e_des.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_des.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
e_des.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
|
||||
e_des.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
e_des.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
e_des.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_des.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
e_des.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
e_des.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
e_des.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
e_des.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_des.c evp_locl.h
|
||||
e_des.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
e_des.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
e_des.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
e_des.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
e_des.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
e_des.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
e_des.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
|
||||
e_des.o: ../cryptlib.h e_des.c evp_locl.h
|
||||
e_des3.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_des3.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
e_des3.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
|
||||
e_des3.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
e_des3.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
e_des3.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_des3.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
e_des3.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
e_des3.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
e_des3.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
e_des3.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_des3.c evp_locl.h
|
||||
e_des3.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
e_des3.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
e_des3.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
e_des3.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
e_des3.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
e_des3.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
e_des3.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
|
||||
e_des3.o: ../cryptlib.h e_des3.c evp_locl.h
|
||||
e_idea.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_idea.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
e_idea.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
e_idea.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
|
||||
e_idea.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
e_idea.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
e_idea.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
e_idea.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
e_idea.o: ../../include/openssl/symhacks.h ../cryptlib.h e_idea.c evp_locl.h
|
||||
e_idea.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
e_idea.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_idea.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_idea.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
e_idea.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
e_idea.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
e_idea.o: ../cryptlib.h e_idea.c evp_locl.h
|
||||
e_null.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
e_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
e_null.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
e_null.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_null.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
e_null.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
e_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
e_null.o: ../cryptlib.h e_null.c
|
||||
e_null.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
e_null.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
e_null.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
e_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
e_null.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
e_null.o: ../../include/openssl/symhacks.h ../cryptlib.h e_null.c
|
||||
e_old.o: e_old.c
|
||||
e_rc2.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_rc2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
e_rc2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
e_rc2.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
e_rc2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_rc2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
e_rc2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
|
||||
e_rc2.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
e_rc2.o: ../../include/openssl/symhacks.h ../cryptlib.h e_rc2.c evp_locl.h
|
||||
e_rc2.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
e_rc2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
e_rc2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
e_rc2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
e_rc2.o: ../../include/openssl/rc2.h ../../include/openssl/safestack.h
|
||||
e_rc2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
e_rc2.o: ../cryptlib.h e_rc2.c evp_locl.h
|
||||
e_rc4.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_rc4.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
e_rc4.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
e_rc4.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
e_rc4.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_rc4.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
e_rc4.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc4.h
|
||||
e_rc4.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
e_rc4.o: ../../include/openssl/symhacks.h ../cryptlib.h e_rc4.c
|
||||
e_rc4.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
e_rc4.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
e_rc4.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
e_rc4.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
e_rc4.o: ../../include/openssl/rc4.h ../../include/openssl/safestack.h
|
||||
e_rc4.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
e_rc4.o: ../cryptlib.h e_rc4.c evp_locl.h
|
||||
e_rc5.o: ../../e_os.h ../../include/openssl/bio.h
|
||||
e_rc5.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
e_rc5.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
@@ -276,8 +298,9 @@ e_xcbc_d.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
e_xcbc_d.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_xcbc_d.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
|
||||
e_xcbc_d.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_xcbc_d.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
e_xcbc_d.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
e_xcbc_d.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
e_xcbc_d.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_xcbc_d.o: ../../include/openssl/opensslconf.h
|
||||
e_xcbc_d.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
e_xcbc_d.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
e_xcbc_d.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
@@ -285,19 +308,19 @@ e_xcbc_d.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_xcbc_d.c
|
||||
encode.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
encode.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
encode.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
encode.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
encode.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
encode.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
encode.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
encode.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
encode.o: ../cryptlib.h encode.c
|
||||
encode.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
encode.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
encode.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
encode.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
encode.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
encode.o: ../../include/openssl/symhacks.h ../cryptlib.h encode.c
|
||||
evp_acnf.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
evp_acnf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
evp_acnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
evp_acnf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
evp_acnf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
evp_acnf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
evp_acnf.o: ../../include/openssl/opensslconf.h
|
||||
evp_acnf.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
evp_acnf.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
evp_acnf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
evp_acnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
evp_acnf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
evp_acnf.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_acnf.c
|
||||
@@ -305,64 +328,68 @@ evp_enc.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
evp_enc.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
evp_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
evp_enc.o: ../../include/openssl/engine.h ../../include/openssl/err.h
|
||||
evp_enc.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
evp_enc.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
evp_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
evp_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
evp_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
evp_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_enc.c evp_locl.h
|
||||
evp_enc.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
evp_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
evp_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
evp_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
evp_enc.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
evp_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
evp_enc.o: ../cryptlib.h evp_enc.c evp_locl.h
|
||||
evp_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
evp_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
evp_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
evp_err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
evp_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
evp_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
evp_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
evp_err.o: ../../include/openssl/symhacks.h evp_err.c
|
||||
evp_err.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
evp_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
evp_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
evp_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
evp_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
evp_err.o: evp_err.c
|
||||
evp_key.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
evp_key.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
evp_key.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
evp_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
evp_key.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
evp_key.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
evp_key.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
evp_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
evp_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
evp_key.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
evp_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
evp_key.o: ../../include/openssl/ui.h ../../include/openssl/x509.h
|
||||
evp_key.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_key.c
|
||||
evp_key.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
evp_key.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
evp_key.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
evp_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
evp_key.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
evp_key.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
evp_key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
evp_key.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
evp_key.o: ../cryptlib.h evp_key.c
|
||||
evp_lib.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
evp_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
evp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
evp_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
evp_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
evp_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
evp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
evp_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
evp_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_lib.c
|
||||
evp_lib.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
evp_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
evp_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
evp_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
evp_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
evp_lib.o: ../cryptlib.h evp_lib.c
|
||||
evp_pbe.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
evp_pbe.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
evp_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
evp_pbe.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
evp_pbe.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
evp_pbe.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
evp_pbe.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
evp_pbe.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
evp_pbe.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
evp_pbe.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
evp_pbe.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
evp_pbe.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
evp_pbe.o: ../cryptlib.h evp_pbe.c
|
||||
evp_pbe.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
evp_pbe.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
evp_pbe.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
evp_pbe.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
evp_pbe.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
evp_pbe.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
evp_pbe.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
evp_pbe.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_pbe.c
|
||||
evp_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
evp_pkey.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
evp_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
evp_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
evp_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
evp_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
evp_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
evp_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
evp_pkey.o: ../../include/openssl/opensslconf.h
|
||||
evp_pkey.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
evp_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
evp_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
evp_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
evp_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
|
||||
evp_pkey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
@@ -374,106 +401,110 @@ m_dss.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
m_dss.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
m_dss.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
m_dss.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
m_dss.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
m_dss.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_dss.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
m_dss.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
m_dss.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
m_dss.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
m_dss.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
m_dss.o: ../cryptlib.h m_dss.c
|
||||
m_dss.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
m_dss.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
m_dss.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
m_dss.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_dss.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
m_dss.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
m_dss.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
m_dss.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_dss.c
|
||||
m_dss1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_dss1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
m_dss1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
m_dss1.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
m_dss1.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
m_dss1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
m_dss1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_dss1.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
m_dss1.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
m_dss1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
m_dss1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
m_dss1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
m_dss1.o: ../cryptlib.h m_dss1.c
|
||||
m_dss1.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
m_dss1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
m_dss1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
m_dss1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_dss1.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
m_dss1.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
m_dss1.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
m_dss1.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_dss1.c
|
||||
m_ecdsa.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
m_ecdsa.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
m_ecdsa.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
m_ecdsa.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
m_ecdsa.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
m_ecdsa.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
m_ecdsa.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_ecdsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
m_ecdsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
m_ecdsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
m_ecdsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
m_ecdsa.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
m_ecdsa.o: ../cryptlib.h m_ecdsa.c
|
||||
m_ecdsa.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
m_ecdsa.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
m_ecdsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
m_ecdsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_ecdsa.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
m_ecdsa.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
m_ecdsa.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
m_ecdsa.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_ecdsa.c
|
||||
m_md2.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_md2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
m_md2.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
m_md2.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
m_md2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_md2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
|
||||
m_md2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_md2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
m_md2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
m_md2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
m_md2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
m_md2.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
m_md2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_md2.c
|
||||
m_md2.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
m_md2.o: ../../include/openssl/md2.h ../../include/openssl/obj_mac.h
|
||||
m_md2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
m_md2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_md2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
m_md2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
m_md2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
m_md2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
m_md2.o: ../cryptlib.h evp_locl.h m_md2.c
|
||||
m_md4.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_md4.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
m_md4.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
m_md4.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
m_md4.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_md4.o: ../../include/openssl/lhash.h ../../include/openssl/md4.h
|
||||
m_md4.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_md4.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
m_md4.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
m_md4.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
m_md4.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
m_md4.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
m_md4.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_md4.c
|
||||
m_md4.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
m_md4.o: ../../include/openssl/md4.h ../../include/openssl/obj_mac.h
|
||||
m_md4.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
m_md4.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_md4.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
m_md4.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
m_md4.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
m_md4.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
m_md4.o: ../cryptlib.h evp_locl.h m_md4.c
|
||||
m_md5.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_md5.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
m_md5.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
m_md5.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
m_md5.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_md5.o: ../../include/openssl/lhash.h ../../include/openssl/md5.h
|
||||
m_md5.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_md5.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
m_md5.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
m_md5.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
m_md5.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
m_md5.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
m_md5.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_md5.c
|
||||
m_md5.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
m_md5.o: ../../include/openssl/md5.h ../../include/openssl/obj_mac.h
|
||||
m_md5.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
m_md5.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_md5.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
m_md5.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
m_md5.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
m_md5.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
m_md5.o: ../cryptlib.h evp_locl.h m_md5.c
|
||||
m_mdc2.o: ../../e_os.h ../../include/openssl/bio.h
|
||||
m_mdc2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
m_mdc2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
m_mdc2.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
m_mdc2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_mdc2.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
m_mdc2.o: ../../include/openssl/symhacks.h ../cryptlib.h m_mdc2.c
|
||||
m_mdc2.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h m_mdc2.c
|
||||
m_null.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
m_null.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
m_null.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
m_null.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_null.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
m_null.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
m_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_null.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
m_null.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
m_null.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
m_null.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_null.c
|
||||
m_null.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
m_null.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_null.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
m_null.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
m_null.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
m_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
m_null.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
m_null.o: ../cryptlib.h m_null.c
|
||||
m_ripemd.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
m_ripemd.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
m_ripemd.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
m_ripemd.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
m_ripemd.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
m_ripemd.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
m_ripemd.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_ripemd.o: ../../include/openssl/opensslconf.h
|
||||
m_ripemd.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
m_ripemd.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
m_ripemd.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
m_ripemd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_ripemd.o: ../../include/openssl/pkcs7.h ../../include/openssl/ripemd.h
|
||||
m_ripemd.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
@@ -485,60 +516,62 @@ m_sha.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
m_sha.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
m_sha.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
m_sha.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_sha.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
m_sha.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
m_sha.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_sha.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
m_sha.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
m_sha.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
m_sha.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
m_sha.o: ../cryptlib.h m_sha.c
|
||||
m_sha.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
m_sha.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_sha.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
m_sha.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
m_sha.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
m_sha.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
m_sha.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
m_sha.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h m_sha.c
|
||||
m_sha1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_sha1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
m_sha1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
m_sha1.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
m_sha1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_sha1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
m_sha1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
m_sha1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
m_sha1.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
m_sha1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
m_sha1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
m_sha1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
m_sha1.o: ../cryptlib.h m_sha1.c
|
||||
m_sha1.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
m_sha1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_sha1.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
m_sha1.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
m_sha1.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
m_sha1.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
m_sha1.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
m_sha1.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_sha1.c
|
||||
names.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
names.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
names.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
names.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
names.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
names.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
names.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
names.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
names.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
names.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
names.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
names.o: ../../include/openssl/x509_vfy.h ../cryptlib.h names.c
|
||||
names.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
names.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
names.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
names.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
names.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
names.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
names.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
names.o: ../cryptlib.h names.c
|
||||
p5_crpt.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
p5_crpt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
p5_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
p5_crpt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
p5_crpt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
p5_crpt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
p5_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p5_crpt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
p5_crpt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
p5_crpt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
p5_crpt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
p5_crpt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
p5_crpt.o: ../cryptlib.h p5_crpt.c
|
||||
p5_crpt.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
p5_crpt.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p5_crpt.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p5_crpt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p5_crpt.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
p5_crpt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p5_crpt.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p5_crpt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p5_crpt.c
|
||||
p5_crpt2.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
p5_crpt2.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
p5_crpt2.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
p5_crpt2.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
p5_crpt2.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
p5_crpt2.o: ../../include/openssl/evp.h ../../include/openssl/hmac.h
|
||||
p5_crpt2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p5_crpt2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p5_crpt2.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
p5_crpt2.o: ../../include/openssl/hmac.h ../../include/openssl/lhash.h
|
||||
p5_crpt2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p5_crpt2.o: ../../include/openssl/opensslconf.h
|
||||
p5_crpt2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p5_crpt2.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
p5_crpt2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
@@ -549,27 +582,29 @@ p_dec.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
p_dec.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
p_dec.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
p_dec.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_dec.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p_dec.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p_dec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p_dec.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
|
||||
p_dec.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
p_dec.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p_dec.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p_dec.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_dec.c
|
||||
p_dec.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
p_dec.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p_dec.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
p_dec.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
p_dec.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
|
||||
p_dec.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
p_dec.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
p_dec.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
p_dec.o: ../cryptlib.h p_dec.c
|
||||
p_enc.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p_enc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
p_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
p_enc.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
p_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p_enc.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
|
||||
p_enc.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
p_enc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p_enc.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_enc.c
|
||||
p_enc.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
p_enc.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
p_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
p_enc.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
|
||||
p_enc.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
p_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
p_enc.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
p_enc.o: ../cryptlib.h p_enc.c
|
||||
p_lib.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
p_lib.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
|
||||
p_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
@@ -577,60 +612,63 @@ p_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
|
||||
p_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
p_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
p_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
p_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
p_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
p_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
p_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
p_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_lib.c
|
||||
p_lib.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
p_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
p_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
p_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
p_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
p_lib.o: ../cryptlib.h p_lib.c
|
||||
p_open.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p_open.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
p_open.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
p_open.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
p_open.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_open.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p_open.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p_open.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p_open.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
p_open.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
p_open.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
p_open.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
p_open.o: ../cryptlib.h p_open.c
|
||||
p_open.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
p_open.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p_open.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
p_open.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
p_open.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
p_open.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p_open.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p_open.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_open.c
|
||||
p_seal.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p_seal.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
p_seal.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
p_seal.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
p_seal.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_seal.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p_seal.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p_seal.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p_seal.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
|
||||
p_seal.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
p_seal.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p_seal.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p_seal.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_seal.c
|
||||
p_seal.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
p_seal.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p_seal.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
p_seal.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
p_seal.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
|
||||
p_seal.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
p_seal.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
p_seal.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
p_seal.o: ../cryptlib.h p_seal.c
|
||||
p_sign.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
p_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
p_sign.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
p_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
p_sign.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p_sign.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_sign.c
|
||||
p_sign.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
|
||||
p_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p_sign.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
p_sign.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
|
||||
p_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
p_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
p_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
p_sign.o: ../cryptlib.h p_sign.c
|
||||
p_verify.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
p_verify.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
p_verify.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
p_verify.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
|
||||
p_verify.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
|
||||
p_verify.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
p_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
p_verify.o: ../../include/openssl/opensslconf.h
|
||||
p_verify.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
|
||||
p_verify.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
p_verify.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
p_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
p_verify.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
|
@@ -192,13 +192,8 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
|
||||
ret=0;
|
||||
break;
|
||||
case BIO_C_GET_MD_CTX:
|
||||
if (b->init)
|
||||
{
|
||||
pctx=ptr;
|
||||
*pctx=ctx;
|
||||
}
|
||||
else
|
||||
ret=0;
|
||||
break;
|
||||
case BIO_C_SET_MD_CTX:
|
||||
if (b->init)
|
||||
|
180
crypto/evp/dig_eng.c
Normal file
180
crypto/evp/dig_eng.c
Normal file
@@ -0,0 +1,180 @@
|
||||
/* crypto/evp/digest.c */
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/evp.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
#include "evp_locl.h"
|
||||
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
|
||||
static int do_evp_md_engine_full(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
|
||||
{
|
||||
if (type)
|
||||
{
|
||||
/* Ensure an ENGINE left lying around from last time is cleared
|
||||
* (the previous check attempted to avoid this if the same
|
||||
* ENGINE and EVP_MD could be used). */
|
||||
if(ctx->engine)
|
||||
ENGINE_finish(ctx->engine);
|
||||
if(impl)
|
||||
{
|
||||
if (!ENGINE_init(impl))
|
||||
{
|
||||
EVPerr(EVP_F_EVP_DIGESTINIT_EX,EVP_R_INITIALIZATION_ERROR);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
/* Ask if an ENGINE is reserved for this job */
|
||||
impl = ENGINE_get_digest_engine(type->type);
|
||||
if(impl)
|
||||
{
|
||||
/* There's an ENGINE for this job ... (apparently) */
|
||||
const EVP_MD *d = ENGINE_get_digest(impl, type->type);
|
||||
if(!d)
|
||||
{
|
||||
/* Same comment from evp_enc.c */
|
||||
EVPerr(EVP_F_EVP_DIGESTINIT_EX,EVP_R_INITIALIZATION_ERROR);
|
||||
return 0;
|
||||
}
|
||||
/* We'll use the ENGINE's private digest definition */
|
||||
type = d;
|
||||
/* Store the ENGINE functional reference so we know
|
||||
* 'type' came from an ENGINE and we need to release
|
||||
* it when done. */
|
||||
ctx->engine = impl;
|
||||
}
|
||||
else
|
||||
ctx->engine = NULL;
|
||||
}
|
||||
else
|
||||
if(!ctx->digest)
|
||||
{
|
||||
EVPerr(EVP_F_EVP_DIGESTINIT_EX,EVP_R_NO_DIGEST_SET);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
void int_EVP_MD_init_engine_callbacks(void)
|
||||
{
|
||||
int_EVP_MD_set_engine_callbacks(
|
||||
ENGINE_init, ENGINE_finish, do_evp_md_engine_full);
|
||||
}
|
||||
#endif
|
||||
#endif
|
@@ -116,6 +116,7 @@
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
#include "evp_locl.h"
|
||||
|
||||
void EVP_MD_CTX_init(EVP_MD_CTX *ctx)
|
||||
{
|
||||
@@ -137,17 +138,74 @@ int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
|
||||
return EVP_DigestInit_ex(ctx, type, NULL);
|
||||
}
|
||||
|
||||
int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
|
||||
#ifdef OPENSSL_FIPS
|
||||
|
||||
/* The purpose of these is to trap programs that attempt to use non FIPS
|
||||
* algorithms in FIPS mode and ignore the errors.
|
||||
*/
|
||||
|
||||
static int bad_init(EVP_MD_CTX *ctx)
|
||||
{ FIPS_ERROR_IGNORED("Digest init"); return 0;}
|
||||
|
||||
static int bad_update(EVP_MD_CTX *ctx,const void *data,size_t count)
|
||||
{ FIPS_ERROR_IGNORED("Digest update"); return 0;}
|
||||
|
||||
static int bad_final(EVP_MD_CTX *ctx,unsigned char *md)
|
||||
{ FIPS_ERROR_IGNORED("Digest Final"); return 0;}
|
||||
|
||||
static const EVP_MD bad_md =
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
bad_init,
|
||||
bad_update,
|
||||
bad_final,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
0,
|
||||
{0,0,0,0},
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
|
||||
static int do_engine_null(ENGINE *impl) { return 0;}
|
||||
static int do_evp_md_engine_null(EVP_MD_CTX *ctx,
|
||||
const EVP_MD *type, ENGINE *impl)
|
||||
{ return 1; }
|
||||
|
||||
static int (*do_engine_init)(ENGINE *impl)
|
||||
= do_engine_null;
|
||||
|
||||
static int (*do_engine_finish)(ENGINE *impl)
|
||||
= do_engine_null;
|
||||
|
||||
static int (*do_evp_md_engine)
|
||||
(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
|
||||
= do_evp_md_engine_null;
|
||||
|
||||
void int_EVP_MD_set_engine_callbacks(
|
||||
int (*eng_md_init)(ENGINE *impl),
|
||||
int (*eng_md_fin)(ENGINE *impl),
|
||||
int (*eng_md_evp)
|
||||
(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl))
|
||||
{
|
||||
do_engine_init = eng_md_init;
|
||||
do_engine_finish = eng_md_fin;
|
||||
do_evp_md_engine = eng_md_evp;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#define do_engine_init ENGINE_init
|
||||
#define do_engine_finish ENGINE_finish
|
||||
|
||||
static int do_evp_md_engine(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
|
||||
{
|
||||
EVP_MD_CTX_clear_flags(ctx,EVP_MD_CTX_FLAG_CLEANED);
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
/* Whether it's nice or not, "Inits" can be used on "Final"'d contexts
|
||||
* so this context may already have an ENGINE! Try to avoid releasing
|
||||
* the previous handle, re-querying for an ENGINE, and having a
|
||||
* reinitialisation, when it may all be unecessary. */
|
||||
if (ctx->engine && ctx->digest && (!type ||
|
||||
(type && (type->type == ctx->digest->type))))
|
||||
goto skip_to_init;
|
||||
if (type)
|
||||
{
|
||||
/* Ensure an ENGINE left lying around from last time is cleared
|
||||
@@ -192,9 +250,39 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
|
||||
EVPerr(EVP_F_EVP_DIGESTINIT_EX,EVP_R_NO_DIGEST_SET);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
|
||||
{
|
||||
M_EVP_MD_CTX_clear_flags(ctx,EVP_MD_CTX_FLAG_CLEANED);
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
/* Whether it's nice or not, "Inits" can be used on "Final"'d contexts
|
||||
* so this context may already have an ENGINE! Try to avoid releasing
|
||||
* the previous handle, re-querying for an ENGINE, and having a
|
||||
* reinitialisation, when it may all be unecessary. */
|
||||
if (ctx->engine && ctx->digest && (!type ||
|
||||
(type && (type->type == ctx->digest->type))))
|
||||
goto skip_to_init;
|
||||
if (!do_evp_md_engine(ctx, type, impl))
|
||||
return 0;
|
||||
#endif
|
||||
if (ctx->digest != type)
|
||||
{
|
||||
#ifdef OPENSSL_FIPS
|
||||
if (FIPS_mode())
|
||||
{
|
||||
if (!(type->flags & EVP_MD_FLAG_FIPS)
|
||||
&& !(ctx->flags & EVP_MD_CTX_FLAG_NON_FIPS_ALLOW))
|
||||
{
|
||||
EVPerr(EVP_F_EVP_DIGESTINIT, EVP_R_DISABLED_FOR_FIPS);
|
||||
ctx->digest = &bad_md;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (ctx->digest && ctx->digest->ctx_size)
|
||||
OPENSSL_free(ctx->md_data);
|
||||
ctx->digest=type;
|
||||
@@ -234,7 +322,7 @@ int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size)
|
||||
if (ctx->digest->cleanup)
|
||||
{
|
||||
ctx->digest->cleanup(ctx);
|
||||
EVP_MD_CTX_set_flags(ctx,EVP_MD_CTX_FLAG_CLEANED);
|
||||
M_EVP_MD_CTX_set_flags(ctx,EVP_MD_CTX_FLAG_CLEANED);
|
||||
}
|
||||
memset(ctx->md_data,0,ctx->digest->ctx_size);
|
||||
return ret;
|
||||
@@ -256,7 +344,7 @@ int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in)
|
||||
}
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
/* Make sure it's safe to copy a digest context using an ENGINE */
|
||||
if (in->engine && !ENGINE_init(in->engine))
|
||||
if (in->engine && !do_engine_init(in->engine))
|
||||
{
|
||||
EVPerr(EVP_F_EVP_MD_CTX_COPY_EX,ERR_R_ENGINE_LIB);
|
||||
return 0;
|
||||
@@ -266,7 +354,7 @@ int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in)
|
||||
if (out->digest == in->digest)
|
||||
{
|
||||
tmp_buf = out->md_data;
|
||||
EVP_MD_CTX_set_flags(out,EVP_MD_CTX_FLAG_REUSE);
|
||||
M_EVP_MD_CTX_set_flags(out,EVP_MD_CTX_FLAG_REUSE);
|
||||
}
|
||||
else tmp_buf = NULL;
|
||||
EVP_MD_CTX_cleanup(out);
|
||||
@@ -292,7 +380,7 @@ int EVP_Digest(const void *data, size_t count,
|
||||
int ret;
|
||||
|
||||
EVP_MD_CTX_init(&ctx);
|
||||
EVP_MD_CTX_set_flags(&ctx,EVP_MD_CTX_FLAG_ONESHOT);
|
||||
M_EVP_MD_CTX_set_flags(&ctx,EVP_MD_CTX_FLAG_ONESHOT);
|
||||
ret=EVP_DigestInit_ex(&ctx, type, impl)
|
||||
&& EVP_DigestUpdate(&ctx, data, count)
|
||||
&& EVP_DigestFinal_ex(&ctx, md, size);
|
||||
@@ -314,10 +402,10 @@ int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
|
||||
* because sometimes only copies of the context are ever finalised.
|
||||
*/
|
||||
if (ctx->digest && ctx->digest->cleanup
|
||||
&& !EVP_MD_CTX_test_flags(ctx,EVP_MD_CTX_FLAG_CLEANED))
|
||||
&& !M_EVP_MD_CTX_test_flags(ctx,EVP_MD_CTX_FLAG_CLEANED))
|
||||
ctx->digest->cleanup(ctx);
|
||||
if (ctx->digest && ctx->digest->ctx_size && ctx->md_data
|
||||
&& !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE))
|
||||
&& !M_EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE))
|
||||
{
|
||||
OPENSSL_cleanse(ctx->md_data,ctx->digest->ctx_size);
|
||||
OPENSSL_free(ctx->md_data);
|
||||
@@ -326,7 +414,7 @@ int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
|
||||
if(ctx->engine)
|
||||
/* The EVP_MD we used belongs to an ENGINE, release the
|
||||
* functional reference we held for this reason. */
|
||||
ENGINE_finish(ctx->engine);
|
||||
do_engine_finish(ctx->engine);
|
||||
#endif
|
||||
memset(ctx,'\0',sizeof *ctx);
|
||||
|
||||
|
@@ -69,32 +69,32 @@ typedef struct
|
||||
|
||||
IMPLEMENT_BLOCK_CIPHER(aes_128, ks, AES, EVP_AES_KEY,
|
||||
NID_aes_128, 16, 16, 16, 128,
|
||||
0, aes_init_key, NULL,
|
||||
EVP_CIPH_FLAG_FIPS, aes_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
NULL)
|
||||
IMPLEMENT_BLOCK_CIPHER(aes_192, ks, AES, EVP_AES_KEY,
|
||||
NID_aes_192, 16, 24, 16, 128,
|
||||
0, aes_init_key, NULL,
|
||||
EVP_CIPH_FLAG_FIPS, aes_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
NULL)
|
||||
IMPLEMENT_BLOCK_CIPHER(aes_256, ks, AES, EVP_AES_KEY,
|
||||
NID_aes_256, 16, 32, 16, 128,
|
||||
0, aes_init_key, NULL,
|
||||
EVP_CIPH_FLAG_FIPS, aes_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
NULL)
|
||||
|
||||
#define IMPLEMENT_AES_CFBR(ksize,cbits) IMPLEMENT_CFBR(aes,AES,EVP_AES_KEY,ks,ksize,cbits,16)
|
||||
#define IMPLEMENT_AES_CFBR(ksize,cbits,flags) IMPLEMENT_CFBR(aes,AES,EVP_AES_KEY,ks,ksize,cbits,16,flags)
|
||||
|
||||
IMPLEMENT_AES_CFBR(128,1)
|
||||
IMPLEMENT_AES_CFBR(192,1)
|
||||
IMPLEMENT_AES_CFBR(256,1)
|
||||
IMPLEMENT_AES_CFBR(128,1,EVP_CIPH_FLAG_FIPS)
|
||||
IMPLEMENT_AES_CFBR(192,1,EVP_CIPH_FLAG_FIPS)
|
||||
IMPLEMENT_AES_CFBR(256,1,EVP_CIPH_FLAG_FIPS)
|
||||
|
||||
IMPLEMENT_AES_CFBR(128,8)
|
||||
IMPLEMENT_AES_CFBR(192,8)
|
||||
IMPLEMENT_AES_CFBR(256,8)
|
||||
IMPLEMENT_AES_CFBR(128,8,EVP_CIPH_FLAG_FIPS)
|
||||
IMPLEMENT_AES_CFBR(192,8,EVP_CIPH_FLAG_FIPS)
|
||||
IMPLEMENT_AES_CFBR(256,8,EVP_CIPH_FLAG_FIPS)
|
||||
|
||||
static int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
const unsigned char *iv, int enc)
|
||||
|
@@ -129,18 +129,21 @@ static int des_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
}
|
||||
|
||||
BLOCK_CIPHER_defs(des, DES_key_schedule, NID_des, 8, 8, 8, 64,
|
||||
EVP_CIPH_RAND_KEY, des_init_key, NULL,
|
||||
EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS,
|
||||
des_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
des_ctrl)
|
||||
|
||||
BLOCK_CIPHER_def_cfb(des,DES_key_schedule,NID_des,8,8,1,
|
||||
EVP_CIPH_RAND_KEY, des_init_key,NULL,
|
||||
EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS,
|
||||
des_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,des_ctrl)
|
||||
|
||||
BLOCK_CIPHER_def_cfb(des,DES_key_schedule,NID_des,8,8,8,
|
||||
EVP_CIPH_RAND_KEY,des_init_key,NULL,
|
||||
EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS,
|
||||
des_init_key,NULL,
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,des_ctrl)
|
||||
|
||||
|
@@ -164,7 +164,8 @@ static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
}
|
||||
|
||||
BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64,
|
||||
EVP_CIPH_RAND_KEY, des_ede_init_key, NULL,
|
||||
EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS,
|
||||
des_ede_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
des3_ctrl)
|
||||
@@ -175,19 +176,22 @@ BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64,
|
||||
#define des_ede3_ecb_cipher des_ede_ecb_cipher
|
||||
|
||||
BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64,
|
||||
EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL,
|
||||
EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS,
|
||||
des_ede3_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
des3_ctrl)
|
||||
|
||||
BLOCK_CIPHER_def_cfb(des_ede3,DES_EDE_KEY,NID_des_ede3,24,8,1,
|
||||
EVP_CIPH_RAND_KEY, des_ede3_init_key,NULL,
|
||||
EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS,
|
||||
des_ede3_init_key,NULL,
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
des3_ctrl)
|
||||
|
||||
BLOCK_CIPHER_def_cfb(des_ede3,DES_EDE_KEY,NID_des_ede3,24,8,8,
|
||||
EVP_CIPH_RAND_KEY, des_ede3_init_key,NULL,
|
||||
EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS,
|
||||
des_ede3_init_key,NULL,
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
des3_ctrl)
|
||||
|
@@ -69,7 +69,7 @@ static const EVP_CIPHER n_cipher=
|
||||
{
|
||||
NID_undef,
|
||||
1,0,0,
|
||||
0,
|
||||
EVP_CIPH_FLAG_FIPS,
|
||||
null_init_key,
|
||||
null_cipher,
|
||||
NULL,
|
||||
|
@@ -64,6 +64,7 @@
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/rc4.h>
|
||||
#include "evp_locl.h"
|
||||
|
||||
/* FIXME: surely this is available elsewhere? */
|
||||
#define EVP_RC4_KEY_SIZE 16
|
||||
|
@@ -75,6 +75,10 @@
|
||||
#include <openssl/bio.h>
|
||||
#endif
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
#include <openssl/fips.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
#define EVP_RC2_KEY_SIZE 16
|
||||
#define EVP_RC4_KEY_SIZE 16
|
||||
@@ -253,6 +257,8 @@ typedef int evp_verify_method(int type,const unsigned char *m,
|
||||
#define EVP_MD_FLAG_ONESHOT 0x0001 /* digest can only handle a single
|
||||
* block */
|
||||
|
||||
#define EVP_MD_FLAG_FIPS 0x0400 /* Note if suitable for use in FIPS mode */
|
||||
|
||||
#define EVP_PKEY_NULL_method NULL,NULL,{0,0,0,0}
|
||||
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
@@ -303,6 +309,8 @@ struct env_md_ctx_st
|
||||
* cleaned */
|
||||
#define EVP_MD_CTX_FLAG_REUSE 0x0004 /* Don't free up ctx->md_data
|
||||
* in EVP_MD_CTX_cleanup */
|
||||
#define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008 /* Allow use of non FIPS digest
|
||||
* in FIPS mode */
|
||||
|
||||
struct evp_cipher_st
|
||||
{
|
||||
@@ -347,6 +355,10 @@ struct evp_cipher_st
|
||||
#define EVP_CIPH_NO_PADDING 0x100
|
||||
/* cipher handles random key generation */
|
||||
#define EVP_CIPH_RAND_KEY 0x200
|
||||
/* Note if suitable for use in FIPS mode */
|
||||
#define EVP_CIPH_FLAG_FIPS 0x400
|
||||
/* Allow non FIPS cipher in FIPS mode */
|
||||
#define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0x800
|
||||
|
||||
/* ctrl() values */
|
||||
|
||||
@@ -429,6 +441,15 @@ typedef int (EVP_PBE_KEYGEN)(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
|
||||
#define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a))
|
||||
#define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a))
|
||||
|
||||
/* Macros to reduce FIPS dependencies: do NOT use in applications */
|
||||
#define M_EVP_MD_size(e) ((e)->md_size)
|
||||
#define M_EVP_MD_block_size(e) ((e)->block_size)
|
||||
#define M_EVP_MD_CTX_set_flags(ctx,flgs) ((ctx)->flags|=(flgs))
|
||||
#define M_EVP_MD_CTX_clear_flags(ctx,flgs) ((ctx)->flags&=~(flgs))
|
||||
#define M_EVP_MD_CTX_test_flags(ctx,flgs) ((ctx)->flags&(flgs))
|
||||
#define M_EVP_MD_type(e) ((e)->type)
|
||||
|
||||
|
||||
int EVP_MD_type(const EVP_MD *md);
|
||||
#define EVP_MD_nid(e) EVP_MD_type(e)
|
||||
#define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e))
|
||||
@@ -524,6 +545,10 @@ int EVP_BytesToKey(const EVP_CIPHER *type,const EVP_MD *md,
|
||||
const unsigned char *salt, const unsigned char *data,
|
||||
int datal, int count, unsigned char *key,unsigned char *iv);
|
||||
|
||||
void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags);
|
||||
void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags);
|
||||
int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx,int flags);
|
||||
|
||||
int EVP_EncryptInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher,
|
||||
const unsigned char *key, const unsigned char *iv);
|
||||
int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
|
||||
@@ -871,6 +896,17 @@ int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md,
|
||||
EVP_PBE_KEYGEN *keygen);
|
||||
void EVP_PBE_cleanup(void);
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
void int_EVP_MD_set_engine_callbacks(
|
||||
int (*eng_md_init)(ENGINE *impl),
|
||||
int (*eng_md_fin)(ENGINE *impl),
|
||||
int (*eng_md_evp)
|
||||
(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl));
|
||||
void int_EVP_MD_init_engine_callbacks(void);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* BEGIN ERROR CODES */
|
||||
/* The following lines are auto generated by the script mkerr.pl. Any changes
|
||||
* made after this point may be overwritten when the script is next run.
|
||||
@@ -887,10 +923,12 @@ void ERR_load_EVP_strings(void);
|
||||
#define EVP_F_DSA_PKEY2PKCS8 135
|
||||
#define EVP_F_ECDSA_PKEY2PKCS8 129
|
||||
#define EVP_F_ECKEY_PKEY2PKCS8 132
|
||||
#define EVP_F_EVP_CIPHERINIT 137
|
||||
#define EVP_F_EVP_CIPHERINIT_EX 123
|
||||
#define EVP_F_EVP_CIPHER_CTX_CTRL 124
|
||||
#define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122
|
||||
#define EVP_F_EVP_DECRYPTFINAL_EX 101
|
||||
#define EVP_F_EVP_DIGESTINIT 136
|
||||
#define EVP_F_EVP_DIGESTINIT_EX 128
|
||||
#define EVP_F_EVP_ENCRYPTFINAL_EX 127
|
||||
#define EVP_F_EVP_MD_CTX_COPY_EX 110
|
||||
@@ -932,6 +970,7 @@ void ERR_load_EVP_strings(void);
|
||||
#define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138
|
||||
#define EVP_R_DECODE_ERROR 114
|
||||
#define EVP_R_DIFFERENT_KEY_TYPES 101
|
||||
#define EVP_R_DISABLED_FOR_FIPS 144
|
||||
#define EVP_R_ENCODE_ERROR 115
|
||||
#define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119
|
||||
#define EVP_R_EXPECTING_AN_RSA_KEY 127
|
||||
|
@@ -90,6 +90,48 @@ int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
|
||||
return EVP_CipherInit_ex(ctx,cipher,NULL,key,iv,enc);
|
||||
}
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
|
||||
/* The purpose of these is to trap programs that attempt to use non FIPS
|
||||
* algorithms in FIPS mode and ignore the errors.
|
||||
*/
|
||||
|
||||
int bad_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
const unsigned char *iv, int enc)
|
||||
{ FIPS_ERROR_IGNORED("Cipher init"); return 0;}
|
||||
|
||||
int bad_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
const unsigned char *in, unsigned int inl)
|
||||
{ FIPS_ERROR_IGNORED("Cipher update"); return 0;}
|
||||
|
||||
/* NB: no cleanup because it is allowed after failed init */
|
||||
|
||||
int bad_set_asn1(EVP_CIPHER_CTX *ctx, ASN1_TYPE *typ)
|
||||
{ FIPS_ERROR_IGNORED("Cipher set_asn1"); return 0;}
|
||||
int bad_get_asn1(EVP_CIPHER_CTX *ctx, ASN1_TYPE *typ)
|
||||
{ FIPS_ERROR_IGNORED("Cipher get_asn1"); return 0;}
|
||||
int bad_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
|
||||
{ FIPS_ERROR_IGNORED("Cipher ctrl"); return 0;}
|
||||
|
||||
static const EVP_CIPHER bad_cipher =
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
bad_init,
|
||||
bad_do_cipher,
|
||||
NULL,
|
||||
0,
|
||||
bad_set_asn1,
|
||||
bad_get_asn1,
|
||||
bad_ctrl,
|
||||
NULL
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl,
|
||||
const unsigned char *key, const unsigned char *iv, int enc)
|
||||
{
|
||||
@@ -219,6 +261,24 @@ skip_to_init:
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
/* After 'key' is set no further parameters changes are permissible.
|
||||
* So only check for non FIPS enabling at this point.
|
||||
*/
|
||||
if (key && FIPS_mode())
|
||||
{
|
||||
if (!(ctx->cipher->flags & EVP_CIPH_FLAG_FIPS)
|
||||
& !(ctx->flags & EVP_CIPH_FLAG_NON_FIPS_ALLOW))
|
||||
{
|
||||
EVPerr(EVP_F_EVP_CIPHERINIT, EVP_R_DISABLED_FOR_FIPS);
|
||||
ERR_add_error_data(2, "cipher=",
|
||||
EVP_CIPHER_name(ctx->cipher));
|
||||
ctx->cipher = &bad_cipher;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if(key || (ctx->cipher->flags & EVP_CIPH_ALWAYS_CALL_INIT)) {
|
||||
if(!ctx->cipher->init(ctx,key,iv,enc)) return 0;
|
||||
}
|
||||
|
@@ -77,10 +77,12 @@ static ERR_STRING_DATA EVP_str_functs[]=
|
||||
{ERR_FUNC(EVP_F_DSA_PKEY2PKCS8), "DSA_PKEY2PKCS8"},
|
||||
{ERR_FUNC(EVP_F_ECDSA_PKEY2PKCS8), "ECDSA_PKEY2PKCS8"},
|
||||
{ERR_FUNC(EVP_F_ECKEY_PKEY2PKCS8), "ECKEY_PKEY2PKCS8"},
|
||||
{ERR_FUNC(EVP_F_EVP_CIPHERINIT), "EVP_CipherInit"},
|
||||
{ERR_FUNC(EVP_F_EVP_CIPHERINIT_EX), "EVP_CipherInit_ex"},
|
||||
{ERR_FUNC(EVP_F_EVP_CIPHER_CTX_CTRL), "EVP_CIPHER_CTX_ctrl"},
|
||||
{ERR_FUNC(EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH), "EVP_CIPHER_CTX_set_key_length"},
|
||||
{ERR_FUNC(EVP_F_EVP_DECRYPTFINAL_EX), "EVP_DecryptFinal_ex"},
|
||||
{ERR_FUNC(EVP_F_EVP_DIGESTINIT), "EVP_DigestInit"},
|
||||
{ERR_FUNC(EVP_F_EVP_DIGESTINIT_EX), "EVP_DigestInit_ex"},
|
||||
{ERR_FUNC(EVP_F_EVP_ENCRYPTFINAL_EX), "EVP_EncryptFinal_ex"},
|
||||
{ERR_FUNC(EVP_F_EVP_MD_CTX_COPY_EX), "EVP_MD_CTX_copy_ex"},
|
||||
@@ -125,6 +127,7 @@ static ERR_STRING_DATA EVP_str_reasons[]=
|
||||
{ERR_REASON(EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH),"data not multiple of block length"},
|
||||
{ERR_REASON(EVP_R_DECODE_ERROR) ,"decode error"},
|
||||
{ERR_REASON(EVP_R_DIFFERENT_KEY_TYPES) ,"different key types"},
|
||||
{ERR_REASON(EVP_R_DISABLED_FOR_FIPS) ,"disabled for fips"},
|
||||
{ERR_REASON(EVP_R_ENCODE_ERROR) ,"encode error"},
|
||||
{ERR_REASON(EVP_R_EVP_PBE_CIPHERINIT_ERROR),"evp pbe cipherinit error"},
|
||||
{ERR_REASON(EVP_R_EXPECTING_AN_RSA_KEY) ,"expecting an rsa key"},
|
||||
|
@@ -277,3 +277,18 @@ int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags)
|
||||
{
|
||||
return (ctx->flags & flags);
|
||||
}
|
||||
|
||||
void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags)
|
||||
{
|
||||
ctx->flags |= flags;
|
||||
}
|
||||
|
||||
void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags)
|
||||
{
|
||||
ctx->flags &= ~flags;
|
||||
}
|
||||
|
||||
int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags)
|
||||
{
|
||||
return (ctx->flags & flags);
|
||||
}
|
||||
|
@@ -226,11 +226,28 @@ const EVP_CIPHER *EVP_##cname##_ecb(void) { return &cname##_ecb; }
|
||||
|
||||
#define EVP_C_DATA(kstruct, ctx) ((kstruct *)(ctx)->cipher_data)
|
||||
|
||||
#define IMPLEMENT_CFBR(cipher,cprefix,kstruct,ksched,keysize,cbits,iv_len) \
|
||||
#define IMPLEMENT_CFBR(cipher,cprefix,kstruct,ksched,keysize,cbits,iv_len,fl) \
|
||||
BLOCK_CIPHER_func_cfb(cipher##_##keysize,cprefix,cbits,kstruct,ksched) \
|
||||
BLOCK_CIPHER_def_cfb(cipher##_##keysize,kstruct, \
|
||||
NID_##cipher##_##keysize, keysize/8, iv_len, cbits, \
|
||||
0, cipher##_init_key, NULL, \
|
||||
fl, cipher##_init_key, NULL, \
|
||||
EVP_CIPHER_set_asn1_iv, \
|
||||
EVP_CIPHER_get_asn1_iv, \
|
||||
NULL)
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
#define RC2_set_key private_RC2_set_key
|
||||
#define RC4_set_key private_RC4_set_key
|
||||
#define CAST_set_key private_CAST_set_key
|
||||
#define RC5_32_set_key private_RC5_32_set_key
|
||||
#define BF_set_key private_BF_set_key
|
||||
#define idea_set_encrypt_key private_idea_set_encrypt_key
|
||||
|
||||
#define MD5_Init private_MD5_Init
|
||||
#define MD4_Init private_MD4_Init
|
||||
#define MD2_Init private_MD2_Init
|
||||
#define MDC2_Init private_MDC2_Init
|
||||
#define SHA_Init private_SHA_Init
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -81,7 +81,7 @@ static const EVP_MD dsa_md=
|
||||
NID_dsaWithSHA,
|
||||
NID_dsaWithSHA,
|
||||
SHA_DIGEST_LENGTH,
|
||||
0,
|
||||
EVP_MD_FLAG_FIPS,
|
||||
init,
|
||||
update,
|
||||
final,
|
||||
|
@@ -82,7 +82,7 @@ static const EVP_MD dss1_md=
|
||||
NID_dsa,
|
||||
NID_dsaWithSHA1,
|
||||
SHA_DIGEST_LENGTH,
|
||||
0,
|
||||
EVP_MD_FLAG_FIPS,
|
||||
init,
|
||||
update,
|
||||
final,
|
||||
|
@@ -58,6 +58,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "evp_locl.h"
|
||||
|
||||
#ifndef OPENSSL_NO_MD2
|
||||
|
||||
|
@@ -58,6 +58,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "evp_locl.h"
|
||||
|
||||
#ifndef OPENSSL_NO_MD4
|
||||
|
||||
|
@@ -62,6 +62,7 @@
|
||||
#ifndef OPENSSL_NO_MD5
|
||||
|
||||
#include <openssl/evp.h>
|
||||
#include "evp_locl.h"
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/md5.h>
|
||||
|
@@ -58,6 +58,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "evp_locl.h"
|
||||
|
||||
#ifndef OPENSSL_NO_MDC2
|
||||
|
||||
|
@@ -58,6 +58,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "evp_locl.h"
|
||||
|
||||
#if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA0)
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user