Clean up the OpenSSL vendor branch by removing files that are not
part of recent releases.
This commit is contained in:
parent
eaeb68fe23
commit
01c0bb1d8a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor-crypto/openssl/dist/; revision=142421
@ -1,29 +0,0 @@
|
||||
INSTALL.MacOS
|
||||
INSTALL.VMS
|
||||
INSTALL.W32
|
||||
MacOS/
|
||||
VMS/
|
||||
*.com
|
||||
*/*.bat
|
||||
*/*.com
|
||||
*/*/*.bat
|
||||
*/*/*.com
|
||||
apps/openssl-vms.cnf
|
||||
crypto/bn/asm/pa-risc2.s.old
|
||||
crypto/bn/asm/vms.mar
|
||||
crypto/bn/vms-helper.c
|
||||
crypto/dso/dso_vms.c
|
||||
crypto/dso/dso_win32.c
|
||||
crypto/threads/solaris.sh
|
||||
ms/
|
||||
rsaref/
|
||||
shlib/Makefile.hpux10-cc
|
||||
shlib/hpux10-cc.sh
|
||||
shlib/irix.sh
|
||||
shlib/solaris-sc4.sh
|
||||
shlib/solaris.sh
|
||||
shlib/sun.sh
|
||||
shlib/svr5-shared-gcc.sh
|
||||
shlib/svr5-shared-installed
|
||||
shlib/svr5-shared.sh
|
||||
util/cygwin.sh
|
@ -1,92 +0,0 @@
|
||||
|
||||
OpenSSL STATUS Last modified at
|
||||
______________ $Date: 2000/09/24 15:42:34 $
|
||||
|
||||
DEVELOPMENT STATE
|
||||
|
||||
o OpenSSL 0.9.6: Released on September 24th, 2000
|
||||
o OpenSSL 0.9.5a: Released on April 1st, 2000
|
||||
o OpenSSL 0.9.5: Released on February 28th, 2000
|
||||
o OpenSSL 0.9.4: Released on August 09th, 1999
|
||||
o OpenSSL 0.9.3a: Released on May 29th, 1999
|
||||
o OpenSSL 0.9.3: Released on May 25th, 1999
|
||||
o OpenSSL 0.9.2b: Released on March 22th, 1999
|
||||
o OpenSSL 0.9.1c: Released on December 23th, 1998
|
||||
|
||||
RELEASE SHOWSTOPPERS
|
||||
|
||||
AVAILABLE PATCHES
|
||||
|
||||
o CA.pl patch (Damien Miller)
|
||||
|
||||
IN PROGRESS
|
||||
|
||||
o Steve is currently working on (in no particular order):
|
||||
ASN1 code redesign, butchery, replacement.
|
||||
EVP cipher enhancement.
|
||||
Proper (or at least usable) certificate chain verification.
|
||||
Private key, certificate and CRL API and implementation.
|
||||
Developing and bugfixing PKCS#7 (S/MIME code).
|
||||
Various X509 issues: character sets, certificate request extensions.
|
||||
o Geoff and Richard are currently working on:
|
||||
ENGINE (the new code that gives hardware support among others).
|
||||
o Richard is currently working on:
|
||||
UTIL (a new set of library functions to support some higher level
|
||||
functionality that is currently missing).
|
||||
Dynamic thread-lock support.
|
||||
Shared library support for VMS.
|
||||
|
||||
NEEDS PATCH
|
||||
|
||||
o non-blocking socket on AIX
|
||||
o $(PERL) in */Makefile.ssl
|
||||
o "Sign the certificate?" - "n" creates empty certificate file
|
||||
|
||||
OPEN ISSUES
|
||||
|
||||
o internal_verify doesn't know about X509.v3 (basicConstraints
|
||||
CA flag ...)
|
||||
|
||||
o The Makefile hierarchy and build mechanism is still not a round thing:
|
||||
|
||||
1. The config vs. Configure scripts
|
||||
It's the same nasty situation as for Apache with APACI vs.
|
||||
src/Configure. It confuses.
|
||||
Suggestion: Merge Configure and config into a single configure
|
||||
script with a Autoconf style interface ;-) and remove
|
||||
Configure and config. Or even let us use GNU Autoconf
|
||||
itself. Then we can avoid a lot of those platform checks
|
||||
which are currently in Configure.
|
||||
|
||||
o Support for Shared Libraries has to be added at least
|
||||
for the major Unix platforms. The details we can rip from the stuff
|
||||
Ralf has done for the Apache src/Configure script. Ben wants the
|
||||
solution to be really simple.
|
||||
|
||||
Status: Ralf will look how we can easily incorporate the
|
||||
compiler PIC and linker DSO flags from Apache
|
||||
into the OpenSSL Configure script.
|
||||
|
||||
Ulf: +1 for using GNU autoconf and libtool (but not automake,
|
||||
which apparently is not flexible enough to generate
|
||||
libcrypto)
|
||||
|
||||
|
||||
o The perl/ stuff needs a major overhaul. Currently it's
|
||||
totally obsolete. Either we clean it up and enhance it to be up-to-date
|
||||
with the C code or we also could replace it with the really nice
|
||||
Net::SSLeay package we can find under
|
||||
http://www.neuronio.pt/SSLeay.pm.html. Ralf uses this package for a
|
||||
longer time and it works fine and is a nice Perl module. Best would be
|
||||
to convince the author to work for the OpenSSL project and create a
|
||||
Net::OpenSSL or Crypt::OpenSSL package out of it and maintains it for
|
||||
us.
|
||||
|
||||
Status: Ralf thinks we should both contact the author of Net::SSLeay
|
||||
and look how much effort it is to bring Eric's perl/ stuff up
|
||||
to date.
|
||||
Paul +1
|
||||
|
||||
WISHES
|
||||
|
||||
o
|
2301
crypto/openssl/TABLE
2301
crypto/openssl/TABLE
File diff suppressed because it is too large
Load Diff
@ -1,945 +0,0 @@
|
||||
#
|
||||
# apps/Makefile.ssl
|
||||
#
|
||||
|
||||
DIR= apps
|
||||
TOP= ..
|
||||
CC= cc
|
||||
INCLUDES= -I../include
|
||||
CFLAG= -g -static
|
||||
INSTALL_PREFIX=
|
||||
INSTALLTOP= /usr/local/ssl
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
PERL=/usr/local/bin/perl
|
||||
RM= rm -f
|
||||
|
||||
PEX_LIBS=
|
||||
EX_LIBS=
|
||||
|
||||
CFLAGS= -DMONOLITH $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile makeapps.com install.com
|
||||
|
||||
DLIBCRYPTO=../libcrypto.a
|
||||
DLIBSSL=../libssl.a
|
||||
LIBCRYPTO=-L.. -lcrypto
|
||||
LIBSSL=-L.. -lssl
|
||||
|
||||
PROGRAM= openssl
|
||||
|
||||
SCRIPTS=CA.sh CA.pl der_chop
|
||||
|
||||
EXE= $(PROGRAM)
|
||||
|
||||
E_EXE= verify asn1pars req dgst dh dhparam enc passwd gendh errstr \
|
||||
ca crl rsa rsautl dsa dsaparam \
|
||||
x509 genrsa gendsa s_server s_client speed \
|
||||
s_time version pkcs7 crl2pkcs7 sess_id ciphers nseq pkcs12 \
|
||||
pkcs8 spkac smime rand
|
||||
|
||||
PROGS= $(PROGRAM).c
|
||||
|
||||
A_OBJ=apps.o
|
||||
A_SRC=apps.c
|
||||
S_OBJ= s_cb.o s_socket.o
|
||||
S_SRC= s_cb.c s_socket.c
|
||||
RAND_OBJ=app_rand.o
|
||||
RAND_SRC=app_rand.c
|
||||
|
||||
E_OBJ= verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o \
|
||||
ca.o pkcs7.o crl2p7.o crl.o \
|
||||
rsa.o rsautl.o dsa.o dsaparam.o \
|
||||
x509.o genrsa.o gendsa.o s_server.o s_client.o speed.o \
|
||||
s_time.o $(A_OBJ) $(S_OBJ) $(RAND_OBJ) version.o sess_id.o \
|
||||
ciphers.o nseq.o pkcs12.o pkcs8.o spkac.o smime.o rand.o
|
||||
|
||||
E_SRC= verify.c asn1pars.c req.c dgst.c dh.c enc.c passwd.c gendh.c errstr.c ca.c \
|
||||
pkcs7.c crl2p7.c crl.c \
|
||||
rsa.c rsautl.c dsa.c dsaparam.c \
|
||||
x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c \
|
||||
s_time.c $(A_SRC) $(S_SRC) $(RAND_SRC) version.c sess_id.c \
|
||||
ciphers.c nseq.c pkcs12.c pkcs8.c spkac.c smime.c rand.c
|
||||
|
||||
SRC=$(E_SRC)
|
||||
|
||||
EXHEADER=
|
||||
HEADER= apps.h progs.h s_apps.h \
|
||||
testdsa.h testrsa.h \
|
||||
$(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
@(cd ..; $(MAKE) DIRS=$(DIR) all)
|
||||
|
||||
all: exe
|
||||
|
||||
exe: $(EXE)
|
||||
|
||||
req: sreq.o $(A_OBJ) $(DLIBCRYPTO)
|
||||
$(CC) -o req $(CFLAG) sreq.o $(A_OBJ) $(RAND_OBJ) $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)
|
||||
|
||||
sreq.o: req.c
|
||||
$(CC) -c $(INCLUDES) $(CFLAG) -o sreq.o req.c
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
install:
|
||||
@for i in $(EXE); \
|
||||
do \
|
||||
(echo installing $$i; \
|
||||
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \
|
||||
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
|
||||
done;
|
||||
@for i in $(SCRIPTS); \
|
||||
do \
|
||||
(echo installing $$i; \
|
||||
cp $$i $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i; \
|
||||
chmod 755 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i ); \
|
||||
done
|
||||
@cp openssl.cnf $(INSTALL_PREFIX)$(OPENSSLDIR); \
|
||||
chmod 644 $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(SRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff $(EXE)
|
||||
rm -f req
|
||||
|
||||
$(DLIBSSL):
|
||||
(cd ../ssl; $(MAKE))
|
||||
|
||||
$(DLIBCRYPTO):
|
||||
(cd ../crypto; $(MAKE))
|
||||
|
||||
$(PROGRAM): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
|
||||
$(RM) $(PROGRAM)
|
||||
$(CC) -o $(PROGRAM) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(LIBSSL) $(LIBCRYPTO) $(EX_LIBS)
|
||||
-(cd ..; OPENSSL="`pwd`/apps/openssl"; export OPENSSL; $(PERL) tools/c_rehash certs)
|
||||
|
||||
progs.h: progs.pl
|
||||
$(PERL) progs.pl $(E_EXE) >progs.h
|
||||
$(RM) $(PROGRAM).o
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
app_rand.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
app_rand.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
app_rand.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
app_rand.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
app_rand.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
app_rand.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
app_rand.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
app_rand.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
app_rand.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
app_rand.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
app_rand.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
app_rand.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
app_rand.o: ../include/openssl/opensslv.h ../include/openssl/pkcs7.h
|
||||
app_rand.o: ../include/openssl/rand.h ../include/openssl/rc2.h
|
||||
app_rand.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
app_rand.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
app_rand.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
app_rand.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
app_rand.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
apps.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
apps.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
apps.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
apps.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
apps.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
apps.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
apps.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
apps.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
apps.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
apps.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
apps.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
apps.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
apps.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
apps.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
apps.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
|
||||
apps.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
apps.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
apps.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
apps.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||
apps.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
|
||||
apps.o: ../include/openssl/x509_vfy.h apps.h
|
||||
asn1pars.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
asn1pars.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
asn1pars.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
asn1pars.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
asn1pars.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
asn1pars.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
asn1pars.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
asn1pars.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
asn1pars.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
asn1pars.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
asn1pars.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
asn1pars.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
asn1pars.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
asn1pars.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
asn1pars.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
asn1pars.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
asn1pars.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
asn1pars.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
asn1pars.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
asn1pars.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
ca.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
ca.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
ca.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
ca.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
ca.o: ../include/openssl/des.h ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
ca.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
ca.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
ca.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
ca.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
ca.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
ca.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
ca.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
ca.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
|
||||
ca.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||
ca.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
ca.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
ca.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
ca.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||
ca.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
|
||||
ca.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||
ca.o: ../include/openssl/x509v3.h apps.h
|
||||
ciphers.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
ciphers.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
ciphers.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
ciphers.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||
ciphers.o: ../include/openssl/crypto.h ../include/openssl/des.h
|
||||
ciphers.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
ciphers.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
ciphers.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
ciphers.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
ciphers.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
ciphers.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
ciphers.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
ciphers.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
ciphers.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
|
||||
ciphers.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||
ciphers.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
ciphers.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
ciphers.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
ciphers.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
||||
ciphers.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||
ciphers.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||
ciphers.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||
ciphers.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
crl.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
crl.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
crl.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
crl.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
crl.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
crl.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
crl.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
crl.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
crl.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
crl.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
crl.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
crl.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
crl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
crl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
crl.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
crl.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
crl.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
crl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
crl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
crl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||
crl.o: ../include/openssl/x509v3.h apps.h
|
||||
crl2p7.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
crl2p7.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
crl2p7.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
crl2p7.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
crl2p7.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
crl2p7.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
crl2p7.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
crl2p7.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
crl2p7.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
crl2p7.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
crl2p7.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
crl2p7.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
crl2p7.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
crl2p7.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
crl2p7.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
crl2p7.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
crl2p7.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
crl2p7.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
crl2p7.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
crl2p7.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
dgst.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
dgst.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
dgst.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
dgst.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
dgst.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
dgst.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
dgst.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
dgst.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
dgst.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
dgst.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
dgst.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
dgst.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
dgst.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
dgst.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
dgst.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
dgst.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
dgst.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
dgst.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
dgst.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
dgst.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
dh.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
dh.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
dh.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
dh.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
dh.o: ../include/openssl/des.h ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
dh.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
dh.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
dh.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
dh.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
dh.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
dh.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
dh.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
dh.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
|
||||
dh.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||
dh.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
dh.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
dh.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
dh.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||
dh.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
|
||||
dh.o: ../include/openssl/x509_vfy.h apps.h
|
||||
dsa.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
dsa.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
dsa.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
dsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
dsa.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
dsa.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
dsa.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
dsa.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
dsa.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
dsa.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
dsa.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
dsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
dsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
dsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
dsa.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
dsa.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
dsa.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
dsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
dsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
dsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
dsaparam.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
dsaparam.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
dsaparam.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
dsaparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
dsaparam.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
dsaparam.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
dsaparam.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
dsaparam.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
dsaparam.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
dsaparam.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
dsaparam.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
dsaparam.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
dsaparam.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
dsaparam.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
dsaparam.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
dsaparam.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
dsaparam.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
dsaparam.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
dsaparam.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
dsaparam.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
enc.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
enc.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
enc.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
enc.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
enc.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
enc.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
enc.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
enc.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
enc.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
enc.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
enc.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
enc.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
enc.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
enc.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
|
||||
enc.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
enc.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
enc.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
enc.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||
enc.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
|
||||
enc.o: ../include/openssl/x509_vfy.h apps.h
|
||||
errstr.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
errstr.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
errstr.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
errstr.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||
errstr.o: ../include/openssl/crypto.h ../include/openssl/des.h
|
||||
errstr.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
errstr.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
errstr.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
errstr.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
errstr.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
errstr.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
errstr.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
errstr.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
errstr.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
|
||||
errstr.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||
errstr.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
errstr.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
errstr.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
errstr.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
||||
errstr.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||
errstr.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||
errstr.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||
errstr.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
gendh.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
gendh.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
gendh.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
gendh.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
gendh.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
gendh.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
gendh.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
gendh.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
gendh.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
gendh.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
gendh.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
gendh.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
gendh.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
gendh.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
gendh.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
|
||||
gendh.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
gendh.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
gendh.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
gendh.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||
gendh.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
|
||||
gendh.o: ../include/openssl/x509_vfy.h apps.h
|
||||
gendsa.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
gendsa.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
gendsa.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
gendsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
gendsa.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
gendsa.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
gendsa.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
gendsa.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
gendsa.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
gendsa.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
gendsa.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
gendsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
gendsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
gendsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
gendsa.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
gendsa.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
gendsa.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
gendsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
gendsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
gendsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
genrsa.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
genrsa.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
genrsa.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
genrsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
genrsa.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
genrsa.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
genrsa.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
genrsa.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
genrsa.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
genrsa.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
genrsa.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
genrsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
genrsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
genrsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
genrsa.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
genrsa.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
genrsa.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
genrsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
genrsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
genrsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
nseq.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
nseq.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
nseq.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
nseq.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
nseq.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
nseq.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
nseq.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
nseq.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
nseq.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
nseq.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
nseq.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
nseq.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
nseq.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
nseq.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
nseq.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
nseq.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
nseq.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
nseq.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
nseq.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
nseq.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
openssl.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
openssl.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
openssl.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
openssl.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||
openssl.o: ../include/openssl/crypto.h ../include/openssl/des.h
|
||||
openssl.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
openssl.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
openssl.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
openssl.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
openssl.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
openssl.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
openssl.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
openssl.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
openssl.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
|
||||
openssl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||
openssl.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
openssl.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
openssl.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
openssl.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
||||
openssl.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||
openssl.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||
openssl.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||
openssl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
openssl.o: progs.h s_apps.h
|
||||
passwd.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
passwd.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
passwd.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
passwd.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
passwd.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
passwd.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
passwd.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
passwd.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
passwd.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
passwd.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
passwd.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
passwd.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
passwd.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
passwd.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
|
||||
passwd.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
passwd.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
passwd.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
passwd.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||
passwd.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
|
||||
passwd.o: ../include/openssl/x509_vfy.h apps.h
|
||||
pkcs12.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
pkcs12.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
pkcs12.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
pkcs12.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
pkcs12.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
pkcs12.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
pkcs12.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
pkcs12.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
pkcs12.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
pkcs12.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
pkcs12.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
pkcs12.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
pkcs12.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
pkcs12.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
pkcs12.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
|
||||
pkcs12.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
pkcs12.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
pkcs12.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
pkcs12.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||
pkcs12.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
|
||||
pkcs12.o: ../include/openssl/x509_vfy.h apps.h
|
||||
pkcs7.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
pkcs7.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
pkcs7.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
pkcs7.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
pkcs7.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
pkcs7.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
pkcs7.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
pkcs7.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
pkcs7.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
pkcs7.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
pkcs7.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
pkcs7.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
pkcs7.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
pkcs7.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
pkcs7.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
pkcs7.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
pkcs7.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
pkcs7.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
pkcs7.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
pkcs7.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
pkcs8.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
pkcs8.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
pkcs8.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
pkcs8.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
pkcs8.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
pkcs8.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
pkcs8.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
pkcs8.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
pkcs8.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
pkcs8.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
pkcs8.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
pkcs8.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
pkcs8.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
pkcs8.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
pkcs8.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
|
||||
pkcs8.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
pkcs8.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
pkcs8.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
pkcs8.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||
pkcs8.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
|
||||
pkcs8.o: ../include/openssl/x509_vfy.h apps.h
|
||||
rand.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
rand.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
rand.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
rand.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
rand.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
rand.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
rand.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
rand.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
rand.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
rand.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
rand.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
rand.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
rand.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
rand.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
|
||||
rand.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
rand.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
rand.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
rand.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||
rand.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
|
||||
rand.o: ../include/openssl/x509_vfy.h apps.h
|
||||
req.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
req.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
req.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
req.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
req.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
req.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
req.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
req.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
req.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
req.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
req.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
req.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
req.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
req.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
req.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
req.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
req.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
req.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
req.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
req.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||
req.o: ../include/openssl/x509v3.h apps.h
|
||||
rsa.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
rsa.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
rsa.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
rsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
rsa.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
rsa.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
rsa.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
rsa.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
rsa.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
rsa.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
rsa.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
rsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
rsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
rsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
rsa.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
rsa.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
rsa.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
rsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
rsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
rsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
rsautl.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
rsautl.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
rsautl.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
rsautl.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
rsautl.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
rsautl.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
rsautl.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
rsautl.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
rsautl.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
rsautl.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
rsautl.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
rsautl.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
rsautl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
rsautl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
rsautl.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
rsautl.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
rsautl.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
rsautl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
rsautl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
rsautl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
s_cb.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
s_cb.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
s_cb.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
s_cb.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||
s_cb.o: ../include/openssl/crypto.h ../include/openssl/des.h
|
||||
s_cb.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
s_cb.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
s_cb.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
s_cb.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
s_cb.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
s_cb.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
s_cb.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
s_cb.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
s_cb.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
|
||||
s_cb.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||
s_cb.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
s_cb.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
s_cb.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
s_cb.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
||||
s_cb.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||
s_cb.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||
s_cb.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||
s_cb.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h s_apps.h
|
||||
s_client.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
s_client.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
s_client.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
s_client.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||
s_client.o: ../include/openssl/crypto.h ../include/openssl/des.h
|
||||
s_client.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
s_client.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
s_client.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
s_client.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
s_client.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
s_client.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
s_client.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
s_client.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
s_client.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
|
||||
s_client.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||
s_client.o: ../include/openssl/rand.h ../include/openssl/rc2.h
|
||||
s_client.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
s_client.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
s_client.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
s_client.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
||||
s_client.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
||||
s_client.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
s_client.o: ../include/openssl/tls1.h ../include/openssl/x509.h
|
||||
s_client.o: ../include/openssl/x509_vfy.h apps.h s_apps.h
|
||||
s_server.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
s_server.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
s_server.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
s_server.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||
s_server.o: ../include/openssl/crypto.h ../include/openssl/des.h
|
||||
s_server.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
s_server.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
s_server.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
s_server.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
s_server.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
s_server.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
s_server.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
s_server.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
s_server.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
|
||||
s_server.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||
s_server.o: ../include/openssl/rand.h ../include/openssl/rc2.h
|
||||
s_server.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
s_server.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
s_server.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
s_server.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
||||
s_server.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
||||
s_server.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
s_server.o: ../include/openssl/tls1.h ../include/openssl/x509.h
|
||||
s_server.o: ../include/openssl/x509_vfy.h apps.h s_apps.h
|
||||
s_socket.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
s_socket.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
s_socket.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
s_socket.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||
s_socket.o: ../include/openssl/crypto.h ../include/openssl/des.h
|
||||
s_socket.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
s_socket.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
s_socket.o: ../include/openssl/e_os2.h ../include/openssl/evp.h
|
||||
s_socket.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
s_socket.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
s_socket.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
s_socket.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
s_socket.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
s_socket.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
s_socket.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
s_socket.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
s_socket.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
s_socket.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
s_socket.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
||||
s_socket.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
||||
s_socket.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
s_socket.o: ../include/openssl/tls1.h ../include/openssl/x509.h
|
||||
s_socket.o: ../include/openssl/x509_vfy.h apps.h s_apps.h
|
||||
s_time.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
s_time.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
s_time.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
s_time.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||
s_time.o: ../include/openssl/crypto.h ../include/openssl/des.h
|
||||
s_time.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
s_time.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
s_time.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
s_time.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
s_time.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
s_time.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
s_time.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
s_time.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
s_time.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
|
||||
s_time.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||
s_time.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
s_time.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
s_time.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
s_time.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
||||
s_time.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||
s_time.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||
s_time.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||
s_time.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
s_time.o: s_apps.h
|
||||
sess_id.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
sess_id.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
sess_id.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
sess_id.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||
sess_id.o: ../include/openssl/crypto.h ../include/openssl/des.h
|
||||
sess_id.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
sess_id.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
|
||||
sess_id.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
sess_id.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
sess_id.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
sess_id.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
sess_id.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
sess_id.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
sess_id.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
|
||||
sess_id.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||
sess_id.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
sess_id.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
sess_id.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
sess_id.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
||||
sess_id.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||
sess_id.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||
sess_id.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||
sess_id.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
smime.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
smime.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
smime.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
smime.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
smime.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
smime.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
smime.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
smime.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
smime.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
smime.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
smime.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
smime.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
smime.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
smime.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
smime.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
smime.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
smime.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
smime.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
smime.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
smime.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
speed.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
speed.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
speed.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
speed.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
speed.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
speed.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
speed.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
speed.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
speed.o: ../include/openssl/hmac.h ../include/openssl/idea.h
|
||||
speed.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
speed.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
speed.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
speed.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
speed.o: ../include/openssl/opensslv.h ../include/openssl/pkcs7.h
|
||||
speed.o: ../include/openssl/rand.h ../include/openssl/rc2.h
|
||||
speed.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
speed.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
speed.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
speed.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
speed.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ./testdsa.h
|
||||
speed.o: ./testrsa.h apps.h
|
||||
spkac.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
spkac.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
spkac.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
spkac.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
spkac.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
spkac.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
spkac.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
spkac.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
spkac.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
spkac.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
spkac.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
spkac.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
spkac.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
spkac.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
spkac.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
spkac.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
spkac.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
spkac.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
spkac.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
spkac.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
|
||||
verify.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
verify.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
verify.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
verify.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
verify.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
verify.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
verify.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
verify.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
verify.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
verify.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
verify.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
verify.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
verify.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
verify.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
verify.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
verify.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
verify.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
verify.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
verify.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
verify.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||
verify.o: ../include/openssl/x509v3.h apps.h
|
||||
version.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
version.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
version.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
version.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
version.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
version.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
version.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
version.o: ../include/openssl/evp.h ../include/openssl/idea.h
|
||||
version.o: ../include/openssl/lhash.h ../include/openssl/md2.h
|
||||
version.o: ../include/openssl/md4.h ../include/openssl/md5.h
|
||||
version.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
|
||||
version.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
|
||||
version.o: ../include/openssl/opensslv.h ../include/openssl/pkcs7.h
|
||||
version.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
|
||||
version.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
|
||||
version.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
version.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||
version.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
|
||||
version.o: ../include/openssl/x509_vfy.h apps.h
|
||||
x509.o: ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
x509.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
|
||||
x509.o: ../include/openssl/buffer.h ../include/openssl/cast.h
|
||||
x509.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||
x509.o: ../include/openssl/des.h ../include/openssl/dh.h
|
||||
x509.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
|
||||
x509.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
|
||||
x509.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||
x509.o: ../include/openssl/idea.h ../include/openssl/lhash.h
|
||||
x509.o: ../include/openssl/md2.h ../include/openssl/md4.h
|
||||
x509.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
|
||||
x509.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
||||
x509.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
x509.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||
x509.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
|
||||
x509.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
|
||||
x509.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
|
||||
x509.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||
x509.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
x509.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||
x509.o: ../include/openssl/x509v3.h apps.h
|
@ -1,131 +0,0 @@
|
||||
/* apps/eay.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 <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#define MONOLITH
|
||||
#define USE_SOCKETS
|
||||
|
||||
#include "openssl/e_os.h"
|
||||
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/stack.h>
|
||||
#include <openssl/lhash.h>
|
||||
|
||||
#include <openssl/err.h>
|
||||
|
||||
#include <openssl/bn.h>
|
||||
|
||||
#include <openssl/evp.h>
|
||||
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/conf.h>
|
||||
#include <openssl/txt_db.h>
|
||||
|
||||
#include <openssl/err.h>
|
||||
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/pkcs7.h>
|
||||
#include <openssl/pem.h>
|
||||
#include <openssl/asn1.h>
|
||||
#include <openssl/objects.h>
|
||||
|
||||
#define MONOLITH
|
||||
|
||||
#include "openssl.c"
|
||||
#include "apps.c"
|
||||
#include "asn1pars.c"
|
||||
#ifndef NO_RSA
|
||||
#include "ca.c"
|
||||
#include "genrsa.c"
|
||||
#include "req.c"
|
||||
#include "rsa.c"
|
||||
#endif
|
||||
#ifndef NO_DH
|
||||
#include "gendh.c"
|
||||
#include "dh.c"
|
||||
#endif
|
||||
#include "crl.c"
|
||||
#include "crl2p7.c"
|
||||
#include "dgst.c"
|
||||
#include "enc.c"
|
||||
#include "errstr.c"
|
||||
#if !defined(NO_SSL2) || !defined(NO_SSL3)
|
||||
#ifndef NO_SOCK
|
||||
#include "s_cb.c"
|
||||
#include "s_client.c"
|
||||
#include "s_server.c"
|
||||
#include "s_socket.c"
|
||||
#include "s_time.c"
|
||||
#endif
|
||||
#endif
|
||||
#include "speed.c"
|
||||
#include "verify.c"
|
||||
#include "version.c"
|
||||
#include "x509.c"
|
||||
#include "ciphers.c"
|
||||
#include "sess_id.c"
|
||||
#include "pkcs7.c"
|
||||
#ifndef NO_DSA
|
||||
#include "dsaparam.c"
|
||||
#include "dsa.c"
|
||||
#include "gendsa.c"
|
||||
#endif
|
||||
|
@ -1,170 +0,0 @@
|
||||
/* apps/pem_mail.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 NO_RSA
|
||||
#include <stdio.h>
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/pem.h>
|
||||
#include "apps.h"
|
||||
|
||||
#undef PROG
|
||||
#define PROG pem_mail_main
|
||||
|
||||
static char *usage[]={
|
||||
"usage: pem_mail args\n",
|
||||
"\n",
|
||||
" -in arg - input file - default stdin\n",
|
||||
" -out arg - output file - default stdout\n",
|
||||
" -cert arg - the certificate to use\n",
|
||||
" -key arg - the private key to use\n",
|
||||
" -MIC - sign the message\n",
|
||||
" -enc arg - encrypt with one of cbc-des\n",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
typedef struct lines_St
|
||||
{
|
||||
char *line;
|
||||
struct lines_st *next;
|
||||
} LINES;
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
FILE *in;
|
||||
RSA *rsa=NULL;
|
||||
EVP_MD_CTX ctx;
|
||||
unsigned int mic=0,i,n;
|
||||
unsigned char buf[1024*15];
|
||||
char *prog,*infile=NULL,*outfile=NULL,*key=NULL;
|
||||
int badops=0;
|
||||
|
||||
apps_startup();
|
||||
|
||||
prog=argv[0];
|
||||
argc--;
|
||||
argv++;
|
||||
while (argc >= 1)
|
||||
{
|
||||
if (strcmp(*argv,"-key") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
key= *(++argv);
|
||||
}
|
||||
else if (strcmp(*argv,"-in") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
infile= *(++argv);
|
||||
}
|
||||
else if (strcmp(*argv,"-out") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
outfile= *(++argv);
|
||||
}
|
||||
else if (strcmp(*argv,"-mic") == 0)
|
||||
mic=1;
|
||||
else
|
||||
{
|
||||
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
||||
badops=1;
|
||||
break;
|
||||
}
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
|
||||
if (badops)
|
||||
{
|
||||
bad:
|
||||
BIO_printf(bio_err,"%s [options] <infile >outfile\n",prog);
|
||||
BIO_printf(bio_err,"where options are\n");
|
||||
EXIT(1);
|
||||
}
|
||||
|
||||
if (key == NULL)
|
||||
{ BIO_printf(bio_err,"you need to specify a key\n"); EXIT(1); }
|
||||
in=fopen(key,"r");
|
||||
if (in == NULL) { perror(key); EXIT(1); }
|
||||
rsa=PEM_read_RSAPrivateKey(in,NULL,NULL);
|
||||
if (rsa == NULL)
|
||||
{
|
||||
BIO_printf(bio_err,"unable to load Private Key\n");
|
||||
ERR_print_errors(bio_err);
|
||||
EXIT(1);
|
||||
}
|
||||
fclose(in);
|
||||
|
||||
PEM_SignInit(&ctx,EVP_md5());
|
||||
for (;;)
|
||||
{
|
||||
i=fread(buf,1,1024*10,stdin);
|
||||
if (i <= 0) break;
|
||||
PEM_SignUpdate(&ctx,buf,i);
|
||||
}
|
||||
if (!PEM_SignFinal(&ctx,buf,&n,rsa)) goto err;
|
||||
BIO_printf(bio_err,"%s\n",buf);
|
||||
EXIT(0);
|
||||
err:
|
||||
ERR_print_errors(bio_err);
|
||||
EXIT(1);
|
||||
}
|
||||
#endif
|
@ -1,15 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICTjCCAbsCEGiuFKTJn6nzmiPPLxUZs1owDQYJKoZIhvcNAQEEBQAwXzELMAkG
|
||||
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
|
||||
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk4
|
||||
MDUxODAwMDAwMFoXDTk5MDUxODIzNTk1OVowdTELMAkGA1UEBhMCVVMxETAPBgNV
|
||||
BAgTCE5ldyBZb3JrMREwDwYDVQQHFAhOZXcgWW9yazEeMBwGA1UEChQVSW5kdXN0
|
||||
cmlhbCBQcmVzcyBJbmMuMSAwHgYDVQQDFBd3d3cuaW5kdXN0cmlhbHByZXNzLmNv
|
||||
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqiH9xUJNHvqCmaDon27ValJb
|
||||
qTLymF3yKKWBxbODLWjX7yKjewoqWhotaEARI6jXPqomU87gFU1tH4r/bgwh3FmU
|
||||
MK3qo92XOsvwNAHzXzWRXQNJmm54g2F1RUt00pgYiOximDse1t9RL5POCDEbfX8D
|
||||
gugrE/WwkS2FrSoc5/cCAwEAATANBgkqhkiG9w0BAQQFAAN+AIw7fvF0EtEvrNS/
|
||||
LYuqAgUw/tH0FLgCkqKLmYYm/yR+Z0hD2eP/UhF+jAwmV8rHtBnaTM7oN23RVW2k
|
||||
Cf8soiGfr2PYtfufpXtd7azUFa+WJCWnp0N29EG0BR1JOFC0Q/4dh/X9qulM8luq
|
||||
Pjrmw2eSgbdmmdumWAcNPVbV
|
||||
-----END CERTIFICATE-----
|
@ -1,50 +0,0 @@
|
||||
issuer= /C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
||||
subject=/C=US/ST=New York/L=New York/O=Industrial Press Inc./CN=www.industrialpress.com
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 1 (0x0)
|
||||
Serial Number:
|
||||
68:ae:14:a4:c9:9f:a9:f3:9a:23:cf:2f:15:19:b3:5a
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: C=US, O=RSA Data Security, Inc., OU=Secure Server Certification Authority
|
||||
Validity
|
||||
Not Before: May 18 00:00:00 1998 GMT
|
||||
Not After : May 18 23:59:59 1999 GMT
|
||||
Subject: C=US, ST=New York, L=New York, O=Industrial Press Inc., CN=www.industrialpress.com
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1024 bit)
|
||||
Modulus (1024 bit):
|
||||
00:aa:21:fd:c5:42:4d:1e:fa:82:99:a0:e8:9f:6e:
|
||||
d5:6a:52:5b:a9:32:f2:98:5d:f2:28:a5:81:c5:b3:
|
||||
83:2d:68:d7:ef:22:a3:7b:0a:2a:5a:1a:2d:68:40:
|
||||
11:23:a8:d7:3e:aa:26:53:ce:e0:15:4d:6d:1f:8a:
|
||||
ff:6e:0c:21:dc:59:94:30:ad:ea:a3:dd:97:3a:cb:
|
||||
f0:34:01:f3:5f:35:91:5d:03:49:9a:6e:78:83:61:
|
||||
75:45:4b:74:d2:98:18:88:ec:62:98:3b:1e:d6:df:
|
||||
51:2f:93:ce:08:31:1b:7d:7f:03:82:e8:2b:13:f5:
|
||||
b0:91:2d:85:ad:2a:1c:e7:f7
|
||||
Exponent: 65537 (0x10001)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
8c:3b:7e:f1:74:12:d1:2f:ac:d4:bf:2d:8b:aa:02:05:30:fe:
|
||||
d1:f4:14:b8:02:92:a2:8b:99:86:26:ff:24:7e:67:48:43:d9:
|
||||
e3:ff:52:11:7e:8c:0c:26:57:ca:c7:b4:19:da:4c:ce:e8:37:
|
||||
6d:d1:55:6d:a4:09:ff:2c:a2:21:9f:af:63:d8:b5:fb:9f:a5:
|
||||
7b:5d:ed:ac:d4:15:af:96:24:25:a7:a7:43:76:f4:41:b4:05:
|
||||
1d:49:38:50:b4:43:fe:1d:87:f5:fd:aa:e9:4c:f2:5b:aa:3e:
|
||||
3a:e6:c3:67:92:81:b7:66:99:db:a6:58:07:0d:3d:56:d5
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICTjCCAbsCEGiuFKTJn6nzmiPPLxUZs1owDQYJKoZIhvcNAQEEBQAwXzELMAkG
|
||||
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
|
||||
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk4
|
||||
MDUxODAwMDAwMFoXDTk5MDUxODIzNTk1OVowdTELMAkGA1UEBhMCVVMxETAPBgNV
|
||||
BAgTCE5ldyBZb3JrMREwDwYDVQQHFAhOZXcgWW9yazEeMBwGA1UEChQVSW5kdXN0
|
||||
cmlhbCBQcmVzcyBJbmMuMSAwHgYDVQQDFBd3d3cuaW5kdXN0cmlhbHByZXNzLmNv
|
||||
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqiH9xUJNHvqCmaDon27ValJb
|
||||
qTLymF3yKKWBxbODLWjX7yKjewoqWhotaEARI6jXPqomU87gFU1tH4r/bgwh3FmU
|
||||
MK3qo92XOsvwNAHzXzWRXQNJmm54g2F1RUt00pgYiOximDse1t9RL5POCDEbfX8D
|
||||
gugrE/WwkS2FrSoc5/cCAwEAATANBgkqhkiG9w0BAQQFAAN+AIw7fvF0EtEvrNS/
|
||||
LYuqAgUw/tH0FLgCkqKLmYYm/yR+Z0hD2eP/UhF+jAwmV8rHtBnaTM7oN23RVW2k
|
||||
Cf8soiGfr2PYtfufpXtd7azUFa+WJCWnp0N29EG0BR1JOFC0Q/4dh/X9qulM8luq
|
||||
Pjrmw2eSgbdmmdumWAcNPVbV
|
||||
-----END CERTIFICATE-----
|
@ -1,47 +0,0 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 1 (0x0)
|
||||
Serial Number:
|
||||
02:ad:66:7e:4e:45:fe:5e:57:6f:3c:98:19:5e:dd:c0
|
||||
Signature Algorithm: md2WithRSAEncryption
|
||||
Issuer: C=US, O=RSA Data Security, Inc., OU=Secure Server Certification Authority
|
||||
Validity
|
||||
Not Before: Nov 9 00:00:00 1994 GMT
|
||||
Not After : Jan 7 23:59:59 2010 GMT
|
||||
Subject: C=US, O=RSA Data Security, Inc., OU=Secure Server Certification Authority
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1000 bit)
|
||||
Modulus (1000 bit):
|
||||
00:92:ce:7a:c1:ae:83:3e:5a:aa:89:83:57:ac:25:
|
||||
01:76:0c:ad:ae:8e:2c:37:ce:eb:35:78:64:54:03:
|
||||
e5:84:40:51:c9:bf:8f:08:e2:8a:82:08:d2:16:86:
|
||||
37:55:e9:b1:21:02:ad:76:68:81:9a:05:a2:4b:c9:
|
||||
4b:25:66:22:56:6c:88:07:8f:f7:81:59:6d:84:07:
|
||||
65:70:13:71:76:3e:9b:77:4c:e3:50:89:56:98:48:
|
||||
b9:1d:a7:29:1a:13:2e:4a:11:59:9c:1e:15:d5:49:
|
||||
54:2c:73:3a:69:82:b1:97:39:9c:6d:70:67:48:e5:
|
||||
dd:2d:d6:c8:1e:7b
|
||||
Exponent: 65537 (0x10001)
|
||||
Signature Algorithm: md2WithRSAEncryption
|
||||
65:dd:7e:e1:b2:ec:b0:e2:3a:e0:ec:71:46:9a:19:11:b8:d3:
|
||||
c7:a0:b4:03:40:26:02:3e:09:9c:e1:12:b3:d1:5a:f6:37:a5:
|
||||
b7:61:03:b6:5b:16:69:3b:c6:44:08:0c:88:53:0c:6b:97:49:
|
||||
c7:3e:35:dc:6c:b9:bb:aa:df:5c:bb:3a:2f:93:60:b6:a9:4b:
|
||||
4d:f2:20:f7:cd:5f:7f:64:7b:8e:dc:00:5c:d7:fa:77:ca:39:
|
||||
16:59:6f:0e:ea:d3:b5:83:7f:4d:4d:42:56:76:b4:c9:5f:04:
|
||||
f8:38:f8:eb:d2:5f:75:5f:cd:7b:fc:e5:8e:80:7c:fc:50
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkG
|
||||
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
|
||||
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0
|
||||
MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxIDAeBgNV
|
||||
BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2Vy
|
||||
dmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUAA4GJ
|
||||
ADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII
|
||||
0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphI
|
||||
uR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZI
|
||||
hvcNAQECBQADfgBl3X7hsuyw4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3
|
||||
YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc
|
||||
1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
|
||||
-----END CERTIFICATE-----
|
@ -1,49 +0,0 @@
|
||||
issuer= /C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
||||
subject=/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 1 (0x0)
|
||||
Serial Number:
|
||||
02:ad:66:7e:4e:45:fe:5e:57:6f:3c:98:19:5e:dd:c0
|
||||
Signature Algorithm: md2WithRSAEncryption
|
||||
Issuer: C=US, O=RSA Data Security, Inc., OU=Secure Server Certification Authority
|
||||
Validity
|
||||
Not Before: Nov 9 00:00:00 1994 GMT
|
||||
Not After : Jan 7 23:59:59 2010 GMT
|
||||
Subject: C=US, O=RSA Data Security, Inc., OU=Secure Server Certification Authority
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1000 bit)
|
||||
Modulus (1000 bit):
|
||||
00:92:ce:7a:c1:ae:83:3e:5a:aa:89:83:57:ac:25:
|
||||
01:76:0c:ad:ae:8e:2c:37:ce:eb:35:78:64:54:03:
|
||||
e5:84:40:51:c9:bf:8f:08:e2:8a:82:08:d2:16:86:
|
||||
37:55:e9:b1:21:02:ad:76:68:81:9a:05:a2:4b:c9:
|
||||
4b:25:66:22:56:6c:88:07:8f:f7:81:59:6d:84:07:
|
||||
65:70:13:71:76:3e:9b:77:4c:e3:50:89:56:98:48:
|
||||
b9:1d:a7:29:1a:13:2e:4a:11:59:9c:1e:15:d5:49:
|
||||
54:2c:73:3a:69:82:b1:97:39:9c:6d:70:67:48:e5:
|
||||
dd:2d:d6:c8:1e:7b
|
||||
Exponent: 65537 (0x10001)
|
||||
Signature Algorithm: md2WithRSAEncryption
|
||||
65:dd:7e:e1:b2:ec:b0:e2:3a:e0:ec:71:46:9a:19:11:b8:d3:
|
||||
c7:a0:b4:03:40:26:02:3e:09:9c:e1:12:b3:d1:5a:f6:37:a5:
|
||||
b7:61:03:b6:5b:16:69:3b:c6:44:08:0c:88:53:0c:6b:97:49:
|
||||
c7:3e:35:dc:6c:b9:bb:aa:df:5c:bb:3a:2f:93:60:b6:a9:4b:
|
||||
4d:f2:20:f7:cd:5f:7f:64:7b:8e:dc:00:5c:d7:fa:77:ca:39:
|
||||
16:59:6f:0e:ea:d3:b5:83:7f:4d:4d:42:56:76:b4:c9:5f:04:
|
||||
f8:38:f8:eb:d2:5f:75:5f:cd:7b:fc:e5:8e:80:7c:fc:50
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkG
|
||||
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
|
||||
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0
|
||||
MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxIDAeBgNV
|
||||
BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2Vy
|
||||
dmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUAA4GJ
|
||||
ADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII
|
||||
0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphI
|
||||
uR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZI
|
||||
hvcNAQECBQADfgBl3X7hsuyw4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3
|
||||
YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc
|
||||
1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
|
||||
-----END CERTIFICATE-----
|
@ -1,66 +0,0 @@
|
||||
#!/usr/local/bin/perl5
|
||||
#
|
||||
# This is only something I'm playing with, it does not work :-)
|
||||
#
|
||||
|
||||
use Tk;
|
||||
|
||||
my $main=MainWindow->new();
|
||||
my $f=$main->Frame(-relief => "ridge", -borderwidth => 2);
|
||||
$f->pack(-fill => 'x');
|
||||
|
||||
my $ff=$f->Frame;
|
||||
$ff->pack(-fill => 'x');
|
||||
my $l=$ff->Label(-text => "TkCA - SSLeay",
|
||||
-relief => "ridge", -borderwidth => 2);
|
||||
$l->pack(-fill => 'x', -ipady => 5);
|
||||
|
||||
my $l=$ff->Button(-text => "Certify");
|
||||
$l->pack(-fill => 'x', -ipady => 5);
|
||||
|
||||
my $l=$ff->Button(-text => "Review");
|
||||
$l->pack(-fill => 'x', -ipady => 5);
|
||||
|
||||
my $l=$ff->Button(-text => "Revoke");
|
||||
$l->pack(-fill => 'x', -ipady => 5);
|
||||
|
||||
my $l=$ff->Button(-text => "Generate CRL");
|
||||
$l->pack(-fill => 'x', -ipady => 5);
|
||||
|
||||
my($db)=&load_db("demoCA/index.txt");
|
||||
|
||||
MainLoop;
|
||||
|
||||
sub load_db
|
||||
{
|
||||
my(%ret);
|
||||
my($file)=@_;
|
||||
my(*IN);
|
||||
my(%db_serial,%db_name,@f,@db_s);
|
||||
|
||||
$ret{'serial'}=\%db_serial;
|
||||
$ret{'name'}=\%db_name;
|
||||
|
||||
open(IN,"<$file") || die "unable to open $file:$!\n";
|
||||
while (<IN>)
|
||||
{
|
||||
chop;
|
||||
s/([^\\])\t/\1\t\t/g;
|
||||
my(@f)=split(/\t\t/);
|
||||
die "wrong number of fields in $file, line $.\n"
|
||||
if ($#f != 5);
|
||||
|
||||
my(%f);
|
||||
$f{'type'}=$f[0];
|
||||
$f{'exp'}=$f[1];
|
||||
$f{'rev'}=$f[2];
|
||||
$f{'serial'}=$f[3];
|
||||
$f{'file'}=$f[4];
|
||||
$f{'name'}=$f[5];
|
||||
die "serial number $f{'serial'} appears twice (line $.)\n"
|
||||
if (defined($db{$f{'serial'}}))
|
||||
$db_serial{$f{'serial'}}=\%f;
|
||||
$db_name{$f{'name'}}.=$f{'serial'}." ";
|
||||
}
|
||||
return \%ret;
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
subject=/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
||||
issuer= /C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
||||
notBefore=941109235417Z
|
||||
notAfter =991231235417Z
|
||||
-----BEGIN X509 CERTIFICATE-----
|
||||
|
||||
MIICKTCCAZYCBQJBAAABMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMSAw
|
||||
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJl
|
||||
IFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NDExMDkyMzU0MTda
|
||||
Fw05OTEyMzEyMzU0MTdaMF8xCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0
|
||||
YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJlIFNlcnZlciBDZXJ0aWZp
|
||||
Y2F0aW9uIEF1dGhvcml0eTCBmzANBgkqhkiG9w0BAQEFAAOBiQAwgYUCfgCSznrB
|
||||
roM+WqqJg1esJQF2DK2ujiw3zus1eGRUA+WEQFHJv48I4oqCCNIWhjdV6bEhAq12
|
||||
aIGaBaJLyUslZiJWbIgHj/eBWW2EB2VwE3F2Ppt3TONQiVaYSLkdpykaEy5KEVmc
|
||||
HhXVSVQsczppgrGXOZxtcGdI5d0t1sgeewIDAQABMA0GCSqGSIb3DQEBAgUAA34A
|
||||
iNHReSHO4ovo+MF9NFM/YYPZtgs4F7boviGNjwC4i1N+RGceIr2XJ+CchcxK9oU7
|
||||
suK+ktPlDemvXA4MRpX/oRxePug2WHpzpgr4IhFrwwk4fia7c+8AvQKk8xQNMD9h
|
||||
cHsg/jKjn7P0Z1LctO6EjJY2IN6BCINxIYoPnqk=
|
||||
-----END X509 CERTIFICATE-----
|
@ -1,203 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/Makefile
|
||||
#
|
||||
|
||||
DIR= crypto
|
||||
TOP= ..
|
||||
CC= cc
|
||||
INCLUDE= -I. -I../include
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG= -g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP= /usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
RM= rm -f
|
||||
AR= ar r
|
||||
|
||||
PEX_LIBS=
|
||||
EX_LIBS=
|
||||
|
||||
CFLAGS= $(INCLUDE) $(CFLAG)
|
||||
|
||||
|
||||
LIBS=
|
||||
|
||||
SDIRS= md2 md5 sha mdc2 hmac ripemd \
|
||||
des rc2 rc4 rc5 idea bf cast \
|
||||
bn rsa dsa dh dso \
|
||||
buffer bio stack lhash rand err objects \
|
||||
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp
|
||||
|
||||
GENERAL=Makefile README crypto-lib.com install.com
|
||||
|
||||
LIB= $(TOP)/libcrypto.a
|
||||
LIBSRC= cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c
|
||||
LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= crypto.h tmdiff.h opensslv.h opensslconf.h ebcdic.h symhacks.h
|
||||
HEADER= cryptlib.h buildinf.h md32_common.h $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
@(cd ..; $(MAKE) DIRS=$(DIR) all)
|
||||
|
||||
all: buildinf.h lib subdirs
|
||||
|
||||
buildinf.h: ../Makefile.ssl
|
||||
( echo "#ifndef MK1MF_BUILD"; \
|
||||
echo " /* auto-generated by crypto/Makefile.ssl for crypto/cversion.c */"; \
|
||||
echo " #define CFLAGS \"$(CC) $(CFLAG)\""; \
|
||||
echo " #define PLATFORM \"$(PLATFORM)\""; \
|
||||
echo " #define DATE \"`date`\""; \
|
||||
echo "#endif" ) >buildinf.h
|
||||
|
||||
testapps:
|
||||
if echo ${SDIRS} | fgrep ' des '; \
|
||||
then cd des && $(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' des; fi
|
||||
cd pkcs7 && $(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' testapps
|
||||
|
||||
subdirs:
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i && echo "making all in crypto/$$i..." && \
|
||||
$(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
|
||||
done;
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making 'files' in crypto/$$i..."; \
|
||||
$(MAKE) PERL='${PERL}' files ); \
|
||||
done;
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../apps $(APPS)
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@for i in $(SDIRS); do \
|
||||
(cd $$i; echo "making links in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PERL='${PERL}' links ); \
|
||||
done;
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
libs:
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making libs in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' lib ); \
|
||||
done;
|
||||
|
||||
tests:
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making tests in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' tests ); \
|
||||
done;
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ;\
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making install in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' install ); \
|
||||
done;
|
||||
|
||||
lint:
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making lint in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' lint ); \
|
||||
done;
|
||||
|
||||
depend:
|
||||
if [ ! -f buildinf.h ]; then touch buildinf.h; fi # fake buildinf.h if it does not exist
|
||||
$(MAKEDEPEND) $(INCLUDE) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
if [ ! -s buildinf.h ]; then rm buildinf.h; fi
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making depend in crypto/$$i..."; \
|
||||
$(MAKE) MAKEFILE='${MAKEFILE}' INCLUDES='${INCLUDES}' DEPFLAG='${DEPFLAG}' depend ); \
|
||||
done;
|
||||
|
||||
clean:
|
||||
rm -f buildinf.h *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making clean in crypto/$$i..."; \
|
||||
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' clean ); \
|
||||
done;
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
@for i in $(SDIRS) ;\
|
||||
do \
|
||||
(cd $$i; echo "making dclean in crypto/$$i..."; \
|
||||
$(MAKE) PERL='${PERL}' CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' dclean ); \
|
||||
done;
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
cpt_err.o: ../include/openssl/bio.h ../include/openssl/crypto.h
|
||||
cpt_err.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
||||
cpt_err.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
|
||||
cpt_err.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
cryptlib.o: ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
cryptlib.o: ../include/openssl/crypto.h ../include/openssl/e_os.h
|
||||
cryptlib.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
cryptlib.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||
cryptlib.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
|
||||
cryptlib.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||
cversion.o: ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
cversion.o: ../include/openssl/crypto.h ../include/openssl/e_os.h
|
||||
cversion.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
cversion.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||
cversion.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
|
||||
cversion.o: ../include/openssl/stack.h ../include/openssl/symhacks.h buildinf.h
|
||||
cversion.o: cryptlib.h
|
||||
ex_data.o: ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
ex_data.o: ../include/openssl/crypto.h ../include/openssl/e_os.h
|
||||
ex_data.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
ex_data.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||
ex_data.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
|
||||
ex_data.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||
mem.o: ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
mem.o: ../include/openssl/crypto.h ../include/openssl/e_os.h
|
||||
mem.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
mem.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||
mem.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
|
||||
mem.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||
mem_dbg.o: ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
mem_dbg.o: ../include/openssl/crypto.h ../include/openssl/e_os.h
|
||||
mem_dbg.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
mem_dbg.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||
mem_dbg.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
|
||||
mem_dbg.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||
tmdiff.o: ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
tmdiff.o: ../include/openssl/crypto.h ../include/openssl/e_os.h
|
||||
tmdiff.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
tmdiff.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||
tmdiff.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
|
||||
tmdiff.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
tmdiff.o: ../include/openssl/tmdiff.h cryptlib.h
|
||||
uid.o: ../include/openssl/crypto.h ../include/openssl/opensslv.h
|
||||
uid.o: ../include/openssl/safestack.h ../include/openssl/stack.h
|
||||
uid.o: ../include/openssl/symhacks.h
|
File diff suppressed because it is too large
Load Diff
@ -1,89 +0,0 @@
|
||||
/* crypto/asn1/a_bmp.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/asn1.h>
|
||||
|
||||
ASN1_BMPSTRING *ASN1_BMPSTRING_new(void)
|
||||
{ return M_ASN1_BMPSTRING_new(); }
|
||||
|
||||
void ASN1_BMPSTRING_free(ASN1_BMPSTRING *x)
|
||||
{ M_ASN1_BMPSTRING_free(x); }
|
||||
|
||||
int i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **pp)
|
||||
{
|
||||
return(i2d_ASN1_bytes((ASN1_STRING *)a,pp,
|
||||
V_ASN1_BMPSTRING,V_ASN1_UNIVERSAL));
|
||||
}
|
||||
|
||||
ASN1_BMPSTRING *d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, unsigned char **pp,
|
||||
long length)
|
||||
{
|
||||
ASN1_BMPSTRING *ret=NULL;
|
||||
|
||||
ret=(ASN1_BMPSTRING *)d2i_ASN1_bytes((ASN1_STRING **)a,
|
||||
pp,length,V_ASN1_BMPSTRING,V_ASN1_UNIVERSAL);
|
||||
if (ret == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_D2I_ASN1_BMPSTRING,ERR_R_NESTED_ASN1_ERROR);
|
||||
return(NULL);
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
@ -1,119 +0,0 @@
|
||||
/* a_null.c */
|
||||
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||
* project 1999.
|
||||
*/
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1999 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/asn1.h>
|
||||
|
||||
/* ASN1 functions for NULL type. For compatibility with other ASN1 code
|
||||
* it returns a pointer to an "ASN1_NULL" structure. The new/free functions
|
||||
* don't need to do any allocating because nothing is stored in a NULL.
|
||||
*/
|
||||
|
||||
int i2d_ASN1_NULL(ASN1_NULL *a, unsigned char **pp)
|
||||
{
|
||||
if(!a) return 0;
|
||||
if (pp) ASN1_put_object(pp,0,0,V_ASN1_NULL,V_ASN1_UNIVERSAL);
|
||||
return 2;
|
||||
}
|
||||
|
||||
ASN1_NULL *d2i_ASN1_NULL(ASN1_NULL **a, unsigned char **pp, long length)
|
||||
{
|
||||
ASN1_NULL *ret = NULL;
|
||||
unsigned char *p;
|
||||
long len;
|
||||
int inf,tag,xclass;
|
||||
int i=0;
|
||||
|
||||
p= *pp;
|
||||
inf=ASN1_get_object(&p,&len,&tag,&xclass,length);
|
||||
if (inf & 0x80)
|
||||
{
|
||||
i=ASN1_R_BAD_OBJECT_HEADER;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (tag != V_ASN1_NULL)
|
||||
{
|
||||
i=ASN1_R_EXPECTING_A_NULL;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (len != 0)
|
||||
{
|
||||
i=ASN1_R_NULL_IS_WRONG_LENGTH;
|
||||
goto err;
|
||||
}
|
||||
ret=(ASN1_NULL *)1;
|
||||
if (a != NULL) (*a)=ret;
|
||||
*pp=p;
|
||||
return(ret);
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_ASN1_NULL,i);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
ASN1_NULL *ASN1_NULL_new(void)
|
||||
{
|
||||
return (ASN1_NULL *)1;
|
||||
}
|
||||
|
||||
void ASN1_NULL_free(ASN1_NULL *a)
|
||||
{
|
||||
return;
|
||||
}
|
@ -1,89 +0,0 @@
|
||||
/* crypto/asn1/a_vis.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/asn1.h>
|
||||
|
||||
ASN1_VISIBLESTRING *ASN1_VISIBLESTRING_new(void)
|
||||
{ return M_ASN1_VISIBLESTRING_new(); }
|
||||
|
||||
void ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *x)
|
||||
{ M_ASN1_VISIBLESTRING_free(x); }
|
||||
|
||||
int i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a, unsigned char **pp)
|
||||
{
|
||||
return(i2d_ASN1_bytes((ASN1_STRING *)a,pp,
|
||||
V_ASN1_VISIBLESTRING,V_ASN1_UNIVERSAL));
|
||||
}
|
||||
|
||||
ASN1_VISIBLESTRING *d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a,
|
||||
unsigned char **pp, long length)
|
||||
{
|
||||
ASN1_VISIBLESTRING *ret=NULL;
|
||||
|
||||
ret=(ASN1_VISIBLESTRING *)d2i_ASN1_bytes((ASN1_STRING **)a,
|
||||
pp,length,V_ASN1_VISIBLESTRING,V_ASN1_UNIVERSAL);
|
||||
if (ret == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_D2I_ASN1_VISIBLESTRING,ERR_R_NESTED_ASN1_ERROR);
|
||||
return(NULL);
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
@ -1,102 +0,0 @@
|
||||
/* crypto/asn1/d2i_dhp.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 NO_DH
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/dh.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
DH *d2i_DHparams(DH **a, unsigned char **pp, long length)
|
||||
{
|
||||
int i=ERR_R_NESTED_ASN1_ERROR;
|
||||
ASN1_INTEGER *bs=NULL;
|
||||
long v=0;
|
||||
M_ASN1_D2I_vars(a,DH *,DH_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->p=BN_bin2bn(bs->data,bs->length,ret->p)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->g=BN_bin2bn(bs->data,bs->length,ret->g)) == NULL) goto err_bn;
|
||||
|
||||
if (!M_ASN1_D2I_end_sequence())
|
||||
{
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
for (i=0; i<bs->length; i++)
|
||||
v=(v<<8)|(bs->data[i]);
|
||||
ret->length=(int)v;
|
||||
}
|
||||
|
||||
M_ASN1_BIT_STRING_free(bs);
|
||||
bs = NULL;
|
||||
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
|
||||
err_bn:
|
||||
i=ERR_R_BN_LIB;
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_DHPARAMS,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) DH_free(ret);
|
||||
if (bs != NULL) M_ASN1_BIT_STRING_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
@ -1,99 +0,0 @@
|
||||
/* crypto/asn1/d2i_dsap.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 NO_DSA
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
#ifndef NO_NEG_PUBKEY_BUG
|
||||
#define d2i_ASN1_INTEGER d2i_ASN1_UINTEGER
|
||||
#endif
|
||||
|
||||
DSA *d2i_DSAparams(DSA **a, unsigned char **pp, long length)
|
||||
{
|
||||
int i=ERR_R_NESTED_ASN1_ERROR;
|
||||
ASN1_INTEGER *bs=NULL;
|
||||
M_ASN1_D2I_vars(a,DSA *,DSA_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->p=BN_bin2bn(bs->data,bs->length,ret->p)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->q=BN_bin2bn(bs->data,bs->length,ret->q)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->g=BN_bin2bn(bs->data,bs->length,ret->g)) == NULL) goto err_bn;
|
||||
|
||||
M_ASN1_BIT_STRING_free(bs);
|
||||
bs = NULL;
|
||||
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
|
||||
err_bn:
|
||||
i=ERR_R_BN_LIB;
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_DSAPARAMS,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) DSA_free(ret);
|
||||
if (bs != NULL) M_ASN1_BIT_STRING_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
@ -1,129 +0,0 @@
|
||||
/* crypto/asn1/d2i_r_pr.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 NO_RSA
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
static ASN1_METHOD method={
|
||||
(int (*)()) i2d_RSAPrivateKey,
|
||||
(char *(*)())d2i_RSAPrivateKey,
|
||||
(char *(*)())RSA_new,
|
||||
(void (*)()) RSA_free};
|
||||
|
||||
ASN1_METHOD *RSAPrivateKey_asn1_meth(void)
|
||||
{
|
||||
return(&method);
|
||||
}
|
||||
|
||||
RSA *d2i_RSAPrivateKey(RSA **a, unsigned char **pp, long length)
|
||||
{
|
||||
int i=ASN1_R_PARSING;
|
||||
ASN1_INTEGER *bs=NULL;
|
||||
M_ASN1_D2I_vars(a,RSA *,RSA_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if (bs->length == 0)
|
||||
ret->version=0;
|
||||
else ret->version=bs->data[0];
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->n=BN_bin2bn(bs->data,bs->length,ret->n)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->e=BN_bin2bn(bs->data,bs->length,ret->e)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->d=BN_bin2bn(bs->data,bs->length,ret->d)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->p=BN_bin2bn(bs->data,bs->length,ret->p)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->q=BN_bin2bn(bs->data,bs->length,ret->q)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->dmp1=BN_bin2bn(bs->data,bs->length,ret->dmp1)) == NULL)
|
||||
goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->dmq1=BN_bin2bn(bs->data,bs->length,ret->dmq1)) == NULL)
|
||||
goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->iqmp=BN_bin2bn(bs->data,bs->length,ret->iqmp)) == NULL)
|
||||
goto err_bn;
|
||||
|
||||
M_ASN1_INTEGER_free(bs);
|
||||
bs = NULL;
|
||||
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
err_bn:
|
||||
i=ERR_R_BN_LIB;
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_RSAPRIVATEKEY,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) RSA_free(ret);
|
||||
if (bs != NULL) M_ASN1_INTEGER_free(bs);
|
||||
|
||||
return(NULL);
|
||||
}
|
||||
#else /* !NO_RSA */
|
||||
|
||||
# if PEDANTIC
|
||||
static void *dummy=&dummy;
|
||||
# endif
|
||||
|
||||
#endif
|
@ -1,103 +0,0 @@
|
||||
/* crypto/asn1/d2i_r_pu.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 NO_RSA
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
#ifndef NO_NEG_PUBKEY_BUG
|
||||
#define d2i_ASN1_INTEGER d2i_ASN1_UINTEGER
|
||||
#endif
|
||||
|
||||
RSA *d2i_RSAPublicKey(RSA **a, unsigned char **pp, long length)
|
||||
{
|
||||
int i=ASN1_R_PARSING;
|
||||
ASN1_INTEGER *bs=NULL;
|
||||
M_ASN1_D2I_vars(a,RSA *,RSA_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->n=BN_bin2bn(bs->data,bs->length,ret->n)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->e=BN_bin2bn(bs->data,bs->length,ret->e)) == NULL) goto err_bn;
|
||||
|
||||
M_ASN1_INTEGER_free(bs);
|
||||
bs=NULL;
|
||||
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
|
||||
err_bn:
|
||||
i=ERR_R_BN_LIB;
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_RSAPUBLICKEY,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) RSA_free(ret);
|
||||
if (bs != NULL) M_ASN1_INTEGER_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
#else /* !NO_RSA */
|
||||
|
||||
# if PEDANTIC
|
||||
static void *dummy=&dummy;
|
||||
# endif
|
||||
|
||||
#endif
|
@ -1,106 +0,0 @@
|
||||
/* crypto/asn1/d2i_s_pr.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> */
|
||||
|
||||
#ifndef NO_DSA
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
DSA *d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length)
|
||||
{
|
||||
int i=ASN1_R_PARSING;
|
||||
ASN1_INTEGER *bs=NULL;
|
||||
M_ASN1_D2I_vars(a,DSA *,DSA_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if (bs->length == 0)
|
||||
ret->version=0;
|
||||
else ret->version=bs->data[0];
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->p=BN_bin2bn(bs->data,bs->length,ret->p)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->q=BN_bin2bn(bs->data,bs->length,ret->q)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->g=BN_bin2bn(bs->data,bs->length,ret->g)) == NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->pub_key=BN_bin2bn(bs->data,bs->length,ret->pub_key))
|
||||
== NULL) goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->priv_key=BN_bin2bn(bs->data,bs->length,ret->priv_key))
|
||||
== NULL) goto err_bn;
|
||||
|
||||
M_ASN1_INTEGER_free(bs);
|
||||
bs = NULL;
|
||||
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
err_bn:
|
||||
i=ERR_R_BN_LIB;
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_DSAPRIVATEKEY,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) DSA_free(ret);
|
||||
if (bs != NULL) M_ASN1_INTEGER_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
@ -1,121 +0,0 @@
|
||||
/* crypto/asn1/d2i_s_pu.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> */
|
||||
|
||||
#ifndef NO_DSA
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
#ifndef NO_NEG_PUBKEY_BUG
|
||||
#define d2i_ASN1_INTEGER d2i_ASN1_UINTEGER
|
||||
#endif
|
||||
|
||||
DSA *d2i_DSAPublicKey(DSA **a, unsigned char **pp, long length)
|
||||
{
|
||||
int i=ASN1_R_PARSING;
|
||||
ASN1_INTEGER *bs=NULL;
|
||||
M_ASN1_D2I_vars(a,DSA *,DSA_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
if ((length != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED))
|
||||
== (V_ASN1_UNIVERSAL|(V_ASN1_INTEGER))))
|
||||
{
|
||||
c.slen=length;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->pub_key=BN_bin2bn(bs->data,bs->length,ret->pub_key))
|
||||
== NULL)
|
||||
goto err_bn;
|
||||
ret->write_params=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->pub_key=BN_bin2bn(bs->data,bs->length,ret->pub_key))
|
||||
== NULL)
|
||||
goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->p=BN_bin2bn(bs->data,bs->length,ret->p)) == NULL)
|
||||
goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->q=BN_bin2bn(bs->data,bs->length,ret->q)) == NULL)
|
||||
goto err_bn;
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->g=BN_bin2bn(bs->data,bs->length,ret->g)) == NULL)
|
||||
goto err_bn;
|
||||
|
||||
ret->write_params=1;
|
||||
}
|
||||
|
||||
M_ASN1_INTEGER_free(bs);
|
||||
bs=NULL;
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
err_bn:
|
||||
i=ERR_R_BN_LIB;
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_DSAPUBLICKEY,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) DSA_free(ret);
|
||||
if (bs != NULL) M_ASN1_INTEGER_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
@ -1,128 +0,0 @@
|
||||
/* crypto/asn1/i2d_dhp.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 NO_DH
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
#include <openssl/dh.h>
|
||||
|
||||
int i2d_DHparams(DH *a, unsigned char **pp)
|
||||
{
|
||||
BIGNUM *num[3];
|
||||
ASN1_INTEGER bs;
|
||||
unsigned int j,i,tot=0,len,max=0;
|
||||
int t,ret= -1;
|
||||
unsigned char *p;
|
||||
|
||||
if (a == NULL) return(0);
|
||||
num[0]=a->p;
|
||||
num[1]=a->g;
|
||||
if (a->length != 0)
|
||||
{
|
||||
if ((num[2]=BN_new()) == NULL) goto err;
|
||||
if (!BN_set_word(num[2],a->length)) goto err;
|
||||
}
|
||||
else
|
||||
num[2]=NULL;
|
||||
|
||||
for (i=0; i<3; i++)
|
||||
{
|
||||
if (num[i] == NULL) continue;
|
||||
j=BN_num_bits(num[i]);
|
||||
len=((j == 0)?0:((j/8)+1));
|
||||
if (len > max) max=len;
|
||||
len=ASN1_object_size(0,len,
|
||||
(num[i]->neg)?V_ASN1_NEG_INTEGER:V_ASN1_INTEGER);
|
||||
tot+=len;
|
||||
}
|
||||
|
||||
t=ASN1_object_size(1,tot,V_ASN1_SEQUENCE);
|
||||
if (pp == NULL)
|
||||
{
|
||||
if (num[2] != NULL)
|
||||
BN_free(num[2]);
|
||||
return(t);
|
||||
}
|
||||
|
||||
p= *pp;
|
||||
ASN1_put_object(&p,1,tot,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
|
||||
|
||||
bs.type=V_ASN1_INTEGER;
|
||||
bs.data=(unsigned char *)OPENSSL_malloc(max+4);
|
||||
if (bs.data == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_I2D_DHPARAMS,ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
|
||||
for (i=0; i<3; i++)
|
||||
{
|
||||
if (num[i] == NULL) continue;
|
||||
bs.length=BN_bn2bin(num[i],bs.data);
|
||||
i2d_ASN1_INTEGER(&bs,&p);
|
||||
}
|
||||
OPENSSL_free(bs.data);
|
||||
ret=t;
|
||||
err:
|
||||
if (num[2] != NULL) BN_free(num[2]);
|
||||
*pp=p;
|
||||
return(ret);
|
||||
}
|
||||
#endif
|
@ -1,117 +0,0 @@
|
||||
/* crypto/asn1/i2d_dsap.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 NO_DSA
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
#include <openssl/dsa.h>
|
||||
|
||||
int i2d_DSAparams(DSA *a, unsigned char **pp)
|
||||
{
|
||||
BIGNUM *num[3];
|
||||
ASN1_INTEGER bs;
|
||||
unsigned int j,i,tot=0,len,max=0;
|
||||
int t,ret= -1;
|
||||
unsigned char *p;
|
||||
|
||||
if (a == NULL) return(0);
|
||||
num[0]=a->p;
|
||||
num[1]=a->q;
|
||||
num[2]=a->g;
|
||||
|
||||
for (i=0; i<3; i++)
|
||||
{
|
||||
if (num[i] == NULL) continue;
|
||||
j=BN_num_bits(num[i]);
|
||||
len=((j == 0)?0:((j/8)+1));
|
||||
if (len > max) max=len;
|
||||
len=ASN1_object_size(0,len,
|
||||
(num[i]->neg)?V_ASN1_NEG_INTEGER:V_ASN1_INTEGER);
|
||||
tot+=len;
|
||||
}
|
||||
|
||||
t=ASN1_object_size(1,tot,V_ASN1_SEQUENCE);
|
||||
if (pp == NULL) return(t);
|
||||
|
||||
p= *pp;
|
||||
ASN1_put_object(&p,1,tot,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
|
||||
|
||||
bs.type=V_ASN1_INTEGER;
|
||||
bs.data=(unsigned char *)OPENSSL_malloc(max+4);
|
||||
if (bs.data == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_I2D_DSAPARAMS,ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
|
||||
for (i=0; i<3; i++)
|
||||
{
|
||||
if (num[i] == NULL) continue;
|
||||
bs.length=BN_bn2bin(num[i],bs.data);
|
||||
i2d_ASN1_INTEGER(&bs,&p);
|
||||
}
|
||||
OPENSSL_free(bs.data);
|
||||
ret=t;
|
||||
err:
|
||||
*pp=p;
|
||||
return(ret);
|
||||
}
|
||||
#endif
|
||||
|
@ -1,133 +0,0 @@
|
||||
/* crypto/asn1/i2d_r_pr.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 NO_RSA
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
int i2d_RSAPrivateKey(RSA *a, unsigned char **pp)
|
||||
{
|
||||
BIGNUM *num[9];
|
||||
unsigned char data[1];
|
||||
ASN1_INTEGER bs;
|
||||
unsigned int j,i,tot,t,len,max=0;
|
||||
unsigned char *p;
|
||||
|
||||
if (a == NULL) return(0);
|
||||
|
||||
num[1]=a->n;
|
||||
num[2]=a->e;
|
||||
num[3]=a->d;
|
||||
num[4]=a->p;
|
||||
num[5]=a->q;
|
||||
num[6]=a->dmp1;
|
||||
num[7]=a->dmq1;
|
||||
num[8]=a->iqmp;
|
||||
|
||||
bs.length=1;
|
||||
bs.data=data;
|
||||
bs.type=V_ASN1_INTEGER;
|
||||
data[0]=a->version&0x7f;
|
||||
|
||||
tot=i2d_ASN1_INTEGER(&(bs),NULL);
|
||||
for (i=1; i<9; i++)
|
||||
{
|
||||
j=BN_num_bits(num[i]);
|
||||
len=((j == 0)?0:((j/8)+1));
|
||||
if (len > max) max=len;
|
||||
len=ASN1_object_size(0,len,
|
||||
(num[i]->neg)?V_ASN1_NEG_INTEGER:V_ASN1_INTEGER);
|
||||
tot+=len;
|
||||
}
|
||||
|
||||
t=ASN1_object_size(1,tot,V_ASN1_SEQUENCE);
|
||||
if (pp == NULL) return(t);
|
||||
|
||||
p= *pp;
|
||||
ASN1_put_object(&p,1,tot,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
|
||||
|
||||
i2d_ASN1_INTEGER(&bs,&p);
|
||||
|
||||
bs.data=(unsigned char *)OPENSSL_malloc(max+4);
|
||||
if (bs.data == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_I2D_RSAPRIVATEKEY,ERR_R_MALLOC_FAILURE);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
for (i=1; i<9; i++)
|
||||
{
|
||||
bs.length=BN_bn2bin(num[i],bs.data);
|
||||
i2d_ASN1_INTEGER(&bs,&p);
|
||||
}
|
||||
OPENSSL_free(bs.data);
|
||||
*pp=p;
|
||||
return(t);
|
||||
}
|
||||
#else /* !NO_RSA */
|
||||
|
||||
# if PEDANTIC
|
||||
static void *dummy=&dummy;
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
@ -1,118 +0,0 @@
|
||||
/* crypto/asn1/i2d_r_pu.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 NO_RSA
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
int i2d_RSAPublicKey(RSA *a, unsigned char **pp)
|
||||
{
|
||||
BIGNUM *num[2];
|
||||
ASN1_INTEGER bs;
|
||||
unsigned int j,i,tot=0,len,max=0,t;
|
||||
unsigned char *p;
|
||||
|
||||
if (a == NULL) return(0);
|
||||
|
||||
num[0]=a->n;
|
||||
num[1]=a->e;
|
||||
|
||||
for (i=0; i<2; i++)
|
||||
{
|
||||
j=BN_num_bits(num[i]);
|
||||
len=((j == 0)?0:((j/8)+1));
|
||||
if (len > max) max=len;
|
||||
len=ASN1_object_size(0,len,
|
||||
(num[i]->neg)?V_ASN1_NEG_INTEGER:V_ASN1_INTEGER);
|
||||
tot+=len;
|
||||
}
|
||||
|
||||
t=ASN1_object_size(1,tot,V_ASN1_SEQUENCE);
|
||||
if (pp == NULL) return(t);
|
||||
|
||||
p= *pp;
|
||||
ASN1_put_object(&p,1,tot,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
|
||||
|
||||
bs.type=V_ASN1_INTEGER;
|
||||
bs.data=(unsigned char *)OPENSSL_malloc(max+4);
|
||||
if (bs.data == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_I2D_RSAPUBLICKEY,ERR_R_MALLOC_FAILURE);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
for (i=0; i<2; i++)
|
||||
{
|
||||
bs.length=BN_bn2bin(num[i],bs.data);
|
||||
i2d_ASN1_INTEGER(&bs,&p);
|
||||
}
|
||||
OPENSSL_free(bs.data);
|
||||
*pp=p;
|
||||
return(t);
|
||||
}
|
||||
#else /* !NO_RSA */
|
||||
|
||||
# if PEDANTIC
|
||||
static void *dummy=&dummy;
|
||||
# endif
|
||||
|
||||
#endif
|
@ -1,123 +0,0 @@
|
||||
/* crypto/asn1/i2d_s_pr.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 NO_DSA
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
int i2d_DSAPrivateKey(DSA *a, unsigned char **pp)
|
||||
{
|
||||
BIGNUM *num[6];
|
||||
unsigned char data[1];
|
||||
ASN1_INTEGER bs;
|
||||
unsigned int j,i,tot,t,len,max=0;
|
||||
unsigned char *p;
|
||||
|
||||
if (a == NULL) return(0);
|
||||
|
||||
num[1]=a->p;
|
||||
num[2]=a->q;
|
||||
num[3]=a->g;
|
||||
num[4]=a->pub_key;
|
||||
num[5]=a->priv_key;
|
||||
|
||||
bs.length=1;
|
||||
bs.data=data;
|
||||
bs.type=V_ASN1_INTEGER;
|
||||
data[0]=a->version&0x7f;
|
||||
|
||||
tot=i2d_ASN1_INTEGER(&(bs),NULL);
|
||||
for (i=1; i<6; i++)
|
||||
{
|
||||
j=BN_num_bits(num[i]);
|
||||
len=((j == 0)?0:((j/8)+1));
|
||||
if (len > max) max=len;
|
||||
len=ASN1_object_size(0,len,
|
||||
(num[i]->neg)?V_ASN1_NEG_INTEGER:V_ASN1_INTEGER);
|
||||
tot+=len;
|
||||
}
|
||||
|
||||
t=ASN1_object_size(1,tot,V_ASN1_SEQUENCE);
|
||||
if (pp == NULL) return(t);
|
||||
|
||||
p= *pp;
|
||||
ASN1_put_object(&p,1,tot,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
|
||||
|
||||
i2d_ASN1_INTEGER(&bs,&p);
|
||||
|
||||
bs.data=(unsigned char *)OPENSSL_malloc(max+4);
|
||||
if (bs.data == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_I2D_DSAPRIVATEKEY,ERR_R_MALLOC_FAILURE);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
for (i=1; i<6; i++)
|
||||
{
|
||||
bs.length=BN_bn2bin(num[i],bs.data);
|
||||
i2d_ASN1_INTEGER(&bs,&p);
|
||||
}
|
||||
OPENSSL_free(bs.data);
|
||||
*pp=p;
|
||||
return(t);
|
||||
}
|
||||
#endif
|
@ -1,129 +0,0 @@
|
||||
/* crypto/asn1/i2d_s_pu.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 NO_DSA
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
|
||||
int i2d_DSAPublicKey(DSA *a, unsigned char **pp)
|
||||
{
|
||||
BIGNUM *num[4];
|
||||
ASN1_INTEGER bs;
|
||||
unsigned int j,i,tot=0,len,max=0,t=0,all,n=1;
|
||||
unsigned char *p;
|
||||
|
||||
if (a == NULL) return(0);
|
||||
|
||||
all=a->write_params;
|
||||
|
||||
num[0]=a->pub_key;
|
||||
if (all)
|
||||
{
|
||||
num[1]=a->p;
|
||||
num[2]=a->q;
|
||||
num[3]=a->g;
|
||||
n=4;
|
||||
}
|
||||
|
||||
for (i=0; i<n; i++)
|
||||
{
|
||||
j=BN_num_bits(num[i]);
|
||||
len=((j == 0)?0:((j/8)+1));
|
||||
if (len > max) max=len;
|
||||
len=ASN1_object_size(0,len,
|
||||
(num[i]->neg)?V_ASN1_NEG_INTEGER:V_ASN1_INTEGER);
|
||||
tot+=len;
|
||||
}
|
||||
|
||||
if (all)
|
||||
{
|
||||
t=ASN1_object_size(1,tot,V_ASN1_SEQUENCE);
|
||||
if (pp == NULL) return(t);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pp == NULL) return(tot);
|
||||
}
|
||||
|
||||
p= *pp;
|
||||
if (all)
|
||||
ASN1_put_object(&p,1,tot,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
|
||||
|
||||
bs.type=V_ASN1_INTEGER;
|
||||
bs.data=(unsigned char *)OPENSSL_malloc(max+4);
|
||||
if (bs.data == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_I2D_DSAPUBLICKEY,ERR_R_MALLOC_FAILURE);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
for (i=0; i<n; i++)
|
||||
{
|
||||
bs.length=BN_bn2bin(num[i],bs.data);
|
||||
i2d_ASN1_INTEGER(&bs,&p);
|
||||
}
|
||||
OPENSSL_free(bs.data);
|
||||
*pp=p;
|
||||
if(all) return(t);
|
||||
else return(tot);
|
||||
}
|
||||
#endif
|
@ -1,121 +0,0 @@
|
||||
/* crypto/asn1/p7_dgst.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/asn1_mac.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
int i2d_PKCS7_DIGEST(PKCS7_DIGEST *a, unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_len(a->md,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_len(a->contents,i2d_PKCS7);
|
||||
M_ASN1_I2D_len(a->digest,i2d_ASN1_OCTET_STRING);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_put(a->md,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_put(a->contents,i2d_PKCS7);
|
||||
M_ASN1_I2D_put(a->digest,i2d_ASN1_OCTET_STRING);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
PKCS7_DIGEST *d2i_PKCS7_DIGEST(PKCS7_DIGEST **a, unsigned char **pp,
|
||||
long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,PKCS7_DIGEST *,PKCS7_DIGEST_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER);
|
||||
M_ASN1_D2I_get(ret->md,d2i_X509_ALGOR);
|
||||
M_ASN1_D2I_get(ret->contents,d2i_PKCS7);
|
||||
M_ASN1_D2I_get(ret->digest,d2i_ASN1_OCTET_STRING);
|
||||
|
||||
M_ASN1_D2I_Finish(a,PKCS7_DIGEST_free,ASN1_F_D2I_PKCS7_DIGEST);
|
||||
}
|
||||
|
||||
PKCS7_DIGEST *PKCS7_DIGEST_new(void)
|
||||
{
|
||||
PKCS7_DIGEST *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_DIGEST);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->md,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->contents,PKCS7_new);
|
||||
M_ASN1_New(ret->digest,M_ASN1_OCTET_STRING_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_DIGEST_NEW);
|
||||
}
|
||||
|
||||
void PKCS7_DIGEST_free(PKCS7_DIGEST *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
X509_ALGOR_free(a->md);
|
||||
PKCS7_free(a->contents);
|
||||
M_ASN1_OCTET_STRING_free(a->digest);
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
@ -1,111 +0,0 @@
|
||||
/* crypto/asn1/p7_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 <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1_mac.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
int i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT *a, unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_len(a->enc_data,i2d_PKCS7_ENC_CONTENT);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_put(a->enc_data,i2d_PKCS7_ENC_CONTENT);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
PKCS7_ENCRYPT *d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT **a, unsigned char **pp,
|
||||
long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,PKCS7_ENCRYPT *,PKCS7_ENCRYPT_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER);
|
||||
M_ASN1_D2I_get(ret->enc_data,d2i_PKCS7_ENC_CONTENT);
|
||||
|
||||
M_ASN1_D2I_Finish(a,PKCS7_ENCRYPT_free,ASN1_F_D2I_PKCS7_ENCRYPT);
|
||||
}
|
||||
|
||||
PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(void)
|
||||
{
|
||||
PKCS7_ENCRYPT *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_ENCRYPT);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->enc_data,PKCS7_ENC_CONTENT_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_ENCRYPT_NEW);
|
||||
}
|
||||
|
||||
void PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
PKCS7_ENC_CONTENT_free(a->enc_data);
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
@ -1,120 +0,0 @@
|
||||
/* crypto/asn1/p7_enc_c.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/asn1_mac.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
int i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT *a, unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
M_ASN1_I2D_len(a->content_type,i2d_ASN1_OBJECT);
|
||||
M_ASN1_I2D_len(a->algorithm,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_len_IMP_opt(a->enc_data,i2d_ASN1_OCTET_STRING);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->content_type,i2d_ASN1_OBJECT);
|
||||
M_ASN1_I2D_put(a->algorithm,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_put_IMP_opt(a->enc_data,i2d_ASN1_OCTET_STRING,0);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
PKCS7_ENC_CONTENT *d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT **a,
|
||||
unsigned char **pp, long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,PKCS7_ENC_CONTENT *,PKCS7_ENC_CONTENT_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->content_type,d2i_ASN1_OBJECT);
|
||||
M_ASN1_D2I_get(ret->algorithm,d2i_X509_ALGOR);
|
||||
M_ASN1_D2I_get_IMP_opt(ret->enc_data,d2i_ASN1_OCTET_STRING,0,
|
||||
V_ASN1_OCTET_STRING);
|
||||
|
||||
M_ASN1_D2I_Finish(a,PKCS7_ENC_CONTENT_free,
|
||||
ASN1_F_D2I_PKCS7_ENC_CONTENT);
|
||||
}
|
||||
|
||||
PKCS7_ENC_CONTENT *PKCS7_ENC_CONTENT_new(void)
|
||||
{
|
||||
PKCS7_ENC_CONTENT *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_ENC_CONTENT);
|
||||
/* M_ASN1_New(ret->content_type,ASN1_OBJECT_new); */
|
||||
/* We will almost always want this: so make it the default */
|
||||
ret->content_type=OBJ_nid2obj(NID_pkcs7_data);
|
||||
M_ASN1_New(ret->algorithm,X509_ALGOR_new);
|
||||
ret->enc_data=NULL;
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_ENC_CONTENT_NEW);
|
||||
}
|
||||
|
||||
void PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_OBJECT_free(a->content_type);
|
||||
X509_ALGOR_free(a->algorithm);
|
||||
M_ASN1_OCTET_STRING_free(a->enc_data);
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
@ -1,119 +0,0 @@
|
||||
/* crypto/asn1/p7_evp.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/asn1_mac.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
int i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_len_SET_type(PKCS7_RECIP_INFO,a->recipientinfo,
|
||||
i2d_PKCS7_RECIP_INFO);
|
||||
M_ASN1_I2D_len(a->enc_data,i2d_PKCS7_ENC_CONTENT);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_put_SET_type(PKCS7_RECIP_INFO,a->recipientinfo,
|
||||
i2d_PKCS7_RECIP_INFO);
|
||||
M_ASN1_I2D_put(a->enc_data,i2d_PKCS7_ENC_CONTENT);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, unsigned char **pp,
|
||||
long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,PKCS7_ENVELOPE *,PKCS7_ENVELOPE_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER);
|
||||
M_ASN1_D2I_get_set_type(PKCS7_RECIP_INFO,ret->recipientinfo,
|
||||
d2i_PKCS7_RECIP_INFO,PKCS7_RECIP_INFO_free);
|
||||
M_ASN1_D2I_get(ret->enc_data,d2i_PKCS7_ENC_CONTENT);
|
||||
|
||||
M_ASN1_D2I_Finish(a,PKCS7_ENVELOPE_free,ASN1_F_D2I_PKCS7_ENVELOPE);
|
||||
}
|
||||
|
||||
PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void)
|
||||
{
|
||||
PKCS7_ENVELOPE *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_ENVELOPE);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->recipientinfo,sk_PKCS7_RECIP_INFO_new_null);
|
||||
M_ASN1_New(ret->enc_data,PKCS7_ENC_CONTENT_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_ENVELOPE_NEW);
|
||||
}
|
||||
|
||||
void PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
sk_PKCS7_RECIP_INFO_pop_free(a->recipientinfo,PKCS7_RECIP_INFO_free);
|
||||
PKCS7_ENC_CONTENT_free(a->enc_data);
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
@ -1,111 +0,0 @@
|
||||
/* crypto/asn1/p7_i_s.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/asn1_mac.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
int i2d_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL *a,
|
||||
unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
M_ASN1_I2D_len(a->issuer,i2d_X509_NAME);
|
||||
M_ASN1_I2D_len(a->serial,i2d_ASN1_INTEGER);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->issuer,i2d_X509_NAME);
|
||||
M_ASN1_I2D_put(a->serial,i2d_ASN1_INTEGER);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL **a, unsigned char **pp, long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,PKCS7_ISSUER_AND_SERIAL *,PKCS7_ISSUER_AND_SERIAL_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->issuer,d2i_X509_NAME);
|
||||
M_ASN1_D2I_get(ret->serial,d2i_ASN1_INTEGER);
|
||||
M_ASN1_D2I_Finish(a,PKCS7_ISSUER_AND_SERIAL_free,
|
||||
ASN1_F_D2I_PKCS7_ISSUER_AND_SERIAL);
|
||||
}
|
||||
|
||||
PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void)
|
||||
{
|
||||
PKCS7_ISSUER_AND_SERIAL *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_ISSUER_AND_SERIAL);
|
||||
M_ASN1_New(ret->issuer,X509_NAME_new);
|
||||
M_ASN1_New(ret->serial,M_ASN1_INTEGER_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_ISSUER_AND_SERIAL_NEW);
|
||||
}
|
||||
|
||||
void PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
X509_NAME_free(a->issuer);
|
||||
M_ASN1_INTEGER_free(a->serial);
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
@ -1,393 +0,0 @@
|
||||
/* crypto/asn1/p7_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/asn1_mac.h>
|
||||
#include <openssl/pkcs7.h>
|
||||
#include <openssl/objects.h>
|
||||
|
||||
#ifdef PKCS7_INDEFINITE_ENCODING
|
||||
|
||||
int i2d_PKCS7(PKCS7 *a, unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
if (a->asn1 != NULL)
|
||||
{
|
||||
if (pp == NULL)
|
||||
return((int)a->length);
|
||||
memcpy(*pp,a->asn1,(int)a->length);
|
||||
*pp+=a->length;
|
||||
return((int)a->length);
|
||||
}
|
||||
|
||||
ret+=4; /* sequence, BER header plus '0 0' end padding */
|
||||
M_ASN1_I2D_len(a->type,i2d_ASN1_OBJECT);
|
||||
if (a->d.ptr != NULL)
|
||||
{
|
||||
ret+=4; /* explicit tag [ 0 ] BER plus '0 0' */
|
||||
switch (OBJ_obj2nid(a->type))
|
||||
{
|
||||
case NID_pkcs7_data:
|
||||
M_ASN1_I2D_len(a->d.data,i2d_ASN1_OCTET_STRING);
|
||||
break;
|
||||
case NID_pkcs7_signed:
|
||||
M_ASN1_I2D_len(a->d.sign,i2d_PKCS7_SIGNED);
|
||||
break;
|
||||
case NID_pkcs7_enveloped:
|
||||
M_ASN1_I2D_len(a->d.enveloped,i2d_PKCS7_ENVELOPE);
|
||||
break;
|
||||
case NID_pkcs7_signedAndEnveloped:
|
||||
M_ASN1_I2D_len(a->d.signed_and_enveloped,
|
||||
i2d_PKCS7_SIGN_ENVELOPE);
|
||||
break;
|
||||
case NID_pkcs7_digest:
|
||||
M_ASN1_I2D_len(a->d.digest,i2d_PKCS7_DIGEST);
|
||||
break;
|
||||
case NID_pkcs7_encrypted:
|
||||
M_ASN1_I2D_len(a->d.encrypted,i2d_PKCS7_ENCRYPT);
|
||||
break;
|
||||
default:
|
||||
M_ASN1_I2D_len(a->d.other,i2d_ASN1_TYPE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
r=ret;
|
||||
if (pp == NULL) return(r);
|
||||
p= *pp;
|
||||
M_ASN1_I2D_INF_seq_start(V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
|
||||
M_ASN1_I2D_put(a->type,i2d_ASN1_OBJECT);
|
||||
|
||||
if (a->d.ptr != NULL)
|
||||
{
|
||||
M_ASN1_I2D_INF_seq_start(0,V_ASN1_CONTEXT_SPECIFIC);
|
||||
switch (OBJ_obj2nid(a->type))
|
||||
{
|
||||
case NID_pkcs7_data:
|
||||
M_ASN1_I2D_put(a->d.data,i2d_ASN1_OCTET_STRING);
|
||||
break;
|
||||
case NID_pkcs7_signed:
|
||||
M_ASN1_I2D_put(a->d.sign,i2d_PKCS7_SIGNED);
|
||||
break;
|
||||
case NID_pkcs7_enveloped:
|
||||
M_ASN1_I2D_put(a->d.enveloped,i2d_PKCS7_ENVELOPE);
|
||||
break;
|
||||
case NID_pkcs7_signedAndEnveloped:
|
||||
M_ASN1_I2D_put(a->d.signed_and_enveloped,
|
||||
i2d_PKCS7_SIGN_ENVELOPE);
|
||||
break;
|
||||
case NID_pkcs7_digest:
|
||||
M_ASN1_I2D_put(a->d.digest,i2d_PKCS7_DIGEST);
|
||||
break;
|
||||
case NID_pkcs7_encrypted:
|
||||
M_ASN1_I2D_put(a->d.encrypted,i2d_PKCS7_ENCRYPT);
|
||||
break;
|
||||
default:
|
||||
M_ASN1_I2D_put(a->d.other,i2d_ASN1_TYPE);
|
||||
break;
|
||||
}
|
||||
M_ASN1_I2D_INF_seq_end();
|
||||
}
|
||||
M_ASN1_I2D_INF_seq_end();
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
int i2d_PKCS7(PKCS7 *a, unsigned char **pp)
|
||||
{
|
||||
int explen = 0;
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
if (a->asn1 != NULL)
|
||||
{
|
||||
if (pp == NULL)
|
||||
return((int)a->length);
|
||||
memcpy(*pp,a->asn1,(int)a->length);
|
||||
*pp+=a->length;
|
||||
return((int)a->length);
|
||||
}
|
||||
|
||||
M_ASN1_I2D_len(a->type,i2d_ASN1_OBJECT);
|
||||
if (a->d.ptr != NULL)
|
||||
{
|
||||
/* Save current length */
|
||||
r = ret;
|
||||
switch (OBJ_obj2nid(a->type))
|
||||
{
|
||||
case NID_pkcs7_data:
|
||||
M_ASN1_I2D_len(a->d.data,i2d_ASN1_OCTET_STRING);
|
||||
break;
|
||||
case NID_pkcs7_signed:
|
||||
M_ASN1_I2D_len(a->d.sign,i2d_PKCS7_SIGNED);
|
||||
break;
|
||||
case NID_pkcs7_enveloped:
|
||||
M_ASN1_I2D_len(a->d.enveloped,i2d_PKCS7_ENVELOPE);
|
||||
break;
|
||||
case NID_pkcs7_signedAndEnveloped:
|
||||
M_ASN1_I2D_len(a->d.signed_and_enveloped,
|
||||
i2d_PKCS7_SIGN_ENVELOPE);
|
||||
break;
|
||||
case NID_pkcs7_digest:
|
||||
M_ASN1_I2D_len(a->d.digest,i2d_PKCS7_DIGEST);
|
||||
break;
|
||||
case NID_pkcs7_encrypted:
|
||||
M_ASN1_I2D_len(a->d.encrypted,i2d_PKCS7_ENCRYPT);
|
||||
break;
|
||||
default:
|
||||
M_ASN1_I2D_len(a->d.other,i2d_ASN1_TYPE);
|
||||
break;
|
||||
}
|
||||
/* Work out explicit tag content size */
|
||||
explen = ret - r;
|
||||
/* Work out explicit tag size: Note: ASN1_object_size
|
||||
* includes the content length.
|
||||
*/
|
||||
ret = r + ASN1_object_size(1, explen, 0);
|
||||
}
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->type,i2d_ASN1_OBJECT);
|
||||
|
||||
if (a->d.ptr != NULL)
|
||||
{
|
||||
ASN1_put_object(&p, 1, explen, 0, V_ASN1_CONTEXT_SPECIFIC);
|
||||
switch (OBJ_obj2nid(a->type))
|
||||
{
|
||||
case NID_pkcs7_data:
|
||||
M_ASN1_I2D_put(a->d.data,i2d_ASN1_OCTET_STRING);
|
||||
break;
|
||||
case NID_pkcs7_signed:
|
||||
M_ASN1_I2D_put(a->d.sign,i2d_PKCS7_SIGNED);
|
||||
break;
|
||||
case NID_pkcs7_enveloped:
|
||||
M_ASN1_I2D_put(a->d.enveloped,i2d_PKCS7_ENVELOPE);
|
||||
break;
|
||||
case NID_pkcs7_signedAndEnveloped:
|
||||
M_ASN1_I2D_put(a->d.signed_and_enveloped,
|
||||
i2d_PKCS7_SIGN_ENVELOPE);
|
||||
break;
|
||||
case NID_pkcs7_digest:
|
||||
M_ASN1_I2D_put(a->d.digest,i2d_PKCS7_DIGEST);
|
||||
break;
|
||||
case NID_pkcs7_encrypted:
|
||||
M_ASN1_I2D_put(a->d.encrypted,i2d_PKCS7_ENCRYPT);
|
||||
break;
|
||||
default:
|
||||
M_ASN1_I2D_put(a->d.other,i2d_ASN1_TYPE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
PKCS7 *d2i_PKCS7(PKCS7 **a, unsigned char **pp, long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,PKCS7 *,PKCS7_new);
|
||||
|
||||
if ((a != NULL) && ((*a) != NULL))
|
||||
{
|
||||
if ((*a)->asn1 != NULL)
|
||||
{
|
||||
OPENSSL_free((*a)->asn1);
|
||||
(*a)->asn1=NULL;
|
||||
}
|
||||
(*a)->length=0;
|
||||
}
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->type,d2i_ASN1_OBJECT);
|
||||
if (!M_ASN1_D2I_end_sequence())
|
||||
{
|
||||
int Tinf,Ttag,Tclass;
|
||||
long Tlen;
|
||||
|
||||
if (M_ASN1_next != (V_ASN1_CONSTRUCTED|
|
||||
V_ASN1_CONTEXT_SPECIFIC|0))
|
||||
{
|
||||
c.error=ASN1_R_BAD_PKCS7_CONTENT;
|
||||
c.line=__LINE__;
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret->detached=0;
|
||||
|
||||
c.q=c.p;
|
||||
Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,
|
||||
(c.inf & 1)?(length+ *pp-c.q):c.slen);
|
||||
if (Tinf & 0x80) { c.line=__LINE__; goto err; }
|
||||
c.slen-=(c.p-c.q);
|
||||
|
||||
switch (OBJ_obj2nid(ret->type))
|
||||
{
|
||||
case NID_pkcs7_data:
|
||||
M_ASN1_D2I_get(ret->d.data,d2i_ASN1_OCTET_STRING);
|
||||
break;
|
||||
case NID_pkcs7_signed:
|
||||
M_ASN1_D2I_get(ret->d.sign,d2i_PKCS7_SIGNED);
|
||||
if (ret->d.sign->contents->d.ptr == NULL)
|
||||
ret->detached=1;
|
||||
break;
|
||||
case NID_pkcs7_enveloped:
|
||||
M_ASN1_D2I_get(ret->d.enveloped,d2i_PKCS7_ENVELOPE);
|
||||
break;
|
||||
case NID_pkcs7_signedAndEnveloped:
|
||||
M_ASN1_D2I_get(ret->d.signed_and_enveloped,
|
||||
d2i_PKCS7_SIGN_ENVELOPE);
|
||||
break;
|
||||
case NID_pkcs7_digest:
|
||||
M_ASN1_D2I_get(ret->d.digest,d2i_PKCS7_DIGEST);
|
||||
break;
|
||||
case NID_pkcs7_encrypted:
|
||||
M_ASN1_D2I_get(ret->d.encrypted,d2i_PKCS7_ENCRYPT);
|
||||
break;
|
||||
default:
|
||||
M_ASN1_D2I_get(ret->d.other,d2i_ASN1_TYPE);
|
||||
break;
|
||||
}
|
||||
if (Tinf == (1|V_ASN1_CONSTRUCTED))
|
||||
{
|
||||
c.q=c.p;
|
||||
if (!ASN1_check_infinite_end(&c.p,c.slen))
|
||||
{
|
||||
c.error=ERR_R_MISSING_ASN1_EOS;
|
||||
c.line=__LINE__;
|
||||
goto err;
|
||||
}
|
||||
c.slen-=(c.p-c.q);
|
||||
}
|
||||
}
|
||||
else
|
||||
ret->detached=1;
|
||||
|
||||
M_ASN1_D2I_Finish(a,PKCS7_free,ASN1_F_D2I_PKCS7);
|
||||
}
|
||||
|
||||
PKCS7 *PKCS7_new(void)
|
||||
{
|
||||
PKCS7 *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7);
|
||||
ret->type=OBJ_nid2obj(NID_undef);
|
||||
ret->asn1=NULL;
|
||||
ret->length=0;
|
||||
ret->detached=0;
|
||||
ret->d.ptr=NULL;
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_NEW);
|
||||
}
|
||||
|
||||
void PKCS7_free(PKCS7 *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
|
||||
PKCS7_content_free(a);
|
||||
if (a->type != NULL)
|
||||
{
|
||||
ASN1_OBJECT_free(a->type);
|
||||
}
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
||||
void PKCS7_content_free(PKCS7 *a)
|
||||
{
|
||||
if(a == NULL)
|
||||
return;
|
||||
|
||||
if (a->asn1 != NULL) OPENSSL_free(a->asn1);
|
||||
|
||||
if (a->d.ptr != NULL)
|
||||
{
|
||||
if (a->type == NULL) return;
|
||||
|
||||
switch (OBJ_obj2nid(a->type))
|
||||
{
|
||||
case NID_pkcs7_data:
|
||||
M_ASN1_OCTET_STRING_free(a->d.data);
|
||||
break;
|
||||
case NID_pkcs7_signed:
|
||||
PKCS7_SIGNED_free(a->d.sign);
|
||||
break;
|
||||
case NID_pkcs7_enveloped:
|
||||
PKCS7_ENVELOPE_free(a->d.enveloped);
|
||||
break;
|
||||
case NID_pkcs7_signedAndEnveloped:
|
||||
PKCS7_SIGN_ENVELOPE_free(a->d.signed_and_enveloped);
|
||||
break;
|
||||
case NID_pkcs7_digest:
|
||||
PKCS7_DIGEST_free(a->d.digest);
|
||||
break;
|
||||
case NID_pkcs7_encrypted:
|
||||
PKCS7_ENCRYPT_free(a->d.encrypted);
|
||||
break;
|
||||
default:
|
||||
ASN1_TYPE_free(a->d.other);
|
||||
break;
|
||||
}
|
||||
}
|
||||
a->d.ptr=NULL;
|
||||
}
|
||||
|
||||
IMPLEMENT_STACK_OF(PKCS7)
|
||||
IMPLEMENT_ASN1_SET_OF(PKCS7)
|
@ -1,125 +0,0 @@
|
||||
/* crypto/asn1/p7_recip.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/asn1_mac.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
int i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO *a, unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_len(a->issuer_and_serial,i2d_PKCS7_ISSUER_AND_SERIAL);
|
||||
M_ASN1_I2D_len(a->key_enc_algor,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_len(a->enc_key,i2d_ASN1_OCTET_STRING);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_put(a->issuer_and_serial,i2d_PKCS7_ISSUER_AND_SERIAL);
|
||||
M_ASN1_I2D_put(a->key_enc_algor,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_put(a->enc_key,i2d_ASN1_OCTET_STRING);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
PKCS7_RECIP_INFO *d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO **a,
|
||||
unsigned char **pp, long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,PKCS7_RECIP_INFO *,PKCS7_RECIP_INFO_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER);
|
||||
M_ASN1_D2I_get(ret->issuer_and_serial,d2i_PKCS7_ISSUER_AND_SERIAL);
|
||||
M_ASN1_D2I_get(ret->key_enc_algor,d2i_X509_ALGOR);
|
||||
M_ASN1_D2I_get(ret->enc_key,d2i_ASN1_OCTET_STRING);
|
||||
|
||||
M_ASN1_D2I_Finish(a,PKCS7_RECIP_INFO_free,ASN1_F_D2I_PKCS7_RECIP_INFO);
|
||||
}
|
||||
|
||||
PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(void)
|
||||
{
|
||||
PKCS7_RECIP_INFO *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_RECIP_INFO);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->issuer_and_serial,PKCS7_ISSUER_AND_SERIAL_new);
|
||||
M_ASN1_New(ret->key_enc_algor,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->enc_key,M_ASN1_OCTET_STRING_new);
|
||||
ret->cert=NULL;
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_RECIP_INFO_NEW);
|
||||
}
|
||||
|
||||
void PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
PKCS7_ISSUER_AND_SERIAL_free(a->issuer_and_serial);
|
||||
X509_ALGOR_free(a->key_enc_algor);
|
||||
M_ASN1_OCTET_STRING_free(a->enc_key);
|
||||
if (a->cert != NULL) X509_free(a->cert);
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
||||
IMPLEMENT_STACK_OF(PKCS7_RECIP_INFO)
|
||||
IMPLEMENT_ASN1_SET_OF(PKCS7_RECIP_INFO)
|
@ -1,145 +0,0 @@
|
||||
/* crypto/asn1/p7_s_e.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/asn1_mac.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_len_SET_type(PKCS7_RECIP_INFO,a->recipientinfo,
|
||||
i2d_PKCS7_RECIP_INFO);
|
||||
M_ASN1_I2D_len_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_len(a->enc_data,i2d_PKCS7_ENC_CONTENT);
|
||||
M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
|
||||
M_ASN1_I2D_len_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1);
|
||||
M_ASN1_I2D_len_SET_type(PKCS7_SIGNER_INFO,a->signer_info,
|
||||
i2d_PKCS7_SIGNER_INFO);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_put_SET_type(PKCS7_RECIP_INFO,a->recipientinfo,
|
||||
i2d_PKCS7_RECIP_INFO);
|
||||
M_ASN1_I2D_put_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_put(a->enc_data,i2d_PKCS7_ENC_CONTENT);
|
||||
M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
|
||||
M_ASN1_I2D_put_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1);
|
||||
M_ASN1_I2D_put_SET_type(PKCS7_SIGNER_INFO,a->signer_info,
|
||||
i2d_PKCS7_SIGNER_INFO);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a,
|
||||
unsigned char **pp, long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,PKCS7_SIGN_ENVELOPE *,PKCS7_SIGN_ENVELOPE_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER);
|
||||
M_ASN1_D2I_get_set_type(PKCS7_RECIP_INFO,ret->recipientinfo,
|
||||
d2i_PKCS7_RECIP_INFO,PKCS7_RECIP_INFO_free);
|
||||
M_ASN1_D2I_get_set_type(X509_ALGOR,ret->md_algs,d2i_X509_ALGOR,
|
||||
X509_ALGOR_free);
|
||||
M_ASN1_D2I_get(ret->enc_data,d2i_PKCS7_ENC_CONTENT);
|
||||
M_ASN1_D2I_get_IMP_set_opt_type(X509,ret->cert,d2i_X509,X509_free,0);
|
||||
M_ASN1_D2I_get_IMP_set_opt_type(X509_CRL,ret->crl,d2i_X509_CRL,
|
||||
X509_CRL_free,1);
|
||||
M_ASN1_D2I_get_set_type(PKCS7_SIGNER_INFO,ret->signer_info,
|
||||
d2i_PKCS7_SIGNER_INFO,PKCS7_SIGNER_INFO_free);
|
||||
|
||||
M_ASN1_D2I_Finish(a,PKCS7_SIGN_ENVELOPE_free,
|
||||
ASN1_F_D2I_PKCS7_SIGN_ENVELOPE);
|
||||
}
|
||||
|
||||
PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void)
|
||||
{
|
||||
PKCS7_SIGN_ENVELOPE *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_SIGN_ENVELOPE);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->recipientinfo,sk_PKCS7_RECIP_INFO_new_null);
|
||||
M_ASN1_New(ret->md_algs,sk_X509_ALGOR_new_null);
|
||||
M_ASN1_New(ret->enc_data,PKCS7_ENC_CONTENT_new);
|
||||
ret->cert=NULL;
|
||||
ret->crl=NULL;
|
||||
M_ASN1_New(ret->signer_info,sk_PKCS7_SIGNER_INFO_new_null);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_SIGN_ENVELOPE_NEW);
|
||||
}
|
||||
|
||||
void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
sk_PKCS7_RECIP_INFO_pop_free(a->recipientinfo,PKCS7_RECIP_INFO_free);
|
||||
sk_X509_ALGOR_pop_free(a->md_algs,X509_ALGOR_free);
|
||||
PKCS7_ENC_CONTENT_free(a->enc_data);
|
||||
sk_X509_pop_free(a->cert,X509_free);
|
||||
sk_X509_CRL_pop_free(a->crl,X509_CRL_free);
|
||||
sk_PKCS7_SIGNER_INFO_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free);
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
@ -1,135 +0,0 @@
|
||||
/* crypto/asn1/p7_signd.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/asn1_mac.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
int i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_len_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_len(a->contents,i2d_PKCS7);
|
||||
M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
|
||||
M_ASN1_I2D_len_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1);
|
||||
M_ASN1_I2D_len_SET_type(PKCS7_SIGNER_INFO,a->signer_info,
|
||||
i2d_PKCS7_SIGNER_INFO);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_put_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_put(a->contents,i2d_PKCS7);
|
||||
M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
|
||||
M_ASN1_I2D_put_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1);
|
||||
M_ASN1_I2D_put_SET_type(PKCS7_SIGNER_INFO,a->signer_info,
|
||||
i2d_PKCS7_SIGNER_INFO);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, unsigned char **pp,
|
||||
long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,PKCS7_SIGNED *,PKCS7_SIGNED_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER);
|
||||
M_ASN1_D2I_get_set_type(X509_ALGOR,ret->md_algs,d2i_X509_ALGOR,
|
||||
X509_ALGOR_free);
|
||||
M_ASN1_D2I_get(ret->contents,d2i_PKCS7);
|
||||
M_ASN1_D2I_get_IMP_set_opt_type(X509,ret->cert,d2i_X509,X509_free,0);
|
||||
M_ASN1_D2I_get_IMP_set_opt_type(X509_CRL,ret->crl,d2i_X509_CRL,
|
||||
X509_CRL_free,1);
|
||||
M_ASN1_D2I_get_set_type(PKCS7_SIGNER_INFO,ret->signer_info,
|
||||
d2i_PKCS7_SIGNER_INFO,PKCS7_SIGNER_INFO_free);
|
||||
|
||||
M_ASN1_D2I_Finish(a,PKCS7_SIGNED_free,ASN1_F_D2I_PKCS7_SIGNED);
|
||||
}
|
||||
|
||||
PKCS7_SIGNED *PKCS7_SIGNED_new(void)
|
||||
{
|
||||
PKCS7_SIGNED *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_SIGNED);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->md_algs,sk_X509_ALGOR_new_null);
|
||||
M_ASN1_New(ret->contents,PKCS7_new);
|
||||
ret->cert=NULL;
|
||||
ret->crl=NULL;
|
||||
M_ASN1_New(ret->signer_info,sk_PKCS7_SIGNER_INFO_new_null);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_SIGNED_NEW);
|
||||
}
|
||||
|
||||
void PKCS7_SIGNED_free(PKCS7_SIGNED *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
sk_X509_ALGOR_pop_free(a->md_algs,X509_ALGOR_free);
|
||||
PKCS7_free(a->contents);
|
||||
sk_X509_pop_free(a->cert,X509_free);
|
||||
sk_X509_CRL_pop_free(a->crl,X509_CRL_free);
|
||||
sk_PKCS7_SIGNER_INFO_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free);
|
||||
OPENSSL_free(a);
|
||||
}
|
@ -1,150 +0,0 @@
|
||||
/* crypto/asn1/p7_signi.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/asn1_mac.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
int i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO *a, unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_len(a->issuer_and_serial,i2d_PKCS7_ISSUER_AND_SERIAL);
|
||||
M_ASN1_I2D_len(a->digest_alg,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_len_IMP_SET_opt_type(X509_ATTRIBUTE,a->auth_attr,
|
||||
i2d_X509_ATTRIBUTE,0);
|
||||
M_ASN1_I2D_len(a->digest_enc_alg,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_len(a->enc_digest,i2d_ASN1_OCTET_STRING);
|
||||
M_ASN1_I2D_len_IMP_SET_opt_type(X509_ATTRIBUTE,a->unauth_attr,
|
||||
i2d_X509_ATTRIBUTE,1);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER);
|
||||
M_ASN1_I2D_put(a->issuer_and_serial,i2d_PKCS7_ISSUER_AND_SERIAL);
|
||||
M_ASN1_I2D_put(a->digest_alg,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_put_IMP_SET_opt_type(X509_ATTRIBUTE,a->auth_attr,
|
||||
i2d_X509_ATTRIBUTE,0);
|
||||
M_ASN1_I2D_put(a->digest_enc_alg,i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_put(a->enc_digest,i2d_ASN1_OCTET_STRING);
|
||||
M_ASN1_I2D_put_IMP_SET_opt_type(X509_ATTRIBUTE,a->unauth_attr,
|
||||
i2d_X509_ATTRIBUTE,1);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a,
|
||||
unsigned char **pp, long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,PKCS7_SIGNER_INFO *,PKCS7_SIGNER_INFO_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER);
|
||||
M_ASN1_D2I_get(ret->issuer_and_serial,d2i_PKCS7_ISSUER_AND_SERIAL);
|
||||
M_ASN1_D2I_get(ret->digest_alg,d2i_X509_ALGOR);
|
||||
M_ASN1_D2I_get_IMP_set_opt_type(X509_ATTRIBUTE,ret->auth_attr,
|
||||
d2i_X509_ATTRIBUTE,X509_ATTRIBUTE_free,
|
||||
0);
|
||||
M_ASN1_D2I_get(ret->digest_enc_alg,d2i_X509_ALGOR);
|
||||
M_ASN1_D2I_get(ret->enc_digest,d2i_ASN1_OCTET_STRING);
|
||||
M_ASN1_D2I_get_IMP_set_opt_type(X509_ATTRIBUTE,ret->unauth_attr,
|
||||
d2i_X509_ATTRIBUTE,
|
||||
X509_ATTRIBUTE_free,1);
|
||||
|
||||
M_ASN1_D2I_Finish(a,PKCS7_SIGNER_INFO_free,
|
||||
ASN1_F_D2I_PKCS7_SIGNER_INFO);
|
||||
}
|
||||
|
||||
PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void)
|
||||
{
|
||||
PKCS7_SIGNER_INFO *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_SIGNER_INFO);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->issuer_and_serial,PKCS7_ISSUER_AND_SERIAL_new);
|
||||
M_ASN1_New(ret->digest_alg,X509_ALGOR_new);
|
||||
ret->auth_attr=NULL;
|
||||
M_ASN1_New(ret->digest_enc_alg,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->enc_digest,M_ASN1_OCTET_STRING_new);
|
||||
ret->unauth_attr=NULL;
|
||||
ret->pkey=NULL;
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_SIGNER_INFO_NEW);
|
||||
}
|
||||
|
||||
void PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
PKCS7_ISSUER_AND_SERIAL_free(a->issuer_and_serial);
|
||||
X509_ALGOR_free(a->digest_alg);
|
||||
sk_X509_ATTRIBUTE_pop_free(a->auth_attr,X509_ATTRIBUTE_free);
|
||||
X509_ALGOR_free(a->digest_enc_alg);
|
||||
M_ASN1_OCTET_STRING_free(a->enc_digest);
|
||||
sk_X509_ATTRIBUTE_pop_free(a->unauth_attr,X509_ATTRIBUTE_free);
|
||||
if (a->pkey != NULL)
|
||||
EVP_PKEY_free(a->pkey);
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
||||
IMPLEMENT_STACK_OF(PKCS7_SIGNER_INFO)
|
||||
IMPLEMENT_ASN1_SET_OF(PKCS7_SIGNER_INFO)
|
@ -1,131 +0,0 @@
|
||||
/* crypto/asn1/pkcs8.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/asn1_mac.h>
|
||||
#include <openssl/objects.h>
|
||||
|
||||
int i2d_X509_KEY(X509 *a, unsigned char **pp)
|
||||
{
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
M_ASN1_I2D_len(a->cert_info, i2d_X509_CINF);
|
||||
M_ASN1_I2D_len(a->sig_alg, i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_len(a->signature, i2d_ASN1_BIT_STRING);
|
||||
|
||||
M_ASN1_I2D_seq_total();
|
||||
|
||||
M_ASN1_I2D_put(a->cert_info, i2d_X509_CINF);
|
||||
M_ASN1_I2D_put(a->sig_alg, i2d_X509_ALGOR);
|
||||
M_ASN1_I2D_put(a->signature, i2d_ASN1_BIT_STRING);
|
||||
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
||||
X509 *d2i_X509_KEY(X509 **a, unsigned char **pp, long length)
|
||||
{
|
||||
M_ASN1_D2I_vars(a,X509 *,X509_new);
|
||||
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get(ret->cert_info,d2i_X509_CINF);
|
||||
M_ASN1_D2I_get(ret->sig_alg,d2i_X509_ALGOR);
|
||||
M_ASN1_D2I_get(ret->signature,d2i_ASN1_BIT_STRING);
|
||||
M_ASN1_D2I_Finish(a,X509_free,ASN1_F_D2I_X509);
|
||||
}
|
||||
|
||||
X509 *X509_KEY_new(void)
|
||||
{
|
||||
X509_KEY *ret=NULL;
|
||||
|
||||
M_ASN1_New_Malloc(ret,X509_KEY);
|
||||
ret->references=1;
|
||||
ret->type=NID
|
||||
M_ASN1_New(ret->cert_info,X509_CINF_new);
|
||||
M_ASN1_New(ret->sig_alg,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->signature,ASN1_BIT_STRING_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_X509_NEW);
|
||||
}
|
||||
|
||||
void X509_KEY_free(X509 *a)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (a == NULL) return;
|
||||
|
||||
i=CRYPTO_add_lock(&a->references,-1,CRYPTO_LOCK_X509_KEY);
|
||||
#ifdef REF_PRINT
|
||||
REF_PRINT("X509_KEY",a);
|
||||
#endif
|
||||
if (i > 0) return;
|
||||
#ifdef REF_CHECK
|
||||
if (i < 0)
|
||||
{
|
||||
fprintf(stderr,"X509_KEY_free, bad reference count\n");
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
|
||||
X509_CINF_free(a->cert_info);
|
||||
X509_ALGOR_free(a->sig_alg);
|
||||
ASN1_BIT_STRING_free(a->signature);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
@ -1,119 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/blowfish/Makefile
|
||||
#
|
||||
|
||||
DIR= bf
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
CPP= $(CC) -E
|
||||
INCLUDES=
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
BF_ENC= bf_enc.o
|
||||
# or use
|
||||
#DES_ENC= bx86-elf.o
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=bftest.c
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
|
||||
LIBOBJ=bf_skey.o bf_ecb.o $(BF_ENC) bf_cfb64.o bf_ofb64.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= blowfish.h
|
||||
HEADER= bf_pi.h bf_locl.h $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
# elf
|
||||
asm/bx86-elf.o: asm/bx86unix.cpp
|
||||
$(CPP) -DELF -x c asm/bx86unix.cpp | as -o asm/bx86-elf.o
|
||||
|
||||
# solaris
|
||||
asm/bx86-sol.o: asm/bx86unix.cpp
|
||||
$(CC) -E -DSOL asm/bx86unix.cpp | sed 's/^#.*//' > asm/bx86-sol.s
|
||||
as -o asm/bx86-sol.o asm/bx86-sol.s
|
||||
rm -f asm/bx86-sol.s
|
||||
|
||||
# a.out
|
||||
asm/bx86-out.o: asm/bx86unix.cpp
|
||||
$(CPP) -DOUT asm/bx86unix.cpp | as -o asm/bx86-out.o
|
||||
|
||||
# bsdi
|
||||
asm/bx86bsdi.o: asm/bx86unix.cpp
|
||||
$(CPP) -DBSDI asm/bx86unix.cpp | sed 's/ :/:/' | as -o asm/bx86bsdi.o
|
||||
|
||||
asm/bx86unix.cpp: asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
|
||||
(cd asm; $(PERL) bf-586.pl cpp $(PROCESSOR) >bx86unix.cpp)
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install: installs
|
||||
|
||||
installs:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f asm/bx86unix.cpp *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
bf_cfb64.o: ../../include/openssl/blowfish.h
|
||||
bf_cfb64.o: ../../include/openssl/opensslconf.h bf_locl.h
|
||||
bf_ecb.o: ../../include/openssl/blowfish.h ../../include/openssl/opensslconf.h
|
||||
bf_ecb.o: ../../include/openssl/opensslv.h bf_locl.h
|
||||
bf_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/opensslconf.h
|
||||
bf_enc.o: bf_locl.h
|
||||
bf_ofb64.o: ../../include/openssl/blowfish.h
|
||||
bf_ofb64.o: ../../include/openssl/opensslconf.h bf_locl.h
|
||||
bf_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/opensslconf.h
|
||||
bf_skey.o: bf_locl.h bf_pi.h
|
@ -1,157 +0,0 @@
|
||||
# Targets
|
||||
# make - twidle the options yourself :-)
|
||||
# make cc - standard cc options
|
||||
# make gcc - standard gcc options
|
||||
# make x86-elf - linux-elf etc
|
||||
# make x86-out - linux-a.out, FreeBSD etc
|
||||
# make x86-solaris
|
||||
# make x86-bdsi
|
||||
|
||||
DIR= bf
|
||||
TOP= .
|
||||
# use BF_PTR2 for intel boxes,
|
||||
# BF_PTR for sparc and MIPS/SGI
|
||||
# use nothing for Alpha and HP.
|
||||
|
||||
# There are 3 possible performance options, experiment :-)
|
||||
#OPTS= -DBF_PTR # usr for sparc and MIPS/SGI
|
||||
#OPTS= -DBF_PTR2 # use for pentium
|
||||
OPTS= # use for pentium pro, Alpha and HP
|
||||
|
||||
MAKE=make -f Makefile
|
||||
#CC=cc
|
||||
#CFLAG= -O
|
||||
|
||||
CC=gcc
|
||||
#CFLAG= -O4 -funroll-loops -fomit-frame-pointer
|
||||
CFLAG= -O3 -fomit-frame-pointer
|
||||
|
||||
CFLAGS=$(OPTS) $(CFLAG)
|
||||
CPP=$(CC) -E
|
||||
AS=as
|
||||
RANLIB=ranlib
|
||||
|
||||
# Assember version of bf_encrypt().
|
||||
BF_ENC=bf_enc.o # normal C version
|
||||
#BF_ENC=asm/bx86-elf.o # elf format x86
|
||||
#BF_ENC=asm/bx86-out.o # a.out format x86
|
||||
#BF_ENC=asm/bx86-sol.o # solaris format x86
|
||||
#BF_ENC=asm/bx86bsdi.o # bsdi format x86
|
||||
|
||||
LIBDIR=/usr/local/lib
|
||||
BINDIR=/usr/local/bin
|
||||
INCDIR=/usr/local/include
|
||||
MANDIR=/usr/local/man
|
||||
MAN1=1
|
||||
MAN3=3
|
||||
SHELL=/bin/sh
|
||||
LIBOBJ=bf_skey.o bf_ecb.o $(BF_ENC) bf_cfb64.o bf_ofb64.o
|
||||
LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
|
||||
|
||||
GENERAL=Makefile Makefile.ssl Makefile.uni asm bf_locl.org README \
|
||||
COPYRIGHT blowfish.doc INSTALL
|
||||
|
||||
TESTING= bftest bfspeed bf_opts
|
||||
TESTING_SRC=bftest.c bfspeed.c bf_opts.c
|
||||
HEADERS=bf_locl.h blowfish.h bf_pi.h
|
||||
|
||||
ALL= $(GENERAL) $(TESTING_SRC) $(LIBSRC) $(HEADERS)
|
||||
|
||||
BLIB= libblowfish.a
|
||||
|
||||
all: $(BLIB) $(TESTING)
|
||||
|
||||
cc:
|
||||
$(MAKE) CC=cc CFLAGS="-O $(OPTS) $(CFLAG)" all
|
||||
|
||||
gcc:
|
||||
$(MAKE) CC=gcc CFLAGS="-O3 -fomit-frame-pointer $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-elf:
|
||||
$(MAKE) BF_ENC='asm/bx86-elf.o' CC=$(CC) CFLAGS="-DELF $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-out:
|
||||
$(MAKE) BF_ENC='asm/bx86-out.o' CC=$(CC) CFLAGS="-DOUT $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-solaris:
|
||||
$(MAKE) BF_ENC='asm/bx86-sol.o' CC=$(CC) CFLAGS="-DSOL $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-bsdi:
|
||||
$(MAKE) BF_ENC='asm/bx86bsdi.o' CC=$(CC) CFLAGS="-DBSDI $(OPTS) $(CFLAG)" all
|
||||
|
||||
# elf
|
||||
asm/bx86-elf.o: asm/bx86unix.cpp
|
||||
$(CPP) -DELF asm/bx86unix.cpp | $(AS) -o asm/bx86-elf.o
|
||||
|
||||
# solaris
|
||||
asm/bx86-sol.o: asm/bx86unix.cpp
|
||||
$(CC) -E -DSOL asm/bx86unix.cpp | sed 's/^#.*//' > asm/bx86-sol.s
|
||||
as -o asm/bx86-sol.o asm/bx86-sol.s
|
||||
rm -f asm/bx86-sol.s
|
||||
|
||||
# a.out
|
||||
asm/bx86-out.o: asm/bx86unix.cpp
|
||||
$(CPP) -DOUT asm/bx86unix.cpp | $(AS) -o asm/bx86-out.o
|
||||
|
||||
# bsdi
|
||||
asm/bx86bsdi.o: asm/bx86unix.cpp
|
||||
$(CPP) -DBSDI asm/bx86unix.cpp | $(AS) -o asm/bx86bsdi.o
|
||||
|
||||
asm/bx86unix.cpp:
|
||||
(cd asm; perl bf-586.pl cpp >bx86unix.cpp)
|
||||
|
||||
test: all
|
||||
./bftest
|
||||
|
||||
$(BLIB): $(LIBOBJ)
|
||||
/bin/rm -f $(BLIB)
|
||||
ar cr $(BLIB) $(LIBOBJ)
|
||||
$(RANLIB) $(BLIB)
|
||||
|
||||
bftest: bftest.o $(BLIB)
|
||||
$(CC) $(CFLAGS) -o bftest bftest.o $(BLIB)
|
||||
|
||||
bfspeed: bfspeed.o $(BLIB)
|
||||
$(CC) $(CFLAGS) -o bfspeed bfspeed.o $(BLIB)
|
||||
|
||||
bf_opts: bf_opts.o $(BLIB)
|
||||
$(CC) $(CFLAGS) -o bf_opts bf_opts.o $(BLIB)
|
||||
|
||||
tags:
|
||||
ctags $(TESTING_SRC) $(LIBBF)
|
||||
|
||||
tar:
|
||||
tar chf libbf.tar $(ALL)
|
||||
|
||||
shar:
|
||||
shar $(ALL) >libbf.shar
|
||||
|
||||
depend:
|
||||
makedepend $(LIBBF) $(TESTING_SRC)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o tags core $(TESTING) $(BLIB) .nfs* *.old *.bak asm/*.o
|
||||
|
||||
dclean:
|
||||
sed -e '/^# DO NOT DELETE THIS LINE/ q' Makefile >Makefile.new
|
||||
mv -f Makefile.new Makefile
|
||||
|
||||
# Eric is probably going to choke when he next looks at this --tjh
|
||||
install: $(BLIB)
|
||||
if test $(INSTALLTOP); then \
|
||||
echo SSL style install; \
|
||||
cp $(BLIB) $(INSTALLTOP)/lib; \
|
||||
$(RANLIB) $(BLIB); \
|
||||
chmod 644 $(INSTALLTOP)/lib/$(BLIB); \
|
||||
cp blowfish.h $(INSTALLTOP)/include; \
|
||||
chmod 644 $(INSTALLTOP)/include/blowfish.h; \
|
||||
else \
|
||||
echo Standalone install; \
|
||||
cp $(BLIB) $(LIBDIR)/$(BLIB); \
|
||||
$(RANLIB) $(BLIB); \
|
||||
chmod 644 $(LIBDIR)/$(BLIB); \
|
||||
cp blowfish.h $(INCDIR)/blowfish.h; \
|
||||
chmod 644 $(INCDIR)/blowfish.h; \
|
||||
fi
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
@ -1,244 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/bio/Makefile
|
||||
#
|
||||
|
||||
DIR= bio
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= bio_lib.c bio_cb.c bio_err.c \
|
||||
bss_mem.c bss_null.c bss_fd.c \
|
||||
bss_file.c bss_sock.c bss_conn.c \
|
||||
bf_null.c bf_buff.c b_print.c b_dump.c \
|
||||
b_sock.c bss_acpt.c bf_nbio.c bss_log.c bss_bio.c
|
||||
# bf_lbuf.c
|
||||
LIBOBJ= bio_lib.o bio_cb.o bio_err.o \
|
||||
bss_mem.o bss_null.o bss_fd.o \
|
||||
bss_file.o bss_sock.o bss_conn.o \
|
||||
bf_null.o bf_buff.o b_print.o b_dump.o \
|
||||
b_sock.o bss_acpt.o bf_nbio.o bss_log.o bss_bio.o
|
||||
# bf_lbuf.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= bio.h
|
||||
HEADER= bss_file.c $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER); \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
b_dump.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
b_dump.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
b_dump.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
b_dump.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
b_dump.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
b_dump.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
b_dump.o: ../cryptlib.h
|
||||
b_print.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
b_print.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
b_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
b_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
b_print.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
b_print.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
b_print.o: ../cryptlib.h
|
||||
b_sock.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
b_sock.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
b_sock.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
b_sock.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
b_sock.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
b_sock.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
b_sock.o: ../cryptlib.h
|
||||
bf_buff.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
bf_buff.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
bf_buff.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
bf_buff.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
bf_buff.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
bf_buff.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bf_buff.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
bf_buff.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
bf_buff.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
bf_buff.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
|
||||
bf_buff.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
bf_buff.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bf_buff.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
bf_buff.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
bf_buff.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
bf_buff.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
bf_buff.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
bf_nbio.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
bf_nbio.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
bf_nbio.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
bf_nbio.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
bf_nbio.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
bf_nbio.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bf_nbio.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
bf_nbio.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
bf_nbio.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
bf_nbio.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
|
||||
bf_nbio.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
bf_nbio.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bf_nbio.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
|
||||
bf_nbio.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
bf_nbio.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
|
||||
bf_nbio.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
bf_nbio.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bf_nbio.o: ../cryptlib.h
|
||||
bf_null.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
bf_null.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
bf_null.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
bf_null.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
bf_null.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
bf_null.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bf_null.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
bf_null.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
bf_null.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
bf_null.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
|
||||
bf_null.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
bf_null.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bf_null.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
bf_null.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
bf_null.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
bf_null.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
bf_null.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
bio_cb.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bio_cb.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
bio_cb.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bio_cb.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bio_cb.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bio_cb.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bio_cb.o: ../cryptlib.h
|
||||
bio_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
|
||||
bio_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bio_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bio_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bio_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bio_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
bio_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bio_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bio_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bio_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bio_lib.o: ../cryptlib.h
|
||||
bss_acpt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bss_acpt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
bss_acpt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bss_acpt.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bss_acpt.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bss_acpt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bss_acpt.o: ../cryptlib.h
|
||||
bss_bio.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
|
||||
bss_bio.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bss_bio.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bss_bio.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bss_bio.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bss_bio.o: ../../include/openssl/symhacks.h
|
||||
bss_conn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bss_conn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
bss_conn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bss_conn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bss_conn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bss_conn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bss_conn.o: ../cryptlib.h
|
||||
bss_fd.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bss_fd.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
bss_fd.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bss_fd.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bss_fd.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bss_fd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bss_fd.o: ../cryptlib.h bss_sock.c
|
||||
bss_file.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bss_file.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
bss_file.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bss_file.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bss_file.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bss_file.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bss_file.o: ../cryptlib.h
|
||||
bss_log.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bss_log.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
bss_log.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bss_log.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bss_log.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bss_log.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bss_log.o: ../cryptlib.h
|
||||
bss_mem.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bss_mem.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
bss_mem.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bss_mem.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bss_mem.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bss_mem.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bss_mem.o: ../cryptlib.h
|
||||
bss_null.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bss_null.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
bss_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bss_null.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bss_null.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bss_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bss_null.o: ../cryptlib.h
|
||||
bss_sock.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
bss_sock.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
bss_sock.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
bss_sock.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bss_sock.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bss_sock.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bss_sock.o: ../cryptlib.h
|
@ -1,313 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/bn/Makefile
|
||||
#
|
||||
|
||||
DIR= bn
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
CPP= $(CC) -E
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
BN_ASM= bn_asm.o
|
||||
# or use
|
||||
#BN_ASM= bn86-elf.o
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
# We let the C compiler driver to take care of .s files. This is done in
|
||||
# order to be excused from maintaining a separate set of architecture
|
||||
# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
|
||||
# gcc, then the driver will automatically translate it to -xarch=v8plus
|
||||
# and pass it down to assembler.
|
||||
AS=$(CC) -c
|
||||
ASFLAGS=$(CFLAGS)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=bntest.c exptest.c
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c \
|
||||
bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.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
|
||||
|
||||
LIBOBJ= bn_add.o bn_div.o bn_exp.o bn_lib.o bn_ctx.o bn_mul.o \
|
||||
bn_print.o bn_rand.o bn_shift.o bn_word.o bn_blind.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
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= bn.h
|
||||
HEADER= bn_lcl.h bn_prime.h $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
bn_prime.h: bn_prime.pl
|
||||
$(PERL) bn_prime.pl >bn_prime.h
|
||||
|
||||
divtest: divtest.c ../../libcrypto.a
|
||||
cc -I../../include divtest.c -o divtest ../../libcrypto.a
|
||||
|
||||
bnbug: bnbug.c ../../libcrypto.a top
|
||||
cc -g -I../../include bnbug.c -o bnbug ../../libcrypto.a
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
# elf
|
||||
asm/bn86-elf.o: asm/bn86unix.cpp
|
||||
$(CPP) -DELF -x c asm/bn86unix.cpp | as -o asm/bn86-elf.o
|
||||
|
||||
asm/co86-elf.o: asm/co86unix.cpp
|
||||
$(CPP) -DELF -x c asm/co86unix.cpp | as -o asm/co86-elf.o
|
||||
|
||||
# solaris
|
||||
asm/bn86-sol.o: asm/bn86unix.cpp
|
||||
$(CC) -E -DSOL asm/bn86unix.cpp | sed 's/^#.*//' > asm/bn86-sol.s
|
||||
as -o asm/bn86-sol.o asm/bn86-sol.s
|
||||
rm -f asm/bn86-sol.s
|
||||
|
||||
asm/co86-sol.o: asm/co86unix.cpp
|
||||
$(CC) -E -DSOL asm/co86unix.cpp | sed 's/^#.*//' > asm/co86-sol.s
|
||||
as -o asm/co86-sol.o asm/co86-sol.s
|
||||
rm -f asm/co86-sol.s
|
||||
|
||||
# a.out
|
||||
asm/bn86-out.o: asm/bn86unix.cpp
|
||||
$(CPP) -DOUT asm/bn86unix.cpp | as -o asm/bn86-out.o
|
||||
|
||||
asm/co86-out.o: asm/co86unix.cpp
|
||||
$(CPP) -DOUT asm/co86unix.cpp | as -o asm/co86-out.o
|
||||
|
||||
# bsdi
|
||||
asm/bn86bsdi.o: asm/bn86unix.cpp
|
||||
$(CPP) -DBSDI asm/bn86unix.cpp | sed 's/ :/:/' | as -o asm/bn86bsdi.o
|
||||
|
||||
asm/co86bsdi.o: asm/co86unix.cpp
|
||||
$(CPP) -DBSDI asm/co86unix.cpp | sed 's/ :/:/' | as -o asm/co86bsdi.o
|
||||
|
||||
asm/bn86unix.cpp: asm/bn-586.pl ../perlasm/x86asm.pl
|
||||
(cd asm; $(PERL) bn-586.pl cpp >bn86unix.cpp )
|
||||
|
||||
asm/co86unix.cpp: asm/co-586.pl ../perlasm/x86asm.pl
|
||||
(cd asm; $(PERL) co-586.pl cpp >co86unix.cpp )
|
||||
|
||||
asm/sparcv8.o: asm/sparcv8.S
|
||||
|
||||
asm/sparcv8plus.o: asm/sparcv8plus.S
|
||||
|
||||
# Old GNU assembler doesn't understand V9 instructions, so we
|
||||
# hire /usr/ccs/bin/as to do the job. Note that option is called
|
||||
# *-gcc27, but even gcc 2>=8 users may experience similar problem
|
||||
# if they didn't bother to upgrade GNU assembler. Such users should
|
||||
# not choose this option, but be adviced to *remove* GNU assembler
|
||||
# or upgrade it.
|
||||
asm/sparcv8plus-gcc27.o: asm/sparcv8plus.S
|
||||
$(CC) $(ASFLAGS) -E asm/sparcv8plus.S | \
|
||||
/usr/ccs/bin/as -xarch=v8plus - -o asm/sparcv8plus-gcc27.o
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
exptest:
|
||||
rm -f exptest
|
||||
gcc -I../../include -g2 -ggdb -o exptest exptest.c ../../libcrypto.a
|
||||
|
||||
div:
|
||||
rm -f a.out
|
||||
gcc -I.. -g div.c ../../libcrypto.a
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f asm/co86unix.cpp asm/bn86unix.cpp *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff bn_asm.s
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
bn_add.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_add.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_add.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_add.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_add.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_add.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_add.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_asm.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_asm.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_asm.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_asm.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_asm.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_asm.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_asm.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_blind.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_blind.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_blind.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_blind.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_blind.o: ../../include/openssl/opensslconf.h
|
||||
bn_blind.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bn_blind.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bn_blind.o: ../cryptlib.h bn_lcl.h
|
||||
bn_ctx.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_ctx.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_ctx.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_ctx.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_ctx.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_ctx.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_ctx.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
bn_div.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_div.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_div.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_div.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_div.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_div.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_div.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_err.o: ../../include/openssl/crypto.h ../../include/openssl/err.h
|
||||
bn_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
bn_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bn_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bn_exp.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_exp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_exp.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_exp.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_exp.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_exp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_exp.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_exp2.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_exp2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_exp2.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_exp2.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_exp2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_exp2.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_exp2.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_gcd.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_gcd.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_gcd.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_gcd.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_gcd.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_gcd.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_gcd.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_lib.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_mont.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_mont.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_mont.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_mont.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_mont.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_mont.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_mont.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_mpi.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_mpi.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_mpi.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_mpi.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_mpi.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_mpi.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_mpi.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_mul.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_mul.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_mul.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_mul.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_mul.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_mul.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_mul.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_prime.o: ../../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_os.h ../../include/openssl/e_os2.h
|
||||
bn_prime.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_prime.o: ../../include/openssl/opensslconf.h
|
||||
bn_prime.o: ../../include/openssl/opensslv.h ../../include/openssl/rand.h
|
||||
bn_prime.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_prime.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_prime.h
|
||||
bn_print.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_print.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_print.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_print.o: ../../include/openssl/opensslconf.h
|
||||
bn_print.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bn_print.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bn_print.o: ../cryptlib.h bn_lcl.h
|
||||
bn_rand.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_rand.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_rand.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_rand.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_rand.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_rand.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
bn_rand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bn_rand.o: ../cryptlib.h bn_lcl.h
|
||||
bn_recp.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_recp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_recp.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_recp.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_recp.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_recp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_recp.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_shift.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_shift.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_shift.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_shift.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_shift.o: ../../include/openssl/opensslconf.h
|
||||
bn_shift.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
bn_shift.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bn_shift.o: ../cryptlib.h bn_lcl.h
|
||||
bn_sqr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_sqr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_sqr.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_sqr.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_sqr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_sqr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_sqr.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
||||
bn_word.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
bn_word.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
bn_word.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bn_word.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
bn_word.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
bn_word.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
bn_word.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h
|
@ -1,345 +0,0 @@
|
||||
/* crypto/bn/bn_comba.c */
|
||||
#include <stdio.h>
|
||||
#include "bn_lcl.h"
|
||||
/* Auto generated from crypto/bn/comba.pl
|
||||
*/
|
||||
|
||||
#undef bn_mul_comba8
|
||||
#undef bn_mul_comba4
|
||||
#undef bn_sqr_comba8
|
||||
#undef bn_sqr_comba4
|
||||
|
||||
#ifdef BN_LLONG
|
||||
#define mul_add_c(a,b,c0,c1,c2) \
|
||||
t=(BN_ULLONG)a*b; \
|
||||
t1=(BN_ULONG)Lw(t); \
|
||||
t2=(BN_ULONG)Hw(t); \
|
||||
c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define mul_add_c2(a,b,c0,c1,c2) \
|
||||
t=(BN_ULLONG)a*b; \
|
||||
tt=(t+t)&BN_MASK; \
|
||||
if (tt < t) c2++; \
|
||||
t1=(BN_ULONG)Lw(tt); \
|
||||
t2=(BN_ULONG)Hw(tt); \
|
||||
c0=(c0+t1)&BN_MASK2; \
|
||||
if ((c0 < t1) && (((++t2)&BN_MASK2) == 0)) c2++; \
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define sqr_add_c(a,i,c0,c1,c2) \
|
||||
t=(BN_ULLONG)a[i]*a[i]; \
|
||||
t1=(BN_ULONG)Lw(t); \
|
||||
t2=(BN_ULONG)Hw(t); \
|
||||
c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define sqr_add_c2(a,i,j,c0,c1,c2) \
|
||||
mul_add_c2((a)[i],(a)[j],c0,c1,c2)
|
||||
#else
|
||||
#define mul_add_c(a,b,c0,c1,c2) \
|
||||
t1=LBITS(a); t2=HBITS(a); \
|
||||
bl=LBITS(b); bh=HBITS(b); \
|
||||
mul64(t1,t2,bl,bh); \
|
||||
c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define mul_add_c2(a,b,c0,c1,c2) \
|
||||
t1=LBITS(a); t2=HBITS(a); \
|
||||
bl=LBITS(b); bh=HBITS(b); \
|
||||
mul64(t1,t2,bl,bh); \
|
||||
if (t2 & BN_TBIT) c2++; \
|
||||
t2=(t2+t2)&BN_MASK2; \
|
||||
if (t1 & BN_TBIT) t2++; \
|
||||
t1=(t1+t1)&BN_MASK2; \
|
||||
c0=(c0+t1)&BN_MASK2; \
|
||||
if ((c0 < t1) && (((++t2)&BN_MASK2) == 0)) c2++; \
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define sqr_add_c(a,i,c0,c1,c2) \
|
||||
sqr64(t1,t2,(a)[i]); \
|
||||
c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define sqr_add_c2(a,i,j,c0,c1,c2) \
|
||||
mul_add_c2((a)[i],(a)[j],c0,c1,c2)
|
||||
#endif
|
||||
|
||||
void bn_mul_comba88(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b);
|
||||
void bn_mul_comba44(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b);
|
||||
void bn_sqr_comba88(BN_ULONG *r,BN_ULONG *a);
|
||||
void bn_sqr_comba44(BN_ULONG *r,BN_ULONG *a);
|
||||
|
||||
void bn_mul_comba88(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
|
||||
{
|
||||
#ifdef BN_LLONG
|
||||
BN_ULLONG t;
|
||||
#else
|
||||
BN_ULONG bl,bh;
|
||||
#endif
|
||||
BN_ULONG t1,t2;
|
||||
BN_ULONG c1,c2,c3;
|
||||
|
||||
c1=0;
|
||||
c2=0;
|
||||
c3=0;
|
||||
mul_add_c(a[0],b[0],c1,c2,c3);
|
||||
r[0]=c1;
|
||||
c1=0;
|
||||
mul_add_c(a[0],b[1],c2,c3,c1);
|
||||
mul_add_c(a[1],b[0],c2,c3,c1);
|
||||
r[1]=c2;
|
||||
c2=0;
|
||||
mul_add_c(a[2],b[0],c3,c1,c2);
|
||||
mul_add_c(a[1],b[1],c3,c1,c2);
|
||||
mul_add_c(a[0],b[2],c3,c1,c2);
|
||||
r[2]=c3;
|
||||
c3=0;
|
||||
mul_add_c(a[0],b[3],c1,c2,c3);
|
||||
mul_add_c(a[1],b[2],c1,c2,c3);
|
||||
mul_add_c(a[2],b[1],c1,c2,c3);
|
||||
mul_add_c(a[3],b[0],c1,c2,c3);
|
||||
r[3]=c1;
|
||||
c1=0;
|
||||
mul_add_c(a[4],b[0],c2,c3,c1);
|
||||
mul_add_c(a[3],b[1],c2,c3,c1);
|
||||
mul_add_c(a[2],b[2],c2,c3,c1);
|
||||
mul_add_c(a[1],b[3],c2,c3,c1);
|
||||
mul_add_c(a[0],b[4],c2,c3,c1);
|
||||
r[4]=c2;
|
||||
c2=0;
|
||||
mul_add_c(a[0],b[5],c3,c1,c2);
|
||||
mul_add_c(a[1],b[4],c3,c1,c2);
|
||||
mul_add_c(a[2],b[3],c3,c1,c2);
|
||||
mul_add_c(a[3],b[2],c3,c1,c2);
|
||||
mul_add_c(a[4],b[1],c3,c1,c2);
|
||||
mul_add_c(a[5],b[0],c3,c1,c2);
|
||||
r[5]=c3;
|
||||
c3=0;
|
||||
mul_add_c(a[6],b[0],c1,c2,c3);
|
||||
mul_add_c(a[5],b[1],c1,c2,c3);
|
||||
mul_add_c(a[4],b[2],c1,c2,c3);
|
||||
mul_add_c(a[3],b[3],c1,c2,c3);
|
||||
mul_add_c(a[2],b[4],c1,c2,c3);
|
||||
mul_add_c(a[1],b[5],c1,c2,c3);
|
||||
mul_add_c(a[0],b[6],c1,c2,c3);
|
||||
r[6]=c1;
|
||||
c1=0;
|
||||
mul_add_c(a[0],b[7],c2,c3,c1);
|
||||
mul_add_c(a[1],b[6],c2,c3,c1);
|
||||
mul_add_c(a[2],b[5],c2,c3,c1);
|
||||
mul_add_c(a[3],b[4],c2,c3,c1);
|
||||
mul_add_c(a[4],b[3],c2,c3,c1);
|
||||
mul_add_c(a[5],b[2],c2,c3,c1);
|
||||
mul_add_c(a[6],b[1],c2,c3,c1);
|
||||
mul_add_c(a[7],b[0],c2,c3,c1);
|
||||
r[7]=c2;
|
||||
c2=0;
|
||||
mul_add_c(a[7],b[1],c3,c1,c2);
|
||||
mul_add_c(a[6],b[2],c3,c1,c2);
|
||||
mul_add_c(a[5],b[3],c3,c1,c2);
|
||||
mul_add_c(a[4],b[4],c3,c1,c2);
|
||||
mul_add_c(a[3],b[5],c3,c1,c2);
|
||||
mul_add_c(a[2],b[6],c3,c1,c2);
|
||||
mul_add_c(a[1],b[7],c3,c1,c2);
|
||||
r[8]=c3;
|
||||
c3=0;
|
||||
mul_add_c(a[2],b[7],c1,c2,c3);
|
||||
mul_add_c(a[3],b[6],c1,c2,c3);
|
||||
mul_add_c(a[4],b[5],c1,c2,c3);
|
||||
mul_add_c(a[5],b[4],c1,c2,c3);
|
||||
mul_add_c(a[6],b[3],c1,c2,c3);
|
||||
mul_add_c(a[7],b[2],c1,c2,c3);
|
||||
r[9]=c1;
|
||||
c1=0;
|
||||
mul_add_c(a[7],b[3],c2,c3,c1);
|
||||
mul_add_c(a[6],b[4],c2,c3,c1);
|
||||
mul_add_c(a[5],b[5],c2,c3,c1);
|
||||
mul_add_c(a[4],b[6],c2,c3,c1);
|
||||
mul_add_c(a[3],b[7],c2,c3,c1);
|
||||
r[10]=c2;
|
||||
c2=0;
|
||||
mul_add_c(a[4],b[7],c3,c1,c2);
|
||||
mul_add_c(a[5],b[6],c3,c1,c2);
|
||||
mul_add_c(a[6],b[5],c3,c1,c2);
|
||||
mul_add_c(a[7],b[4],c3,c1,c2);
|
||||
r[11]=c3;
|
||||
c3=0;
|
||||
mul_add_c(a[7],b[5],c1,c2,c3);
|
||||
mul_add_c(a[6],b[6],c1,c2,c3);
|
||||
mul_add_c(a[5],b[7],c1,c2,c3);
|
||||
r[12]=c1;
|
||||
c1=0;
|
||||
mul_add_c(a[6],b[7],c2,c3,c1);
|
||||
mul_add_c(a[7],b[6],c2,c3,c1);
|
||||
r[13]=c2;
|
||||
c2=0;
|
||||
mul_add_c(a[7],b[7],c3,c1,c2);
|
||||
r[14]=c3;
|
||||
r[15]=c1;
|
||||
}
|
||||
|
||||
void bn_mul_comba44(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
|
||||
{
|
||||
#ifdef BN_LLONG
|
||||
BN_ULLONG t;
|
||||
#else
|
||||
BN_ULONG bl,bh;
|
||||
#endif
|
||||
BN_ULONG t1,t2;
|
||||
BN_ULONG c1,c2,c3;
|
||||
|
||||
c1=0;
|
||||
c2=0;
|
||||
c3=0;
|
||||
mul_add_c(a[0],b[0],c1,c2,c3);
|
||||
r[0]=c1;
|
||||
c1=0;
|
||||
mul_add_c(a[0],b[1],c2,c3,c1);
|
||||
mul_add_c(a[1],b[0],c2,c3,c1);
|
||||
r[1]=c2;
|
||||
c2=0;
|
||||
mul_add_c(a[2],b[0],c3,c1,c2);
|
||||
mul_add_c(a[1],b[1],c3,c1,c2);
|
||||
mul_add_c(a[0],b[2],c3,c1,c2);
|
||||
r[2]=c3;
|
||||
c3=0;
|
||||
mul_add_c(a[0],b[3],c1,c2,c3);
|
||||
mul_add_c(a[1],b[2],c1,c2,c3);
|
||||
mul_add_c(a[2],b[1],c1,c2,c3);
|
||||
mul_add_c(a[3],b[0],c1,c2,c3);
|
||||
r[3]=c1;
|
||||
c1=0;
|
||||
mul_add_c(a[3],b[1],c2,c3,c1);
|
||||
mul_add_c(a[2],b[2],c2,c3,c1);
|
||||
mul_add_c(a[1],b[3],c2,c3,c1);
|
||||
r[4]=c2;
|
||||
c2=0;
|
||||
mul_add_c(a[2],b[3],c3,c1,c2);
|
||||
mul_add_c(a[3],b[2],c3,c1,c2);
|
||||
r[5]=c3;
|
||||
c3=0;
|
||||
mul_add_c(a[3],b[3],c1,c2,c3);
|
||||
r[6]=c1;
|
||||
r[7]=c2;
|
||||
}
|
||||
|
||||
void bn_sqr_comba88(BN_ULONG *r, BN_ULONG *a)
|
||||
{
|
||||
#ifdef BN_LLONG
|
||||
BN_ULLONG t,tt;
|
||||
#else
|
||||
BN_ULONG bl,bh;
|
||||
#endif
|
||||
BN_ULONG t1,t2;
|
||||
BN_ULONG c1,c2,c3;
|
||||
|
||||
c1=0;
|
||||
c2=0;
|
||||
c3=0;
|
||||
sqr_add_c(a,0,c1,c2,c3);
|
||||
r[0]=c1;
|
||||
c1=0;
|
||||
sqr_add_c2(a,1,0,c2,c3,c1);
|
||||
r[1]=c2;
|
||||
c2=0;
|
||||
sqr_add_c(a,1,c3,c1,c2);
|
||||
sqr_add_c2(a,2,0,c3,c1,c2);
|
||||
r[2]=c3;
|
||||
c3=0;
|
||||
sqr_add_c2(a,3,0,c1,c2,c3);
|
||||
sqr_add_c2(a,2,1,c1,c2,c3);
|
||||
r[3]=c1;
|
||||
c1=0;
|
||||
sqr_add_c(a,2,c2,c3,c1);
|
||||
sqr_add_c2(a,3,1,c2,c3,c1);
|
||||
sqr_add_c2(a,4,0,c2,c3,c1);
|
||||
r[4]=c2;
|
||||
c2=0;
|
||||
sqr_add_c2(a,5,0,c3,c1,c2);
|
||||
sqr_add_c2(a,4,1,c3,c1,c2);
|
||||
sqr_add_c2(a,3,2,c3,c1,c2);
|
||||
r[5]=c3;
|
||||
c3=0;
|
||||
sqr_add_c(a,3,c1,c2,c3);
|
||||
sqr_add_c2(a,4,2,c1,c2,c3);
|
||||
sqr_add_c2(a,5,1,c1,c2,c3);
|
||||
sqr_add_c2(a,6,0,c1,c2,c3);
|
||||
r[6]=c1;
|
||||
c1=0;
|
||||
sqr_add_c2(a,7,0,c2,c3,c1);
|
||||
sqr_add_c2(a,6,1,c2,c3,c1);
|
||||
sqr_add_c2(a,5,2,c2,c3,c1);
|
||||
sqr_add_c2(a,4,3,c2,c3,c1);
|
||||
r[7]=c2;
|
||||
c2=0;
|
||||
sqr_add_c(a,4,c3,c1,c2);
|
||||
sqr_add_c2(a,5,3,c3,c1,c2);
|
||||
sqr_add_c2(a,6,2,c3,c1,c2);
|
||||
sqr_add_c2(a,7,1,c3,c1,c2);
|
||||
r[8]=c3;
|
||||
c3=0;
|
||||
sqr_add_c2(a,7,2,c1,c2,c3);
|
||||
sqr_add_c2(a,6,3,c1,c2,c3);
|
||||
sqr_add_c2(a,5,4,c1,c2,c3);
|
||||
r[9]=c1;
|
||||
c1=0;
|
||||
sqr_add_c(a,5,c2,c3,c1);
|
||||
sqr_add_c2(a,6,4,c2,c3,c1);
|
||||
sqr_add_c2(a,7,3,c2,c3,c1);
|
||||
r[10]=c2;
|
||||
c2=0;
|
||||
sqr_add_c2(a,7,4,c3,c1,c2);
|
||||
sqr_add_c2(a,6,5,c3,c1,c2);
|
||||
r[11]=c3;
|
||||
c3=0;
|
||||
sqr_add_c(a,6,c1,c2,c3);
|
||||
sqr_add_c2(a,7,5,c1,c2,c3);
|
||||
r[12]=c1;
|
||||
c1=0;
|
||||
sqr_add_c2(a,7,6,c2,c3,c1);
|
||||
r[13]=c2;
|
||||
c2=0;
|
||||
sqr_add_c(a,7,c3,c1,c2);
|
||||
r[14]=c3;
|
||||
r[15]=c1;
|
||||
}
|
||||
|
||||
void bn_sqr_comba44(BN_ULONG *r, BN_ULONG *a)
|
||||
{
|
||||
#ifdef BN_LLONG
|
||||
BN_ULLONG t,tt;
|
||||
#else
|
||||
BN_ULONG bl,bh;
|
||||
#endif
|
||||
BN_ULONG t1,t2;
|
||||
BN_ULONG c1,c2,c3;
|
||||
|
||||
c1=0;
|
||||
c2=0;
|
||||
c3=0;
|
||||
sqr_add_c(a,0,c1,c2,c3);
|
||||
r[0]=c1;
|
||||
c1=0;
|
||||
sqr_add_c2(a,1,0,c2,c3,c1);
|
||||
r[1]=c2;
|
||||
c2=0;
|
||||
sqr_add_c(a,1,c3,c1,c2);
|
||||
sqr_add_c2(a,2,0,c3,c1,c2);
|
||||
r[2]=c3;
|
||||
c3=0;
|
||||
sqr_add_c2(a,3,0,c1,c2,c3);
|
||||
sqr_add_c2(a,2,1,c1,c2,c3);
|
||||
r[3]=c1;
|
||||
c1=0;
|
||||
sqr_add_c(a,2,c2,c3,c1);
|
||||
sqr_add_c2(a,3,1,c2,c3,c1);
|
||||
r[4]=c2;
|
||||
c2=0;
|
||||
sqr_add_c2(a,3,2,c3,c1,c2);
|
||||
r[5]=c3;
|
||||
c3=0;
|
||||
sqr_add_c(a,3,c1,c2,c3);
|
||||
r[6]=c1;
|
||||
r[7]=c2;
|
||||
}
|
@ -1,324 +0,0 @@
|
||||
/* crypto/bn/expspeed.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.]
|
||||
*/
|
||||
|
||||
/* most of this code has been pilfered from my libdes speed.c program */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/tmdiff.h>
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#define DEFAULT_SIZE 512
|
||||
#define DEFAULT_TIME 3
|
||||
|
||||
int verbose=1;
|
||||
|
||||
typedef struct parms_st
|
||||
{
|
||||
char *name;
|
||||
void (*func)();
|
||||
BIGNUM r;
|
||||
BIGNUM a;
|
||||
BIGNUM b;
|
||||
BIGNUM c;
|
||||
BIGNUM low;
|
||||
BN_CTX *ctx;
|
||||
BN_MONT_CTX *mont;
|
||||
int w;
|
||||
} PARMS;
|
||||
|
||||
void do_mul_exp(int num,PARMS *p);
|
||||
void do_mul(int num,PARMS *p);
|
||||
void do_sqr(int num,PARMS *p);
|
||||
void do_mul_low(int num,PARMS *p);
|
||||
void do_mul_high(int num,PARMS *p);
|
||||
void do_from_montgomery(int num,PARMS *p);
|
||||
int time_it(int sec, PARMS *p);
|
||||
void do_it(int sec, PARMS *p);
|
||||
|
||||
#define P_EXP 1
|
||||
#define P_MUL 2
|
||||
#define P_SQR 3
|
||||
#define P_MULL 4
|
||||
#define P_MULH 5
|
||||
#define P_MRED 6
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
PARMS p;
|
||||
BN_MONT_CTX *mont;
|
||||
int size=0,num;
|
||||
char *name;
|
||||
int type=P_EXP;
|
||||
|
||||
mont=BN_MONT_CTX_new();
|
||||
p.mont=NULL;
|
||||
p.ctx=BN_CTX_new();
|
||||
BN_init(&p.r);
|
||||
BN_init(&p.a);
|
||||
BN_init(&p.b);
|
||||
BN_init(&p.c);
|
||||
BN_init(&p.low);
|
||||
p.w=0;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if (argc > 1)
|
||||
{
|
||||
if (argv[1][0] == '-')
|
||||
{
|
||||
switch(argv[1][1])
|
||||
{
|
||||
case 'e': type=P_EXP; break;
|
||||
case 'm': type=P_MUL; break;
|
||||
case 's': type=P_SQR; break;
|
||||
case 'l': type=P_MULL; break;
|
||||
case 'h': type=P_MULH; break;
|
||||
case 'r': type=P_MRED; break;
|
||||
default:
|
||||
fprintf(stderr,"options: -[emslhr]\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
size=atoi(argv[1]);
|
||||
}
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
if (size == 0)
|
||||
size=DEFAULT_SIZE;
|
||||
|
||||
printf("bit size:%5d\n",size);
|
||||
|
||||
BN_rand(&p.a,size,1,0);
|
||||
BN_rand(&p.b,size,1,0);
|
||||
BN_rand(&p.c,size,1,1);
|
||||
BN_mod(&p.a,&p.a,&p.c,p.ctx);
|
||||
BN_mod(&p.b,&p.b,&p.c,p.ctx);
|
||||
p.w=(p.a.top+1)/2;
|
||||
|
||||
BN_mul(&p.low,&p.a,&p.b,p.ctx);
|
||||
p.low.top=p.a.top;
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case P_EXP:
|
||||
p.name="r=a^b%c";
|
||||
p.func=do_mul_exp;
|
||||
p.mont=mont;
|
||||
break;
|
||||
case P_MUL:
|
||||
p.name="r=a*b";
|
||||
p.func=do_mul;
|
||||
break;
|
||||
case P_SQR:
|
||||
p.name="r=a*a";
|
||||
p.func=do_sqr;
|
||||
break;
|
||||
case P_MULL:
|
||||
p.name="r=low(a*b)";
|
||||
p.func=do_mul_low;
|
||||
break;
|
||||
case P_MULH:
|
||||
p.name="r=high(a*b)";
|
||||
p.func=do_mul_high;
|
||||
break;
|
||||
case P_MRED:
|
||||
p.name="r=montgomery_reduction(a)";
|
||||
p.func=do_from_montgomery;
|
||||
p.mont=mont;
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr,"options: -[emslhr]\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
num=time_it(DEFAULT_TIME,&p);
|
||||
do_it(num,&p);
|
||||
}
|
||||
|
||||
void do_it(int num, PARMS *p)
|
||||
{
|
||||
char *start,*end;
|
||||
int i,j,number;
|
||||
double d;
|
||||
|
||||
start=ms_time_new();
|
||||
end=ms_time_new();
|
||||
|
||||
number=BN_num_bits_word((BN_ULONG)BN_num_bits(&(p->c)))-
|
||||
BN_num_bits_word(BN_BITS2)+2;
|
||||
for (i=number-1; i >=0; i--)
|
||||
{
|
||||
if (i == 1) continue;
|
||||
BN_set_params(i,i,i,1);
|
||||
if (p->mont != NULL)
|
||||
BN_MONT_CTX_set(p->mont,&(p->c),p->ctx);
|
||||
|
||||
printf("Timing %5d (%2d bit) %2d %2d %2d %2d :",
|
||||
(1<<i)*BN_BITS2,i,
|
||||
BN_get_params(0),
|
||||
BN_get_params(1),
|
||||
BN_get_params(2),
|
||||
BN_get_params(3));
|
||||
fflush(stdout);
|
||||
|
||||
ms_time_get(start);
|
||||
p->func(num,p);
|
||||
ms_time_get(end);
|
||||
d=ms_time_diff(start,end);
|
||||
printf("%6.6f sec, or %d in %.4f seconds\n",
|
||||
(double)d/num,num,d);
|
||||
}
|
||||
}
|
||||
|
||||
int time_it(int sec, PARMS *p)
|
||||
{
|
||||
char *start,*end;
|
||||
int i,j;
|
||||
double d;
|
||||
|
||||
if (p->mont != NULL)
|
||||
BN_MONT_CTX_set(p->mont,&(p->c),p->ctx);
|
||||
|
||||
start=ms_time_new();
|
||||
end=ms_time_new();
|
||||
|
||||
i=1;
|
||||
for (;;)
|
||||
{
|
||||
if (verbose)
|
||||
printf("timing %s for %d interations\n",p->name,i);
|
||||
|
||||
ms_time_get(start);
|
||||
p->func(i,p);
|
||||
ms_time_get(end);
|
||||
d=ms_time_diff(start,end);
|
||||
|
||||
if (d < 0.01) i*=100;
|
||||
else if (d < 0.1 ) i*=10;
|
||||
else if (d > (double)sec) break;
|
||||
else
|
||||
{
|
||||
i=(int)(1.0*i*sec/d);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (verbose)
|
||||
printf("using %d interations\n",i);
|
||||
return(i);
|
||||
}
|
||||
|
||||
void do_mul_exp(int num, PARMS *p)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i=0; i<num; i++)
|
||||
BN_mod_exp_mont(&(p->r),&(p->a),&(p->b),&(p->c),
|
||||
p->ctx,p->mont);
|
||||
}
|
||||
|
||||
void do_mul(int num, PARMS *p)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i=0; i<num; i++)
|
||||
BN_mul(&(p->r),&(p->a),&(p->b),p->ctx);
|
||||
}
|
||||
|
||||
void do_sqr(int num, PARMS *p)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i=0; i<num; i++)
|
||||
BN_sqr(&(p->r),&(p->a),p->ctx);
|
||||
}
|
||||
|
||||
void do_mul_low(int num, PARMS *p)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i=0; i<num; i++)
|
||||
BN_mul_low(&(p->r),&(p->a),&(p->b),p->w,p->ctx);
|
||||
}
|
||||
|
||||
void do_mul_high(int num, PARMS *p)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i=0; i<num; i++)
|
||||
BN_mul_low(&(p->r),&(p->a),&(p->b),&(p->low),p->w,p->ctx);
|
||||
}
|
||||
|
||||
void do_from_montgomery(int num, PARMS *p)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i=0; i<num; i++)
|
||||
BN_from_montgomery(&(p->r),&(p->a),p->mont,p->ctx);
|
||||
}
|
||||
|
@ -1,285 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
$num=8;
|
||||
$num2=8/2;
|
||||
|
||||
print <<"EOF";
|
||||
/* crypto/bn/bn_comba.c */
|
||||
#include <stdio.h>
|
||||
#include "bn_lcl.h"
|
||||
/* Auto generated from crypto/bn/comba.pl
|
||||
*/
|
||||
|
||||
#undef bn_mul_comba8
|
||||
#undef bn_mul_comba4
|
||||
#undef bn_sqr_comba8
|
||||
#undef bn_sqr_comba4
|
||||
|
||||
#ifdef BN_LLONG
|
||||
#define mul_add_c(a,b,c0,c1,c2) \\
|
||||
t=(BN_ULLONG)a*b; \\
|
||||
t1=(BN_ULONG)Lw(t); \\
|
||||
t2=(BN_ULONG)Hw(t); \\
|
||||
c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \\
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define mul_add_c2(a,b,c0,c1,c2) \\
|
||||
t=(BN_ULLONG)a*b; \\
|
||||
tt=(t+t)&BN_MASK; \\
|
||||
if (tt < t) c2++; \\
|
||||
t1=(BN_ULONG)Lw(tt); \\
|
||||
t2=(BN_ULONG)Hw(tt); \\
|
||||
c0=(c0+t1)&BN_MASK2; \\
|
||||
if ((c0 < t1) && (((++t2)&BN_MASK2) == 0)) c2++; \\
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define sqr_add_c(a,i,c0,c1,c2) \\
|
||||
t=(BN_ULLONG)a[i]*a[i]; \\
|
||||
t1=(BN_ULONG)Lw(t); \\
|
||||
t2=(BN_ULONG)Hw(t); \\
|
||||
c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \\
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define sqr_add_c2(a,i,j,c0,c1,c2) \\
|
||||
mul_add_c2((a)[i],(a)[j],c0,c1,c2)
|
||||
#else
|
||||
#define mul_add_c(a,b,c0,c1,c2) \\
|
||||
t1=LBITS(a); t2=HBITS(a); \\
|
||||
bl=LBITS(b); bh=HBITS(b); \\
|
||||
mul64(t1,t2,bl,bh); \\
|
||||
c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \\
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define mul_add_c2(a,b,c0,c1,c2) \\
|
||||
t1=LBITS(a); t2=HBITS(a); \\
|
||||
bl=LBITS(b); bh=HBITS(b); \\
|
||||
mul64(t1,t2,bl,bh); \\
|
||||
if (t2 & BN_TBIT) c2++; \\
|
||||
t2=(t2+t2)&BN_MASK2; \\
|
||||
if (t1 & BN_TBIT) t2++; \\
|
||||
t1=(t1+t1)&BN_MASK2; \\
|
||||
c0=(c0+t1)&BN_MASK2; \\
|
||||
if ((c0 < t1) && (((++t2)&BN_MASK2) == 0)) c2++; \\
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define sqr_add_c(a,i,c0,c1,c2) \\
|
||||
sqr64(t1,t2,(a)[i]); \\
|
||||
c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \\
|
||||
c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++;
|
||||
|
||||
#define sqr_add_c2(a,i,j,c0,c1,c2) \\
|
||||
mul_add_c2((a)[i],(a)[j],c0,c1,c2)
|
||||
#endif
|
||||
|
||||
void bn_mul_comba${num}(r,a,b)
|
||||
BN_ULONG *r,*a,*b;
|
||||
{
|
||||
#ifdef BN_LLONG
|
||||
BN_ULLONG t;
|
||||
#else
|
||||
BN_ULONG bl,bh;
|
||||
#endif
|
||||
BN_ULONG t1,t2;
|
||||
BN_ULONG c1,c2,c3;
|
||||
|
||||
EOF
|
||||
$ret=&combas_mul("r","a","b",$num,"c1","c2","c3");
|
||||
printf <<"EOF";
|
||||
}
|
||||
|
||||
void bn_mul_comba${num2}(r,a,b)
|
||||
BN_ULONG *r,*a,*b;
|
||||
{
|
||||
#ifdef BN_LLONG
|
||||
BN_ULLONG t;
|
||||
#else
|
||||
BN_ULONG bl,bh;
|
||||
#endif
|
||||
BN_ULONG t1,t2;
|
||||
BN_ULONG c1,c2,c3;
|
||||
|
||||
EOF
|
||||
$ret=&combas_mul("r","a","b",$num2,"c1","c2","c3");
|
||||
printf <<"EOF";
|
||||
}
|
||||
|
||||
void bn_sqr_comba${num}(r,a)
|
||||
BN_ULONG *r,*a;
|
||||
{
|
||||
#ifdef BN_LLONG
|
||||
BN_ULLONG t,tt;
|
||||
#else
|
||||
BN_ULONG bl,bh;
|
||||
#endif
|
||||
BN_ULONG t1,t2;
|
||||
BN_ULONG c1,c2,c3;
|
||||
|
||||
EOF
|
||||
$ret=&combas_sqr("r","a",$num,"c1","c2","c3");
|
||||
printf <<"EOF";
|
||||
}
|
||||
|
||||
void bn_sqr_comba${num2}(r,a)
|
||||
BN_ULONG *r,*a;
|
||||
{
|
||||
#ifdef BN_LLONG
|
||||
BN_ULLONG t,tt;
|
||||
#else
|
||||
BN_ULONG bl,bh;
|
||||
#endif
|
||||
BN_ULONG t1,t2;
|
||||
BN_ULONG c1,c2,c3;
|
||||
|
||||
EOF
|
||||
$ret=&combas_sqr("r","a",$num2,"c1","c2","c3");
|
||||
printf <<"EOF";
|
||||
}
|
||||
EOF
|
||||
|
||||
sub bn_str
|
||||
{
|
||||
local($var,$val)=@_;
|
||||
print "\t$var=$val;\n";
|
||||
}
|
||||
|
||||
sub bn_ary
|
||||
{
|
||||
local($var,$idx)=@_;
|
||||
return("${var}[$idx]");
|
||||
}
|
||||
|
||||
sub bn_clr
|
||||
{
|
||||
local($var)=@_;
|
||||
|
||||
print "\t$var=0;\n";
|
||||
}
|
||||
|
||||
sub bn_mad
|
||||
{
|
||||
local($a,$b,$c0,$c1,$c2,$num)=@_;
|
||||
|
||||
if ($num == 2)
|
||||
{ printf("\tmul_add_c2($a,$b,$c0,$c1,$c2);\n"); }
|
||||
else
|
||||
{ printf("\tmul_add_c($a,$b,$c0,$c1,$c2);\n"); }
|
||||
}
|
||||
|
||||
sub bn_sad
|
||||
{
|
||||
local($a,$i,$j,$c0,$c1,$c2,$num)=@_;
|
||||
|
||||
if ($num == 2)
|
||||
{ printf("\tsqr_add_c2($a,$i,$j,$c0,$c1,$c2);\n"); }
|
||||
else
|
||||
{ printf("\tsqr_add_c($a,$i,$c0,$c1,$c2);\n"); }
|
||||
}
|
||||
|
||||
sub combas_mul
|
||||
{
|
||||
local($r,$a,$b,$num,$c0,$c1,$c2)=@_;
|
||||
local($i,$as,$ae,$bs,$be,$ai,$bi);
|
||||
local($tot,$end);
|
||||
|
||||
$as=0;
|
||||
$ae=0;
|
||||
$bs=0;
|
||||
$be=0;
|
||||
$tot=$num+$num-1;
|
||||
&bn_clr($c0);
|
||||
&bn_clr($c1);
|
||||
for ($i=0; $i<$tot; $i++)
|
||||
{
|
||||
$ai=$as;
|
||||
$bi=$bs;
|
||||
$end=$be+1;
|
||||
@numa=@numb=();
|
||||
|
||||
#print "($as $ae) ($bs $be) $bs -> $end [$i $num]\n";
|
||||
for ($j=$bs; $j<$end; $j++)
|
||||
{
|
||||
push(@numa,$ai);
|
||||
push(@numb,$bi);
|
||||
$ai--;
|
||||
$bi++;
|
||||
}
|
||||
|
||||
if ($i & 1)
|
||||
{
|
||||
@numa=reverse(@numa);
|
||||
@numb=reverse(@numb);
|
||||
}
|
||||
|
||||
&bn_clr($c2);
|
||||
for ($j=0; $j<=$#numa; $j++)
|
||||
{
|
||||
&bn_mad(&bn_ary($a,$numa[$j]),
|
||||
&bn_ary($b,$numb[$j]),$c0,$c1,$c2,1);
|
||||
}
|
||||
&bn_str(&bn_ary($r,$i),$c0);
|
||||
($c0,$c1,$c2)=($c1,$c2,$c0);
|
||||
|
||||
$as++ if ($i < ($num-1));
|
||||
$ae++ if ($i >= ($num-1));
|
||||
|
||||
$bs++ if ($i >= ($num-1));
|
||||
$be++ if ($i < ($num-1));
|
||||
}
|
||||
&bn_str(&bn_ary($r,$i),$c0);
|
||||
}
|
||||
|
||||
sub combas_sqr
|
||||
{
|
||||
local($r,$a,$num,$c0,$c1,$c2)=@_;
|
||||
local($i,$as,$ae,$bs,$be,$ai,$bi);
|
||||
local($b,$tot,$end,$half);
|
||||
|
||||
$b=$a;
|
||||
$as=0;
|
||||
$ae=0;
|
||||
$bs=0;
|
||||
$be=0;
|
||||
$tot=$num+$num-1;
|
||||
&bn_clr($c0);
|
||||
&bn_clr($c1);
|
||||
for ($i=0; $i<$tot; $i++)
|
||||
{
|
||||
$ai=$as;
|
||||
$bi=$bs;
|
||||
$end=$be+1;
|
||||
@numa=@numb=();
|
||||
|
||||
#print "($as $ae) ($bs $be) $bs -> $end [$i $num]\n";
|
||||
for ($j=$bs; $j<$end; $j++)
|
||||
{
|
||||
push(@numa,$ai);
|
||||
push(@numb,$bi);
|
||||
$ai--;
|
||||
$bi++;
|
||||
last if ($ai < $bi);
|
||||
}
|
||||
if (!($i & 1))
|
||||
{
|
||||
@numa=reverse(@numa);
|
||||
@numb=reverse(@numb);
|
||||
}
|
||||
|
||||
&bn_clr($c2);
|
||||
for ($j=0; $j <= $#numa; $j++)
|
||||
{
|
||||
if ($numa[$j] == $numb[$j])
|
||||
{&bn_sad($a,$numa[$j],$numb[$j],$c0,$c1,$c2,1);}
|
||||
else
|
||||
{&bn_sad($a,$numa[$j],$numb[$j],$c0,$c1,$c2,2);}
|
||||
}
|
||||
&bn_str(&bn_ary($r,$i),$c0);
|
||||
($c0,$c1,$c2)=($c1,$c2,$c0);
|
||||
|
||||
$as++ if ($i < ($num-1));
|
||||
$ae++ if ($i >= ($num-1));
|
||||
|
||||
$bs++ if ($i >= ($num-1));
|
||||
$be++ if ($i < ($num-1));
|
||||
}
|
||||
&bn_str(&bn_ary($r,$i),$c0);
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <openssl/bio.h>
|
||||
#include "bn_lcl.h"
|
||||
|
||||
#define SIZE_A (100*4+4)
|
||||
#define SIZE_B (13*4)
|
||||
|
||||
main(argc,argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
BN_CTX ctx;
|
||||
BN_RECP_CTX recp;
|
||||
BIGNUM a,b,dd,d,r,rr,t,l;
|
||||
int i;
|
||||
|
||||
MemCheck_start();
|
||||
MemCheck_on();
|
||||
BN_CTX_init(&ctx);
|
||||
BN_RECP_CTX_init(&recp);
|
||||
|
||||
BN_init(&r);
|
||||
BN_init(&rr);
|
||||
BN_init(&d);
|
||||
BN_init(&dd);
|
||||
BN_init(&a);
|
||||
BN_init(&b);
|
||||
|
||||
{
|
||||
BN_rand(&a,SIZE_A,0,0);
|
||||
BN_rand(&b,SIZE_B,0,0);
|
||||
|
||||
a.neg=1;
|
||||
BN_RECP_CTX_set(&recp,&b,&ctx);
|
||||
|
||||
BN_print_fp(stdout,&a); printf(" a\n");
|
||||
BN_print_fp(stdout,&b); printf(" b\n");
|
||||
|
||||
BN_print_fp(stdout,&recp.N); printf(" N\n");
|
||||
BN_print_fp(stdout,&recp.Nr); printf(" Nr num_bits=%d\n",recp.num_bits);
|
||||
|
||||
BN_div_recp(&r,&d,&a,&recp,&ctx);
|
||||
|
||||
for (i=0; i<300; i++)
|
||||
BN_div(&rr,&dd,&a,&b,&ctx);
|
||||
|
||||
BN_print_fp(stdout,&r); printf(" div recp\n");
|
||||
BN_print_fp(stdout,&rr); printf(" div\n");
|
||||
BN_print_fp(stdout,&d); printf(" rem recp\n");
|
||||
BN_print_fp(stdout,&dd); printf(" rem\n");
|
||||
}
|
||||
BN_CTX_free(&ctx);
|
||||
BN_RECP_CTX_free(&recp);
|
||||
|
||||
BN_free(&r);
|
||||
BN_free(&rr);
|
||||
BN_free(&d);
|
||||
BN_free(&dd);
|
||||
BN_free(&a);
|
||||
BN_free(&b);
|
||||
|
||||
{
|
||||
BIO *out;
|
||||
|
||||
if ((out=BIO_new(BIO_s_file())) != NULL)
|
||||
BIO_set_fp(out,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
|
||||
|
||||
CRYPTO_mem_leaks(out);
|
||||
BIO_free(out);
|
||||
}
|
||||
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
void BN_RECP_CTX_init(BN_RECP_CTX *recp);
|
||||
BN_RECP_CTX *BN_RECP_CTX_new();
|
||||
void BN_RECP_CTX_free(BN_RECP_CTX *recp);
|
||||
int BN_RECP_CTX_set(BN_RECP_CTX *recp,BIGNUM *div,BN_CTX *ctx);
|
||||
|
||||
int BN_mod_exp_recp(BIGNUM *r, BIGNUM *a, BIGNUM *p, BIGNUM *m,
|
||||
BN_RECP_CTX *recp,BN_CTX *ctx);
|
||||
|
||||
int BN_div_recp(BIGNUM *dv, BIGNUM *rem, BIGNUM *m, BIGNUM *d,
|
||||
BN_RECP_CTX *recp, BN_CTX *ctx);
|
||||
int BN_mod_recp(BIGNUM *rem, BIGNUM *m, BIGNUM *d,
|
||||
BN_RECP_CTX *recp, BN_CTX *ctx);
|
||||
int BN_mod_mul_recp(BIGNUM *ret,BIGNUM *a,BIGNUM *b,BIGNUM *m
|
||||
|
||||
int BN_mod_exp_montgomery(BIGNUM *r, BIGNUM *a, BIGNUM *p,
|
||||
BN_MONT_CTX *m_ctx,BN_CTX *ctx);
|
||||
int BN_mod_exp2_montgomery(BIGNUM *r, BIGNUM *a1, BIGNUM *p1,BIGNUM *a2,
|
||||
BIGNUM *p2,BN_MONT_CTX *m_ctx,BN_CTX *ctx);
|
||||
|
||||
|
||||
bn_div64 -> bn_div_words
|
||||
|
||||
|
@ -1,199 +0,0 @@
|
||||
/* crypto/bn/bn_mul.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 "bn_lcl.h"
|
||||
|
||||
static int bn_mm(BIGNUM *m,BIGNUM *A,BIGNUM *B, BIGNUM *sk,BN_CTX *ctx);
|
||||
|
||||
/* r must be different to a and b */
|
||||
/* int BN_mmul(r, a, b) */
|
||||
int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b)
|
||||
{
|
||||
BN_ULONG *ap,*bp,*rp;
|
||||
BIGNUM *sk;
|
||||
int i,n,ret;
|
||||
int max,al,bl;
|
||||
BN_CTX ctx;
|
||||
|
||||
bn_check_top(a);
|
||||
bn_check_top(b);
|
||||
|
||||
al=a->top;
|
||||
bl=b->top;
|
||||
if ((al == 0) || (bl == 0))
|
||||
{
|
||||
r->top=0;
|
||||
return(1);
|
||||
}
|
||||
#ifdef BN_MUL_DEBUG
|
||||
printf("BN_mul(%d,%d)\n",a->top,b->top);
|
||||
#endif
|
||||
|
||||
if ( (bn_limit_bits > 0) &&
|
||||
(bl > bn_limit_num) && (al > bn_limit_num))
|
||||
{
|
||||
n=(BN_num_bits_word(al|bl)-bn_limit_bits);
|
||||
n*=2;
|
||||
sk=(BIGNUM *)Malloc(sizeof(BIGNUM)*n);
|
||||
memset(sk,0,sizeof(BIGNUM)*n);
|
||||
memset(&ctx,0,sizeof(ctx));
|
||||
|
||||
ret=bn_mm(r,a,b,&(sk[0]),&ctx);
|
||||
for (i=0; i<n; i+=2)
|
||||
{
|
||||
BN_clear_free(&sk[i]);
|
||||
BN_clear_free(&sk[i+1]);
|
||||
}
|
||||
Free(sk);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
max=(al+bl);
|
||||
if (bn_wexpand(r,max) == NULL) return(0);
|
||||
r->top=max;
|
||||
r->neg=a->neg^b->neg;
|
||||
ap=a->d;
|
||||
bp=b->d;
|
||||
rp=r->d;
|
||||
|
||||
rp[al]=bn_mul_words(rp,ap,al,*(bp++));
|
||||
rp++;
|
||||
for (i=1; i<bl; i++)
|
||||
{
|
||||
rp[al]=bn_mul_add_words(rp,ap,al,*(bp++));
|
||||
rp++;
|
||||
}
|
||||
if ((max > 0) && (r->d[max-1] == 0)) r->top--;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
#define ahal (sk[0])
|
||||
#define blbh (sk[1])
|
||||
|
||||
/* r must be different to a and b */
|
||||
int bn_mm(BIGNUM *m, BIGNUM *A, BIGNUM *B, BIGNUM *sk, BN_CTX *ctx)
|
||||
{
|
||||
int n,num,sqr=0;
|
||||
int an,bn;
|
||||
BIGNUM ah,al,bh,bl;
|
||||
|
||||
an=A->top;
|
||||
bn=B->top;
|
||||
#ifdef BN_MUL_DEBUG
|
||||
printf("bn_mm(%d,%d)\n",A->top,B->top);
|
||||
#endif
|
||||
|
||||
if (A == B) sqr=1;
|
||||
num=(an>bn)?an:bn;
|
||||
n=(num+1)/2;
|
||||
/* Are going to now chop things into 'num' word chunks. */
|
||||
|
||||
BN_init(&ah);
|
||||
BN_init(&al);
|
||||
BN_init(&bh);
|
||||
BN_init(&bl);
|
||||
|
||||
bn_set_low (&al,A,n);
|
||||
bn_set_high(&ah,A,n);
|
||||
bn_set_low (&bl,B,n);
|
||||
bn_set_high(&bh,B,n);
|
||||
|
||||
BN_sub(&ahal,&ah,&al);
|
||||
BN_sub(&blbh,&bl,&bh);
|
||||
|
||||
if (num <= (bn_limit_num+bn_limit_num))
|
||||
{
|
||||
BN_mul(m,&ahal,&blbh);
|
||||
if (sqr)
|
||||
{
|
||||
BN_sqr(&ahal,&al,ctx);
|
||||
BN_sqr(&blbh,&ah,ctx);
|
||||
}
|
||||
else
|
||||
{
|
||||
BN_mul(&ahal,&al,&bl);
|
||||
BN_mul(&blbh,&ah,&bh);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bn_mm(m,&ahal,&blbh,&(sk[2]),ctx);
|
||||
bn_mm(&ahal,&al,&bl,&(sk[2]),ctx);
|
||||
bn_mm(&blbh,&ah,&bh,&(sk[2]),ctx);
|
||||
}
|
||||
|
||||
BN_add(m,m,&ahal);
|
||||
BN_add(m,m,&blbh);
|
||||
|
||||
BN_lshift(m,m,n*BN_BITS2);
|
||||
BN_lshift(&blbh,&blbh,n*BN_BITS2*2);
|
||||
|
||||
BN_add(m,m,&ahal);
|
||||
BN_add(m,m,&blbh);
|
||||
|
||||
m->neg=A->neg^B->neg;
|
||||
return(1);
|
||||
}
|
||||
#undef ahal (sk[0])
|
||||
#undef blbh (sk[1])
|
||||
|
||||
#include "bn_low.c"
|
||||
#include "bn_high.c"
|
@ -1,90 +0,0 @@
|
||||
/* crypto/bn/bn_mulw.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 "bn_lcl.h"
|
||||
|
||||
#ifdef BN_LLONG
|
||||
|
||||
ab
|
||||
12
|
||||
a2 b2
|
||||
a1 b1
|
||||
|
||||
abc
|
||||
123
|
||||
a3 b3 c3
|
||||
a2 b2 c2
|
||||
a1 b1 c1
|
||||
|
||||
abcd
|
||||
1234
|
||||
a4 b4 c4 d4
|
||||
a3 b3 c3 d3
|
||||
a2 b2 c2 d2
|
||||
a1 b1 c1 d1
|
||||
|
||||
abcde
|
||||
01234
|
||||
a5 b5 c5 d5 e5
|
||||
a4 b4 c4 d4 e4
|
||||
a3 b3 c3 d3 e3
|
||||
a2 b2 c2 d2 e2
|
||||
a1 b1 c1 d1 e1
|
||||
a0 b0 c0 d0 e0
|
@ -1,135 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "bn_lcl.h"
|
||||
|
||||
#undef BN_MUL_HIGH_DEBUG
|
||||
|
||||
#ifdef BN_MUL_HIGH_DEBUG
|
||||
#define debug_BN_print(a,b,c) BN_print_fp(a,b); printf(c);
|
||||
#else
|
||||
#define debug_BN_print(a,b,c)
|
||||
#endif
|
||||
|
||||
int BN_mul_high(BIGNUM *r,BIGNUM *a,BIGNUM *b,BIGNUM *low, int words);
|
||||
|
||||
#undef t1
|
||||
#undef t2
|
||||
|
||||
int BN_mul_high(BIGNUM *r, BIGNUM *a, BIGNUM *b, BIGNUM *low, int words)
|
||||
{
|
||||
int w2,borrow=0,full=0;
|
||||
BIGNUM t1,t2,t3,h,ah,al,bh,bl,m,s0,s1;
|
||||
BN_ULONG ul1,ul2;
|
||||
|
||||
BN_mul(r,a,b);
|
||||
BN_rshift(r,r,words*BN_BITS2);
|
||||
return(1);
|
||||
|
||||
w2=(words+1)/2;
|
||||
|
||||
#ifdef BN_MUL_HIGH_DEBUG
|
||||
fprintf(stdout,"words=%d w2=%d\n",words,w2);
|
||||
#endif
|
||||
debug_BN_print(stdout,a," a\n");
|
||||
debug_BN_print(stdout,b," b\n");
|
||||
debug_BN_print(stdout,low," low\n");
|
||||
BN_init(&al); BN_init(&ah);
|
||||
BN_init(&bl); BN_init(&bh);
|
||||
BN_init(&t1); BN_init(&t2); BN_init(&t3);
|
||||
BN_init(&s0); BN_init(&s1);
|
||||
BN_init(&h); BN_init(&m);
|
||||
|
||||
bn_set_low (&al,a,w2);
|
||||
bn_set_high(&ah,a,w2);
|
||||
bn_set_low (&bl,b,w2);
|
||||
bn_set_high(&bh,b,w2);
|
||||
|
||||
bn_set_low(&s0,low,w2);
|
||||
bn_set_high(&s1,low,w2);
|
||||
|
||||
debug_BN_print(stdout,&al," al\n");
|
||||
debug_BN_print(stdout,&ah," ah\n");
|
||||
debug_BN_print(stdout,&bl," bl\n");
|
||||
debug_BN_print(stdout,&bh," bh\n");
|
||||
debug_BN_print(stdout,&s0," s0\n");
|
||||
debug_BN_print(stdout,&s1," s1\n");
|
||||
|
||||
/* Calculate (al-ah)*(bh-bl) */
|
||||
BN_sub(&t1,&al,&ah);
|
||||
BN_sub(&t2,&bh,&bl);
|
||||
BN_mul(&m,&t1,&t2);
|
||||
|
||||
/* Calculate ah*bh */
|
||||
BN_mul(&h,&ah,&bh);
|
||||
|
||||
/* s0 == low(al*bl)
|
||||
* s1 == low(ah*bh)+low((al-ah)*(bh-bl))+low(al*bl)+high(al*bl)
|
||||
* We know s0 and s1 so the only unknown is high(al*bl)
|
||||
* high(al*bl) == s1 - low(ah*bh+(al-ah)*(bh-bl)+s0)
|
||||
*/
|
||||
BN_add(&m,&m,&h);
|
||||
BN_add(&t2,&m,&s0);
|
||||
|
||||
debug_BN_print(stdout,&t2," middle value\n");
|
||||
|
||||
/* Quick and dirty mask off of high words */
|
||||
if (w2 < t2.top) t2.top=w2;
|
||||
#if 0
|
||||
bn_set_low(&t3,&t2,w2);
|
||||
#endif
|
||||
|
||||
debug_BN_print(stdout,&t2," low middle value\n");
|
||||
BN_sub(&t1,&s1,&t2);
|
||||
|
||||
if (t1.neg)
|
||||
{
|
||||
debug_BN_print(stdout,&t1," before\n");
|
||||
BN_zero(&t2);
|
||||
BN_set_bit(&t2,w2*BN_BITS2);
|
||||
BN_add(&t1,&t2,&t1);
|
||||
/* BN_mask_bits(&t1,w2*BN_BITS2); */
|
||||
/* if (words < t1.top) t1.top=words; */
|
||||
debug_BN_print(stdout,&t1," after\n");
|
||||
borrow=1;
|
||||
}
|
||||
|
||||
/* XXXXX SPEED THIS UP */
|
||||
/* al*bl == high(al*bl)<<words+s0 */
|
||||
BN_lshift(&t1,&t1,w2*BN_BITS2);
|
||||
BN_add(&t1,&t1,&s0);
|
||||
if (w2*2 < t1.top) t1.top=w2*2; /* This should not happen? */
|
||||
|
||||
/* We now have
|
||||
* al*bl - t1
|
||||
* (al-ah)*(bh-bl)+ah*bh - m
|
||||
* ah*bh - h
|
||||
*/
|
||||
#if 0
|
||||
BN_add(&m,&m,&t1);
|
||||
debug_BN_print(stdout,&t1," s10\n");
|
||||
debug_BN_print(stdout,&m," s21\n");
|
||||
debug_BN_print(stdout,&h," s32\n");
|
||||
BN_lshift(&m,&m,w2*BN_BITS2);
|
||||
BN_lshift(&h,&h,w2*2*BN_BITS2);
|
||||
BN_add(r,&m,&t1);
|
||||
BN_add(r,r,&h);
|
||||
BN_rshift(r,r,w2*2*BN_BITS2);
|
||||
#else
|
||||
BN_add(&m,&m,&t1); /* Do a cmp then +1 if needed? */
|
||||
bn_set_high(&t3,&t1,w2);
|
||||
BN_add(&m,&m,&t3);
|
||||
bn_set_high(&t3,&m,w2);
|
||||
BN_add(r,&h,&t3);
|
||||
#endif
|
||||
|
||||
#ifdef BN_MUL_HIGH_DEBUG
|
||||
printf("carry=%d\n",borrow);
|
||||
#endif
|
||||
debug_BN_print(stdout,r," ret\n");
|
||||
BN_free(&t1); BN_free(&t2);
|
||||
BN_free(&m); BN_free(&h);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,567 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <strings.h>
|
||||
#include "bn_lcl.h"
|
||||
|
||||
/* r is 2*n2 words in size,
|
||||
* a and b are both n2 words in size.
|
||||
* n2 must be a power of 2.
|
||||
* We multiply and return the result.
|
||||
* t must be 2*n2 words in size
|
||||
* We calulate
|
||||
* a[0]*b[0]
|
||||
* a[0]*b[0]+a[1]*b[1]+(a[0]-a[1])*(b[1]-b[0])
|
||||
* a[1]*b[1]
|
||||
*/
|
||||
void bn_mul_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,
|
||||
BN_ULONG *t)
|
||||
{
|
||||
int n=n2/2;
|
||||
int neg,zero,c1,c2;
|
||||
BN_ULONG ln,lo,*p;
|
||||
|
||||
#ifdef BN_COUNT
|
||||
printf(" bn_mul_recursive %d * %d\n",n2,n2);
|
||||
#endif
|
||||
if (n2 <= 8)
|
||||
{
|
||||
if (n2 == 8)
|
||||
bn_mul_comba8(r,a,b);
|
||||
else
|
||||
bn_mul_normal(r,a,n2,b,n2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (n2 < BN_MUL_RECURSIVE_SIZE_NORMAL)
|
||||
{
|
||||
/* This should not happen */
|
||||
/*abort(); */
|
||||
bn_mul_normal(r,a,n2,b,n2);
|
||||
return;
|
||||
}
|
||||
/* r=(a[0]-a[1])*(b[1]-b[0]) */
|
||||
c1=bn_cmp_words(a,&(a[n]),n);
|
||||
c2=bn_cmp_words(&(b[n]),b,n);
|
||||
zero=neg=0;
|
||||
switch (c1*3+c2)
|
||||
{
|
||||
case -4:
|
||||
bn_sub_words(t, &(a[n]),a, n); /* - */
|
||||
bn_sub_words(&(t[n]),b, &(b[n]),n); /* - */
|
||||
break;
|
||||
case -3:
|
||||
zero=1;
|
||||
break;
|
||||
case -2:
|
||||
bn_sub_words(t, &(a[n]),a, n); /* - */
|
||||
bn_sub_words(&(t[n]),&(b[n]),b, n); /* + */
|
||||
neg=1;
|
||||
break;
|
||||
case -1:
|
||||
case 0:
|
||||
case 1:
|
||||
zero=1;
|
||||
break;
|
||||
case 2:
|
||||
bn_sub_words(t, a, &(a[n]),n); /* + */
|
||||
bn_sub_words(&(t[n]),b, &(b[n]),n); /* - */
|
||||
neg=1;
|
||||
break;
|
||||
case 3:
|
||||
zero=1;
|
||||
break;
|
||||
case 4:
|
||||
bn_sub_words(t, a, &(a[n]),n);
|
||||
bn_sub_words(&(t[n]),&(b[n]),b, n);
|
||||
break;
|
||||
}
|
||||
|
||||
if (n == 8)
|
||||
{
|
||||
if (!zero)
|
||||
bn_mul_comba8(&(t[n2]),t,&(t[n]));
|
||||
else
|
||||
memset(&(t[n2]),0,8*sizeof(BN_ULONG));
|
||||
|
||||
bn_mul_comba8(r,a,b);
|
||||
bn_mul_comba8(&(r[n2]),&(a[n]),&(b[n]));
|
||||
}
|
||||
else
|
||||
{
|
||||
p= &(t[n2*2]);
|
||||
if (!zero)
|
||||
bn_mul_recursive(&(t[n2]),t,&(t[n]),n,p);
|
||||
else
|
||||
memset(&(t[n2]),0,n*sizeof(BN_ULONG));
|
||||
bn_mul_recursive(r,a,b,n,p);
|
||||
bn_mul_recursive(&(r[n2]),&(a[n]),&(b[n]),n,p);
|
||||
}
|
||||
|
||||
/* t[32] holds (a[0]-a[1])*(b[1]-b[0]), c1 is the sign
|
||||
* r[10] holds (a[0]*b[0])
|
||||
* r[32] holds (b[1]*b[1])
|
||||
*/
|
||||
|
||||
c1=bn_add_words(t,r,&(r[n2]),n2);
|
||||
|
||||
if (neg) /* if t[32] is negative */
|
||||
{
|
||||
c1-=bn_sub_words(&(t[n2]),t,&(t[n2]),n2);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Might have a carry */
|
||||
c1+=bn_add_words(&(t[n2]),&(t[n2]),t,n2);
|
||||
}
|
||||
|
||||
/* t[32] holds (a[0]-a[1])*(b[1]-b[0])+(a[0]*b[0])+(a[1]*b[1])
|
||||
* r[10] holds (a[0]*b[0])
|
||||
* r[32] holds (b[1]*b[1])
|
||||
* c1 holds the carry bits
|
||||
*/
|
||||
c1+=bn_add_words(&(r[n]),&(r[n]),&(t[n2]),n2);
|
||||
if (c1)
|
||||
{
|
||||
p= &(r[n+n2]);
|
||||
lo= *p;
|
||||
ln=(lo+c1)&BN_MASK2;
|
||||
*p=ln;
|
||||
|
||||
/* The overflow will stop before we over write
|
||||
* words we should not overwrite */
|
||||
if (ln < c1)
|
||||
{
|
||||
do {
|
||||
p++;
|
||||
lo= *p;
|
||||
ln=(lo+1)&BN_MASK2;
|
||||
*p=ln;
|
||||
} while (ln == 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* n+tn is the word length
|
||||
* t needs to be n*4 is size, as does r */
|
||||
void bn_mul_part_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int tn,
|
||||
int n, BN_ULONG *t)
|
||||
{
|
||||
int n2=n*2,i,j;
|
||||
int c1;
|
||||
BN_ULONG ln,lo,*p;
|
||||
|
||||
#ifdef BN_COUNT
|
||||
printf(" bn_mul_part_recursive %d * %d\n",tn+n,tn+n);
|
||||
#endif
|
||||
if (n < 8)
|
||||
{
|
||||
i=tn+n;
|
||||
bn_mul_normal(r,a,i,b,i);
|
||||
return;
|
||||
}
|
||||
|
||||
/* r=(a[0]-a[1])*(b[1]-b[0]) */
|
||||
bn_sub_words(t, a, &(a[n]),n); /* + */
|
||||
bn_sub_words(&(t[n]),b, &(b[n]),n); /* - */
|
||||
|
||||
if (n == 8)
|
||||
{
|
||||
bn_mul_comba8(&(t[n2]),t,&(t[n]));
|
||||
bn_mul_comba8(r,a,b);
|
||||
bn_mul_normal(&(r[n2]),&(a[n]),tn,&(b[n]),tn);
|
||||
memset(&(r[n2+tn*2]),0,sizeof(BN_ULONG)*(n2-tn*2));
|
||||
}
|
||||
else
|
||||
{
|
||||
p= &(t[n2*2]);
|
||||
bn_mul_recursive(&(t[n2]),t,&(t[n]),n,p);
|
||||
bn_mul_recursive(r,a,b,n,p);
|
||||
i=n/2;
|
||||
/* If there is only a bottom half to the number,
|
||||
* just do it */
|
||||
j=tn-i;
|
||||
if (j == 0)
|
||||
{
|
||||
bn_mul_recursive(&(r[n2]),&(a[n]),&(b[n]),i,p);
|
||||
memset(&(r[n2+i*2]),0,sizeof(BN_ULONG)*(n2-i*2));
|
||||
}
|
||||
else if (j > 0) /* eg, n == 16, i == 8 and tn == 11 */
|
||||
{
|
||||
bn_mul_part_recursive(&(r[n2]),&(a[n]),&(b[n]),
|
||||
j,i,p);
|
||||
memset(&(r[n2+tn*2]),0,
|
||||
sizeof(BN_ULONG)*(n2-tn*2));
|
||||
}
|
||||
else /* (j < 0) eg, n == 16, i == 8 and tn == 5 */
|
||||
{
|
||||
memset(&(r[n2]),0,sizeof(BN_ULONG)*(tn*2));
|
||||
for (;;)
|
||||
{
|
||||
i/=2;
|
||||
if (i < tn)
|
||||
{
|
||||
bn_mul_part_recursive(&(r[n2]),
|
||||
&(a[n]),&(b[n]),
|
||||
tn-i,i,p);
|
||||
break;
|
||||
}
|
||||
else if (i == tn)
|
||||
{
|
||||
bn_mul_recursive(&(r[n2]),
|
||||
&(a[n]),&(b[n]),
|
||||
i,p);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* t[32] holds (a[0]-a[1])*(b[1]-b[0]), c1 is the sign
|
||||
* r[10] holds (a[0]*b[0])
|
||||
* r[32] holds (b[1]*b[1])
|
||||
*/
|
||||
|
||||
c1=bn_add_words(t,r,&(r[n2]),n2);
|
||||
c1-=bn_sub_words(&(t[n2]),t,&(t[n2]),n2);
|
||||
|
||||
/* t[32] holds (a[0]-a[1])*(b[1]-b[0])+(a[0]*b[0])+(a[1]*b[1])
|
||||
* r[10] holds (a[0]*b[0])
|
||||
* r[32] holds (b[1]*b[1])
|
||||
* c1 holds the carry bits
|
||||
*/
|
||||
c1+=bn_add_words(&(r[n]),&(r[n]),&(t[n2]),n2);
|
||||
if (c1)
|
||||
{
|
||||
p= &(r[n+n2]);
|
||||
lo= *p;
|
||||
ln=(lo+c1)&BN_MASK2;
|
||||
*p=ln;
|
||||
|
||||
/* The overflow will stop before we over write
|
||||
* words we should not overwrite */
|
||||
if (ln < c1)
|
||||
{
|
||||
do {
|
||||
p++;
|
||||
lo= *p;
|
||||
ln=(lo+1)&BN_MASK2;
|
||||
*p=ln;
|
||||
} while (ln == 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* r is 2*n words in size,
|
||||
* a and b are both n words in size.
|
||||
* n must be a power of 2.
|
||||
* We multiply and return the result.
|
||||
* t must be 2*n words in size
|
||||
* We calulate
|
||||
* a[0]*b[0]
|
||||
* a[0]*b[0]+a[1]*b[1]+(a[0]-a[1])*(b[1]-b[0])
|
||||
* a[1]*b[1]
|
||||
*/
|
||||
void bn_sqr_recursive(BN_ULONG *r, BN_ULONG *a, int n2, BN_ULONG *t)
|
||||
{
|
||||
int n=n2/2;
|
||||
int zero,c1;
|
||||
BN_ULONG ln,lo,*p;
|
||||
|
||||
#ifdef BN_COUNT
|
||||
printf(" bn_sqr_recursive %d * %d\n",n2,n2);
|
||||
#endif
|
||||
if (n2 == 4)
|
||||
{
|
||||
bn_sqr_comba4(r,a);
|
||||
return;
|
||||
}
|
||||
else if (n2 == 8)
|
||||
{
|
||||
bn_sqr_comba8(r,a);
|
||||
return;
|
||||
}
|
||||
if (n2 < BN_SQR_RECURSIVE_SIZE_NORMAL)
|
||||
{
|
||||
bn_sqr_normal(r,a,n2,t);
|
||||
return;
|
||||
abort();
|
||||
}
|
||||
/* r=(a[0]-a[1])*(a[1]-a[0]) */
|
||||
c1=bn_cmp_words(a,&(a[n]),n);
|
||||
zero=0;
|
||||
if (c1 > 0)
|
||||
bn_sub_words(t,a,&(a[n]),n);
|
||||
else if (c1 < 0)
|
||||
bn_sub_words(t,&(a[n]),a,n);
|
||||
else
|
||||
zero=1;
|
||||
|
||||
/* The result will always be negative unless it is zero */
|
||||
|
||||
if (n == 8)
|
||||
{
|
||||
if (!zero)
|
||||
bn_sqr_comba8(&(t[n2]),t);
|
||||
else
|
||||
memset(&(t[n2]),0,8*sizeof(BN_ULONG));
|
||||
|
||||
bn_sqr_comba8(r,a);
|
||||
bn_sqr_comba8(&(r[n2]),&(a[n]));
|
||||
}
|
||||
else
|
||||
{
|
||||
p= &(t[n2*2]);
|
||||
if (!zero)
|
||||
bn_sqr_recursive(&(t[n2]),t,n,p);
|
||||
else
|
||||
memset(&(t[n2]),0,n*sizeof(BN_ULONG));
|
||||
bn_sqr_recursive(r,a,n,p);
|
||||
bn_sqr_recursive(&(r[n2]),&(a[n]),n,p);
|
||||
}
|
||||
|
||||
/* t[32] holds (a[0]-a[1])*(a[1]-a[0]), it is negative or zero
|
||||
* r[10] holds (a[0]*b[0])
|
||||
* r[32] holds (b[1]*b[1])
|
||||
*/
|
||||
|
||||
c1=bn_add_words(t,r,&(r[n2]),n2);
|
||||
|
||||
/* t[32] is negative */
|
||||
c1-=bn_sub_words(&(t[n2]),t,&(t[n2]),n2);
|
||||
|
||||
/* t[32] holds (a[0]-a[1])*(a[1]-a[0])+(a[0]*a[0])+(a[1]*a[1])
|
||||
* r[10] holds (a[0]*a[0])
|
||||
* r[32] holds (a[1]*a[1])
|
||||
* c1 holds the carry bits
|
||||
*/
|
||||
c1+=bn_add_words(&(r[n]),&(r[n]),&(t[n2]),n2);
|
||||
if (c1)
|
||||
{
|
||||
p= &(r[n+n2]);
|
||||
lo= *p;
|
||||
ln=(lo+c1)&BN_MASK2;
|
||||
*p=ln;
|
||||
|
||||
/* The overflow will stop before we over write
|
||||
* words we should not overwrite */
|
||||
if (ln < c1)
|
||||
{
|
||||
do {
|
||||
p++;
|
||||
lo= *p;
|
||||
ln=(lo+1)&BN_MASK2;
|
||||
*p=ln;
|
||||
} while (ln == 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if 1
|
||||
/* a and b must be the same size, which is n2.
|
||||
* r needs to be n2 words and t needs to be n2*2
|
||||
*/
|
||||
void bn_mul_low_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,
|
||||
BN_ULONG *t)
|
||||
{
|
||||
int n=n2/2;
|
||||
|
||||
#ifdef BN_COUNT
|
||||
printf(" bn_mul_low_recursive %d * %d\n",n2,n2);
|
||||
#endif
|
||||
|
||||
bn_mul_recursive(r,a,b,n,&(t[0]));
|
||||
if (n > BN_MUL_LOW_RECURSIVE_SIZE_NORMAL)
|
||||
{
|
||||
bn_mul_low_recursive(&(t[0]),&(a[0]),&(b[n]),n,&(t[n2]));
|
||||
bn_add_words(&(r[n]),&(r[n]),&(t[0]),n);
|
||||
bn_mul_low_recursive(&(t[0]),&(a[n]),&(b[0]),n,&(t[n2]));
|
||||
bn_add_words(&(r[n]),&(r[n]),&(t[0]),n);
|
||||
}
|
||||
else
|
||||
{
|
||||
bn_mul_low_normal(&(t[0]),&(a[0]),&(b[n]),n);
|
||||
bn_mul_low_normal(&(t[n]),&(a[n]),&(b[0]),n);
|
||||
bn_add_words(&(r[n]),&(r[n]),&(t[0]),n);
|
||||
bn_add_words(&(r[n]),&(r[n]),&(t[n]),n);
|
||||
}
|
||||
}
|
||||
|
||||
/* a and b must be the same size, which is n2.
|
||||
* r needs to be n2 words and t needs to be n2*2
|
||||
* l is the low words of the output.
|
||||
* t needs to be n2*3
|
||||
*/
|
||||
void bn_mul_high(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, BN_ULONG *l, int n2,
|
||||
BN_ULONG *t)
|
||||
{
|
||||
int j,i,n,c1,c2;
|
||||
int neg,oneg,zero;
|
||||
BN_ULONG ll,lc,*lp,*mp;
|
||||
|
||||
#ifdef BN_COUNT
|
||||
printf(" bn_mul_high %d * %d\n",n2,n2);
|
||||
#endif
|
||||
n=(n2+1)/2;
|
||||
|
||||
/* Calculate (al-ah)*(bh-bl) */
|
||||
neg=zero=0;
|
||||
c1=bn_cmp_words(&(a[0]),&(a[n]),n);
|
||||
c2=bn_cmp_words(&(b[n]),&(b[0]),n);
|
||||
switch (c1*3+c2)
|
||||
{
|
||||
case -4:
|
||||
bn_sub_words(&(r[0]),&(a[n]),&(a[0]),n);
|
||||
bn_sub_words(&(r[n]),&(b[0]),&(b[n]),n);
|
||||
break;
|
||||
case -3:
|
||||
zero=1;
|
||||
break;
|
||||
case -2:
|
||||
bn_sub_words(&(r[0]),&(a[n]),&(a[0]),n);
|
||||
bn_sub_words(&(r[n]),&(b[n]),&(b[0]),n);
|
||||
neg=1;
|
||||
break;
|
||||
case -1:
|
||||
case 0:
|
||||
case 1:
|
||||
zero=1;
|
||||
break;
|
||||
case 2:
|
||||
bn_sub_words(&(r[0]),&(a[0]),&(a[n]),n);
|
||||
bn_sub_words(&(r[n]),&(b[0]),&(b[n]),n);
|
||||
neg=1;
|
||||
break;
|
||||
case 3:
|
||||
zero=1;
|
||||
break;
|
||||
case 4:
|
||||
bn_sub_words(&(r[0]),&(a[0]),&(a[n]),n);
|
||||
bn_sub_words(&(r[n]),&(b[n]),&(b[0]),n);
|
||||
break;
|
||||
}
|
||||
|
||||
oneg=neg;
|
||||
/* t[10] = (a[0]-a[1])*(b[1]-b[0]) */
|
||||
bn_mul_recursive(&(t[0]),&(r[0]),&(r[n]),n,&(t[n2]));
|
||||
/* r[10] = (a[1]*b[1]) */
|
||||
bn_mul_recursive(r,&(a[n]),&(b[n]),n,&(t[n2]));
|
||||
|
||||
/* s0 == low(al*bl)
|
||||
* s1 == low(ah*bh)+low((al-ah)*(bh-bl))+low(al*bl)+high(al*bl)
|
||||
* We know s0 and s1 so the only unknown is high(al*bl)
|
||||
* high(al*bl) == s1 - low(ah*bh+s0+(al-ah)*(bh-bl))
|
||||
* high(al*bl) == s1 - (r[0]+l[0]+t[0])
|
||||
*/
|
||||
if (l != NULL)
|
||||
{
|
||||
lp= &(t[n2+n]);
|
||||
c1=bn_add_words(lp,&(r[0]),&(l[0]),n);
|
||||
}
|
||||
else
|
||||
{
|
||||
c1=0;
|
||||
lp= &(r[0]);
|
||||
}
|
||||
|
||||
if (neg)
|
||||
neg=bn_sub_words(&(t[n2]),lp,&(t[0]),n);
|
||||
else
|
||||
{
|
||||
bn_add_words(&(t[n2]),lp,&(t[0]),n);
|
||||
neg=0;
|
||||
}
|
||||
|
||||
if (l != NULL)
|
||||
{
|
||||
bn_sub_words(&(t[n2+n]),&(l[n]),&(t[n2]),n);
|
||||
}
|
||||
else
|
||||
{
|
||||
lp= &(t[n2+n]);
|
||||
mp= &(t[n2]);
|
||||
for (i=0; i<n; i++)
|
||||
lp[i]=((~mp[i])+1)&BN_MASK2;
|
||||
}
|
||||
|
||||
/* s[0] = low(al*bl)
|
||||
* t[3] = high(al*bl)
|
||||
* t[10] = (a[0]-a[1])*(b[1]-b[0]) neg is the sign
|
||||
* r[10] = (a[1]*b[1])
|
||||
*/
|
||||
/* R[10] = al*bl
|
||||
* R[21] = al*bl + ah*bh + (a[0]-a[1])*(b[1]-b[0])
|
||||
* R[32] = ah*bh
|
||||
*/
|
||||
/* R[1]=t[3]+l[0]+r[0](+-)t[0] (have carry/borrow)
|
||||
* R[2]=r[0]+t[3]+r[1](+-)t[1] (have carry/borrow)
|
||||
* R[3]=r[1]+(carry/borrow)
|
||||
*/
|
||||
if (l != NULL)
|
||||
{
|
||||
lp= &(t[n2]);
|
||||
c1= bn_add_words(lp,&(t[n2+n]),&(l[0]),n);
|
||||
}
|
||||
else
|
||||
{
|
||||
lp= &(t[n2+n]);
|
||||
c1=0;
|
||||
}
|
||||
c1+=bn_add_words(&(t[n2]),lp, &(r[0]),n);
|
||||
if (oneg)
|
||||
c1-=bn_sub_words(&(t[n2]),&(t[n2]),&(t[0]),n);
|
||||
else
|
||||
c1+=bn_add_words(&(t[n2]),&(t[n2]),&(t[0]),n);
|
||||
|
||||
c2 =bn_add_words(&(r[0]),&(r[0]),&(t[n2+n]),n);
|
||||
c2+=bn_add_words(&(r[0]),&(r[0]),&(r[n]),n);
|
||||
if (oneg)
|
||||
c2-=bn_sub_words(&(r[0]),&(r[0]),&(t[n]),n);
|
||||
else
|
||||
c2+=bn_add_words(&(r[0]),&(r[0]),&(t[n]),n);
|
||||
|
||||
if (c1 != 0) /* Add starting at r[0], could be +ve or -ve */
|
||||
{
|
||||
i=0;
|
||||
if (c1 > 0)
|
||||
{
|
||||
lc=c1;
|
||||
do {
|
||||
ll=(r[i]+lc)&BN_MASK2;
|
||||
r[i++]=ll;
|
||||
lc=(lc > ll);
|
||||
} while (lc);
|
||||
}
|
||||
else
|
||||
{
|
||||
lc= -c1;
|
||||
do {
|
||||
ll=r[i];
|
||||
r[i++]=(ll-lc)&BN_MASK2;
|
||||
lc=(lc > ll);
|
||||
} while (lc);
|
||||
}
|
||||
}
|
||||
if (c2 != 0) /* Add starting at r[1] */
|
||||
{
|
||||
i=n;
|
||||
if (c2 > 0)
|
||||
{
|
||||
lc=c2;
|
||||
do {
|
||||
ll=(r[i]+lc)&BN_MASK2;
|
||||
r[i++]=ll;
|
||||
lc=(lc > ll);
|
||||
} while (lc);
|
||||
}
|
||||
else
|
||||
{
|
||||
lc= -c2;
|
||||
do {
|
||||
ll=r[i];
|
||||
r[i++]=(ll-lc)&BN_MASK2;
|
||||
lc=(lc > ll);
|
||||
} while (lc);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
@ -1,194 +0,0 @@
|
||||
/* crypto/bn/bn_mul.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 "bn_lcl.h"
|
||||
|
||||
static int bn_mm_low(BIGNUM *m,BIGNUM *A,BIGNUM *B, int num,
|
||||
BIGNUM *sk,BN_CTX *ctx);
|
||||
int BN_mul_low(BIGNUM *r, BIGNUM *a, BIGNUM *b,int words);
|
||||
|
||||
/* r must be different to a and b */
|
||||
int BN_mul_low(BIGNUM *r, BIGNUM *a, BIGNUM *b, int num)
|
||||
{
|
||||
BN_ULONG *ap,*bp,*rp;
|
||||
BIGNUM *sk;
|
||||
int j,i,n,ret;
|
||||
int max,al,bl;
|
||||
BN_CTX ctx;
|
||||
|
||||
bn_check_top(a);
|
||||
bn_check_top(b);
|
||||
|
||||
#ifdef BN_MUL_DEBUG
|
||||
printf("BN_mul_low(%d,%d,%d)\n",a->top,b->top,num);
|
||||
#endif
|
||||
|
||||
al=a->top;
|
||||
bl=b->top;
|
||||
if ((al == 0) || (bl == 0))
|
||||
{
|
||||
r->top=0;
|
||||
return(1);
|
||||
}
|
||||
|
||||
if ((bn_limit_bits_low > 0) && (num > bn_limit_num_low))
|
||||
{
|
||||
n=BN_num_bits_word(num*2)-bn_limit_bits_low;
|
||||
n*=2;
|
||||
sk=(BIGNUM *)Malloc(sizeof(BIGNUM)*n);
|
||||
memset(sk,0,sizeof(BIGNUM)*n);
|
||||
memset(&ctx,0,sizeof(ctx));
|
||||
|
||||
ret=bn_mm_low(r,a,b,num,&(sk[0]),&ctx);
|
||||
for (i=0; i<n; i+=2)
|
||||
{
|
||||
BN_clear_free(&sk[i]);
|
||||
BN_clear_free(&sk[i+1]);
|
||||
}
|
||||
Free(sk);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
max=(al+bl);
|
||||
if (bn_wexpand(r,max) == NULL) return(0);
|
||||
r->neg=a->neg^b->neg;
|
||||
ap=a->d;
|
||||
bp=b->d;
|
||||
rp=r->d;
|
||||
r->top=(max > num)?num:max;
|
||||
|
||||
rp[al]=bn_mul_words(rp,ap,al,*(bp++));
|
||||
rp++;
|
||||
j=bl;
|
||||
for (i=1; i<j; i++)
|
||||
{
|
||||
if (al >= num--)
|
||||
{
|
||||
al--;
|
||||
if (al <= 0) break;
|
||||
}
|
||||
rp[al]=bn_mul_add_words(rp,ap,al,*(bp++));
|
||||
rp++;
|
||||
}
|
||||
|
||||
while ((r->top > 0) && (r->d[r->top-1] == 0))
|
||||
r->top--;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
#define t1 (sk[0])
|
||||
#define t2 (sk[1])
|
||||
|
||||
/* r must be different to a and b */
|
||||
int bn_mm_low(BIGNUM *m, BIGNUM *A, BIGNUM *B, int num, BIGNUM *sk,
|
||||
BN_CTX *ctx)
|
||||
{
|
||||
int n; /* ,sqr=0; */
|
||||
int an,bn;
|
||||
BIGNUM ah,al,bh,bl;
|
||||
|
||||
bn_wexpand(m,num+3);
|
||||
an=A->top;
|
||||
bn=B->top;
|
||||
|
||||
#ifdef BN_MUL_DEBUG
|
||||
printf("bn_mm_low(%d,%d,%d)\n",A->top,B->top,num);
|
||||
#endif
|
||||
|
||||
n=(num+1)/2;
|
||||
|
||||
BN_init(&ah); BN_init(&al); BN_init(&bh); BN_init(&bl);
|
||||
|
||||
bn_set_low( &al,A,n);
|
||||
bn_set_high(&ah,A,n);
|
||||
bn_set_low( &bl,B,n);
|
||||
bn_set_high(&bh,B,n);
|
||||
|
||||
if (num <= (bn_limit_num_low+bn_limit_num_low))
|
||||
{
|
||||
BN_mul(m,&al,&bl);
|
||||
BN_mul_low(&t1,&al,&bh,n);
|
||||
BN_mul_low(&t2,&ah,&bl,n);
|
||||
}
|
||||
else
|
||||
{
|
||||
bn_mm(m ,&al,&bl,&(sk[2]),ctx);
|
||||
bn_mm_low(&t1,&al,&bh,n,&(sk[2]),ctx);
|
||||
bn_mm_low(&t2,&ah,&bl,n,&(sk[2]),ctx);
|
||||
}
|
||||
|
||||
BN_add(&t1,&t1,&t2);
|
||||
|
||||
/* We will now do an evil hack instead of
|
||||
* BN_lshift(&t1,&t1,n*BN_BITS2);
|
||||
* BN_add(m,m,&t1);
|
||||
* BN_mask_bits(m,num*BN_BITS2);
|
||||
*/
|
||||
bn_set_high(&ah,m,n); ah.max=num+2;
|
||||
BN_add(&ah,&ah,&t1);
|
||||
m->top=num;
|
||||
|
||||
m->neg=A->neg^B->neg;
|
||||
return(1);
|
||||
}
|
||||
|
||||
#undef t1 (sk[0])
|
||||
#undef t2 (sk[1])
|
@ -1,139 +0,0 @@
|
||||
/* crypto/bn/bn_m.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 "bn_lcl.h"
|
||||
|
||||
#define limit_bits 5 /* 2^5, or 32 words */
|
||||
#define limit_num (1<<limit_bits)
|
||||
|
||||
int BN_m(BIGNUM *r, BIGNUM *a, BIGNUM *b)
|
||||
{
|
||||
BIGNUM *sk;
|
||||
int i,n;
|
||||
|
||||
n=(BN_num_bits_word(a->top|b->top)-limit_bits);
|
||||
n*=2;
|
||||
sk=(BIGNUM *)malloc(sizeof(BIGNUM)*n);
|
||||
for (i=0; i<n; i++)
|
||||
BN_init(&(sk[i]));
|
||||
|
||||
return(BN_mm(r,a,b,&(sk[0])));
|
||||
}
|
||||
|
||||
#define ahal (sk[0])
|
||||
#define blbh (sk[1])
|
||||
|
||||
/* r must be different to a and b */
|
||||
int BN_mm(BIGNUM *m, BIGNUM *A, BIGNUM *B, BIGNUM *sk)
|
||||
{
|
||||
int i,num,anum,bnum;
|
||||
int an,bn;
|
||||
BIGNUM ah,al,bh,bl;
|
||||
|
||||
an=A->top;
|
||||
bn=B->top;
|
||||
if ((an <= limit_num) || (bn <= limit_num))
|
||||
{
|
||||
return(BN_mul(m,A,B));
|
||||
}
|
||||
|
||||
anum=(an>bn)?an:bn;
|
||||
num=(anum)/2;
|
||||
|
||||
/* Are going to now chop things into 'num' word chunks. */
|
||||
bnum=num*BN_BITS2;
|
||||
|
||||
BN_init(&ahal);
|
||||
BN_init(&blbh);
|
||||
BN_init(&ah);
|
||||
BN_init(&al);
|
||||
BN_init(&bh);
|
||||
BN_init(&bl);
|
||||
|
||||
al.top=num;
|
||||
al.d=A->d;
|
||||
ah.top=A->top-num;
|
||||
ah.d= &(A->d[num]);
|
||||
|
||||
bl.top=num;
|
||||
bl.d=B->d;
|
||||
bh.top=B->top-num;
|
||||
bh.d= &(B->d[num]);
|
||||
|
||||
BN_sub(&ahal,&ah,&al);
|
||||
BN_sub(&blbh,&bl,&bh);
|
||||
|
||||
BN_mm(m,&ahal,&blbh,&(sk[2]));
|
||||
BN_mm(&ahal,&al,&bl,&(sk[2]));
|
||||
BN_mm(&blbh,&ah,&bh,&(sk[2]));
|
||||
|
||||
BN_add(m,m,&ahal);
|
||||
BN_add(m,m,&blbh);
|
||||
|
||||
BN_lshift(m,m,bnum);
|
||||
BN_add(m,m,&ahal);
|
||||
|
||||
BN_lshift(&blbh,&blbh,bnum*2);
|
||||
BN_add(m,m,&blbh);
|
||||
|
||||
m->neg=A->neg^B->neg;
|
||||
return(1);
|
||||
}
|
||||
|
@ -1,219 +0,0 @@
|
||||
/* crypto/bn/bn_mul.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 "bn_lcl.h"
|
||||
|
||||
int bn_mm(BIGNUM *m,BIGNUM *A,BIGNUM *B, BIGNUM *sk,BN_CTX *ctx);
|
||||
|
||||
/* r must be different to a and b */
|
||||
int BN_mul(r, a, b)
|
||||
BIGNUM *r;
|
||||
BIGNUM *a;
|
||||
BIGNUM *b;
|
||||
{
|
||||
BN_ULONG *ap,*bp,*rp;
|
||||
BIGNUM *sk;
|
||||
int i,n,ret;
|
||||
int max,al,bl;
|
||||
BN_CTX ctx;
|
||||
|
||||
bn_check_top(a);
|
||||
bn_check_top(b);
|
||||
|
||||
al=a->top;
|
||||
bl=b->top;
|
||||
if ((al == 0) || (bl == 0))
|
||||
{
|
||||
r->top=0;
|
||||
return(1);
|
||||
}
|
||||
#ifdef BN_MUL_DEBUG
|
||||
printf("BN_mul(%d,%d)\n",a->top,b->top);
|
||||
#endif
|
||||
|
||||
#ifdef BN_RECURSION
|
||||
if ( (bn_limit_bits > 0) &&
|
||||
(bl > bn_limit_num) && (al > bn_limit_num))
|
||||
{
|
||||
n=(BN_num_bits_word(al|bl)-bn_limit_bits);
|
||||
n*=2;
|
||||
sk=(BIGNUM *)Malloc(sizeof(BIGNUM)*n);
|
||||
memset(sk,0,sizeof(BIGNUM)*n);
|
||||
memset(&ctx,0,sizeof(ctx));
|
||||
|
||||
ret=bn_mm(r,a,b,&(sk[0]),&ctx);
|
||||
for (i=0; i<n; i+=2)
|
||||
{
|
||||
BN_clear_free(&sk[i]);
|
||||
BN_clear_free(&sk[i+1]);
|
||||
}
|
||||
Free(sk);
|
||||
return(ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
max=(al+bl);
|
||||
if (bn_wexpand(r,max) == NULL) return(0);
|
||||
r->top=max;
|
||||
r->neg=a->neg^b->neg;
|
||||
ap=a->d;
|
||||
bp=b->d;
|
||||
rp=r->d;
|
||||
|
||||
#ifdef BN_RECURSION
|
||||
if ((al == bl) && (al == 8))
|
||||
{
|
||||
bn_mul_comba8(rp,ap,bp);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
rp[al]=bn_mul_words(rp,ap,al,*(bp++));
|
||||
rp++;
|
||||
for (i=1; i<bl; i++)
|
||||
{
|
||||
rp[al]=bn_mul_add_words(rp,ap,al,*(bp++));
|
||||
rp++;
|
||||
}
|
||||
}
|
||||
if ((max > 0) && (r->d[max-1] == 0)) r->top--;
|
||||
return(1);
|
||||
}
|
||||
|
||||
#ifdef BN_RECURSION
|
||||
|
||||
#define ahal (sk[0])
|
||||
#define blbh (sk[1])
|
||||
|
||||
/* r must be different to a and b */
|
||||
int bn_mm(m, A, B, sk,ctx)
|
||||
BIGNUM *m,*A,*B;
|
||||
BIGNUM *sk;
|
||||
BN_CTX *ctx;
|
||||
{
|
||||
int n,num,sqr=0;
|
||||
int an,bn;
|
||||
BIGNUM ah,al,bh,bl;
|
||||
|
||||
an=A->top;
|
||||
bn=B->top;
|
||||
#ifdef BN_MUL_DEBUG
|
||||
printf("bn_mm(%d,%d)\n",A->top,B->top);
|
||||
#endif
|
||||
|
||||
if (A == B) sqr=1;
|
||||
num=(an>bn)?an:bn;
|
||||
n=(num+1)/2;
|
||||
/* Are going to now chop things into 'num' word chunks. */
|
||||
|
||||
BN_init(&ah);
|
||||
BN_init(&al);
|
||||
BN_init(&bh);
|
||||
BN_init(&bl);
|
||||
|
||||
bn_set_low (&al,A,n);
|
||||
bn_set_high(&ah,A,n);
|
||||
bn_set_low (&bl,B,n);
|
||||
bn_set_high(&bh,B,n);
|
||||
|
||||
BN_sub(&ahal,&ah,&al);
|
||||
BN_sub(&blbh,&bl,&bh);
|
||||
|
||||
if (num <= (bn_limit_num+bn_limit_num))
|
||||
{
|
||||
BN_mul(m,&ahal,&blbh);
|
||||
if (sqr)
|
||||
{
|
||||
BN_sqr(&ahal,&al,ctx);
|
||||
BN_sqr(&blbh,&ah,ctx);
|
||||
}
|
||||
else
|
||||
{
|
||||
BN_mul(&ahal,&al,&bl);
|
||||
BN_mul(&blbh,&ah,&bh);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bn_mm(m,&ahal,&blbh,&(sk[2]),ctx);
|
||||
bn_mm(&ahal,&al,&bl,&(sk[2]),ctx);
|
||||
bn_mm(&blbh,&ah,&bh,&(sk[2]),ctx);
|
||||
}
|
||||
|
||||
BN_add(m,m,&ahal);
|
||||
BN_add(m,m,&blbh);
|
||||
|
||||
BN_lshift(m,m,n*BN_BITS2);
|
||||
BN_lshift(&blbh,&blbh,n*BN_BITS2*2);
|
||||
|
||||
BN_add(m,m,&ahal);
|
||||
BN_add(m,m,&blbh);
|
||||
|
||||
m->neg=A->neg^B->neg;
|
||||
return(1);
|
||||
}
|
||||
#undef ahal (sk[0])
|
||||
#undef blbh (sk[1])
|
||||
|
||||
#include "bn_low.c"
|
||||
#include "bn_high.c"
|
||||
#include "f.c"
|
||||
|
||||
#endif
|
@ -1,173 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include "bn_lcl.h"
|
||||
|
||||
#if 1
|
||||
|
||||
int bn_mull(BIGNUM *r,BIGNUM *a,BIGNUM *b, BN_CTX *ctx);
|
||||
|
||||
int bn_mull(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx)
|
||||
{
|
||||
int top,i,j,k,al,bl;
|
||||
BIGNUM *t;
|
||||
|
||||
#ifdef BN_COUNT
|
||||
printf("bn_mull %d * %d\n",a->top,b->top);
|
||||
#endif
|
||||
|
||||
bn_check_top(a);
|
||||
bn_check_top(b);
|
||||
bn_check_top(r);
|
||||
|
||||
al=a->top;
|
||||
bl=b->top;
|
||||
r->neg=a->neg^b->neg;
|
||||
|
||||
top=al+bl;
|
||||
if ((al < 4) || (bl < 4))
|
||||
{
|
||||
if (bn_wexpand(r,top) == NULL) return(0);
|
||||
r->top=top;
|
||||
bn_mul_normal(r->d,a->d,al,b->d,bl);
|
||||
goto end;
|
||||
}
|
||||
else if (al == bl) /* A good start, they are the same size */
|
||||
goto symetric;
|
||||
else
|
||||
{
|
||||
i=(al-bl);
|
||||
if ((i == 1) && !BN_get_flags(b,BN_FLG_STATIC_DATA))
|
||||
{
|
||||
bn_wexpand(b,al);
|
||||
b->d[bl]=0;
|
||||
bl++;
|
||||
goto symetric;
|
||||
}
|
||||
else if ((i == -1) && !BN_get_flags(a,BN_FLG_STATIC_DATA))
|
||||
{
|
||||
bn_wexpand(a,bl);
|
||||
a->d[al]=0;
|
||||
al++;
|
||||
goto symetric;
|
||||
}
|
||||
}
|
||||
|
||||
/* asymetric and >= 4 */
|
||||
if (bn_wexpand(r,top) == NULL) return(0);
|
||||
r->top=top;
|
||||
bn_mul_normal(r->d,a->d,al,b->d,bl);
|
||||
|
||||
if (0)
|
||||
{
|
||||
/* symetric and > 4 */
|
||||
symetric:
|
||||
if (al == 4)
|
||||
{
|
||||
if (bn_wexpand(r,al*2) == NULL) return(0);
|
||||
r->top=top;
|
||||
bn_mul_comba4(r->d,a->d,b->d);
|
||||
goto end;
|
||||
}
|
||||
if (al == 8)
|
||||
{
|
||||
if (bn_wexpand(r,al*2) == NULL) return(0);
|
||||
r->top=top;
|
||||
bn_mul_comba8(r->d,a->d,b->d);
|
||||
goto end;
|
||||
}
|
||||
if (al <= BN_MULL_NORMAL_SIZE)
|
||||
{
|
||||
if (bn_wexpand(r,al*2) == NULL) return(0);
|
||||
r->top=top;
|
||||
bn_mul_normal(r->d,a->d,al,b->d,bl);
|
||||
goto end;
|
||||
}
|
||||
/* 16 or larger */
|
||||
j=BN_num_bits_word((BN_ULONG)al);
|
||||
j=1<<(j-1);
|
||||
k=j+j;
|
||||
t= &(ctx->bn[ctx->tos]);
|
||||
if (al == j) /* exact multiple */
|
||||
{
|
||||
bn_wexpand(t,k*2);
|
||||
bn_wexpand(r,k*2);
|
||||
bn_mul_recursive(r->d,a->d,b->d,al,t->d);
|
||||
}
|
||||
else
|
||||
{
|
||||
bn_wexpand(a,k);
|
||||
bn_wexpand(b,k);
|
||||
bn_wexpand(t,k*4);
|
||||
bn_wexpand(r,k*4);
|
||||
for (i=a->top; i<k; i++)
|
||||
a->d[i]=0;
|
||||
for (i=b->top; i<k; i++)
|
||||
b->d[i]=0;
|
||||
bn_mul_part_recursive(r->d,a->d,b->d,al-j,j,t->d);
|
||||
}
|
||||
r->top=top;
|
||||
}
|
||||
end:
|
||||
bn_fix_top(r);
|
||||
return(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
void bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, int nb)
|
||||
{
|
||||
BN_ULONG *rr;
|
||||
|
||||
#ifdef BN_COUNT
|
||||
printf(" bn_mul_normal %d * %d\n",na,nb);
|
||||
#endif
|
||||
|
||||
if (na < nb)
|
||||
{
|
||||
int itmp;
|
||||
BN_ULONG *ltmp;
|
||||
|
||||
itmp=na; na=nb; nb=itmp;
|
||||
ltmp=a; a=b; b=ltmp;
|
||||
|
||||
}
|
||||
rr= &(r[na]);
|
||||
rr[0]=bn_mul_words(r,a,na,b[0]);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if (--nb <= 0) return;
|
||||
rr[1]=bn_mul_add_words(&(r[1]),a,na,b[1]);
|
||||
if (--nb <= 0) return;
|
||||
rr[2]=bn_mul_add_words(&(r[2]),a,na,b[2]);
|
||||
if (--nb <= 0) return;
|
||||
rr[3]=bn_mul_add_words(&(r[3]),a,na,b[3]);
|
||||
if (--nb <= 0) return;
|
||||
rr[4]=bn_mul_add_words(&(r[4]),a,na,b[4]);
|
||||
rr+=4;
|
||||
r+=4;
|
||||
b+=4;
|
||||
}
|
||||
}
|
||||
|
||||
#if 1
|
||||
void bn_mul_low_normal(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
|
||||
{
|
||||
#ifdef BN_COUNT
|
||||
printf(" bn_mul_low_normal %d * %d\n",n,n);
|
||||
#endif
|
||||
bn_mul_words(r,a,n,b[0]);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if (--n <= 0) return;
|
||||
bn_mul_add_words(&(r[1]),a,n,b[1]);
|
||||
if (--n <= 0) return;
|
||||
bn_mul_add_words(&(r[2]),a,n,b[2]);
|
||||
if (--n <= 0) return;
|
||||
bn_mul_add_words(&(r[3]),a,n,b[3]);
|
||||
if (--n <= 0) return;
|
||||
bn_mul_add_words(&(r[4]),a,n,b[4]);
|
||||
r+=4;
|
||||
b+=4;
|
||||
}
|
||||
}
|
||||
#endif
|
@ -1,3 +0,0 @@
|
||||
#!/bin/sh -x
|
||||
|
||||
gcc -g -I../../include test.c -L../.. -lcrypto
|
@ -1,22 +0,0 @@
|
||||
Given A1A0 * B1B0 == S3S2S1S0
|
||||
|
||||
S0= low(A0*B0)
|
||||
S1= low( (A1-A0)*(B0-B1)) +low( A1*B1) +high(A0*B0)
|
||||
S2= high((A1-A0)*(B0-B1)) +high(A1*B1) +low( A1*B1)
|
||||
S3= high(A1*B1);
|
||||
|
||||
Assume we know S1 and S0, and can calulate A1*B1 and high((A1-A0)*(B0-B1))
|
||||
|
||||
k0= S0 == low(A0*B0)
|
||||
k1= S1
|
||||
k2= low( A1*B1)
|
||||
k3= high(A1*B1)
|
||||
k4= high((A1-A0)*(B0-B1))
|
||||
|
||||
k1= low((A1-A0)*(B0-B1)) +k2 +high(A0*B0)
|
||||
S2= k4 +k3 +k2
|
||||
S3= k3
|
||||
|
||||
S1-k2= low((A1-A0)*(B0-B1)) +high(A0*B0)
|
||||
|
||||
We potentially have a carry or a borrow from S1
|
@ -1,205 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "bn_lcl.h"
|
||||
|
||||
#define SIZE 128
|
||||
|
||||
#define BN_MONT_CTX_set bn_mcs
|
||||
#define BN_from_montgomery bn_fm
|
||||
#define BN_mod_mul_montgomery bn_mmm
|
||||
#undef BN_to_montgomery
|
||||
#define BN_to_montgomery(r,a,mont,ctx) bn_mmm(\
|
||||
r,a,(mont)->RR,(mont),ctx)
|
||||
|
||||
main()
|
||||
{
|
||||
BIGNUM prime,a,b,r,A,B,R;
|
||||
BN_MONT_CTX *mont;
|
||||
BN_CTX *ctx;
|
||||
int i;
|
||||
|
||||
ctx=BN_CTX_new();
|
||||
BN_init(&prime);
|
||||
BN_init(&a); BN_init(&b); BN_init(&r);
|
||||
BN_init(&A); BN_init(&B); BN_init(&R);
|
||||
|
||||
BN_generate_prime(&prime,SIZE,0,NULL,NULL,NULL,NULL);
|
||||
BN_rand(&A,SIZE,1,0);
|
||||
BN_rand(&B,SIZE,1,0);
|
||||
BN_mod(&A,&A,&prime,ctx);
|
||||
BN_mod(&B,&B,&prime,ctx);
|
||||
|
||||
mont=BN_MONT_CTX_new();
|
||||
BN_MONT_CTX_set(mont,&prime,ctx);
|
||||
|
||||
BN_to_montgomery(&a,&A,mont,ctx);
|
||||
BN_to_montgomery(&b,&B,mont,ctx);
|
||||
|
||||
BN_mul(&r,&a,&b);
|
||||
BN_print_fp(stdout,&r); printf("\n");
|
||||
BN_from_montgomery(&r,&r,mont,ctx);
|
||||
BN_print_fp(stdout,&r); printf("\n");
|
||||
BN_from_montgomery(&r,&r,mont,ctx);
|
||||
BN_print_fp(stdout,&r); printf("\n");
|
||||
|
||||
BN_mod_mul(&R,&A,&B,&prime,ctx);
|
||||
|
||||
BN_print_fp(stdout,&a); printf("\n");
|
||||
BN_print_fp(stdout,&b); printf("\n");
|
||||
BN_print_fp(stdout,&prime); printf("\n");
|
||||
BN_print_fp(stdout,&r); printf("\n\n");
|
||||
|
||||
BN_print_fp(stdout,&A); printf("\n");
|
||||
BN_print_fp(stdout,&B); printf("\n");
|
||||
BN_print_fp(stdout,&prime); printf("\n");
|
||||
BN_print_fp(stdout,&R); printf("\n\n");
|
||||
|
||||
BN_mul(&r,&a,&b);
|
||||
BN_print_fp(stdout,&r); printf(" <- BA*DC\n");
|
||||
BN_copy(&A,&r);
|
||||
i=SIZE/2;
|
||||
BN_mask_bits(&A,i*2);
|
||||
// BN_print_fp(stdout,&A); printf(" <- low(BA*DC)\n");
|
||||
bn_do_lower(&r,&a,&b,&A,i);
|
||||
// BN_print_fp(stdout,&r); printf(" <- low(BA*DC)\n");
|
||||
}
|
||||
|
||||
int bn_mul_low(r,a,b,low,i)
|
||||
BIGNUM *r,*a,*b,*low;
|
||||
int i;
|
||||
{
|
||||
int w;
|
||||
BIGNUM Kh,Km,t1,t2,h,ah,al,bh,bl,l,m,s0,s1;
|
||||
|
||||
BN_init(&Kh); BN_init(&Km); BN_init(&t1); BN_init(&t2); BN_init(&l);
|
||||
BN_init(&ah); BN_init(&al); BN_init(&bh); BN_init(&bl); BN_init(&h);
|
||||
BN_init(&m); BN_init(&s0); BN_init(&s1);
|
||||
|
||||
BN_copy(&al,a); BN_mask_bits(&al,i); BN_rshift(&ah,a,i);
|
||||
BN_copy(&bl,b); BN_mask_bits(&bl,i); BN_rshift(&bh,b,i);
|
||||
|
||||
|
||||
BN_sub(&t1,&al,&ah);
|
||||
BN_sub(&t2,&bh,&bl);
|
||||
BN_mul(&m,&t1,&t2);
|
||||
BN_mul(&h,&ah,&bh);
|
||||
|
||||
BN_copy(&s0,low); BN_mask_bits(&s0,i);
|
||||
BN_rshift(&s1,low,i);
|
||||
|
||||
BN_add(&t1,&h,&m);
|
||||
BN_add(&t1,&t1,&s0);
|
||||
|
||||
BN_copy(&t2,&t1); BN_mask_bits(&t2,i);
|
||||
BN_sub(&t1,&s1,&t2);
|
||||
BN_lshift(&t1,&t1,i);
|
||||
BN_add(&t1,&t1,&s0);
|
||||
if (t1.neg)
|
||||
{
|
||||
BN_lshift(&t2,BN_value_one(),i*2);
|
||||
BN_add(&t1,&t2,&t1);
|
||||
BN_mask_bits(&t1,i*2);
|
||||
}
|
||||
|
||||
BN_free(&Kh); BN_free(&Km); BN_free(&t1); BN_free(&t2);
|
||||
BN_free(&ah); BN_free(&al); BN_free(&bh); BN_free(&bl);
|
||||
}
|
||||
|
||||
int BN_mod_mul_montgomery(r,a,b,mont,ctx)
|
||||
BIGNUM *r,*a,*b;
|
||||
BN_MONT_CTX *mont;
|
||||
BN_CTX *ctx;
|
||||
{
|
||||
BIGNUM *tmp;
|
||||
|
||||
tmp= &(ctx->bn[ctx->tos++]);
|
||||
|
||||
if (a == b)
|
||||
{
|
||||
if (!BN_sqr(tmp,a,ctx)) goto err;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!BN_mul(tmp,a,b)) goto err;
|
||||
}
|
||||
/* reduce from aRR to aR */
|
||||
if (!BN_from_montgomery(r,tmp,mont,ctx)) goto err;
|
||||
ctx->tos--;
|
||||
return(1);
|
||||
err:
|
||||
return(0);
|
||||
}
|
||||
|
||||
int BN_from_montgomery(r,a,mont,ctx)
|
||||
BIGNUM *r;
|
||||
BIGNUM *a;
|
||||
BN_MONT_CTX *mont;
|
||||
BN_CTX *ctx;
|
||||
{
|
||||
BIGNUM z1;
|
||||
BIGNUM *t1,*t2;
|
||||
BN_ULONG *ap,*bp,*rp;
|
||||
int j,i,bl,al;
|
||||
|
||||
BN_init(&z1);
|
||||
t1= &(ctx->bn[ctx->tos]);
|
||||
t2= &(ctx->bn[ctx->tos+1]);
|
||||
|
||||
if (!BN_copy(t1,a)) goto err;
|
||||
/* can cheat */
|
||||
BN_mask_bits(t1,mont->ri);
|
||||
if (!BN_mul(t2,t1,mont->Ni)) goto err;
|
||||
BN_mask_bits(t2,mont->ri);
|
||||
|
||||
if (!BN_mul(t1,t2,mont->N)) goto err;
|
||||
if (!BN_add(t2,t1,a)) goto err;
|
||||
|
||||
/* At this point, t2 has the bottom ri bits set to zero.
|
||||
* This means that the bottom ri bits == the 1^ri minus the bottom
|
||||
* ri bits of a.
|
||||
* This means that only the bits above 'ri' in a need to be added,
|
||||
* and XXXXXXXXXXXXXXXXXXXXXXXX
|
||||
*/
|
||||
BN_print_fp(stdout,t2); printf("\n");
|
||||
BN_rshift(r,t2,mont->ri);
|
||||
|
||||
if (BN_ucmp(r,mont->N) >= 0)
|
||||
bn_qsub(r,r,mont->N);
|
||||
|
||||
return(1);
|
||||
err:
|
||||
return(0);
|
||||
}
|
||||
|
||||
int BN_MONT_CTX_set(mont,mod,ctx)
|
||||
BN_MONT_CTX *mont;
|
||||
BIGNUM *mod;
|
||||
BN_CTX *ctx;
|
||||
{
|
||||
BIGNUM *Ri=NULL,*R=NULL;
|
||||
|
||||
if (mont->RR == NULL) mont->RR=BN_new();
|
||||
if (mont->N == NULL) mont->N=BN_new();
|
||||
|
||||
R=mont->RR; /* grab RR as a temp */
|
||||
BN_copy(mont->N,mod); /* Set N */
|
||||
|
||||
mont->ri=(BN_num_bits(mod)+(BN_BITS2-1))/BN_BITS2*BN_BITS2;
|
||||
BN_lshift(R,BN_value_one(),mont->ri); /* R */
|
||||
if ((Ri=BN_mod_inverse(NULL,R,mod,ctx)) == NULL) goto err;/* Ri */
|
||||
BN_lshift(Ri,Ri,mont->ri); /* R*Ri */
|
||||
bn_qsub(Ri,Ri,BN_value_one()); /* R*Ri - 1 */
|
||||
BN_div(Ri,NULL,Ri,mod,ctx);
|
||||
if (mont->Ni != NULL) BN_free(mont->Ni);
|
||||
mont->Ni=Ri; /* Ni=(R*Ri-1)/N */
|
||||
|
||||
/* setup RR for conversions */
|
||||
BN_lshift(mont->RR,BN_value_one(),mont->ri*2);
|
||||
BN_mod(mont->RR,mont->RR,mont->N,ctx);
|
||||
|
||||
return(1);
|
||||
err:
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
@ -1,241 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "bn_lcl.h"
|
||||
|
||||
#define SIZE 32
|
||||
|
||||
#define BN_MONT_CTX_set bn_mcs
|
||||
#define BN_from_montgomery bn_fm
|
||||
#define BN_mod_mul_montgomery bn_mmm
|
||||
#undef BN_to_montgomery
|
||||
#define BN_to_montgomery(r,a,mont,ctx) bn_mmm(\
|
||||
r,a,(mont)->RR,(mont),ctx)
|
||||
|
||||
main()
|
||||
{
|
||||
BIGNUM prime,a,b,r,A,B,R;
|
||||
BN_MONT_CTX *mont;
|
||||
BN_CTX *ctx;
|
||||
int i;
|
||||
|
||||
ctx=BN_CTX_new();
|
||||
BN_init(&prime);
|
||||
BN_init(&a); BN_init(&b); BN_init(&r);
|
||||
BN_init(&A); BN_init(&B); BN_init(&R);
|
||||
|
||||
BN_generate_prime(&prime,SIZE,0,NULL,NULL,NULL,NULL);
|
||||
BN_rand(&A,SIZE,1,0);
|
||||
BN_rand(&B,SIZE,1,0);
|
||||
BN_mod(&A,&A,&prime,ctx);
|
||||
BN_mod(&B,&B,&prime,ctx);
|
||||
|
||||
i=A.top;
|
||||
BN_mul(&R,&A,&B,ctx);
|
||||
BN_mask_bits(&R,i*BN_BITS2);
|
||||
|
||||
|
||||
BN_print_fp(stdout,&A); printf(" <- a\n");
|
||||
BN_print_fp(stdout,&B); printf(" <- b\n");
|
||||
BN_mul_high(&r,&A,&B,&R,i);
|
||||
BN_print_fp(stdout,&r); printf(" <- high(BA*DC)\n");
|
||||
|
||||
BN_mask_bits(&A,i*32);
|
||||
BN_mask_bits(&B,i*32);
|
||||
|
||||
BN_mul(&R,&A,&B);
|
||||
BN_rshift(&R,&R,i*32);
|
||||
BN_print_fp(stdout,&R); printf(" <- norm BA*DC\n");
|
||||
BN_sub(&R,&R,&r);
|
||||
BN_print_fp(stdout,&R); printf(" <- diff\n");
|
||||
}
|
||||
|
||||
#if 0
|
||||
int bn_mul_high(BIGNUM *r, BIGNUM *a, BIGNUM *b, BIGNUM *low, int words)
|
||||
{
|
||||
int i;
|
||||
BIGNUM t1,t2,t3,h,ah,al,bh,bl,m,s0,s1;
|
||||
|
||||
BN_init(&al); BN_init(&ah);
|
||||
BN_init(&bl); BN_init(&bh);
|
||||
BN_init(&t1); BN_init(&t2); BN_init(&t3);
|
||||
BN_init(&s0); BN_init(&s1);
|
||||
BN_init(&h); BN_init(&m);
|
||||
|
||||
i=a->top;
|
||||
if (i >= words)
|
||||
{
|
||||
al.top=words;
|
||||
ah.top=a->top-words;
|
||||
ah.d= &(a->d[ah.top]);
|
||||
}
|
||||
else
|
||||
al.top=i;
|
||||
al.d=a->d;
|
||||
|
||||
i=b->top;
|
||||
if (i >= words)
|
||||
{
|
||||
bl.top=words;
|
||||
bh.top=i-words;
|
||||
bh.d= &(b->d[bh.top]);
|
||||
}
|
||||
else
|
||||
bl.top=i;
|
||||
bl.d=b->d;
|
||||
|
||||
i=low->top;
|
||||
if (i >= words)
|
||||
{
|
||||
s0.top=words;
|
||||
s1.top=i-words;
|
||||
s1.d= &(low->d[s1.top]);
|
||||
}
|
||||
else
|
||||
s0.top=i;
|
||||
s0.d=low->d;
|
||||
|
||||
al.max=al.top; ah.max=ah.top;
|
||||
bl.max=bl.top; bh.max=bh.top;
|
||||
s0.max=bl.top; s1.max=bh.top;
|
||||
|
||||
/* Calculate (al-ah)*(bh-bl) */
|
||||
BN_sub(&t1,&al,&ah);
|
||||
BN_sub(&t2,&bh,&bl);
|
||||
BN_mul(&m,&t1,&t2);
|
||||
|
||||
/* Calculate ah*bh */
|
||||
BN_mul(&h,&ah,&bh);
|
||||
|
||||
/* s0 == low(al*bl)
|
||||
* s1 == low(ah*bh)+low((al-ah)*(bh-bl))+low(al*bl)+high(al*bl)
|
||||
* We know s0 and s1 so the only unknown is high(al*bl)
|
||||
* high(al*bl) == s1 - low(ah*bh+(al-ah)*(bh-bl)+s0)
|
||||
*/
|
||||
BN_add(&m,&m,&h);
|
||||
BN_add(&t2,&m,&s0);
|
||||
/* Quick and dirty mask off of high words */
|
||||
t3.d=t2.d;
|
||||
t3.top=(t2.top > words)?words:t2.top;
|
||||
t3.neg=t2.neg;
|
||||
t3.max=t3.top;
|
||||
/* BN_print_fp(stdout,&s1); printf(" s1\n"); */
|
||||
/* BN_print_fp(stdout,&t2); printf(" middle value\n"); */
|
||||
/* BN_print_fp(stdout,&t3); printf(" low middle value\n"); */
|
||||
BN_sub(&t1,&s1,&t3);
|
||||
|
||||
if (t1.neg)
|
||||
{
|
||||
/*printf("neg fixup\n"); BN_print_fp(stdout,&t1); printf(" before\n"); */
|
||||
BN_lshift(&t2,BN_value_one(),words*32);
|
||||
BN_add(&t1,&t2,&t1);
|
||||
BN_mask_bits(&t1,words*32);
|
||||
/* BN_print_fp(stdout,&t1); printf(" after\n"); */
|
||||
}
|
||||
/* al*bl == high(al*bl)<<words+s0 */
|
||||
BN_lshift(&t1,&t1,words*32);
|
||||
BN_add(&t1,&t1,&s0);
|
||||
|
||||
/* We now have
|
||||
* al*bl - t1
|
||||
* (al-ah)*(bh-bl)+ah*bh - m
|
||||
* ah*bh - h
|
||||
*/
|
||||
BN_copy(r,&t1);
|
||||
BN_mask_bits(r,words*32*2);
|
||||
|
||||
/*BN_lshift(&m,&m,words*/
|
||||
|
||||
BN_free(&t1); BN_free(&t2);
|
||||
BN_free(&m); BN_free(&h);
|
||||
}
|
||||
|
||||
int BN_mod_mul_montgomery(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_MONT_CTX *mont,
|
||||
BN_CTX *ctx)
|
||||
{
|
||||
BIGNUM *tmp;
|
||||
|
||||
tmp= &(ctx->bn[ctx->tos++]);
|
||||
|
||||
if (a == b)
|
||||
{
|
||||
if (!BN_sqr(tmp,a,ctx)) goto err;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!BN_mul(tmp,a,b)) goto err;
|
||||
}
|
||||
/* reduce from aRR to aR */
|
||||
if (!BN_from_montgomery(r,tmp,mont,ctx)) goto err;
|
||||
ctx->tos--;
|
||||
return(1);
|
||||
err:
|
||||
return(0);
|
||||
}
|
||||
|
||||
int BN_from_montgomery(BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont, BN_CTX *ctx)
|
||||
{
|
||||
BIGNUM z1;
|
||||
BIGNUM *t1,*t2;
|
||||
BN_ULONG *ap,*bp,*rp;
|
||||
int j,i,bl,al;
|
||||
|
||||
BN_init(&z1);
|
||||
t1= &(ctx->bn[ctx->tos]);
|
||||
t2= &(ctx->bn[ctx->tos+1]);
|
||||
|
||||
if (!BN_copy(t1,a)) goto err;
|
||||
/* can cheat */
|
||||
BN_mask_bits(t1,mont->ri);
|
||||
if (!BN_mul(t2,t1,mont->Ni)) goto err;
|
||||
BN_mask_bits(t2,mont->ri);
|
||||
|
||||
if (!BN_mul(t1,t2,mont->N)) goto err;
|
||||
if (!BN_add(t2,t1,a)) goto err;
|
||||
|
||||
/* At this point, t2 has the bottom ri bits set to zero.
|
||||
* This means that the bottom ri bits == the 1^ri minus the bottom
|
||||
* ri bits of a.
|
||||
* This means that only the bits above 'ri' in a need to be added,
|
||||
* and XXXXXXXXXXXXXXXXXXXXXXXX
|
||||
*/
|
||||
BN_print_fp(stdout,t2); printf("\n");
|
||||
BN_rshift(r,t2,mont->ri);
|
||||
|
||||
if (BN_ucmp(r,mont->N) >= 0)
|
||||
BN_usub(r,r,mont->N);
|
||||
|
||||
return(1);
|
||||
err:
|
||||
return(0);
|
||||
}
|
||||
|
||||
int BN_MONT_CTX_set(BN_MONT_CTX *mont, BIGNUM *mod, BN_CTX *ctx)
|
||||
{
|
||||
BIGNUM *Ri=NULL,*R=NULL;
|
||||
|
||||
if (mont->RR == NULL) mont->RR=BN_new();
|
||||
if (mont->N == NULL) mont->N=BN_new();
|
||||
|
||||
R=mont->RR; /* grab RR as a temp */
|
||||
BN_copy(mont->N,mod); /* Set N */
|
||||
|
||||
mont->ri=(BN_num_bits(mod)+(BN_BITS2-1))/BN_BITS2*BN_BITS2;
|
||||
BN_lshift(R,BN_value_one(),mont->ri); /* R */
|
||||
if ((Ri=BN_mod_inverse(NULL,R,mod,ctx)) == NULL) goto err;/* Ri */
|
||||
BN_lshift(Ri,Ri,mont->ri); /* R*Ri */
|
||||
BN_usub(Ri,Ri,BN_value_one()); /* R*Ri - 1 */
|
||||
BN_div(Ri,NULL,Ri,mod,ctx);
|
||||
if (mont->Ni != NULL) BN_free(mont->Ni);
|
||||
mont->Ni=Ri; /* Ni=(R*Ri-1)/N */
|
||||
|
||||
/* setup RR for conversions */
|
||||
BN_lshift(mont->RR,BN_value_one(),mont->ri*2);
|
||||
BN_mod(mont->RR,mont->RR,mont->N,ctx);
|
||||
|
||||
return(1);
|
||||
err:
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
#endif
|
@ -1,93 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/buffer/Makefile
|
||||
#
|
||||
|
||||
DIR= buffer
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= buffer.c buf_err.c
|
||||
LIBOBJ= buffer.o buf_err.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= buffer.h
|
||||
HEADER= $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
buf_err.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
buf_err.o: ../../include/openssl/crypto.h ../../include/openssl/err.h
|
||||
buf_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslv.h
|
||||
buf_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
buf_err.o: ../../include/openssl/symhacks.h
|
||||
buffer.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
buffer.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
buffer.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
buffer.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
buffer.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
buffer.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
buffer.o: ../cryptlib.h
|
@ -1,125 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/cast/Makefile
|
||||
#
|
||||
|
||||
DIR= cast
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
CPP= $(CC) -E
|
||||
INCLUDES=
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
CAST_ENC=c_enc.o
|
||||
# or use
|
||||
#CAST_ENC=asm/cx86-elf.o
|
||||
#CAST_ENC=asm/cx86-out.o
|
||||
#CAST_ENC=asm/cx86-sol.o
|
||||
#CAST_ENC=asm/cx86bdsi.o
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=casttest.c
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c
|
||||
LIBOBJ=c_skey.o c_ecb.o $(CAST_ENC) c_cfb64.o c_ofb64.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= cast.h
|
||||
HEADER= cast_s.h cast_lcl.h $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
# elf
|
||||
asm/cx86-elf.o: asm/cx86unix.cpp
|
||||
$(CPP) -DELF -x c asm/cx86unix.cpp | as -o asm/cx86-elf.o
|
||||
|
||||
# solaris
|
||||
asm/cx86-sol.o: asm/cx86unix.cpp
|
||||
$(CC) -E -DSOL asm/cx86unix.cpp | sed 's/^#.*//' > asm/cx86-sol.s
|
||||
as -o asm/cx86-sol.o asm/cx86-sol.s
|
||||
rm -f asm/cx86-sol.s
|
||||
|
||||
# a.out
|
||||
asm/cx86-out.o: asm/cx86unix.cpp
|
||||
$(CPP) -DOUT asm/cx86unix.cpp | as -o asm/cx86-out.o
|
||||
|
||||
# bsdi
|
||||
asm/cx86bsdi.o: asm/cx86unix.cpp
|
||||
$(CPP) -DBSDI asm/cx86unix.cpp | sed 's/ :/:/' | as -o asm/cx86bsdi.o
|
||||
|
||||
asm/cx86unix.cpp: asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
|
||||
(cd asm; $(PERL) cast-586.pl cpp $(PROCESSOR) >cx86unix.cpp)
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f asm/cx86unix.cpp *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
c_cfb64.o: ../../include/openssl/cast.h ../../include/openssl/e_os.h
|
||||
c_cfb64.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
c_cfb64.o: cast_lcl.h
|
||||
c_ecb.o: ../../include/openssl/cast.h ../../include/openssl/e_os.h
|
||||
c_ecb.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
c_ecb.o: ../../include/openssl/opensslv.h cast_lcl.h
|
||||
c_enc.o: ../../include/openssl/cast.h ../../include/openssl/e_os.h
|
||||
c_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
c_enc.o: cast_lcl.h
|
||||
c_ofb64.o: ../../include/openssl/cast.h ../../include/openssl/e_os.h
|
||||
c_ofb64.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
c_ofb64.o: cast_lcl.h
|
||||
c_skey.o: ../../include/openssl/cast.h ../../include/openssl/e_os.h
|
||||
c_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
c_skey.o: cast_lcl.h cast_s.h
|
@ -1,124 +0,0 @@
|
||||
# Targets
|
||||
# make - twidle the options yourself :-)
|
||||
# make cc - standard cc options
|
||||
# make gcc - standard gcc options
|
||||
# make x86-elf - linux-elf etc
|
||||
# make x86-out - linux-a.out, FreeBSD etc
|
||||
# make x86-solaris
|
||||
# make x86-bdsi
|
||||
|
||||
# There are 3 possible performance options, experiment :-)
|
||||
#OPTS= -DBF_PTR
|
||||
#OPTS= -DBF_PTR2
|
||||
OPTS=
|
||||
|
||||
DIR= cast
|
||||
TOP= .
|
||||
CC= gcc
|
||||
CFLAG= -O3 -fomit-frame-pointer
|
||||
|
||||
CPP= $(CC) -E
|
||||
INCLUDES=
|
||||
INSTALLTOP=/usr/local/lib
|
||||
MAKE= make
|
||||
MAKEDEPEND= makedepend
|
||||
MAKEFILE= Makefile.uni
|
||||
AR= ar r
|
||||
RANLIB= ranlib
|
||||
|
||||
CAST_ENC=c_enc.o
|
||||
# or use
|
||||
#CAST_ENC=asm/cx86-elf.o
|
||||
#CAST_ENC=asm/cx86-out.o
|
||||
#CAST_ENC=asm/cx86-sol.o
|
||||
#CAST_ENC=asm/cx86bdsi.o
|
||||
|
||||
CFLAGS= $(OPTS) $(INCLUDES) $(CFLAG) -DFULL_TEST
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=casttest
|
||||
APP1=cast_spd
|
||||
APP2=castopts
|
||||
APPS=$(APP1) $(APP2)
|
||||
|
||||
LIB=libcast.a
|
||||
LIBSRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c
|
||||
LIBOBJ=c_skey.o c_ecb.o $(CAST_ENC) c_cfb64.o c_ofb64.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= cast.h
|
||||
HEADER= cast_lcl.h $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
all: $(LIB) $(TEST) $(APPS)
|
||||
|
||||
$(LIB): $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
$(RANLIB) $(LIB)
|
||||
# elf
|
||||
asm/cx86-elf.o: asm/cx86unix.cpp
|
||||
$(CPP) -DELF asm/cx86unix.cpp | as -o asm/cx86-elf.o
|
||||
|
||||
# solaris
|
||||
asm/cx86-sol.o: asm/cx86unix.cpp
|
||||
$(CC) -E -DSOL asm/cx86unix.cpp | sed 's/^#.*//' > asm/cx86-sol.s
|
||||
as -o asm/cx86-sol.o asm/cx86-sol.s
|
||||
rm -f asm/cx86-sol.s
|
||||
|
||||
# a.out
|
||||
asm/cx86-out.o: asm/cx86unix.cpp
|
||||
$(CPP) -DOUT asm/cx86unix.cpp | as -o asm/cx86-out.o
|
||||
|
||||
# bsdi
|
||||
asm/cx86bsdi.o: asm/cx86unix.cpp
|
||||
$(CPP) -DBSDI asm/cx86unix.cpp | as -o asm/cx86bsdi.o
|
||||
|
||||
asm/cx86unix.cpp:
|
||||
(cd asm; perl cast-586.pl cpp >cx86unix.cpp)
|
||||
|
||||
test: $(TEST)
|
||||
./$(TEST)
|
||||
|
||||
$(TEST): $(TEST).c $(LIB)
|
||||
$(CC) -o $(TEST) $(CFLAGS) $(TEST).c $(LIB)
|
||||
|
||||
$(APP1): $(APP1).c $(LIB)
|
||||
$(CC) -o $(APP1) $(CFLAGS) $(APP1).c $(LIB)
|
||||
|
||||
$(APP2): $(APP2).c $(LIB)
|
||||
$(CC) -o $(APP2) $(CFLAGS) $(APP2).c $(LIB)
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
perl -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
/bin/rm -f $(LIB) $(TEST) $(APPS) *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
cc:
|
||||
$(MAKE) CC="cc" CFLAG="-O" all
|
||||
|
||||
gcc:
|
||||
$(MAKE) CC="gcc" CFLAGS="-O3 -fomit-frame-pointer" all
|
||||
|
||||
x86-elf:
|
||||
$(MAKE) CAST_ENC="asm/cx86-elf.o" CFLAG="-DELF $(CFLAGS)" all
|
||||
|
||||
x86-out:
|
||||
$(MAKE) CAST_ENC="asm/cx86-out.o" CFLAG="-DOUT $(CFLAGS)" all
|
||||
|
||||
x86-solaris:
|
||||
$(MAKE) CAST_ENC="asm/cx86-sol.o" CFLAG="-DSOL $(CFLAGS)" all
|
||||
|
||||
x86-bdsi:
|
||||
$(MAKE) CAST_ENC="asm/cx86-bdsi.o" CFLAG="-DBDSI $(CFLAGS)" all
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
@ -1,102 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/comp/Makefile
|
||||
#
|
||||
|
||||
DIR= comp
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= comp_lib.c \
|
||||
c_rle.c c_zlib.c
|
||||
|
||||
LIBOBJ= comp_lib.o \
|
||||
c_rle.o c_zlib.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= comp.h
|
||||
HEADER= $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
c_rle.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
c_rle.o: ../../include/openssl/bn.h ../../include/openssl/comp.h
|
||||
c_rle.o: ../../include/openssl/crypto.h ../../include/openssl/obj_mac.h
|
||||
c_rle.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
c_rle.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
c_rle.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
c_zlib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
c_zlib.o: ../../include/openssl/bn.h ../../include/openssl/comp.h
|
||||
c_zlib.o: ../../include/openssl/crypto.h ../../include/openssl/obj_mac.h
|
||||
c_zlib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
c_zlib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
c_zlib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
comp_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
comp_lib.o: ../../include/openssl/bn.h ../../include/openssl/comp.h
|
||||
comp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/obj_mac.h
|
||||
comp_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
comp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
comp_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
@ -1,109 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/conf/Makefile
|
||||
#
|
||||
|
||||
DIR= conf
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= conf_err.c conf_lib.c conf_api.c conf_def.c
|
||||
|
||||
LIBOBJ= conf_err.o conf_lib.o conf_api.o conf_def.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= conf.h conf_api.h
|
||||
HEADER= conf_def.h $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
conf_api.o: ../../include/openssl/bio.h ../../include/openssl/conf.h
|
||||
conf_api.o: ../../include/openssl/conf_api.h ../../include/openssl/crypto.h
|
||||
conf_api.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
conf_api.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
conf_api.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
conf_api.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
conf_def.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
conf_def.o: ../../include/openssl/conf.h ../../include/openssl/conf_api.h
|
||||
conf_def.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
conf_def.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
conf_def.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
conf_def.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
conf_def.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
conf_def.o: conf_def.h
|
||||
conf_err.o: ../../include/openssl/bio.h ../../include/openssl/conf.h
|
||||
conf_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
conf_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
conf_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
conf_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
conf_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
conf_lib.o: ../../include/openssl/bio.h ../../include/openssl/conf.h
|
||||
conf_lib.o: ../../include/openssl/conf_api.h ../../include/openssl/crypto.h
|
||||
conf_lib.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
conf_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
conf_lib.o: ../../include/openssl/opensslconf.h
|
||||
conf_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
conf_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
@ -1,730 +0,0 @@
|
||||
/* crypto/conf/conf.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 <errno.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/stack.h>
|
||||
#include <openssl/lhash.h>
|
||||
#include <openssl/conf.h>
|
||||
#include <openssl/buffer.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#include "conf_lcl.h"
|
||||
|
||||
static void value_free_hash(CONF_VALUE *a, LHASH *conf);
|
||||
static void value_free_stack(CONF_VALUE *a,LHASH *conf);
|
||||
static unsigned long hash(CONF_VALUE *v);
|
||||
static int cmp_conf(CONF_VALUE *a,CONF_VALUE *b);
|
||||
static char *eat_ws(char *p);
|
||||
static char *eat_alpha_numeric(char *p);
|
||||
static void clear_comments(char *p);
|
||||
static int str_copy(LHASH *conf,char *section,char **to, char *from);
|
||||
static char *scan_quote(char *p);
|
||||
static CONF_VALUE *new_section(LHASH *conf,char *section);
|
||||
static CONF_VALUE *get_section(LHASH *conf,char *section);
|
||||
#define scan_esc(p) ((((p)[1] == '\0')?(p++):(p+=2)),p)
|
||||
|
||||
const char *CONF_version="CONF" OPENSSL_VERSION_PTEXT;
|
||||
|
||||
|
||||
LHASH *CONF_load(LHASH *h, const char *file, long *line)
|
||||
{
|
||||
LHASH *ltmp;
|
||||
BIO *in=NULL;
|
||||
|
||||
#ifdef VMS
|
||||
in=BIO_new_file(file, "r");
|
||||
#else
|
||||
in=BIO_new_file(file, "rb");
|
||||
#endif
|
||||
if (in == NULL)
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD,ERR_R_SYS_LIB);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ltmp = CONF_load_bio(h, in, line);
|
||||
BIO_free(in);
|
||||
|
||||
return ltmp;
|
||||
}
|
||||
#ifndef NO_FP_API
|
||||
LHASH *CONF_load_fp(LHASH *h, FILE *in, long *line)
|
||||
{
|
||||
BIO *btmp;
|
||||
LHASH *ltmp;
|
||||
if(!(btmp = BIO_new_fp(in, BIO_NOCLOSE))) {
|
||||
CONFerr(CONF_F_CONF_LOAD_FP,ERR_R_BUF_LIB);
|
||||
return NULL;
|
||||
}
|
||||
ltmp = CONF_load_bio(h, btmp, line);
|
||||
BIO_free(btmp);
|
||||
return ltmp;
|
||||
}
|
||||
#endif
|
||||
|
||||
LHASH *CONF_load_bio(LHASH *h, BIO *in, long *line)
|
||||
{
|
||||
LHASH *ret=NULL;
|
||||
#define BUFSIZE 512
|
||||
char btmp[16];
|
||||
int bufnum=0,i,ii;
|
||||
BUF_MEM *buff=NULL;
|
||||
char *s,*p,*end;
|
||||
int again,n;
|
||||
long eline=0;
|
||||
CONF_VALUE *v=NULL,*vv,*tv;
|
||||
CONF_VALUE *sv=NULL;
|
||||
char *section=NULL,*buf;
|
||||
STACK_OF(CONF_VALUE) *section_sk=NULL,*ts;
|
||||
char *start,*psection,*pname;
|
||||
|
||||
if ((buff=BUF_MEM_new()) == NULL)
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,ERR_R_BUF_LIB);
|
||||
goto err;
|
||||
}
|
||||
|
||||
section=(char *)Malloc(10);
|
||||
if (section == NULL)
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
strcpy(section,"default");
|
||||
|
||||
if (h == NULL)
|
||||
{
|
||||
if ((ret=lh_new(hash,cmp_conf)) == NULL)
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
else
|
||||
ret=h;
|
||||
|
||||
sv=new_section(ret,section);
|
||||
if (sv == NULL)
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,
|
||||
CONF_R_UNABLE_TO_CREATE_NEW_SECTION);
|
||||
goto err;
|
||||
}
|
||||
section_sk=(STACK_OF(CONF_VALUE) *)sv->value;
|
||||
|
||||
bufnum=0;
|
||||
for (;;)
|
||||
{
|
||||
again=0;
|
||||
if (!BUF_MEM_grow(buff,bufnum+BUFSIZE))
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,ERR_R_BUF_LIB);
|
||||
goto err;
|
||||
}
|
||||
p= &(buff->data[bufnum]);
|
||||
*p='\0';
|
||||
BIO_gets(in, p, BUFSIZE-1);
|
||||
p[BUFSIZE-1]='\0';
|
||||
ii=i=strlen(p);
|
||||
if (i == 0) break;
|
||||
while (i > 0)
|
||||
{
|
||||
if ((p[i-1] != '\r') && (p[i-1] != '\n'))
|
||||
break;
|
||||
else
|
||||
i--;
|
||||
}
|
||||
/* we removed some trailing stuff so there is a new
|
||||
* line on the end. */
|
||||
if (i == ii)
|
||||
again=1; /* long line */
|
||||
else
|
||||
{
|
||||
p[i]='\0';
|
||||
eline++; /* another input line */
|
||||
}
|
||||
|
||||
/* we now have a line with trailing \r\n removed */
|
||||
|
||||
/* i is the number of bytes */
|
||||
bufnum+=i;
|
||||
|
||||
v=NULL;
|
||||
/* check for line continuation */
|
||||
if (bufnum >= 1)
|
||||
{
|
||||
/* If we have bytes and the last char '\\' and
|
||||
* second last char is not '\\' */
|
||||
p= &(buff->data[bufnum-1]);
|
||||
if ( IS_ESC(p[0]) &&
|
||||
((bufnum <= 1) || !IS_ESC(p[-1])))
|
||||
{
|
||||
bufnum--;
|
||||
again=1;
|
||||
}
|
||||
}
|
||||
if (again) continue;
|
||||
bufnum=0;
|
||||
buf=buff->data;
|
||||
|
||||
clear_comments(buf);
|
||||
n=strlen(buf);
|
||||
s=eat_ws(buf);
|
||||
if (IS_EOF(*s)) continue; /* blank line */
|
||||
if (*s == '[')
|
||||
{
|
||||
char *ss;
|
||||
|
||||
s++;
|
||||
start=eat_ws(s);
|
||||
ss=start;
|
||||
again:
|
||||
end=eat_alpha_numeric(ss);
|
||||
p=eat_ws(end);
|
||||
if (*p != ']')
|
||||
{
|
||||
if (*p != '\0')
|
||||
{
|
||||
ss=p;
|
||||
goto again;
|
||||
}
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,
|
||||
CONF_R_MISSING_CLOSE_SQUARE_BRACKET);
|
||||
goto err;
|
||||
}
|
||||
*end='\0';
|
||||
if (!str_copy(ret,NULL,§ion,start)) goto err;
|
||||
if ((sv=get_section(ret,section)) == NULL)
|
||||
sv=new_section(ret,section);
|
||||
if (sv == NULL)
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,
|
||||
CONF_R_UNABLE_TO_CREATE_NEW_SECTION);
|
||||
goto err;
|
||||
}
|
||||
section_sk=(STACK_OF(CONF_VALUE) *)sv->value;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
pname=s;
|
||||
psection=NULL;
|
||||
end=eat_alpha_numeric(s);
|
||||
if ((end[0] == ':') && (end[1] == ':'))
|
||||
{
|
||||
*end='\0';
|
||||
end+=2;
|
||||
psection=pname;
|
||||
pname=end;
|
||||
end=eat_alpha_numeric(end);
|
||||
}
|
||||
p=eat_ws(end);
|
||||
if (*p != '=')
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,
|
||||
CONF_R_MISSING_EQUAL_SIGN);
|
||||
goto err;
|
||||
}
|
||||
*end='\0';
|
||||
p++;
|
||||
start=eat_ws(p);
|
||||
while (!IS_EOF(*p))
|
||||
p++;
|
||||
p--;
|
||||
while ((p != start) && (IS_WS(*p)))
|
||||
p--;
|
||||
p++;
|
||||
*p='\0';
|
||||
|
||||
if (!(v=(CONF_VALUE *)Malloc(sizeof(CONF_VALUE))))
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,
|
||||
ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
if (psection == NULL) psection=section;
|
||||
v->name=(char *)Malloc(strlen(pname)+1);
|
||||
v->value=NULL;
|
||||
if (v->name == NULL)
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,
|
||||
ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
strcpy(v->name,pname);
|
||||
if (!str_copy(ret,psection,&(v->value),start)) goto err;
|
||||
|
||||
if (strcmp(psection,section) != 0)
|
||||
{
|
||||
if ((tv=get_section(ret,psection))
|
||||
== NULL)
|
||||
tv=new_section(ret,psection);
|
||||
if (tv == NULL)
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,
|
||||
CONF_R_UNABLE_TO_CREATE_NEW_SECTION);
|
||||
goto err;
|
||||
}
|
||||
ts=(STACK_OF(CONF_VALUE) *)tv->value;
|
||||
}
|
||||
else
|
||||
{
|
||||
tv=sv;
|
||||
ts=section_sk;
|
||||
}
|
||||
v->section=tv->section;
|
||||
if (!sk_CONF_VALUE_push(ts,v))
|
||||
{
|
||||
CONFerr(CONF_F_CONF_LOAD_BIO,
|
||||
ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
vv=(CONF_VALUE *)lh_insert(ret,v);
|
||||
if (vv != NULL)
|
||||
{
|
||||
sk_CONF_VALUE_delete_ptr(ts,vv);
|
||||
Free(vv->name);
|
||||
Free(vv->value);
|
||||
Free(vv);
|
||||
}
|
||||
v=NULL;
|
||||
}
|
||||
}
|
||||
if (buff != NULL) BUF_MEM_free(buff);
|
||||
if (section != NULL) Free(section);
|
||||
return(ret);
|
||||
err:
|
||||
if (buff != NULL) BUF_MEM_free(buff);
|
||||
if (section != NULL) Free(section);
|
||||
if (line != NULL) *line=eline;
|
||||
sprintf(btmp,"%ld",eline);
|
||||
ERR_add_error_data(2,"line ",btmp);
|
||||
if ((h != ret) && (ret != NULL)) CONF_free(ret);
|
||||
if (v != NULL)
|
||||
{
|
||||
if (v->name != NULL) Free(v->name);
|
||||
if (v->value != NULL) Free(v->value);
|
||||
if (v != NULL) Free(v);
|
||||
}
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
char *CONF_get_string(LHASH *conf, char *section, char *name)
|
||||
{
|
||||
CONF_VALUE *v,vv;
|
||||
char *p;
|
||||
|
||||
if (name == NULL) return(NULL);
|
||||
if (conf != NULL)
|
||||
{
|
||||
if (section != NULL)
|
||||
{
|
||||
vv.name=name;
|
||||
vv.section=section;
|
||||
v=(CONF_VALUE *)lh_retrieve(conf,&vv);
|
||||
if (v != NULL) return(v->value);
|
||||
if (strcmp(section,"ENV") == 0)
|
||||
{
|
||||
p=Getenv(name);
|
||||
if (p != NULL) return(p);
|
||||
}
|
||||
}
|
||||
vv.section="default";
|
||||
vv.name=name;
|
||||
v=(CONF_VALUE *)lh_retrieve(conf,&vv);
|
||||
if (v != NULL)
|
||||
return(v->value);
|
||||
else
|
||||
return(NULL);
|
||||
}
|
||||
else
|
||||
return(Getenv(name));
|
||||
}
|
||||
|
||||
static CONF_VALUE *get_section(LHASH *conf, char *section)
|
||||
{
|
||||
CONF_VALUE *v,vv;
|
||||
|
||||
if ((conf == NULL) || (section == NULL)) return(NULL);
|
||||
vv.name=NULL;
|
||||
vv.section=section;
|
||||
v=(CONF_VALUE *)lh_retrieve(conf,&vv);
|
||||
return(v);
|
||||
}
|
||||
|
||||
STACK_OF(CONF_VALUE) *CONF_get_section(LHASH *conf, char *section)
|
||||
{
|
||||
CONF_VALUE *v;
|
||||
|
||||
v=get_section(conf,section);
|
||||
if (v != NULL)
|
||||
return((STACK_OF(CONF_VALUE) *)v->value);
|
||||
else
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
long CONF_get_number(LHASH *conf, char *section, char *name)
|
||||
{
|
||||
char *str;
|
||||
long ret=0;
|
||||
|
||||
str=CONF_get_string(conf,section,name);
|
||||
if (str == NULL) return(0);
|
||||
for (;;)
|
||||
{
|
||||
if (IS_NUMER(*str))
|
||||
ret=ret*10+(*str -'0');
|
||||
else
|
||||
return(ret);
|
||||
str++;
|
||||
}
|
||||
}
|
||||
|
||||
void CONF_free(LHASH *conf)
|
||||
{
|
||||
if (conf == NULL) return;
|
||||
|
||||
conf->down_load=0; /* evil thing to make sure the 'Free()'
|
||||
* works as expected */
|
||||
lh_doall_arg(conf,(void (*)())value_free_hash,conf);
|
||||
|
||||
/* We now have only 'section' entries in the hash table.
|
||||
* Due to problems with */
|
||||
|
||||
lh_doall_arg(conf,(void (*)())value_free_stack,conf);
|
||||
lh_free(conf);
|
||||
}
|
||||
|
||||
static void value_free_hash(CONF_VALUE *a, LHASH *conf)
|
||||
{
|
||||
if (a->name != NULL)
|
||||
{
|
||||
a=(CONF_VALUE *)lh_delete(conf,a);
|
||||
}
|
||||
}
|
||||
|
||||
static void value_free_stack(CONF_VALUE *a, LHASH *conf)
|
||||
{
|
||||
CONF_VALUE *vv;
|
||||
STACK *sk;
|
||||
int i;
|
||||
|
||||
if (a->name != NULL) return;
|
||||
|
||||
sk=(STACK *)a->value;
|
||||
for (i=sk_num(sk)-1; i>=0; i--)
|
||||
{
|
||||
vv=(CONF_VALUE *)sk_value(sk,i);
|
||||
Free(vv->value);
|
||||
Free(vv->name);
|
||||
Free(vv);
|
||||
}
|
||||
if (sk != NULL) sk_free(sk);
|
||||
Free(a->section);
|
||||
Free(a);
|
||||
}
|
||||
|
||||
static void clear_comments(char *p)
|
||||
{
|
||||
char *to;
|
||||
|
||||
to=p;
|
||||
for (;;)
|
||||
{
|
||||
if (IS_COMMENT(*p))
|
||||
{
|
||||
*p='\0';
|
||||
return;
|
||||
}
|
||||
if (IS_QUOTE(*p))
|
||||
{
|
||||
p=scan_quote(p);
|
||||
continue;
|
||||
}
|
||||
if (IS_ESC(*p))
|
||||
{
|
||||
p=scan_esc(p);
|
||||
continue;
|
||||
}
|
||||
if (IS_EOF(*p))
|
||||
return;
|
||||
else
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
static int str_copy(LHASH *conf, char *section, char **pto, char *from)
|
||||
{
|
||||
int q,r,rr=0,to=0,len=0;
|
||||
char *s,*e,*rp,*p,*rrp,*np,*cp,v;
|
||||
BUF_MEM *buf;
|
||||
|
||||
if ((buf=BUF_MEM_new()) == NULL) return(0);
|
||||
|
||||
len=strlen(from)+1;
|
||||
if (!BUF_MEM_grow(buf,len)) goto err;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if (IS_QUOTE(*from))
|
||||
{
|
||||
q= *from;
|
||||
from++;
|
||||
while ((*from != '\0') && (*from != q))
|
||||
{
|
||||
if (*from == '\\')
|
||||
{
|
||||
from++;
|
||||
if (*from == '\0') break;
|
||||
}
|
||||
buf->data[to++]= *(from++);
|
||||
}
|
||||
}
|
||||
else if (*from == '\\')
|
||||
{
|
||||
from++;
|
||||
v= *(from++);
|
||||
if (v == '\0') break;
|
||||
else if (v == 'r') v='\r';
|
||||
else if (v == 'n') v='\n';
|
||||
else if (v == 'b') v='\b';
|
||||
else if (v == 't') v='\t';
|
||||
buf->data[to++]= v;
|
||||
}
|
||||
else if (*from == '\0')
|
||||
break;
|
||||
else if (*from == '$')
|
||||
{
|
||||
/* try to expand it */
|
||||
rrp=NULL;
|
||||
s= &(from[1]);
|
||||
if (*s == '{')
|
||||
q='}';
|
||||
else if (*s == '(')
|
||||
q=')';
|
||||
else q=0;
|
||||
|
||||
if (q) s++;
|
||||
cp=section;
|
||||
e=np=s;
|
||||
while (IS_ALPHA_NUMERIC(*e))
|
||||
e++;
|
||||
if ((e[0] == ':') && (e[1] == ':'))
|
||||
{
|
||||
cp=np;
|
||||
rrp=e;
|
||||
rr= *e;
|
||||
*rrp='\0';
|
||||
e+=2;
|
||||
np=e;
|
||||
while (IS_ALPHA_NUMERIC(*e))
|
||||
e++;
|
||||
}
|
||||
r= *e;
|
||||
*e='\0';
|
||||
rp=e;
|
||||
if (q)
|
||||
{
|
||||
if (r != q)
|
||||
{
|
||||
CONFerr(CONF_F_STR_COPY,CONF_R_NO_CLOSE_BRACE);
|
||||
goto err;
|
||||
}
|
||||
e++;
|
||||
}
|
||||
/* So at this point we have
|
||||
* ns which is the start of the name string which is
|
||||
* '\0' terminated.
|
||||
* cs which is the start of the section string which is
|
||||
* '\0' terminated.
|
||||
* e is the 'next point after'.
|
||||
* r and s are the chars replaced by the '\0'
|
||||
* rp and sp is where 'r' and 's' came from.
|
||||
*/
|
||||
p=CONF_get_string(conf,cp,np);
|
||||
if (rrp != NULL) *rrp=rr;
|
||||
*rp=r;
|
||||
if (p == NULL)
|
||||
{
|
||||
CONFerr(CONF_F_STR_COPY,CONF_R_VARIABLE_HAS_NO_VALUE);
|
||||
goto err;
|
||||
}
|
||||
BUF_MEM_grow(buf,(strlen(p)+len-(e-from)));
|
||||
while (*p)
|
||||
buf->data[to++]= *(p++);
|
||||
from=e;
|
||||
}
|
||||
else
|
||||
buf->data[to++]= *(from++);
|
||||
}
|
||||
buf->data[to]='\0';
|
||||
if (*pto != NULL) Free(*pto);
|
||||
*pto=buf->data;
|
||||
Free(buf);
|
||||
return(1);
|
||||
err:
|
||||
if (buf != NULL) BUF_MEM_free(buf);
|
||||
return(0);
|
||||
}
|
||||
|
||||
static char *eat_ws(char *p)
|
||||
{
|
||||
while (IS_WS(*p) && (!IS_EOF(*p)))
|
||||
p++;
|
||||
return(p);
|
||||
}
|
||||
|
||||
static char *eat_alpha_numeric(char *p)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
if (IS_ESC(*p))
|
||||
{
|
||||
p=scan_esc(p);
|
||||
continue;
|
||||
}
|
||||
if (!IS_ALPHA_NUMERIC_PUNCT(*p))
|
||||
return(p);
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned long hash(CONF_VALUE *v)
|
||||
{
|
||||
return((lh_strhash(v->section)<<2)^lh_strhash(v->name));
|
||||
}
|
||||
|
||||
static int cmp_conf(CONF_VALUE *a, CONF_VALUE *b)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (a->section != b->section)
|
||||
{
|
||||
i=strcmp(a->section,b->section);
|
||||
if (i) return(i);
|
||||
}
|
||||
|
||||
if ((a->name != NULL) && (b->name != NULL))
|
||||
{
|
||||
i=strcmp(a->name,b->name);
|
||||
return(i);
|
||||
}
|
||||
else if (a->name == b->name)
|
||||
return(0);
|
||||
else
|
||||
return((a->name == NULL)?-1:1);
|
||||
}
|
||||
|
||||
static char *scan_quote(char *p)
|
||||
{
|
||||
int q= *p;
|
||||
|
||||
p++;
|
||||
while (!(IS_EOF(*p)) && (*p != q))
|
||||
{
|
||||
if (IS_ESC(*p))
|
||||
{
|
||||
p++;
|
||||
if (IS_EOF(*p)) return(p);
|
||||
}
|
||||
p++;
|
||||
}
|
||||
if (*p == q) p++;
|
||||
return(p);
|
||||
}
|
||||
|
||||
static CONF_VALUE *new_section(LHASH *conf, char *section)
|
||||
{
|
||||
STACK *sk=NULL;
|
||||
int ok=0,i;
|
||||
CONF_VALUE *v=NULL,*vv;
|
||||
|
||||
if ((sk=sk_new_null()) == NULL)
|
||||
goto err;
|
||||
if ((v=(CONF_VALUE *)Malloc(sizeof(CONF_VALUE))) == NULL)
|
||||
goto err;
|
||||
i=strlen(section)+1;
|
||||
if ((v->section=(char *)Malloc(i)) == NULL)
|
||||
goto err;
|
||||
|
||||
memcpy(v->section,section,i);
|
||||
v->name=NULL;
|
||||
v->value=(char *)sk;
|
||||
|
||||
vv=(CONF_VALUE *)lh_insert(conf,v);
|
||||
if (vv != NULL)
|
||||
{
|
||||
#if !defined(NO_STDIO) && !defined(WIN16)
|
||||
fprintf(stderr,"internal fault\n");
|
||||
#endif
|
||||
abort();
|
||||
}
|
||||
ok=1;
|
||||
err:
|
||||
if (!ok)
|
||||
{
|
||||
if (sk != NULL) sk_free(sk);
|
||||
if (v != NULL) Free(v);
|
||||
v=NULL;
|
||||
}
|
||||
return(v);
|
||||
}
|
||||
|
||||
IMPLEMENT_STACK_OF(CONF_VALUE)
|
@ -1,116 +0,0 @@
|
||||
/* crypto/conf/conf_lcl.h */
|
||||
/* 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.]
|
||||
*/
|
||||
|
||||
#define CONF_NUMBER 1
|
||||
#define CONF_UPPER 2
|
||||
#define CONF_LOWER 4
|
||||
#define CONF_UNDER 256
|
||||
#define CONF_PUNCTUATION 512
|
||||
#define CONF_WS 16
|
||||
#define CONF_ESC 32
|
||||
#define CONF_QUOTE 64
|
||||
#define CONF_COMMENT 128
|
||||
#define CONF_EOF 8
|
||||
#define CONF_ALPHA (CONF_UPPER|CONF_LOWER)
|
||||
#define CONF_ALPHA_NUMERIC (CONF_ALPHA|CONF_NUMBER|CONF_UNDER)
|
||||
#define CONF_ALPHA_NUMERIC_PUNCT (CONF_ALPHA|CONF_NUMBER|CONF_UNDER| \
|
||||
CONF_PUNCTUATION)
|
||||
|
||||
#ifndef CHARSET_EBCDIC
|
||||
#define IS_COMMENT(a) (CONF_COMMENT&(CONF_type[(a)&0x7f]))
|
||||
#define IS_EOF(a) ((a) == '\0')
|
||||
#define IS_ESC(a) ((a) == '\\')
|
||||
#define IS_NUMER(a) (CONF_type[(a)&0x7f]&CONF_NUMBER)
|
||||
#define IS_WS(a) (CONF_type[(a)&0x7f]&CONF_WS)
|
||||
#define IS_ALPHA_NUMERIC(a) (CONF_type[(a)&0x7f]&CONF_ALPHA_NUMERIC)
|
||||
#define IS_ALPHA_NUMERIC_PUNCT(a) \
|
||||
(CONF_type[(a)&0x7f]&CONF_ALPHA_NUMERIC_PUNCT)
|
||||
#define IS_QUOTE(a) (CONF_type[(a)&0x7f]&CONF_QUOTE)
|
||||
|
||||
#else /*CHARSET_EBCDIC*/
|
||||
|
||||
#define IS_COMMENT(a) (CONF_COMMENT&(CONF_type[os_toascii[a]&0x7f]))
|
||||
#define IS_EOF(a) (os_toascii[a] == '\0')
|
||||
#define IS_ESC(a) (os_toascii[a] == '\\')
|
||||
#define IS_NUMER(a) (CONF_type[os_toascii[a]&0x7f]&CONF_NUMBER)
|
||||
#define IS_WS(a) (CONF_type[os_toascii[a]&0x7f]&CONF_WS)
|
||||
#define IS_ALPHA_NUMERIC(a) (CONF_type[os_toascii[a]&0x7f]&CONF_ALPHA_NUMERIC)
|
||||
#define IS_ALPHA_NUMERIC_PUNCT(a) \
|
||||
(CONF_type[os_toascii[a]&0x7f]&CONF_ALPHA_NUMERIC_PUNCT)
|
||||
#define IS_QUOTE(a) (CONF_type[os_toascii[a]&0x7f]&CONF_QUOTE)
|
||||
#endif /*CHARSET_EBCDIC*/
|
||||
|
||||
static unsigned short CONF_type[128]={
|
||||
0x008,0x000,0x000,0x000,0x000,0x000,0x000,0x000,
|
||||
0x000,0x010,0x010,0x000,0x000,0x010,0x000,0x000,
|
||||
0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000,
|
||||
0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000,
|
||||
0x010,0x200,0x040,0x080,0x000,0x200,0x200,0x040,
|
||||
0x000,0x000,0x200,0x200,0x200,0x200,0x200,0x200,
|
||||
0x001,0x001,0x001,0x001,0x001,0x001,0x001,0x001,
|
||||
0x001,0x001,0x000,0x200,0x000,0x000,0x000,0x200,
|
||||
0x200,0x002,0x002,0x002,0x002,0x002,0x002,0x002,
|
||||
0x002,0x002,0x002,0x002,0x002,0x002,0x002,0x002,
|
||||
0x002,0x002,0x002,0x002,0x002,0x002,0x002,0x002,
|
||||
0x002,0x002,0x002,0x000,0x020,0x000,0x200,0x100,
|
||||
0x040,0x004,0x004,0x004,0x004,0x004,0x004,0x004,
|
||||
0x004,0x004,0x004,0x004,0x004,0x004,0x004,0x004,
|
||||
0x004,0x004,0x004,0x004,0x004,0x004,0x004,0x004,
|
||||
0x004,0x004,0x004,0x000,0x200,0x000,0x200,0x000,
|
||||
};
|
||||
|
@ -1,16 +0,0 @@
|
||||
crypt <= crypt(buf,salt)
|
||||
key <= set_odd_parity(key)
|
||||
int <= is_weak_key(key)
|
||||
keysched<= set_key(key)
|
||||
key <= ecb_encrypt(string8,ks,enc)
|
||||
key <= ecb3_encrypt(input,ks1,ks2,enc)
|
||||
string <= cbc_encrypt(input,ks,ivec,enc) => ivec
|
||||
string <= cbc3_encrypt(input,ks1,ks2,ivec1,ivec2,enc) => ivec1&ivec2
|
||||
ck1,ck2 <= cbc_cksum(input,ks,ivec) => ivec
|
||||
string <= pcbc_encrypt(input,ks,ivec,enc) => ivec
|
||||
string <= ofb_encrypt(input,numbits,ks,ivec) => ivec
|
||||
string <= cfb_encrypt(input,numbits,ks,ivec,enc) => ivec
|
||||
key <= random_key()
|
||||
key <= string_to_key(string)
|
||||
key1,key2<= string_to_2keys(string)
|
||||
|
@ -1,96 +0,0 @@
|
||||
/* General stuff */
|
||||
COPYRIGHT - Copyright info.
|
||||
MODES.DES - A description of the features of the different modes of DES.
|
||||
FILES - This file.
|
||||
INSTALL - How to make things compile.
|
||||
Imakefile - For use with kerberos.
|
||||
README - What this package is.
|
||||
VERSION - Which version this is and what was changed.
|
||||
KERBEROS - Kerberos version 4 notes.
|
||||
Makefile.PL - An old makefile to build with perl5, not current.
|
||||
Makefile.ssl - The SSLeay makefile
|
||||
Makefile.uni - The normal unix makefile.
|
||||
GNUmakefile - The makefile for use with glibc.
|
||||
makefile.bc - A Borland C makefile
|
||||
times - Some outputs from 'speed' on some machines.
|
||||
vms.com - For use when compiling under VMS
|
||||
|
||||
/* My SunOS des(1) replacement */
|
||||
des.c - des(1) source code.
|
||||
des.man - des(1) manual.
|
||||
|
||||
/* Testing and timing programs. */
|
||||
destest.c - Source for libdes.a test program.
|
||||
speed.c - Source for libdes.a timing program.
|
||||
rpw.c - Source for libdes.a testing password reading routines.
|
||||
|
||||
/* libdes.a source code */
|
||||
des_crypt.man - libdes.a manual page.
|
||||
des.h - Public libdes.a header file.
|
||||
ecb_enc.c - des_ecb_encrypt() source, this contains the basic DES code.
|
||||
ecb3_enc.c - des_ecb3_encrypt() source.
|
||||
cbc_ckm.c - des_cbc_cksum() source.
|
||||
cbc_enc.c - des_cbc_encrypt() source.
|
||||
ncbc_enc.c - des_cbc_encrypt() that is 'normal' in that it copies
|
||||
the new iv values back in the passed iv vector.
|
||||
ede_enc.c - des_ede3_cbc_encrypt() cbc mode des using triple DES.
|
||||
cbc3_enc.c - des_3cbc_encrypt() source, don't use this function.
|
||||
cfb_enc.c - des_cfb_encrypt() source.
|
||||
cfb64enc.c - des_cfb64_encrypt() cfb in 64 bit mode but setup to be
|
||||
used as a stream cipher.
|
||||
cfb64ede.c - des_ede3_cfb64_encrypt() cfb in 64 bit mode but setup to be
|
||||
used as a stream cipher and using triple DES.
|
||||
ofb_enc.c - des_cfb_encrypt() source.
|
||||
ofb64_enc.c - des_ofb_encrypt() ofb in 64 bit mode but setup to be
|
||||
used as a stream cipher.
|
||||
ofb64ede.c - des_ede3_ofb64_encrypt() ofb in 64 bit mode but setup to be
|
||||
used as a stream cipher and using triple DES.
|
||||
enc_read.c - des_enc_read() source.
|
||||
enc_writ.c - des_enc_write() source.
|
||||
pcbc_enc.c - des_pcbc_encrypt() source.
|
||||
qud_cksm.c - quad_cksum() source.
|
||||
rand_key.c - des_random_key() source.
|
||||
read_pwd.c - Source for des_read_password() plus related functions.
|
||||
set_key.c - Source for des_set_key().
|
||||
str2key.c - Covert a string of any length into a key.
|
||||
fcrypt.c - A small, fast version of crypt(3).
|
||||
des_locl.h - Internal libdes.a header file.
|
||||
podd.h - Odd parity tables - used in des_set_key().
|
||||
sk.h - Lookup tables used in des_set_key().
|
||||
spr.h - What is left of the S tables - used in ecb_encrypt().
|
||||
des_ver.h - header file for the external definition of the
|
||||
version string.
|
||||
des.doc - SSLeay documentation for the library.
|
||||
|
||||
/* The perl scripts - you can ignore these files they are only
|
||||
* included for the curious */
|
||||
des.pl - des in perl anyone? des_set_key and des_ecb_encrypt
|
||||
both done in a perl library.
|
||||
testdes.pl - Testing program for des.pl
|
||||
doIP - Perl script used to develop IP xor/shift code.
|
||||
doPC1 - Perl script used to develop PC1 xor/shift code.
|
||||
doPC2 - Generates sk.h.
|
||||
PC1 - Output of doPC1 should be the same as output from PC1.
|
||||
PC2 - used in development of doPC2.
|
||||
shifts.pl - Perl library used by my perl scripts.
|
||||
|
||||
/* I started making a perl5 dynamic library for libdes
|
||||
* but did not fully finish, these files are part of that effort. */
|
||||
DES.pm
|
||||
DES.pod
|
||||
DES.xs
|
||||
t
|
||||
typemap
|
||||
|
||||
/* The following are for use with sun RPC implementaions. */
|
||||
rpc_des.h
|
||||
rpc_enc.c
|
||||
|
||||
/* The following are contibuted by Mark Murray <mark@grondar.za>. They
|
||||
* are not normally built into libdes due to machine specific routines
|
||||
* contained in them. They are for use in the most recent incarnation of
|
||||
* export kerberos v 4 (eBones). */
|
||||
supp.c
|
||||
new_rkey.c
|
||||
|
||||
|
@ -1,84 +0,0 @@
|
||||
Modes of DES
|
||||
Quite a bit of the following information has been taken from
|
||||
AS 2805.5.2
|
||||
Australian Standard
|
||||
Electronic funds transfer - Requirements for interfaces,
|
||||
Part 5.2: Modes of operation for an n-bit block cipher algorithm
|
||||
Appendix A
|
||||
|
||||
There are several different modes in which DES can be used, they are
|
||||
as follows.
|
||||
|
||||
Electronic Codebook Mode (ECB) (des_ecb_encrypt())
|
||||
- 64 bits are enciphered at a time.
|
||||
- The order of the blocks can be rearranged without detection.
|
||||
- The same plaintext block always produces the same ciphertext block
|
||||
(for the same key) making it vulnerable to a 'dictionary attack'.
|
||||
- An error will only affect one ciphertext block.
|
||||
|
||||
Cipher Block Chaining Mode (CBC) (des_cbc_encrypt())
|
||||
- a multiple of 64 bits are enciphered at a time.
|
||||
- The CBC mode produces the same ciphertext whenever the same
|
||||
plaintext is encrypted using the same key and starting variable.
|
||||
- The chaining operation makes the ciphertext blocks dependent on the
|
||||
current and all preceding plaintext blocks and therefore blocks can not
|
||||
be rearranged.
|
||||
- The use of different starting variables prevents the same plaintext
|
||||
enciphering to the same ciphertext.
|
||||
- An error will affect the current and the following ciphertext blocks.
|
||||
|
||||
Cipher Feedback Mode (CFB) (des_cfb_encrypt())
|
||||
- a number of bits (j) <= 64 are enciphered at a time.
|
||||
- The CFB mode produces the same ciphertext whenever the same
|
||||
plaintext is encrypted using the same key and starting variable.
|
||||
- The chaining operation makes the ciphertext variables dependent on the
|
||||
current and all preceding variables and therefore j-bit variables are
|
||||
chained together and con not be rearranged.
|
||||
- The use of different starting variables prevents the same plaintext
|
||||
enciphering to the same ciphertext.
|
||||
- The strength of the CFB mode depends on the size of k (maximal if
|
||||
j == k). In my implementation this is always the case.
|
||||
- Selection of a small value for j will require more cycles through
|
||||
the encipherment algorithm per unit of plaintext and thus cause
|
||||
greater processing overheads.
|
||||
- Only multiples of j bits can be enciphered.
|
||||
- An error will affect the current and the following ciphertext variables.
|
||||
|
||||
Output Feedback Mode (OFB) (des_ofb_encrypt())
|
||||
- a number of bits (j) <= 64 are enciphered at a time.
|
||||
- The OFB mode produces the same ciphertext whenever the same
|
||||
plaintext enciphered using the same key and starting variable. More
|
||||
over, in the OFB mode the same key stream is produced when the same
|
||||
key and start variable are used. Consequently, for security reasons
|
||||
a specific start variable should be used only once for a given key.
|
||||
- The absence of chaining makes the OFB more vulnerable to specific attacks.
|
||||
- The use of different start variables values prevents the same
|
||||
plaintext enciphering to the same ciphertext, by producing different
|
||||
key streams.
|
||||
- Selection of a small value for j will require more cycles through
|
||||
the encipherment algorithm per unit of plaintext and thus cause
|
||||
greater processing overheads.
|
||||
- Only multiples of j bits can be enciphered.
|
||||
- OFB mode of operation does not extend ciphertext errors in the
|
||||
resultant plaintext output. Every bit error in the ciphertext causes
|
||||
only one bit to be in error in the deciphered plaintext.
|
||||
- OFB mode is not self-synchronising. If the two operation of
|
||||
encipherment and decipherment get out of synchronism, the system needs
|
||||
to be re-initialised.
|
||||
- Each re-initialisation should use a value of the start variable
|
||||
different from the start variable values used before with the same
|
||||
key. The reason for this is that an identical bit stream would be
|
||||
produced each time from the same parameters. This would be
|
||||
susceptible to a 'known plaintext' attack.
|
||||
|
||||
Triple ECB Mode (des_ecb3_encrypt())
|
||||
- Encrypt with key1, decrypt with key2 and encrypt with key1 again.
|
||||
- As for ECB encryption but increases the effective key length to 112 bits.
|
||||
- If both keys are the same it is equivalent to encrypting once with
|
||||
just one key.
|
||||
|
||||
Triple CBC Mode (des_3cbc_encrypt())
|
||||
- Encrypt with key1, decrypt with key2 and encrypt with key1 again.
|
||||
- As for CBC encryption but increases the effective key length to 112 bits.
|
||||
- If both keys are the same it is equivalent to encrypting once with
|
||||
just one key.
|
@ -1,14 +0,0 @@
|
||||
use ExtUtils::MakeMaker;
|
||||
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
|
||||
# the contents of the Makefile being created.
|
||||
&writeMakefile(
|
||||
'potential_libs' => '', # e.g., '-lm'
|
||||
'INC' => '', # e.g., '-I/usr/include/other'
|
||||
'DISTNAME' => 'DES',
|
||||
'VERSION' => '0.1',
|
||||
'DEFINE' => '-DPERL5',
|
||||
'OBJECT' => 'DES.o cbc_cksm.o cbc_enc.o ecb_enc.o pcbc_enc.o \
|
||||
rand_key.o set_key.o str2key.o \
|
||||
enc_read.o enc_writ.o fcrypt.o cfb_enc.o \
|
||||
ecb3_enc.o ofb_enc.o cbc3_enc.o des_enc.o',
|
||||
);
|
@ -1,250 +0,0 @@
|
||||
# You must select the correct terminal control system to be used to
|
||||
# turn character echo off when reading passwords. There a 5 systems
|
||||
# SGTTY - the old BSD system
|
||||
# TERMIO - most system V boxes
|
||||
# TERMIOS - SGI (ala IRIX).
|
||||
# VMS - the DEC operating system
|
||||
# MSDOS - we all know what it is :-)
|
||||
# read_pwd.c makes a reasonable guess at what is correct.
|
||||
|
||||
# Targets
|
||||
# make - twidle the options yourself :-)
|
||||
# make cc - standard cc options
|
||||
# make gcc - standard gcc options
|
||||
# make x86-elf - linux-elf etc
|
||||
# make x86-out - linux-a.out, FreeBSD etc
|
||||
# make x86-solaris
|
||||
# make x86-bdsi
|
||||
|
||||
# If you are on a DEC Alpha, edit des.h and change the DES_LONG
|
||||
# define to 'unsigned int'. I have seen this give a %20 speedup.
|
||||
|
||||
OPTS0= -DLIBDES_LIT -DRAND -DTERMIO #-DNOCONST
|
||||
|
||||
# Version 1.94 has changed the strings_to_key function so that it is
|
||||
# now compatible with MITs when the string is longer than 8 characters.
|
||||
# If you wish to keep the old version, uncomment the following line.
|
||||
# This will affect the -E/-D options on des(1).
|
||||
#OPTS1= -DOLD_STR_TO_KEY
|
||||
|
||||
# There are 4 possible performance options
|
||||
# -DDES_PTR
|
||||
# -DDES_RISC1
|
||||
# -DDES_RISC2 (only one of DES_RISC1 and DES_RISC2)
|
||||
# -DDES_UNROLL
|
||||
# after the initial build, run 'des_opts' to see which options are best
|
||||
# for your platform. There are some listed in options.txt
|
||||
#OPTS2= -DDES_PTR
|
||||
#OPTS3= -DDES_RISC1 # or DES_RISC2
|
||||
#OPTS4= -DDES_UNROLL
|
||||
|
||||
OPTS= $(OPTS0) $(OPTS1) $(OPTS2) $(OPTS3) $(OPTS4)
|
||||
|
||||
MAKE=make -f Makefile
|
||||
#CC=cc
|
||||
#CFLAG= -O
|
||||
|
||||
CC=gcc
|
||||
#CFLAG= -O4 -funroll-loops -fomit-frame-pointer
|
||||
CFLAG= -O3 -fomit-frame-pointer
|
||||
|
||||
CFLAGS=$(OPTS) $(CFLAG)
|
||||
CPP=$(CC) -E
|
||||
AS=as
|
||||
|
||||
# Assember version of des_encrypt*().
|
||||
DES_ENC=des_enc.o fcrypt_b.o # normal C version
|
||||
#DES_ENC=asm/dx86-elf.o asm/yx86-elf.o # elf format x86
|
||||
#DES_ENC=asm/dx86-out.o asm/yx86-out.o # a.out format x86
|
||||
#DES_ENC=asm/dx86-sol.o asm/yx86-sol.o # solaris format x86
|
||||
#DES_ENC=asm/dx86bsdi.o asm/yx86basi.o # bsdi format x86
|
||||
|
||||
LIBDIR=/usr/local/lib
|
||||
BINDIR=/usr/local/bin
|
||||
INCDIR=/usr/local/include
|
||||
MANDIR=/usr/local/man
|
||||
MAN1=1
|
||||
MAN3=3
|
||||
SHELL=/bin/sh
|
||||
OBJ_LIT=cbc_enc.o ecb_enc.o $(DES_ENC) fcrypt.o set_key.o
|
||||
OBJ_FULL=cbc_cksm.o $(OBJ_LIT) pcbc_enc.o \
|
||||
xcbc_enc.o qud_cksm.o \
|
||||
cfb64ede.o cfb64enc.o cfb_enc.o ecb3_enc.o \
|
||||
enc_read.o enc_writ.o ofb64ede.o ofb64enc.o ofb_enc.o \
|
||||
rand_key.o read_pwd.o read2pwd.o rpc_enc.o str2key.o supp.o
|
||||
|
||||
GENERAL_LIT=COPYRIGHT INSTALL README VERSION Makefile des_crypt.man \
|
||||
des.doc options.txt asm
|
||||
GENERAL_FULL=$(GENERAL_LIT) FILES Imakefile times vms.com KERBEROS MODES.DES \
|
||||
des.man DES.pm DES.pod DES.xs Makefile.PL dess.cpp des3s.cpp \
|
||||
Makefile.uni typemap t Makefile.ssl makefile.bc Makefile.lit \
|
||||
des.org des_locl.org
|
||||
TESTING_LIT= destest speed des_opts
|
||||
TESTING_FULL= rpw $(TESTING_LIT)
|
||||
TESTING_SRC_LIT=destest.c speed.c des_opts.c
|
||||
TESTING_SRC_FULL=rpw.c $(TESTING_SRC_LIT)
|
||||
HEADERS_LIT=des_ver.h des.h des_locl.h podd.h sk.h spr.h
|
||||
HEADERS_FULL= $(HEADERS_LIT) rpc_des.h
|
||||
LIBDES_LIT=cbc_enc.c ecb_enc.c fcrypt.c set_key.c des_enc.c fcrypt_b.c
|
||||
LIBDES_FULL= cbc_cksm.c pcbc_enc.c qud_cksm.c \
|
||||
cfb64ede.c cfb64enc.c cfb_enc.c ecb3_enc.c \
|
||||
enc_read.c enc_writ.c ofb64ede.c ofb64enc.c ofb_enc.c \
|
||||
rand_key.c rpc_enc.c str2key.c supp.c \
|
||||
xcbc_enc.c $(LIBDES_LIT) read_pwd.c read2pwd.c
|
||||
|
||||
PERL= des.pl testdes.pl doIP doPC1 doPC2 PC1 PC2 shifts.pl
|
||||
|
||||
OBJ= $(OBJ_LIT)
|
||||
GENERAL=$(GENERAL_LIT)
|
||||
TESTING=$(TESTING_LIT)
|
||||
TESTING_SRC=$(TESTING_SRC_LIT)
|
||||
HEADERS=$(HEADERS_LIT)
|
||||
LIBDES= $(LIBDES_LIT)
|
||||
|
||||
ALL= $(GENERAL) $(TESTING_SRC) $(LIBDES) $(PERL) $(HEADERS)
|
||||
|
||||
DLIB= libdes.a
|
||||
|
||||
all: $(DLIB) $(TESTING)
|
||||
|
||||
cc:
|
||||
$(MAKE) CC=cc CFLAGS="-O $(OPTS) $(CFLAG)" all
|
||||
|
||||
gcc:
|
||||
$(MAKE) CC=gcc CFLAGS="-O3 -fomit-frame-pointer $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-elf:
|
||||
$(MAKE) DES_ENC='asm/dx86-elf.o asm/yx86-elf.o' CC=$(CC) CFLAGS="-DELF $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-out:
|
||||
$(MAKE) DES_ENC='asm/dx86-out.o asm/yx86-out.o' CC=$(CC) CFLAGS="-DOUT $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-solaris:
|
||||
$(MAKE) DES_ENC='asm/dx86-sol.o asm/yx86-sol.o' CC=$(CC) CFLAGS="-DSOL $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-bsdi:
|
||||
$(MAKE) DES_ENC='asm/dx86bsdi.o asm/yx86bsdi.o' CC=$(CC) CFLAGS="-DBSDI $(OPTS) $(CFLAG)" all
|
||||
|
||||
# elf
|
||||
asm/dx86-elf.o: asm/dx86unix.cpp
|
||||
$(CPP) -DELF asm/dx86unix.cpp | $(AS) -o asm/dx86-elf.o
|
||||
|
||||
asm/yx86-elf.o: asm/yx86unix.cpp
|
||||
$(CPP) -DELF asm/yx86unix.cpp | $(AS) -o asm/yx86-elf.o
|
||||
|
||||
# solaris
|
||||
asm/dx86-sol.o: asm/dx86unix.cpp
|
||||
$(CC) -E -DSOL asm/dx86unix.cpp | sed 's/^#.*//' > asm/dx86-sol.s
|
||||
as -o asm/dx86-sol.o asm/dx86-sol.s
|
||||
rm -f asm/dx86-sol.s
|
||||
|
||||
asm/yx86-sol.o: asm/yx86unix.cpp
|
||||
$(CC) -E -DSOL asm/yx86unix.cpp | sed 's/^#.*//' > asm/yx86-sol.s
|
||||
as -o asm/yx86-sol.o asm/yx86-sol.s
|
||||
rm -f asm/yx86-sol.s
|
||||
|
||||
# a.out
|
||||
asm/dx86-out.o: asm/dx86unix.cpp
|
||||
$(CPP) -DOUT asm/dx86unix.cpp | $(AS) -o asm/dx86-out.o
|
||||
|
||||
asm/yx86-out.o: asm/yx86unix.cpp
|
||||
$(CPP) -DOUT asm/yx86unix.cpp | $(AS) -o asm/yx86-out.o
|
||||
|
||||
# bsdi
|
||||
asm/dx86bsdi.o: asm/dx86unix.cpp
|
||||
$(CPP) -DBSDI asm/dx86unix.cpp | $(AS) -o asm/dx86bsdi.o
|
||||
|
||||
asm/yx86bsdi.o: asm/yx86unix.cpp
|
||||
$(CPP) -DBSDI asm/yx86unix.cpp | $(AS) -o asm/yx86bsdi.o
|
||||
|
||||
asm/dx86unix.cpp:
|
||||
(cd asm; perl des-586.pl cpp >dx86unix.cpp)
|
||||
|
||||
asm/yx86unix.cpp:
|
||||
(cd asm; perl crypt586.pl cpp >yx86unix.cpp)
|
||||
|
||||
test: all
|
||||
./destest
|
||||
|
||||
$(DLIB): $(OBJ)
|
||||
/bin/rm -f $(DLIB)
|
||||
ar cr $(DLIB) $(OBJ)
|
||||
-if test -s /bin/ranlib; then /bin/ranlib $(DLIB); \
|
||||
else if test -s /usr/bin/ranlib; then /usr/bin/ranlib $(DLIB); \
|
||||
else exit 0; fi; fi
|
||||
|
||||
des_opts: des_opts.o $(DLIB)
|
||||
$(CC) $(CFLAGS) -o des_opts des_opts.o $(DLIB)
|
||||
|
||||
destest: destest.o $(DLIB)
|
||||
$(CC) $(CFLAGS) -o destest destest.o $(DLIB)
|
||||
|
||||
rpw: rpw.o $(DLIB)
|
||||
$(CC) $(CFLAGS) -o rpw rpw.o $(DLIB)
|
||||
|
||||
speed: speed.o $(DLIB)
|
||||
$(CC) $(CFLAGS) -o speed speed.o $(DLIB)
|
||||
|
||||
des: des.o $(DLIB)
|
||||
$(CC) $(CFLAGS) -o des des.o $(DLIB)
|
||||
|
||||
tags:
|
||||
ctags $(TESTING_SRC) $(LIBDES)
|
||||
|
||||
tar_lit:
|
||||
/bin/mv Makefile Makefile.tmp
|
||||
/bin/cp Makefile.lit Makefile
|
||||
tar chf libdes-l.tar $(LIBDES_LIT) $(HEADERS_LIT) \
|
||||
$(GENERAL_LIT) $(TESTING_SRC_LIT)
|
||||
/bin/rm -f Makefile
|
||||
/bin/mv Makefile.tmp Makefile
|
||||
|
||||
tar:
|
||||
tar chf libdes.tar $(ALL)
|
||||
|
||||
shar:
|
||||
shar $(ALL) >libdes.shar
|
||||
|
||||
depend:
|
||||
makedepend $(LIBDES) $(TESTING_SRC)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o tags core $(TESTING) $(DLIB) .nfs* *.old *.bak asm/*.o
|
||||
|
||||
dclean:
|
||||
sed -e '/^# DO NOT DELETE THIS LINE/ q' Makefile >Makefile.new
|
||||
mv -f Makefile.new Makefile
|
||||
|
||||
# Eric is probably going to choke when he next looks at this --tjh
|
||||
install:
|
||||
if test $(INSTALLTOP); then \
|
||||
echo SSL style install; \
|
||||
cp $(DLIB) $(INSTALLTOP)/lib; \
|
||||
if test -s /bin/ranlib; then \
|
||||
/bin/ranlib $(INSTALLTOP)/lib/$(DLIB); \
|
||||
else \
|
||||
if test -s /usr/bin/ranlib; then \
|
||||
/usr/bin/ranlib $(INSTALLTOP)/lib/$(DLIB); \
|
||||
fi; fi; \
|
||||
chmod 644 $(INSTALLTOP)/lib/$(DLIB); \
|
||||
cp des.h $(INSTALLTOP)/include; \
|
||||
chmod 644 $(INSTALLTOP)/include/des.h; \
|
||||
else \
|
||||
echo Standalone install; \
|
||||
cp $(DLIB) $(LIBDIR)/$(DLIB); \
|
||||
if test -s /bin/ranlib; then \
|
||||
/bin/ranlib $(LIBDIR)/$(DLIB); \
|
||||
else \
|
||||
if test -s /usr/bin/ranlib; then \
|
||||
/usr/bin/ranlib $(LIBDIR)/$(DLIB); \
|
||||
fi; \
|
||||
fi; \
|
||||
chmod 644 $(LIBDIR)/$(DLIB); \
|
||||
cp des_crypt.man $(MANDIR)/man$(MAN3)/des_crypt.$(MAN3); \
|
||||
chmod 644 $(MANDIR)/man$(MAN3)/des_crypt.$(MAN3); \
|
||||
cp des.man $(MANDIR)/man$(MAN1)/des.$(MAN1); \
|
||||
chmod 644 $(MANDIR)/man$(MAN1)/des.$(MAN1); \
|
||||
cp des.h $(INCDIR)/des.h; \
|
||||
chmod 644 $(INCDIR)/des.h; \
|
||||
fi
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
@ -1,212 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/des/Makefile
|
||||
#
|
||||
|
||||
DIR= des
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
CPP= $(CC) -E
|
||||
INCLUDES=-I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
RANLIB= ranlib
|
||||
DES_ENC= des_enc.o fcrypt_b.o
|
||||
# or use
|
||||
#DES_ENC= dx86-elf.o yx86-elf.o
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=destest.c
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= 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 read_pwd.c rpc_enc.c set_key.c \
|
||||
des_enc.c fcrypt_b.c read2pwd.c \
|
||||
xcbc_enc.c \
|
||||
str2key.c cfb64ede.c ofb64ede.c ede_cbcm_enc.c
|
||||
|
||||
LIBOBJ= 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 \
|
||||
${DES_ENC} read2pwd.o \
|
||||
fcrypt.o xcbc_enc.o read_pwd.o rpc_enc.o cbc_cksm.o \
|
||||
ede_cbcm_enc.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= des.h
|
||||
HEADER= des_locl.h rpc_des.h spr.h des_ver.h $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
des: des.o cbc3_enc.o lib
|
||||
$(CC) $(CFLAGS) -o des des.o cbc3_enc.o $(LIB)
|
||||
|
||||
# elf
|
||||
asm/dx86-elf.o: asm/dx86unix.cpp
|
||||
$(CPP) -DELF -x c asm/dx86unix.cpp | as -o asm/dx86-elf.o
|
||||
|
||||
asm/yx86-elf.o: asm/yx86unix.cpp
|
||||
$(CPP) -DELF -x c asm/yx86unix.cpp | as -o asm/yx86-elf.o
|
||||
|
||||
# solaris
|
||||
asm/dx86-sol.o: asm/dx86unix.cpp
|
||||
$(CC) -E -DSOL asm/dx86unix.cpp | sed 's/^#.*//' > asm/dx86-sol.s
|
||||
as -o asm/dx86-sol.o asm/dx86-sol.s
|
||||
rm -f asm/dx86-sol.s
|
||||
|
||||
asm/yx86-sol.o: asm/yx86unix.cpp
|
||||
$(CC) -E -DSOL asm/yx86unix.cpp | sed 's/^#.*//' > asm/yx86-sol.s
|
||||
as -o asm/yx86-sol.o asm/yx86-sol.s
|
||||
rm -f asm/yx86-sol.s
|
||||
|
||||
# a.out
|
||||
asm/dx86-out.o: asm/dx86unix.cpp
|
||||
$(CPP) -DOUT asm/dx86unix.cpp | as -o asm/dx86-out.o
|
||||
|
||||
asm/yx86-out.o: asm/yx86unix.cpp
|
||||
$(CPP) -DOUT asm/yx86unix.cpp | as -o asm/yx86-out.o
|
||||
|
||||
# bsdi
|
||||
asm/dx86bsdi.o: asm/dx86unix.cpp
|
||||
$(CPP) -DBSDI asm/dx86unix.cpp | sed 's/ :/:/' | as -o asm/dx86bsdi.o
|
||||
|
||||
asm/yx86bsdi.o: asm/yx86unix.cpp
|
||||
$(CPP) -DBSDI asm/yx86unix.cpp | sed 's/ :/:/' | as -o asm/yx86bsdi.o
|
||||
|
||||
asm/dx86unix.cpp: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
|
||||
(cd asm; $(PERL) des-586.pl cpp >dx86unix.cpp)
|
||||
|
||||
asm/yx86unix.cpp: asm/crypt586.pl ../perlasm/x86asm.pl
|
||||
(cd asm; $(PERL) crypt586.pl cpp >yx86unix.cpp)
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(TOP)/util/point.sh ../../perlasm asm/perlasm
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install: installs
|
||||
|
||||
installs:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f asm/dx86unix.cpp asm/yx86unix.cpp *.o asm/*.o *.obj des lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
cbc_cksm.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
cbc_cksm.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
cbc_enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
cbc_enc.o: ../../include/openssl/opensslconf.h des_locl.h ncbc_enc.c
|
||||
cfb64ede.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
cfb64ede.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
cfb64enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
cfb64enc.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
cfb_enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
cfb_enc.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
des_enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
des_enc.o: ../../include/openssl/opensslconf.h des_locl.h des_locl.h ncbc_enc.c
|
||||
ecb3_enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
ecb3_enc.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
ecb_enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
ecb_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
ecb_enc.o: des_locl.h spr.h
|
||||
ede_cbcm_enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
ede_cbcm_enc.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
enc_read.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
enc_read.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
enc_read.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
enc_read.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
enc_read.o: ../../include/openssl/opensslconf.h
|
||||
enc_read.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
enc_read.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
enc_read.o: ../cryptlib.h des_locl.h
|
||||
enc_writ.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
enc_writ.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
enc_writ.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
enc_writ.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
enc_writ.o: ../../include/openssl/opensslconf.h
|
||||
enc_writ.o: ../../include/openssl/opensslv.h ../../include/openssl/rand.h
|
||||
enc_writ.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
enc_writ.o: ../../include/openssl/symhacks.h ../cryptlib.h des_locl.h
|
||||
fcrypt.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
fcrypt.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
fcrypt_b.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
fcrypt_b.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
ofb64ede.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
ofb64ede.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
ofb64enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
ofb64enc.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
ofb_enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
ofb_enc.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
pcbc_enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
pcbc_enc.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
qud_cksm.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
qud_cksm.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
rand_key.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
rand_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/rand.h
|
||||
read2pwd.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
read2pwd.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
read_pwd.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
read_pwd.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
read_pwd.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
read_pwd.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
read_pwd.o: ../../include/openssl/opensslconf.h
|
||||
read_pwd.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
read_pwd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
read_pwd.o: ../cryptlib.h des_locl.h
|
||||
rpc_enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
rpc_enc.o: ../../include/openssl/opensslconf.h des_locl.h des_ver.h rpc_des.h
|
||||
set_key.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
set_key.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
str2key.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
str2key.o: ../../include/openssl/opensslconf.h des_locl.h
|
||||
xcbc_enc.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
|
||||
xcbc_enc.o: ../../include/openssl/opensslconf.h des_locl.h
|
@ -1,251 +0,0 @@
|
||||
# You must select the correct terminal control system to be used to
|
||||
# turn character echo off when reading passwords. There a 5 systems
|
||||
# SGTTY - the old BSD system
|
||||
# TERMIO - most system V boxes
|
||||
# TERMIOS - SGI (ala IRIX).
|
||||
# VMS - the DEC operating system
|
||||
# MSDOS - we all know what it is :-)
|
||||
# read_pwd.c makes a reasonable guess at what is correct.
|
||||
|
||||
# Targets
|
||||
# make - twidle the options yourself :-)
|
||||
# make cc - standard cc options
|
||||
# make gcc - standard gcc options
|
||||
# make x86-elf - linux-elf etc
|
||||
# make x86-out - linux-a.out, FreeBSD etc
|
||||
# make x86-solaris
|
||||
# make x86-bdsi
|
||||
|
||||
# If you are on a DEC Alpha, edit des.h and change the DES_LONG
|
||||
# define to 'unsigned int'. I have seen this give a %20 speedup.
|
||||
|
||||
OPTS0= -DRAND -DTERMIO #-DNOCONST
|
||||
|
||||
# Version 1.94 has changed the strings_to_key function so that it is
|
||||
# now compatible with MITs when the string is longer than 8 characters.
|
||||
# If you wish to keep the old version, uncomment the following line.
|
||||
# This will affect the -E/-D options on des(1).
|
||||
#OPTS1= -DOLD_STR_TO_KEY
|
||||
|
||||
# There are 4 possible performance options
|
||||
# -DDES_PTR
|
||||
# -DDES_RISC1
|
||||
# -DDES_RISC2 (only one of DES_RISC1 and DES_RISC2)
|
||||
# -DDES_UNROLL
|
||||
# after the initial build, run 'des_opts' to see which options are best
|
||||
# for your platform. There are some listed in options.txt
|
||||
#OPTS2= -DDES_PTR
|
||||
#OPTS3= -DDES_RISC1 # or DES_RISC2
|
||||
#OPTS4= -DDES_UNROLL
|
||||
|
||||
OPTS= $(OPTS0) $(OPTS1) $(OPTS2) $(OPTS3) $(OPTS4)
|
||||
|
||||
MAKE=make -f Makefile
|
||||
#CC=cc
|
||||
#CFLAG= -O
|
||||
|
||||
CC=gcc
|
||||
#CFLAG= -O4 -funroll-loops -fomit-frame-pointer
|
||||
CFLAG= -O3 -fomit-frame-pointer
|
||||
|
||||
CFLAGS=$(OPTS) $(CFLAG)
|
||||
CPP=$(CC) -E
|
||||
AS=as
|
||||
RANLIB=ranlib
|
||||
|
||||
# Assember version of des_encrypt*().
|
||||
DES_ENC=des_enc.o fcrypt_b.o # normal C version
|
||||
#DES_ENC=asm/dx86-elf.o asm/yx86-elf.o # elf format x86
|
||||
#DES_ENC=asm/dx86-out.o asm/yx86-out.o # a.out format x86
|
||||
#DES_ENC=asm/dx86-sol.o asm/yx86-sol.o # solaris format x86
|
||||
#DES_ENC=asm/dx86bsdi.o asm/yx86basi.o # bsdi format x86
|
||||
|
||||
LIBDIR=/usr/local/lib
|
||||
BINDIR=/usr/local/bin
|
||||
INCDIR=/usr/local/include
|
||||
MANDIR=/usr/local/man
|
||||
MAN1=1
|
||||
MAN3=3
|
||||
SHELL=/bin/sh
|
||||
OBJ_LIT=cbc_enc.o ecb_enc.o $(DES_ENC) fcrypt.o set_key.o
|
||||
OBJ_FULL=cbc_cksm.o $(OBJ_LIT) pcbc_enc.o \
|
||||
xcbc_enc.o qud_cksm.o cbc3_enc.o \
|
||||
cfb64ede.o cfb64enc.o cfb_enc.o ecb3_enc.o \
|
||||
enc_read.o enc_writ.o ofb64ede.o ofb64enc.o ofb_enc.o \
|
||||
rand_key.o read_pwd.o read2pwd.o rpc_enc.o str2key.o supp.o
|
||||
|
||||
GENERAL_LIT=COPYRIGHT INSTALL README VERSION Makefile des_crypt.man \
|
||||
des.doc options.txt asm
|
||||
GENERAL_FULL=$(GENERAL_LIT) FILES Imakefile times vms.com KERBEROS MODES.DES \
|
||||
des.man DES.pm DES.pod DES.xs Makefile.PL dess.cpp des3s.cpp \
|
||||
Makefile.uni typemap t Makefile.ssl makefile.bc Makefile.lit \
|
||||
des.org des_locl.org
|
||||
TESTING_LIT= destest speed des_opts
|
||||
TESTING_FULL= rpw des $(TESTING_LIT)
|
||||
TESTING_SRC_LIT=destest.c speed.c des_opts.c
|
||||
TESTING_SRC_FULL=rpw.c des.c $(TESTING_SRC_LIT)
|
||||
HEADERS_LIT=des_ver.h des.h des_locl.h podd.h sk.h spr.h
|
||||
HEADERS_FULL= $(HEADERS_LIT) rpc_des.h
|
||||
LIBDES_LIT=cbc_enc.c ecb_enc.c fcrypt.c set_key.c des_enc.c fcrypt_b.c
|
||||
LIBDES_FULL= cbc_cksm.c pcbc_enc.c qud_cksm.c cbc3_enc.c \
|
||||
cfb64ede.c cfb64enc.c cfb_enc.c ecb3_enc.c \
|
||||
enc_read.c enc_writ.c ofb64ede.c ofb64enc.c ofb_enc.c \
|
||||
rand_key.c rpc_enc.c str2key.c supp.c \
|
||||
xcbc_enc.c $(LIBDES_LIT) read_pwd.c read2pwd.c
|
||||
|
||||
PERL= des.pl testdes.pl doIP doPC1 doPC2 PC1 PC2 shifts.pl
|
||||
|
||||
OBJ= $(OBJ_FULL)
|
||||
GENERAL=$(GENERAL_FULL)
|
||||
TESTING=$(TESTING_FULL)
|
||||
TESTING_SRC=$(TESTING_SRC_FULL)
|
||||
HEADERS=$(HEADERS_FULL)
|
||||
LIBDES= $(LIBDES_FULL)
|
||||
|
||||
ALL= $(GENERAL) $(TESTING_SRC) $(LIBDES) $(PERL) $(HEADERS)
|
||||
|
||||
DLIB= libdes.a
|
||||
|
||||
all: $(DLIB) $(TESTING)
|
||||
|
||||
cc:
|
||||
$(MAKE) CC=cc CFLAGS="-O $(OPTS) $(CFLAG)" all
|
||||
|
||||
gcc:
|
||||
$(MAKE) CC=gcc CFLAGS="-O3 -fomit-frame-pointer $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-elf:
|
||||
$(MAKE) DES_ENC='asm/dx86-elf.o asm/yx86-elf.o' CC=$(CC) CFLAGS="-DELF $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-out:
|
||||
$(MAKE) DES_ENC='asm/dx86-out.o asm/yx86-out.o' CC=$(CC) CFLAGS="-DOUT $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-solaris:
|
||||
$(MAKE) DES_ENC='asm/dx86-sol.o asm/yx86-sol.o' CC=$(CC) CFLAGS="-DSOL $(OPTS) $(CFLAG)" all
|
||||
|
||||
x86-bsdi:
|
||||
$(MAKE) DES_ENC='asm/dx86bsdi.o asm/yx86bsdi.o' CC=$(CC) CFLAGS="-DBSDI $(OPTS) $(CFLAG)" all
|
||||
|
||||
# elf
|
||||
asm/dx86-elf.o: asm/dx86unix.cpp
|
||||
$(CPP) -DELF asm/dx86unix.cpp | $(AS) -o asm/dx86-elf.o
|
||||
|
||||
asm/yx86-elf.o: asm/yx86unix.cpp
|
||||
$(CPP) -DELF asm/yx86unix.cpp | $(AS) -o asm/yx86-elf.o
|
||||
|
||||
# solaris
|
||||
asm/dx86-sol.o: asm/dx86unix.cpp
|
||||
$(CC) -E -DSOL asm/dx86unix.cpp | sed 's/^#.*//' > asm/dx86-sol.s
|
||||
as -o asm/dx86-sol.o asm/dx86-sol.s
|
||||
rm -f asm/dx86-sol.s
|
||||
|
||||
asm/yx86-sol.o: asm/yx86unix.cpp
|
||||
$(CC) -E -DSOL asm/yx86unix.cpp | sed 's/^#.*//' > asm/yx86-sol.s
|
||||
as -o asm/yx86-sol.o asm/yx86-sol.s
|
||||
rm -f asm/yx86-sol.s
|
||||
|
||||
# a.out
|
||||
asm/dx86-out.o: asm/dx86unix.cpp
|
||||
$(CPP) -DOUT asm/dx86unix.cpp | $(AS) -o asm/dx86-out.o
|
||||
|
||||
asm/yx86-out.o: asm/yx86unix.cpp
|
||||
$(CPP) -DOUT asm/yx86unix.cpp | $(AS) -o asm/yx86-out.o
|
||||
|
||||
# bsdi
|
||||
asm/dx86bsdi.o: asm/dx86unix.cpp
|
||||
$(CPP) -DBSDI asm/dx86unix.cpp | $(AS) -o asm/dx86bsdi.o
|
||||
|
||||
asm/yx86bsdi.o: asm/yx86unix.cpp
|
||||
$(CPP) -DBSDI asm/yx86unix.cpp | $(AS) -o asm/yx86bsdi.o
|
||||
|
||||
asm/dx86unix.cpp:
|
||||
(cd asm; perl des-586.pl cpp >dx86unix.cpp)
|
||||
|
||||
asm/yx86unix.cpp:
|
||||
(cd asm; perl crypt586.pl cpp >yx86unix.cpp)
|
||||
|
||||
test: all
|
||||
./destest
|
||||
|
||||
$(DLIB): $(OBJ)
|
||||
/bin/rm -f $(DLIB)
|
||||
ar cr $(DLIB) $(OBJ)
|
||||
$(RANLIB) $(DLIB)
|
||||
|
||||
des_opts: des_opts.o $(DLIB)
|
||||
$(CC) $(CFLAGS) -o des_opts des_opts.o $(DLIB)
|
||||
|
||||
destest: destest.o $(DLIB)
|
||||
$(CC) $(CFLAGS) -o destest destest.o $(DLIB)
|
||||
|
||||
rpw: rpw.o $(DLIB)
|
||||
$(CC) $(CFLAGS) -o rpw rpw.o $(DLIB)
|
||||
|
||||
speed: speed.o $(DLIB)
|
||||
$(CC) $(CFLAGS) -o speed speed.o $(DLIB)
|
||||
|
||||
des: des.o $(DLIB)
|
||||
$(CC) $(CFLAGS) -o des des.o $(DLIB)
|
||||
|
||||
tags:
|
||||
ctags $(TESTING_SRC) $(LIBDES)
|
||||
|
||||
tar_lit:
|
||||
/bin/mv Makefile Makefile.tmp
|
||||
/bin/cp Makefile.lit Makefile
|
||||
for i in $(HEADERS_LIT) $(LIBDES_LIT) $(GENERAL_LIT) $(TESTING_SRC_LIT) ;\
|
||||
do \
|
||||
n="$$n des/$$i"; \
|
||||
done; \
|
||||
( cd .. ; tar chf - $$n )| gzip > libdes-l.tgz
|
||||
/bin/rm -f Makefile
|
||||
/bin/mv Makefile.tmp Makefile
|
||||
|
||||
tar:
|
||||
mv Makefile Makefile.tmp
|
||||
/bin/cp Makefile.uni Makefile
|
||||
for i in $(ALL) ;\
|
||||
do \
|
||||
n="$$n des/$$i"; \
|
||||
done; \
|
||||
( cd .. ; tar chf - $$n )| gzip > libdes.tgz
|
||||
/bin/rm -f Makefile
|
||||
/bin/mv Makefile.tmp Makefile
|
||||
|
||||
shar:
|
||||
shar $(ALL) >libdes.shar
|
||||
|
||||
depend:
|
||||
makedepend $(LIBDES) $(TESTING_SRC)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o tags core $(TESTING) $(DLIB) .nfs* *.old *.bak asm/*.o
|
||||
|
||||
dclean:
|
||||
sed -e '/^# DO NOT DELETE THIS LINE/ q' Makefile >Makefile.new
|
||||
mv -f Makefile.new Makefile
|
||||
|
||||
# Eric is probably going to choke when he next looks at this --tjh
|
||||
install: des
|
||||
if test $(INSTALLTOP); then \
|
||||
echo SSL style install; \
|
||||
cp $(DLIB) $(INSTALLTOP)/lib; \
|
||||
$(RANLIB) $(DLIB); \
|
||||
chmod 644 $(INSTALLTOP)/lib/$(DLIB); \
|
||||
cp des.h $(INSTALLTOP)/include; \
|
||||
chmod 644 $(INSTALLTOP)/include/des.h; \
|
||||
else \
|
||||
echo Standalone install; \
|
||||
cp $(DLIB) $(LIBDIR)/$(DLIB); \
|
||||
$(RANLIB) $(DLIB); \
|
||||
chmod 644 $(LIBDIR)/$(DLIB); \
|
||||
cp des $(BINDIR)/des; \
|
||||
chmod 711 $(BINDIR)/des; \
|
||||
cp des_crypt.man $(MANDIR)/man$(MAN3)/des_crypt.$(MAN3); \
|
||||
chmod 644 $(MANDIR)/man$(MAN3)/des_crypt.$(MAN3); \
|
||||
cp des.man $(MANDIR)/man$(MAN1)/des.$(MAN1); \
|
||||
chmod 644 $(MANDIR)/man$(MAN1)/des.$(MAN1); \
|
||||
cp des.h $(INCDIR)/des.h; \
|
||||
chmod 644 $(INCDIR)/des.h; \
|
||||
fi
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
@ -1,28 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
@PC1=( 57,49,41,33,25,17, 9,
|
||||
1,58,50,42,34,26,18,
|
||||
10, 2,59,51,43,35,27,
|
||||
19,11, 3,60,52,44,36,
|
||||
"-","-","-","-",
|
||||
63,55,47,39,31,23,15,
|
||||
7,62,54,46,38,30,22,
|
||||
14, 6,61,53,45,37,29,
|
||||
21,13, 5,28,20,12, 4,
|
||||
"-","-","-","-",
|
||||
);
|
||||
|
||||
foreach (@PC1)
|
||||
{
|
||||
if ($_ ne "-")
|
||||
{
|
||||
$_--;
|
||||
$_=int($_/8)*8+7-($_%8);
|
||||
printf "%2d ",$_;
|
||||
}
|
||||
else
|
||||
{ print "-- "; }
|
||||
print "\n" if (((++$i) % 8) == 0);
|
||||
print "\n" if ((($i) % 32) == 0);
|
||||
}
|
||||
|
@ -1,57 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
@PC2_C=(14,17,11,24, 1, 5,
|
||||
3,28,15, 6,21,10,
|
||||
23,19,12, 4,26, 8,
|
||||
16, 7,27,20,13, 2,
|
||||
);
|
||||
|
||||
@PC2_D=(41,52,31,37,47,55,
|
||||
30,40,51,45,33,48,
|
||||
44,49,39,56,34,53,
|
||||
46,42,50,36,29,32,
|
||||
);
|
||||
|
||||
foreach (@PC2_C) {
|
||||
if ($_ ne "-")
|
||||
{
|
||||
$_--;
|
||||
printf "%2d ",$_; }
|
||||
else { print "-- "; }
|
||||
$C{$_}=1;
|
||||
print "\n" if (((++$i) % 8) == 0);
|
||||
}
|
||||
$i=0;
|
||||
print "\n";
|
||||
foreach (@PC2_D) {
|
||||
if ($_ ne "-")
|
||||
{
|
||||
$_-=29;
|
||||
printf "%2d ",$_; }
|
||||
else { print "-- "; }
|
||||
$D{$_}=1;
|
||||
print "\n" if (((++$i) % 8) == 0); }
|
||||
|
||||
print "\n";
|
||||
foreach $i (0 .. 27)
|
||||
{
|
||||
$_=$C{$i};
|
||||
if ($_ ne "-") {printf "%2d ",$_;}
|
||||
else { print "-- "; }
|
||||
print "\n" if (((++$i) % 8) == 0);
|
||||
}
|
||||
print "\n";
|
||||
|
||||
print "\n";
|
||||
foreach $i (0 .. 27)
|
||||
{
|
||||
$_=$D{$i};
|
||||
if ($_ ne "-") {printf "%2d ",$_;}
|
||||
else { print "-- "; }
|
||||
print "\n" if (((++$i) % 8) == 0);
|
||||
}
|
||||
print "\n";
|
||||
sub numsort
|
||||
{
|
||||
$a-$b;
|
||||
}
|
@ -1,186 +0,0 @@
|
||||
.TH DES 1
|
||||
.SH NAME
|
||||
des - encrypt or decrypt data using Data Encryption Standard
|
||||
.SH SYNOPSIS
|
||||
.B des
|
||||
(
|
||||
.B \-e
|
||||
|
|
||||
.B \-E
|
||||
) | (
|
||||
.B \-d
|
||||
|
|
||||
.B \-D
|
||||
) | (
|
||||
.B \-\fR[\fPcC\fR][\fPckname\fR]\fP
|
||||
) |
|
||||
[
|
||||
.B \-b3hfs
|
||||
] [
|
||||
.B \-k
|
||||
.I key
|
||||
]
|
||||
] [
|
||||
.B \-u\fR[\fIuuname\fR]
|
||||
[
|
||||
.I input-file
|
||||
[
|
||||
.I output-file
|
||||
] ]
|
||||
.SH DESCRIPTION
|
||||
.B des
|
||||
encrypts and decrypts data using the
|
||||
Data Encryption Standard algorithm.
|
||||
One of
|
||||
.B \-e, \-E
|
||||
(for encrypt) or
|
||||
.B \-d, \-D
|
||||
(for decrypt) must be specified.
|
||||
It is also possible to use
|
||||
.B \-c
|
||||
or
|
||||
.B \-C
|
||||
in conjunction or instead of the a encrypt/decrypt option to generate
|
||||
a 16 character hexadecimal checksum, generated via the
|
||||
.I des_cbc_cksum.
|
||||
.LP
|
||||
Two standard encryption modes are supported by the
|
||||
.B des
|
||||
program, Cipher Block Chaining (the default) and Electronic Code Book
|
||||
(specified with
|
||||
.B \-b
|
||||
).
|
||||
.LP
|
||||
The key used for the DES
|
||||
algorithm is obtained by prompting the user unless the
|
||||
.B `\-k
|
||||
.I key'
|
||||
option is given.
|
||||
If the key is an argument to the
|
||||
.B des
|
||||
command, it is potentially visible to users executing
|
||||
.BR ps (1)
|
||||
or a derivative. To minimise this possibility,
|
||||
.B des
|
||||
takes care to destroy the key argument immediately upon entry.
|
||||
If your shell keeps a history file be careful to make sure it is not
|
||||
world readable.
|
||||
.LP
|
||||
Since this program attempts to maintain compatability with sunOS's
|
||||
des(1) command, there are 2 different methods used to convert the user
|
||||
supplied key to a des key.
|
||||
Whenever and one or more of
|
||||
.B \-E, \-D, \-C
|
||||
or
|
||||
.B \-3
|
||||
options are used, the key conversion procedure will not be compatible
|
||||
with the sunOS des(1) version but will use all the user supplied
|
||||
character to generate the des key.
|
||||
.B des
|
||||
command reads from standard input unless
|
||||
.I input-file
|
||||
is specified and writes to standard output unless
|
||||
.I output-file
|
||||
is given.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-b
|
||||
Select ECB
|
||||
(eight bytes at a time) encryption mode.
|
||||
.TP
|
||||
.B \-3
|
||||
Encrypt using triple encryption.
|
||||
By default triple cbc encryption is used but if the
|
||||
.B \-b
|
||||
option is used then triple ecb encryption is performed.
|
||||
If the key is less than 8 characters long, the flag has no effect.
|
||||
.TP
|
||||
.B \-e
|
||||
Encrypt data using an 8 byte key in a manner compatible with sunOS
|
||||
des(1).
|
||||
.TP
|
||||
.B \-E
|
||||
Encrypt data using a key of nearly unlimited length (1024 bytes).
|
||||
This will product a more secure encryption.
|
||||
.TP
|
||||
.B \-d
|
||||
Decrypt data that was encrypted with the \-e option.
|
||||
.TP
|
||||
.B \-D
|
||||
Decrypt data that was encrypted with the \-E option.
|
||||
.TP
|
||||
.B \-c
|
||||
Generate a 16 character hexadecimal cbc checksum and output this to
|
||||
stderr.
|
||||
If a filename was specified after the
|
||||
.B \-c
|
||||
option, the checksum is output to that file.
|
||||
The checksum is generated using a key generated in a sunOS compatible
|
||||
manner.
|
||||
.TP
|
||||
.B \-C
|
||||
A cbc checksum is generated in the same manner as described for the
|
||||
.B \-c
|
||||
option but the DES key is generated in the same manner as used for the
|
||||
.B \-E
|
||||
and
|
||||
.B \-D
|
||||
options
|
||||
.TP
|
||||
.B \-f
|
||||
Does nothing - allowed for compatibility with sunOS des(1) command.
|
||||
.TP
|
||||
.B \-s
|
||||
Does nothing - allowed for compatibility with sunOS des(1) command.
|
||||
.TP
|
||||
.B "\-k \fIkey\fP"
|
||||
Use the encryption
|
||||
.I key
|
||||
specified.
|
||||
.TP
|
||||
.B "\-h"
|
||||
The
|
||||
.I key
|
||||
is assumed to be a 16 character hexadecimal number.
|
||||
If the
|
||||
.B "\-3"
|
||||
option is used the key is assumed to be a 32 character hexadecimal
|
||||
number.
|
||||
.TP
|
||||
.B \-u
|
||||
This flag is used to read and write uuencoded files. If decrypting,
|
||||
the input file is assumed to contain uuencoded, DES encrypted data.
|
||||
If encrypting, the characters following the -u are used as the name of
|
||||
the uuencoded file to embed in the begin line of the uuencoded
|
||||
output. If there is no name specified after the -u, the name text.des
|
||||
will be embedded in the header.
|
||||
.SH SEE ALSO
|
||||
.B ps (1)
|
||||
.B des_crypt(3)
|
||||
.SH BUGS
|
||||
.LP
|
||||
The problem with using the
|
||||
.B -e
|
||||
option is the short key length.
|
||||
It would be better to use a real 56-bit key rather than an
|
||||
ASCII-based 56-bit pattern. Knowing that the key was derived from ASCII
|
||||
radically reduces the time necessary for a brute-force cryptographic attack.
|
||||
My attempt to remove this problem is to add an alternative text-key to
|
||||
DES-key function. This alternative function (accessed via
|
||||
.B -E, -D, -S
|
||||
and
|
||||
.B -3
|
||||
)
|
||||
uses DES to help generate the key.
|
||||
.LP
|
||||
Be carefully when using the -u option. Doing des -ud <filename> will
|
||||
not decrypt filename (the -u option will gobble the d option).
|
||||
.LP
|
||||
The VMS operating system operates in a world where files are always a
|
||||
multiple of 512 bytes. This causes problems when encrypted data is
|
||||
send from unix to VMS since a 88 byte file will suddenly be padded
|
||||
with 424 null bytes. To get around this problem, use the -u option
|
||||
to uuencode the data before it is send to the VMS system.
|
||||
.SH AUTHOR
|
||||
.LP
|
||||
Eric Young (eay@cryptsoft.com)
|
@ -1,552 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
# des.pl - eric young 22/11/1991 eay@cryptsoft.com
|
||||
#
|
||||
# Copyright (C) 1993 Eric Young
|
||||
#
|
||||
# 11 April 1996 - patched to circumvent Perl 5 (through 5.002) problem
|
||||
# with sign-extension on right shift operations.
|
||||
# Ed Kubaitis - ejk@uiuc.edu
|
||||
#
|
||||
# eay - 92/08/31 - I think I have fixed all problems for 64bit
|
||||
# versions of perl but I could be wrong since I have not tested it yet :-).
|
||||
#
|
||||
# This is an implementation of DES in perl.
|
||||
# The two routines (des_set_key and des_ecb_encrypt)
|
||||
# take 8 byte objects as arguments.
|
||||
#
|
||||
# des_set_key takes an 8 byte string as a key and returns a key schedule
|
||||
# for use in calls to des_ecb_encrypt.
|
||||
# des_ecb_encrypt takes three arguments, the first is a key schedule
|
||||
# (make sure to pass it by reference with the *), the second is 1
|
||||
# to encrypt, 0 to decrypt. The third argument is an 8 byte object
|
||||
# to encrypt. The function returns an 8 byte object that has been
|
||||
# DES encrypted.
|
||||
#
|
||||
# example:
|
||||
# require 'des.pl'
|
||||
#
|
||||
# $key =pack("C8",0x12,0x23,0x45,0x67,0x89,0xab,0xcd,0xef);
|
||||
# @ks= &des_set_key($key);
|
||||
#
|
||||
# $outbytes= &des_ecb_encrypt(*ks,1,$data);
|
||||
# @enc =unpack("C8",$outbytes);
|
||||
#
|
||||
|
||||
package des;
|
||||
|
||||
eval("use integer;") if (int($]) > 4);
|
||||
|
||||
# The following 8 arrays are used in des_set_key
|
||||
@skb0=(
|
||||
# for C bits (numbered as per FIPS 46) 1 2 3 4 5 6
|
||||
0x00000000,0x00000010,0x20000000,0x20000010,
|
||||
0x00010000,0x00010010,0x20010000,0x20010010,
|
||||
0x00000800,0x00000810,0x20000800,0x20000810,
|
||||
0x00010800,0x00010810,0x20010800,0x20010810,
|
||||
0x00000020,0x00000030,0x20000020,0x20000030,
|
||||
0x00010020,0x00010030,0x20010020,0x20010030,
|
||||
0x00000820,0x00000830,0x20000820,0x20000830,
|
||||
0x00010820,0x00010830,0x20010820,0x20010830,
|
||||
0x00080000,0x00080010,0x20080000,0x20080010,
|
||||
0x00090000,0x00090010,0x20090000,0x20090010,
|
||||
0x00080800,0x00080810,0x20080800,0x20080810,
|
||||
0x00090800,0x00090810,0x20090800,0x20090810,
|
||||
0x00080020,0x00080030,0x20080020,0x20080030,
|
||||
0x00090020,0x00090030,0x20090020,0x20090030,
|
||||
0x00080820,0x00080830,0x20080820,0x20080830,
|
||||
0x00090820,0x00090830,0x20090820,0x20090830,
|
||||
);
|
||||
@skb1=(
|
||||
# for C bits (numbered as per FIPS 46) 7 8 10 11 12 13
|
||||
0x00000000,0x02000000,0x00002000,0x02002000,
|
||||
0x00200000,0x02200000,0x00202000,0x02202000,
|
||||
0x00000004,0x02000004,0x00002004,0x02002004,
|
||||
0x00200004,0x02200004,0x00202004,0x02202004,
|
||||
0x00000400,0x02000400,0x00002400,0x02002400,
|
||||
0x00200400,0x02200400,0x00202400,0x02202400,
|
||||
0x00000404,0x02000404,0x00002404,0x02002404,
|
||||
0x00200404,0x02200404,0x00202404,0x02202404,
|
||||
0x10000000,0x12000000,0x10002000,0x12002000,
|
||||
0x10200000,0x12200000,0x10202000,0x12202000,
|
||||
0x10000004,0x12000004,0x10002004,0x12002004,
|
||||
0x10200004,0x12200004,0x10202004,0x12202004,
|
||||
0x10000400,0x12000400,0x10002400,0x12002400,
|
||||
0x10200400,0x12200400,0x10202400,0x12202400,
|
||||
0x10000404,0x12000404,0x10002404,0x12002404,
|
||||
0x10200404,0x12200404,0x10202404,0x12202404,
|
||||
);
|
||||
@skb2=(
|
||||
# for C bits (numbered as per FIPS 46) 14 15 16 17 19 20
|
||||
0x00000000,0x00000001,0x00040000,0x00040001,
|
||||
0x01000000,0x01000001,0x01040000,0x01040001,
|
||||
0x00000002,0x00000003,0x00040002,0x00040003,
|
||||
0x01000002,0x01000003,0x01040002,0x01040003,
|
||||
0x00000200,0x00000201,0x00040200,0x00040201,
|
||||
0x01000200,0x01000201,0x01040200,0x01040201,
|
||||
0x00000202,0x00000203,0x00040202,0x00040203,
|
||||
0x01000202,0x01000203,0x01040202,0x01040203,
|
||||
0x08000000,0x08000001,0x08040000,0x08040001,
|
||||
0x09000000,0x09000001,0x09040000,0x09040001,
|
||||
0x08000002,0x08000003,0x08040002,0x08040003,
|
||||
0x09000002,0x09000003,0x09040002,0x09040003,
|
||||
0x08000200,0x08000201,0x08040200,0x08040201,
|
||||
0x09000200,0x09000201,0x09040200,0x09040201,
|
||||
0x08000202,0x08000203,0x08040202,0x08040203,
|
||||
0x09000202,0x09000203,0x09040202,0x09040203,
|
||||
);
|
||||
@skb3=(
|
||||
# for C bits (numbered as per FIPS 46) 21 23 24 26 27 28
|
||||
0x00000000,0x00100000,0x00000100,0x00100100,
|
||||
0x00000008,0x00100008,0x00000108,0x00100108,
|
||||
0x00001000,0x00101000,0x00001100,0x00101100,
|
||||
0x00001008,0x00101008,0x00001108,0x00101108,
|
||||
0x04000000,0x04100000,0x04000100,0x04100100,
|
||||
0x04000008,0x04100008,0x04000108,0x04100108,
|
||||
0x04001000,0x04101000,0x04001100,0x04101100,
|
||||
0x04001008,0x04101008,0x04001108,0x04101108,
|
||||
0x00020000,0x00120000,0x00020100,0x00120100,
|
||||
0x00020008,0x00120008,0x00020108,0x00120108,
|
||||
0x00021000,0x00121000,0x00021100,0x00121100,
|
||||
0x00021008,0x00121008,0x00021108,0x00121108,
|
||||
0x04020000,0x04120000,0x04020100,0x04120100,
|
||||
0x04020008,0x04120008,0x04020108,0x04120108,
|
||||
0x04021000,0x04121000,0x04021100,0x04121100,
|
||||
0x04021008,0x04121008,0x04021108,0x04121108,
|
||||
);
|
||||
@skb4=(
|
||||
# for D bits (numbered as per FIPS 46) 1 2 3 4 5 6
|
||||
0x00000000,0x10000000,0x00010000,0x10010000,
|
||||
0x00000004,0x10000004,0x00010004,0x10010004,
|
||||
0x20000000,0x30000000,0x20010000,0x30010000,
|
||||
0x20000004,0x30000004,0x20010004,0x30010004,
|
||||
0x00100000,0x10100000,0x00110000,0x10110000,
|
||||
0x00100004,0x10100004,0x00110004,0x10110004,
|
||||
0x20100000,0x30100000,0x20110000,0x30110000,
|
||||
0x20100004,0x30100004,0x20110004,0x30110004,
|
||||
0x00001000,0x10001000,0x00011000,0x10011000,
|
||||
0x00001004,0x10001004,0x00011004,0x10011004,
|
||||
0x20001000,0x30001000,0x20011000,0x30011000,
|
||||
0x20001004,0x30001004,0x20011004,0x30011004,
|
||||
0x00101000,0x10101000,0x00111000,0x10111000,
|
||||
0x00101004,0x10101004,0x00111004,0x10111004,
|
||||
0x20101000,0x30101000,0x20111000,0x30111000,
|
||||
0x20101004,0x30101004,0x20111004,0x30111004,
|
||||
);
|
||||
@skb5=(
|
||||
# for D bits (numbered as per FIPS 46) 8 9 11 12 13 14
|
||||
0x00000000,0x08000000,0x00000008,0x08000008,
|
||||
0x00000400,0x08000400,0x00000408,0x08000408,
|
||||
0x00020000,0x08020000,0x00020008,0x08020008,
|
||||
0x00020400,0x08020400,0x00020408,0x08020408,
|
||||
0x00000001,0x08000001,0x00000009,0x08000009,
|
||||
0x00000401,0x08000401,0x00000409,0x08000409,
|
||||
0x00020001,0x08020001,0x00020009,0x08020009,
|
||||
0x00020401,0x08020401,0x00020409,0x08020409,
|
||||
0x02000000,0x0A000000,0x02000008,0x0A000008,
|
||||
0x02000400,0x0A000400,0x02000408,0x0A000408,
|
||||
0x02020000,0x0A020000,0x02020008,0x0A020008,
|
||||
0x02020400,0x0A020400,0x02020408,0x0A020408,
|
||||
0x02000001,0x0A000001,0x02000009,0x0A000009,
|
||||
0x02000401,0x0A000401,0x02000409,0x0A000409,
|
||||
0x02020001,0x0A020001,0x02020009,0x0A020009,
|
||||
0x02020401,0x0A020401,0x02020409,0x0A020409,
|
||||
);
|
||||
@skb6=(
|
||||
# for D bits (numbered as per FIPS 46) 16 17 18 19 20 21
|
||||
0x00000000,0x00000100,0x00080000,0x00080100,
|
||||
0x01000000,0x01000100,0x01080000,0x01080100,
|
||||
0x00000010,0x00000110,0x00080010,0x00080110,
|
||||
0x01000010,0x01000110,0x01080010,0x01080110,
|
||||
0x00200000,0x00200100,0x00280000,0x00280100,
|
||||
0x01200000,0x01200100,0x01280000,0x01280100,
|
||||
0x00200010,0x00200110,0x00280010,0x00280110,
|
||||
0x01200010,0x01200110,0x01280010,0x01280110,
|
||||
0x00000200,0x00000300,0x00080200,0x00080300,
|
||||
0x01000200,0x01000300,0x01080200,0x01080300,
|
||||
0x00000210,0x00000310,0x00080210,0x00080310,
|
||||
0x01000210,0x01000310,0x01080210,0x01080310,
|
||||
0x00200200,0x00200300,0x00280200,0x00280300,
|
||||
0x01200200,0x01200300,0x01280200,0x01280300,
|
||||
0x00200210,0x00200310,0x00280210,0x00280310,
|
||||
0x01200210,0x01200310,0x01280210,0x01280310,
|
||||
);
|
||||
@skb7=(
|
||||
# for D bits (numbered as per FIPS 46) 22 23 24 25 27 28
|
||||
0x00000000,0x04000000,0x00040000,0x04040000,
|
||||
0x00000002,0x04000002,0x00040002,0x04040002,
|
||||
0x00002000,0x04002000,0x00042000,0x04042000,
|
||||
0x00002002,0x04002002,0x00042002,0x04042002,
|
||||
0x00000020,0x04000020,0x00040020,0x04040020,
|
||||
0x00000022,0x04000022,0x00040022,0x04040022,
|
||||
0x00002020,0x04002020,0x00042020,0x04042020,
|
||||
0x00002022,0x04002022,0x00042022,0x04042022,
|
||||
0x00000800,0x04000800,0x00040800,0x04040800,
|
||||
0x00000802,0x04000802,0x00040802,0x04040802,
|
||||
0x00002800,0x04002800,0x00042800,0x04042800,
|
||||
0x00002802,0x04002802,0x00042802,0x04042802,
|
||||
0x00000820,0x04000820,0x00040820,0x04040820,
|
||||
0x00000822,0x04000822,0x00040822,0x04040822,
|
||||
0x00002820,0x04002820,0x00042820,0x04042820,
|
||||
0x00002822,0x04002822,0x00042822,0x04042822,
|
||||
);
|
||||
|
||||
@shifts2=(0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0);
|
||||
|
||||
# used in ecb_encrypt
|
||||
@SP0=(
|
||||
0x00410100, 0x00010000, 0x40400000, 0x40410100,
|
||||
0x00400000, 0x40010100, 0x40010000, 0x40400000,
|
||||
0x40010100, 0x00410100, 0x00410000, 0x40000100,
|
||||
0x40400100, 0x00400000, 0x00000000, 0x40010000,
|
||||
0x00010000, 0x40000000, 0x00400100, 0x00010100,
|
||||
0x40410100, 0x00410000, 0x40000100, 0x00400100,
|
||||
0x40000000, 0x00000100, 0x00010100, 0x40410000,
|
||||
0x00000100, 0x40400100, 0x40410000, 0x00000000,
|
||||
0x00000000, 0x40410100, 0x00400100, 0x40010000,
|
||||
0x00410100, 0x00010000, 0x40000100, 0x00400100,
|
||||
0x40410000, 0x00000100, 0x00010100, 0x40400000,
|
||||
0x40010100, 0x40000000, 0x40400000, 0x00410000,
|
||||
0x40410100, 0x00010100, 0x00410000, 0x40400100,
|
||||
0x00400000, 0x40000100, 0x40010000, 0x00000000,
|
||||
0x00010000, 0x00400000, 0x40400100, 0x00410100,
|
||||
0x40000000, 0x40410000, 0x00000100, 0x40010100,
|
||||
);
|
||||
@SP1=(
|
||||
0x08021002, 0x00000000, 0x00021000, 0x08020000,
|
||||
0x08000002, 0x00001002, 0x08001000, 0x00021000,
|
||||
0x00001000, 0x08020002, 0x00000002, 0x08001000,
|
||||
0x00020002, 0x08021000, 0x08020000, 0x00000002,
|
||||
0x00020000, 0x08001002, 0x08020002, 0x00001000,
|
||||
0x00021002, 0x08000000, 0x00000000, 0x00020002,
|
||||
0x08001002, 0x00021002, 0x08021000, 0x08000002,
|
||||
0x08000000, 0x00020000, 0x00001002, 0x08021002,
|
||||
0x00020002, 0x08021000, 0x08001000, 0x00021002,
|
||||
0x08021002, 0x00020002, 0x08000002, 0x00000000,
|
||||
0x08000000, 0x00001002, 0x00020000, 0x08020002,
|
||||
0x00001000, 0x08000000, 0x00021002, 0x08001002,
|
||||
0x08021000, 0x00001000, 0x00000000, 0x08000002,
|
||||
0x00000002, 0x08021002, 0x00021000, 0x08020000,
|
||||
0x08020002, 0x00020000, 0x00001002, 0x08001000,
|
||||
0x08001002, 0x00000002, 0x08020000, 0x00021000,
|
||||
);
|
||||
@SP2=(
|
||||
0x20800000, 0x00808020, 0x00000020, 0x20800020,
|
||||
0x20008000, 0x00800000, 0x20800020, 0x00008020,
|
||||
0x00800020, 0x00008000, 0x00808000, 0x20000000,
|
||||
0x20808020, 0x20000020, 0x20000000, 0x20808000,
|
||||
0x00000000, 0x20008000, 0x00808020, 0x00000020,
|
||||
0x20000020, 0x20808020, 0x00008000, 0x20800000,
|
||||
0x20808000, 0x00800020, 0x20008020, 0x00808000,
|
||||
0x00008020, 0x00000000, 0x00800000, 0x20008020,
|
||||
0x00808020, 0x00000020, 0x20000000, 0x00008000,
|
||||
0x20000020, 0x20008000, 0x00808000, 0x20800020,
|
||||
0x00000000, 0x00808020, 0x00008020, 0x20808000,
|
||||
0x20008000, 0x00800000, 0x20808020, 0x20000000,
|
||||
0x20008020, 0x20800000, 0x00800000, 0x20808020,
|
||||
0x00008000, 0x00800020, 0x20800020, 0x00008020,
|
||||
0x00800020, 0x00000000, 0x20808000, 0x20000020,
|
||||
0x20800000, 0x20008020, 0x00000020, 0x00808000,
|
||||
);
|
||||
@SP3=(
|
||||
0x00080201, 0x02000200, 0x00000001, 0x02080201,
|
||||
0x00000000, 0x02080000, 0x02000201, 0x00080001,
|
||||
0x02080200, 0x02000001, 0x02000000, 0x00000201,
|
||||
0x02000001, 0x00080201, 0x00080000, 0x02000000,
|
||||
0x02080001, 0x00080200, 0x00000200, 0x00000001,
|
||||
0x00080200, 0x02000201, 0x02080000, 0x00000200,
|
||||
0x00000201, 0x00000000, 0x00080001, 0x02080200,
|
||||
0x02000200, 0x02080001, 0x02080201, 0x00080000,
|
||||
0x02080001, 0x00000201, 0x00080000, 0x02000001,
|
||||
0x00080200, 0x02000200, 0x00000001, 0x02080000,
|
||||
0x02000201, 0x00000000, 0x00000200, 0x00080001,
|
||||
0x00000000, 0x02080001, 0x02080200, 0x00000200,
|
||||
0x02000000, 0x02080201, 0x00080201, 0x00080000,
|
||||
0x02080201, 0x00000001, 0x02000200, 0x00080201,
|
||||
0x00080001, 0x00080200, 0x02080000, 0x02000201,
|
||||
0x00000201, 0x02000000, 0x02000001, 0x02080200,
|
||||
);
|
||||
@SP4=(
|
||||
0x01000000, 0x00002000, 0x00000080, 0x01002084,
|
||||
0x01002004, 0x01000080, 0x00002084, 0x01002000,
|
||||
0x00002000, 0x00000004, 0x01000004, 0x00002080,
|
||||
0x01000084, 0x01002004, 0x01002080, 0x00000000,
|
||||
0x00002080, 0x01000000, 0x00002004, 0x00000084,
|
||||
0x01000080, 0x00002084, 0x00000000, 0x01000004,
|
||||
0x00000004, 0x01000084, 0x01002084, 0x00002004,
|
||||
0x01002000, 0x00000080, 0x00000084, 0x01002080,
|
||||
0x01002080, 0x01000084, 0x00002004, 0x01002000,
|
||||
0x00002000, 0x00000004, 0x01000004, 0x01000080,
|
||||
0x01000000, 0x00002080, 0x01002084, 0x00000000,
|
||||
0x00002084, 0x01000000, 0x00000080, 0x00002004,
|
||||
0x01000084, 0x00000080, 0x00000000, 0x01002084,
|
||||
0x01002004, 0x01002080, 0x00000084, 0x00002000,
|
||||
0x00002080, 0x01002004, 0x01000080, 0x00000084,
|
||||
0x00000004, 0x00002084, 0x01002000, 0x01000004,
|
||||
);
|
||||
@SP5=(
|
||||
0x10000008, 0x00040008, 0x00000000, 0x10040400,
|
||||
0x00040008, 0x00000400, 0x10000408, 0x00040000,
|
||||
0x00000408, 0x10040408, 0x00040400, 0x10000000,
|
||||
0x10000400, 0x10000008, 0x10040000, 0x00040408,
|
||||
0x00040000, 0x10000408, 0x10040008, 0x00000000,
|
||||
0x00000400, 0x00000008, 0x10040400, 0x10040008,
|
||||
0x10040408, 0x10040000, 0x10000000, 0x00000408,
|
||||
0x00000008, 0x00040400, 0x00040408, 0x10000400,
|
||||
0x00000408, 0x10000000, 0x10000400, 0x00040408,
|
||||
0x10040400, 0x00040008, 0x00000000, 0x10000400,
|
||||
0x10000000, 0x00000400, 0x10040008, 0x00040000,
|
||||
0x00040008, 0x10040408, 0x00040400, 0x00000008,
|
||||
0x10040408, 0x00040400, 0x00040000, 0x10000408,
|
||||
0x10000008, 0x10040000, 0x00040408, 0x00000000,
|
||||
0x00000400, 0x10000008, 0x10000408, 0x10040400,
|
||||
0x10040000, 0x00000408, 0x00000008, 0x10040008,
|
||||
);
|
||||
@SP6=(
|
||||
0x00000800, 0x00000040, 0x00200040, 0x80200000,
|
||||
0x80200840, 0x80000800, 0x00000840, 0x00000000,
|
||||
0x00200000, 0x80200040, 0x80000040, 0x00200800,
|
||||
0x80000000, 0x00200840, 0x00200800, 0x80000040,
|
||||
0x80200040, 0x00000800, 0x80000800, 0x80200840,
|
||||
0x00000000, 0x00200040, 0x80200000, 0x00000840,
|
||||
0x80200800, 0x80000840, 0x00200840, 0x80000000,
|
||||
0x80000840, 0x80200800, 0x00000040, 0x00200000,
|
||||
0x80000840, 0x00200800, 0x80200800, 0x80000040,
|
||||
0x00000800, 0x00000040, 0x00200000, 0x80200800,
|
||||
0x80200040, 0x80000840, 0x00000840, 0x00000000,
|
||||
0x00000040, 0x80200000, 0x80000000, 0x00200040,
|
||||
0x00000000, 0x80200040, 0x00200040, 0x00000840,
|
||||
0x80000040, 0x00000800, 0x80200840, 0x00200000,
|
||||
0x00200840, 0x80000000, 0x80000800, 0x80200840,
|
||||
0x80200000, 0x00200840, 0x00200800, 0x80000800,
|
||||
);
|
||||
@SP7=(
|
||||
0x04100010, 0x04104000, 0x00004010, 0x00000000,
|
||||
0x04004000, 0x00100010, 0x04100000, 0x04104010,
|
||||
0x00000010, 0x04000000, 0x00104000, 0x00004010,
|
||||
0x00104010, 0x04004010, 0x04000010, 0x04100000,
|
||||
0x00004000, 0x00104010, 0x00100010, 0x04004000,
|
||||
0x04104010, 0x04000010, 0x00000000, 0x00104000,
|
||||
0x04000000, 0x00100000, 0x04004010, 0x04100010,
|
||||
0x00100000, 0x00004000, 0x04104000, 0x00000010,
|
||||
0x00100000, 0x00004000, 0x04000010, 0x04104010,
|
||||
0x00004010, 0x04000000, 0x00000000, 0x00104000,
|
||||
0x04100010, 0x04004010, 0x04004000, 0x00100010,
|
||||
0x04104000, 0x00000010, 0x00100010, 0x04004000,
|
||||
0x04104010, 0x00100000, 0x04100000, 0x04000010,
|
||||
0x00104000, 0x00004010, 0x04004010, 0x04100000,
|
||||
0x00000010, 0x04104000, 0x00104010, 0x00000000,
|
||||
0x04000000, 0x04100010, 0x00004000, 0x00104010,
|
||||
);
|
||||
|
||||
sub main'des_set_key
|
||||
{
|
||||
local($param)=@_;
|
||||
local(@key);
|
||||
local($c,$d,$i,$s,$t);
|
||||
local(@ks)=();
|
||||
|
||||
# Get the bytes in the order we want.
|
||||
@key=unpack("C8",$param);
|
||||
|
||||
$c= ($key[0] )|
|
||||
($key[1]<< 8)|
|
||||
($key[2]<<16)|
|
||||
($key[3]<<24);
|
||||
$d= ($key[4] )|
|
||||
($key[5]<< 8)|
|
||||
($key[6]<<16)|
|
||||
($key[7]<<24);
|
||||
|
||||
&doPC1(*c,*d);
|
||||
|
||||
for $i (@shifts2)
|
||||
{
|
||||
if ($i)
|
||||
{
|
||||
$c=($c>>2)|($c<<26);
|
||||
$d=($d>>2)|($d<<26);
|
||||
}
|
||||
else
|
||||
{
|
||||
$c=($c>>1)|($c<<27);
|
||||
$d=($d>>1)|($d<<27);
|
||||
}
|
||||
$c&=0x0fffffff;
|
||||
$d&=0x0fffffff;
|
||||
$s= $skb0[ ($c )&0x3f ]|
|
||||
$skb1[(($c>> 6)&0x03)|(($c>> 7)&0x3c)]|
|
||||
$skb2[(($c>>13)&0x0f)|(($c>>14)&0x30)]|
|
||||
$skb3[(($c>>20)&0x01)|(($c>>21)&0x06) |
|
||||
(($c>>22)&0x38)];
|
||||
$t= $skb4[ ($d )&0x3f ]|
|
||||
$skb5[(($d>> 7)&0x03)|(($d>> 8)&0x3c)]|
|
||||
$skb6[ ($d>>15)&0x3f ]|
|
||||
$skb7[(($d>>21)&0x0f)|(($d>>22)&0x30)];
|
||||
push(@ks,(($t<<16)|($s&0x0000ffff))&0xffffffff);
|
||||
$s= (($s>>16)&0x0000ffff)|($t&0xffff0000) ;
|
||||
push(@ks,(($s<<4)|(($s>>28)&0xf))&0xffffffff);
|
||||
}
|
||||
@ks;
|
||||
}
|
||||
|
||||
sub doPC1
|
||||
{
|
||||
local(*a,*b)=@_;
|
||||
local($t);
|
||||
|
||||
$t=(($b>>4)^$a)&0x0f0f0f0f;
|
||||
$b^=($t<<4); $a^=$t;
|
||||
# do $a first
|
||||
$t=(($a<<18)^$a)&0xcccc0000;
|
||||
$a=$a^$t^(($t>>18)&0x00003fff);
|
||||
$t=(($a<<17)^$a)&0xaaaa0000;
|
||||
$a=$a^$t^(($t>>17)&0x00007fff);
|
||||
$t=(($a<< 8)^$a)&0x00ff0000;
|
||||
$a=$a^$t^(($t>> 8)&0x00ffffff);
|
||||
$t=(($a<<17)^$a)&0xaaaa0000;
|
||||
$a=$a^$t^(($t>>17)&0x00007fff);
|
||||
|
||||
# now do $b
|
||||
$t=(($b<<24)^$b)&0xff000000;
|
||||
$b=$b^$t^(($t>>24)&0x000000ff);
|
||||
$t=(($b<< 8)^$b)&0x00ff0000;
|
||||
$b=$b^$t^(($t>> 8)&0x00ffffff);
|
||||
$t=(($b<<14)^$b)&0x33330000;
|
||||
$b=$b^$t^(($t>>14)&0x0003ffff);
|
||||
$b=(($b&0x00aa00aa)<<7)|(($b&0x55005500)>>7)|($b&0xaa55aa55);
|
||||
$b=(($b>>8)&0x00ffffff)|((($a&0xf0000000)>>4)&0x0fffffff);
|
||||
$a&=0x0fffffff;
|
||||
}
|
||||
|
||||
sub doIP
|
||||
{
|
||||
local(*a,*b)=@_;
|
||||
local($t);
|
||||
|
||||
$t=(($b>> 4)^$a)&0x0f0f0f0f;
|
||||
$b^=($t<< 4); $a^=$t;
|
||||
$t=(($a>>16)^$b)&0x0000ffff;
|
||||
$a^=($t<<16); $b^=$t;
|
||||
$t=(($b>> 2)^$a)&0x33333333;
|
||||
$b^=($t<< 2); $a^=$t;
|
||||
$t=(($a>> 8)^$b)&0x00ff00ff;
|
||||
$a^=($t<< 8); $b^=$t;
|
||||
$t=(($b>> 1)^$a)&0x55555555;
|
||||
$b^=($t<< 1); $a^=$t;
|
||||
$t=$a;
|
||||
$a=$b&0xffffffff;
|
||||
$b=$t&0xffffffff;
|
||||
}
|
||||
|
||||
sub doFP
|
||||
{
|
||||
local(*a,*b)=@_;
|
||||
local($t);
|
||||
|
||||
$t=(($b>> 1)^$a)&0x55555555;
|
||||
$b^=($t<< 1); $a^=$t;
|
||||
$t=(($a>> 8)^$b)&0x00ff00ff;
|
||||
$a^=($t<< 8); $b^=$t;
|
||||
$t=(($b>> 2)^$a)&0x33333333;
|
||||
$b^=($t<< 2); $a^=$t;
|
||||
$t=(($a>>16)^$b)&0x0000ffff;
|
||||
$a^=($t<<16); $b^=$t;
|
||||
$t=(($b>> 4)^$a)&0x0f0f0f0f;
|
||||
$b^=($t<< 4); $a^=$t;
|
||||
$a&=0xffffffff;
|
||||
$b&=0xffffffff;
|
||||
}
|
||||
|
||||
sub main'des_ecb_encrypt
|
||||
{
|
||||
local(*ks,$encrypt,$in)=@_;
|
||||
local($l,$r,$i,$t,$u,@input);
|
||||
|
||||
@input=unpack("C8",$in);
|
||||
# Get the bytes in the order we want.
|
||||
$l= ($input[0] )|
|
||||
($input[1]<< 8)|
|
||||
($input[2]<<16)|
|
||||
($input[3]<<24);
|
||||
$r= ($input[4] )|
|
||||
($input[5]<< 8)|
|
||||
($input[6]<<16)|
|
||||
($input[7]<<24);
|
||||
|
||||
$l&=0xffffffff;
|
||||
$r&=0xffffffff;
|
||||
&doIP(*l,*r);
|
||||
if ($encrypt)
|
||||
{
|
||||
for ($i=0; $i<32; $i+=4)
|
||||
{
|
||||
$t=((($r&0x7fffffff)<<1)|(($r>>31)&0x00000001));
|
||||
$u=$t^$ks[$i ];
|
||||
$t=$t^$ks[$i+1];
|
||||
$t2=(($t&0x0000000f)<<28);
|
||||
|
||||
$t=((($t>>4)&0x0fffffff)|(($t&0x0000000f)<<28));
|
||||
$l^= $SP1[ $t &0x3f]|
|
||||
$SP3[($t>> 8)&0x3f]|
|
||||
$SP5[($t>>16)&0x3f]|
|
||||
$SP7[($t>>24)&0x3f]|
|
||||
$SP0[ $u &0x3f]|
|
||||
$SP2[($u>> 8)&0x3f]|
|
||||
$SP4[($u>>16)&0x3f]|
|
||||
$SP6[($u>>24)&0x3f];
|
||||
|
||||
$t=(($l<<1)|(($l>>31)&0x1))&0xffffffff;
|
||||
$u=$t^$ks[$i+2];
|
||||
$t=$t^$ks[$i+3];
|
||||
$t=((($t>>4)&0x0fffffff)|($t<<28))&0xffffffff;
|
||||
$r^= $SP1[ $t &0x3f]|
|
||||
$SP3[($t>> 8)&0x3f]|
|
||||
$SP5[($t>>16)&0x3f]|
|
||||
$SP7[($t>>24)&0x3f]|
|
||||
$SP0[ $u &0x3f]|
|
||||
$SP2[($u>> 8)&0x3f]|
|
||||
$SP4[($u>>16)&0x3f]|
|
||||
$SP6[($u>>24)&0x3f];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ($i=30; $i>0; $i-=4)
|
||||
{
|
||||
$t=(($r<<1)|(($r>>31)&0x1))&0xffffffff;
|
||||
$u=$t^$ks[$i ];
|
||||
$t=$t^$ks[$i+1];
|
||||
$t=((($t>>4)&0x0fffffff)|($t<<28))&0xffffffff;
|
||||
$l^= $SP1[ $t &0x3f]|
|
||||
$SP3[($t>> 8)&0x3f]|
|
||||
$SP5[($t>>16)&0x3f]|
|
||||
$SP7[($t>>24)&0x3f]|
|
||||
$SP0[ $u &0x3f]|
|
||||
$SP2[($u>> 8)&0x3f]|
|
||||
$SP4[($u>>16)&0x3f]|
|
||||
$SP6[($u>>24)&0x3f];
|
||||
|
||||
$t=(($l<<1)|(($l>>31)&0x1))&0xffffffff;
|
||||
$u=$t^$ks[$i-2];
|
||||
$t=$t^$ks[$i-1];
|
||||
$t=((($t>>4)&0x0fffffff)|($t<<28))&0xffffffff;
|
||||
$r^= $SP1[ $t &0x3f]|
|
||||
$SP3[($t>> 8)&0x3f]|
|
||||
$SP5[($t>>16)&0x3f]|
|
||||
$SP7[($t>>24)&0x3f]|
|
||||
$SP0[ $u &0x3f]|
|
||||
$SP2[($u>> 8)&0x3f]|
|
||||
$SP4[($u>>16)&0x3f]|
|
||||
$SP6[($u>>24)&0x3f];
|
||||
}
|
||||
}
|
||||
&doFP(*l,*r);
|
||||
pack("C8",$l&0xff,
|
||||
($l>> 8)&0x00ffffff,
|
||||
($l>>16)&0x0000ffff,
|
||||
($l>>24)&0x000000ff,
|
||||
$r&0xff,
|
||||
($r>> 8)&0x00ffffff,
|
||||
($r>>16)&0x0000ffff,
|
||||
($r>>24)&0x000000ff);
|
||||
}
|
@ -1,508 +0,0 @@
|
||||
.TH DES_CRYPT 3
|
||||
.SH NAME
|
||||
des_read_password, des_read_2password,
|
||||
des_string_to_key, des_string_to_2key, des_read_pw_string,
|
||||
des_random_key, des_set_key,
|
||||
des_key_sched, des_ecb_encrypt, des_ecb3_encrypt, des_cbc_encrypt,
|
||||
des_3cbc_encrypt,
|
||||
des_pcbc_encrypt, des_cfb_encrypt, des_ofb_encrypt,
|
||||
des_cbc_cksum, des_quad_cksum,
|
||||
des_enc_read, des_enc_write, des_set_odd_parity,
|
||||
des_is_weak_key, crypt \- (non USA) DES encryption
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
.nj
|
||||
.ft B
|
||||
#include <des.h>
|
||||
.PP
|
||||
.B int des_read_password(key,prompt,verify)
|
||||
des_cblock *key;
|
||||
char *prompt;
|
||||
int verify;
|
||||
.PP
|
||||
.B int des_read_2password(key1,key2,prompt,verify)
|
||||
des_cblock *key1,*key2;
|
||||
char *prompt;
|
||||
int verify;
|
||||
.PP
|
||||
.B int des_string_to_key(str,key)
|
||||
char *str;
|
||||
des_cblock *key;
|
||||
.PP
|
||||
.B int des_string_to_2keys(str,key1,key2)
|
||||
char *str;
|
||||
des_cblock *key1,*key2;
|
||||
.PP
|
||||
.B int des_read_pw_string(buf,length,prompt,verify)
|
||||
char *buf;
|
||||
int length;
|
||||
char *prompt;
|
||||
int verify;
|
||||
.PP
|
||||
.B int des_random_key(key)
|
||||
des_cblock *key;
|
||||
.PP
|
||||
.B int des_set_key(key,schedule)
|
||||
des_cblock *key;
|
||||
des_key_schedule schedule;
|
||||
.PP
|
||||
.B int des_key_sched(key,schedule)
|
||||
des_cblock *key;
|
||||
des_key_schedule schedule;
|
||||
.PP
|
||||
.B int des_ecb_encrypt(input,output,schedule,encrypt)
|
||||
des_cblock *input;
|
||||
des_cblock *output;
|
||||
des_key_schedule schedule;
|
||||
int encrypt;
|
||||
.PP
|
||||
.B int des_ecb3_encrypt(input,output,ks1,ks2,encrypt)
|
||||
des_cblock *input;
|
||||
des_cblock *output;
|
||||
des_key_schedule ks1,ks2;
|
||||
int encrypt;
|
||||
.PP
|
||||
.B int des_cbc_encrypt(input,output,length,schedule,ivec,encrypt)
|
||||
des_cblock *input;
|
||||
des_cblock *output;
|
||||
long length;
|
||||
des_key_schedule schedule;
|
||||
des_cblock *ivec;
|
||||
int encrypt;
|
||||
.PP
|
||||
.B int des_3cbc_encrypt(input,output,length,sk1,sk2,ivec1,ivec2,encrypt)
|
||||
des_cblock *input;
|
||||
des_cblock *output;
|
||||
long length;
|
||||
des_key_schedule sk1;
|
||||
des_key_schedule sk2;
|
||||
des_cblock *ivec1;
|
||||
des_cblock *ivec2;
|
||||
int encrypt;
|
||||
.PP
|
||||
.B int des_pcbc_encrypt(input,output,length,schedule,ivec,encrypt)
|
||||
des_cblock *input;
|
||||
des_cblock *output;
|
||||
long length;
|
||||
des_key_schedule schedule;
|
||||
des_cblock *ivec;
|
||||
int encrypt;
|
||||
.PP
|
||||
.B int des_cfb_encrypt(input,output,numbits,length,schedule,ivec,encrypt)
|
||||
unsigned char *input;
|
||||
unsigned char *output;
|
||||
int numbits;
|
||||
long length;
|
||||
des_key_schedule schedule;
|
||||
des_cblock *ivec;
|
||||
int encrypt;
|
||||
.PP
|
||||
.B int des_ofb_encrypt(input,output,numbits,length,schedule,ivec)
|
||||
unsigned char *input,*output;
|
||||
int numbits;
|
||||
long length;
|
||||
des_key_schedule schedule;
|
||||
des_cblock *ivec;
|
||||
.PP
|
||||
.B unsigned long des_cbc_cksum(input,output,length,schedule,ivec)
|
||||
des_cblock *input;
|
||||
des_cblock *output;
|
||||
long length;
|
||||
des_key_schedule schedule;
|
||||
des_cblock *ivec;
|
||||
.PP
|
||||
.B unsigned long des_quad_cksum(input,output,length,out_count,seed)
|
||||
des_cblock *input;
|
||||
des_cblock *output;
|
||||
long length;
|
||||
int out_count;
|
||||
des_cblock *seed;
|
||||
.PP
|
||||
.B int des_check_key;
|
||||
.PP
|
||||
.B int des_enc_read(fd,buf,len,sched,iv)
|
||||
int fd;
|
||||
char *buf;
|
||||
int len;
|
||||
des_key_schedule sched;
|
||||
des_cblock *iv;
|
||||
.PP
|
||||
.B int des_enc_write(fd,buf,len,sched,iv)
|
||||
int fd;
|
||||
char *buf;
|
||||
int len;
|
||||
des_key_schedule sched;
|
||||
des_cblock *iv;
|
||||
.PP
|
||||
.B extern int des_rw_mode;
|
||||
.PP
|
||||
.B void des_set_odd_parity(key)
|
||||
des_cblock *key;
|
||||
.PP
|
||||
.B int des_is_weak_key(key)
|
||||
des_cblock *key;
|
||||
.PP
|
||||
.B char *crypt(passwd,salt)
|
||||
char *passwd;
|
||||
char *salt;
|
||||
.PP
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
This library contains a fast implementation of the DES encryption
|
||||
algorithm.
|
||||
.PP
|
||||
There are two phases to the use of DES encryption.
|
||||
The first is the generation of a
|
||||
.I des_key_schedule
|
||||
from a key,
|
||||
the second is the actual encryption.
|
||||
A des key is of type
|
||||
.I des_cblock.
|
||||
This type is made from 8 characters with odd parity.
|
||||
The least significant bit in the character is the parity bit.
|
||||
The key schedule is an expanded form of the key; it is used to speed the
|
||||
encryption process.
|
||||
.PP
|
||||
.I des_read_password
|
||||
writes the string specified by prompt to the standard output,
|
||||
turns off echo and reads an input string from standard input
|
||||
until terminated with a newline.
|
||||
If verify is non-zero, it prompts and reads the input again and verifies
|
||||
that both entered passwords are the same.
|
||||
The entered string is converted into a des key by using the
|
||||
.I des_string_to_key
|
||||
routine.
|
||||
The new key is placed in the
|
||||
.I des_cblock
|
||||
that was passed (by reference) to the routine.
|
||||
If there were no errors,
|
||||
.I des_read_password
|
||||
returns 0,
|
||||
-1 is returned if there was a terminal error and 1 is returned for
|
||||
any other error.
|
||||
.PP
|
||||
.I des_read_2password
|
||||
operates in the same way as
|
||||
.I des_read_password
|
||||
except that it generates 2 keys by using the
|
||||
.I des_string_to_2key
|
||||
function.
|
||||
.PP
|
||||
.I des_read_pw_string
|
||||
is called by
|
||||
.I des_read_password
|
||||
to read and verify a string from a terminal device.
|
||||
The string is returned in
|
||||
.I buf.
|
||||
The size of
|
||||
.I buf
|
||||
is passed to the routine via the
|
||||
.I length
|
||||
parameter.
|
||||
.PP
|
||||
.I des_string_to_key
|
||||
converts a string into a valid des key.
|
||||
.PP
|
||||
.I des_string_to_2key
|
||||
converts a string into 2 valid des keys.
|
||||
This routine is best suited for used to generate keys for use with
|
||||
.I des_ecb3_encrypt.
|
||||
.PP
|
||||
.I des_random_key
|
||||
returns a random key that is made of a combination of process id,
|
||||
time and an increasing counter.
|
||||
.PP
|
||||
Before a des key can be used it is converted into a
|
||||
.I des_key_schedule
|
||||
via the
|
||||
.I des_set_key
|
||||
routine.
|
||||
If the
|
||||
.I des_check_key
|
||||
flag is non-zero,
|
||||
.I des_set_key
|
||||
will check that the key passed is of odd parity and is not a week or
|
||||
semi-weak key.
|
||||
If the parity is wrong,
|
||||
then -1 is returned.
|
||||
If the key is a weak key,
|
||||
then -2 is returned.
|
||||
If an error is returned,
|
||||
the key schedule is not generated.
|
||||
.PP
|
||||
.I des_key_sched
|
||||
is another name for the
|
||||
.I des_set_key
|
||||
function.
|
||||
.PP
|
||||
The following routines mostly operate on an input and output stream of
|
||||
.I des_cblock's.
|
||||
.PP
|
||||
.I des_ecb_encrypt
|
||||
is the basic DES encryption routine that encrypts or decrypts a single 8-byte
|
||||
.I des_cblock
|
||||
in
|
||||
.I electronic code book
|
||||
mode.
|
||||
It always transforms the input data, pointed to by
|
||||
.I input,
|
||||
into the output data,
|
||||
pointed to by the
|
||||
.I output
|
||||
argument.
|
||||
If the
|
||||
.I encrypt
|
||||
argument is non-zero (DES_ENCRYPT),
|
||||
the
|
||||
.I input
|
||||
(cleartext) is encrypted in to the
|
||||
.I output
|
||||
(ciphertext) using the key_schedule specified by the
|
||||
.I schedule
|
||||
argument,
|
||||
previously set via
|
||||
.I des_set_key.
|
||||
If
|
||||
.I encrypt
|
||||
is zero (DES_DECRYPT),
|
||||
the
|
||||
.I input
|
||||
(now ciphertext)
|
||||
is decrypted into the
|
||||
.I output
|
||||
(now cleartext).
|
||||
Input and output may overlap.
|
||||
No meaningful value is returned.
|
||||
.PP
|
||||
.I des_ecb3_encrypt
|
||||
encrypts/decrypts the
|
||||
.I input
|
||||
block by using triple ecb DES encryption.
|
||||
This involves encrypting the input with
|
||||
.I ks1,
|
||||
decryption with the key schedule
|
||||
.I ks2,
|
||||
and then encryption with the first again.
|
||||
This routine greatly reduces the chances of brute force breaking of
|
||||
DES and has the advantage of if
|
||||
.I ks1
|
||||
and
|
||||
.I ks2
|
||||
are the same, it is equivalent to just encryption using ecb mode and
|
||||
.I ks1
|
||||
as the key.
|
||||
.PP
|
||||
.I des_cbc_encrypt
|
||||
encrypts/decrypts using the
|
||||
.I cipher-block-chaining
|
||||
mode of DES.
|
||||
If the
|
||||
.I encrypt
|
||||
argument is non-zero,
|
||||
the routine cipher-block-chain encrypts the cleartext data pointed to by the
|
||||
.I input
|
||||
argument into the ciphertext pointed to by the
|
||||
.I output
|
||||
argument,
|
||||
using the key schedule provided by the
|
||||
.I schedule
|
||||
argument,
|
||||
and initialisation vector provided by the
|
||||
.I ivec
|
||||
argument.
|
||||
If the
|
||||
.I length
|
||||
argument is not an integral multiple of eight bytes,
|
||||
the last block is copied to a temporary area and zero filled.
|
||||
The output is always
|
||||
an integral multiple of eight bytes.
|
||||
To make multiple cbc encrypt calls on a large amount of data appear to
|
||||
be one
|
||||
.I des_cbc_encrypt
|
||||
call, the
|
||||
.I ivec
|
||||
of subsequent calls should be the last 8 bytes of the output.
|
||||
.PP
|
||||
.I des_3cbc_encrypt
|
||||
encrypts/decrypts the
|
||||
.I input
|
||||
block by using triple cbc DES encryption.
|
||||
This involves encrypting the input with key schedule
|
||||
.I ks1,
|
||||
decryption with the key schedule
|
||||
.I ks2,
|
||||
and then encryption with the first again.
|
||||
2 initialisation vectors are required,
|
||||
.I ivec1
|
||||
and
|
||||
.I ivec2.
|
||||
Unlike
|
||||
.I des_cbc_encrypt,
|
||||
these initialisation vectors are modified by the subroutine.
|
||||
This routine greatly reduces the chances of brute force breaking of
|
||||
DES and has the advantage of if
|
||||
.I ks1
|
||||
and
|
||||
.I ks2
|
||||
are the same, it is equivalent to just encryption using cbc mode and
|
||||
.I ks1
|
||||
as the key.
|
||||
.PP
|
||||
.I des_pcbc_encrypt
|
||||
encrypt/decrypts using a modified block chaining mode.
|
||||
It provides better error propagation characteristics than cbc
|
||||
encryption.
|
||||
.PP
|
||||
.I des_cfb_encrypt
|
||||
encrypt/decrypts using cipher feedback mode. This method takes an
|
||||
array of characters as input and outputs and array of characters. It
|
||||
does not require any padding to 8 character groups. Note: the ivec
|
||||
variable is changed and the new changed value needs to be passed to
|
||||
the next call to this function. Since this function runs a complete
|
||||
DES ecb encryption per numbits, this function is only suggested for
|
||||
use when sending small numbers of characters.
|
||||
.PP
|
||||
.I des_ofb_encrypt
|
||||
encrypt using output feedback mode. This method takes an
|
||||
array of characters as input and outputs and array of characters. It
|
||||
does not require any padding to 8 character groups. Note: the ivec
|
||||
variable is changed and the new changed value needs to be passed to
|
||||
the next call to this function. Since this function runs a complete
|
||||
DES ecb encryption per numbits, this function is only suggested for
|
||||
use when sending small numbers of characters.
|
||||
.PP
|
||||
.I des_cbc_cksum
|
||||
produces an 8 byte checksum based on the input stream (via cbc encryption).
|
||||
The last 4 bytes of the checksum is returned and the complete 8 bytes is
|
||||
placed in
|
||||
.I output.
|
||||
.PP
|
||||
.I des_quad_cksum
|
||||
returns a 4 byte checksum from the input bytes.
|
||||
The algorithm can be iterated over the input,
|
||||
depending on
|
||||
.I out_count,
|
||||
1, 2, 3 or 4 times.
|
||||
If
|
||||
.I output
|
||||
is non-NULL,
|
||||
the 8 bytes generated by each pass are written into
|
||||
.I output.
|
||||
.PP
|
||||
.I des_enc_write
|
||||
is used to write
|
||||
.I len
|
||||
bytes
|
||||
to file descriptor
|
||||
.I fd
|
||||
from buffer
|
||||
.I buf.
|
||||
The data is encrypted via
|
||||
.I pcbc_encrypt
|
||||
(default) using
|
||||
.I sched
|
||||
for the key and
|
||||
.I iv
|
||||
as a starting vector.
|
||||
The actual data send down
|
||||
.I fd
|
||||
consists of 4 bytes (in network byte order) containing the length of the
|
||||
following encrypted data. The encrypted data then follows, padded with random
|
||||
data out to a multiple of 8 bytes.
|
||||
.PP
|
||||
.I des_enc_read
|
||||
is used to read
|
||||
.I len
|
||||
bytes
|
||||
from file descriptor
|
||||
.I fd
|
||||
into buffer
|
||||
.I buf.
|
||||
The data being read from
|
||||
.I fd
|
||||
is assumed to have come from
|
||||
.I des_enc_write
|
||||
and is decrypted using
|
||||
.I sched
|
||||
for the key schedule and
|
||||
.I iv
|
||||
for the initial vector.
|
||||
The
|
||||
.I des_enc_read/des_enc_write
|
||||
pair can be used to read/write to files, pipes and sockets.
|
||||
I have used them in implementing a version of rlogin in which all
|
||||
data is encrypted.
|
||||
.PP
|
||||
.I des_rw_mode
|
||||
is used to specify the encryption mode to use with
|
||||
.I des_enc_read
|
||||
and
|
||||
.I des_end_write.
|
||||
If set to
|
||||
.I DES_PCBC_MODE
|
||||
(the default), des_pcbc_encrypt is used.
|
||||
If set to
|
||||
.I DES_CBC_MODE
|
||||
des_cbc_encrypt is used.
|
||||
These two routines and the variable are not part of the normal MIT library.
|
||||
.PP
|
||||
.I des_set_odd_parity
|
||||
sets the parity of the passed
|
||||
.I key
|
||||
to odd. This routine is not part of the standard MIT library.
|
||||
.PP
|
||||
.I des_is_weak_key
|
||||
returns 1 is the passed key is a weak key (pick again :-),
|
||||
0 if it is ok.
|
||||
This routine is not part of the standard MIT library.
|
||||
.PP
|
||||
.I crypt
|
||||
is a replacement for the normal system crypt.
|
||||
It is much faster than the system crypt.
|
||||
.PP
|
||||
.SH FILES
|
||||
/usr/include/des.h
|
||||
.br
|
||||
/usr/lib/libdes.a
|
||||
.PP
|
||||
The encryption routines have been tested on 16bit, 32bit and 64bit
|
||||
machines of various endian and even works under VMS.
|
||||
.PP
|
||||
.SH BUGS
|
||||
.PP
|
||||
If you think this manual is sparse,
|
||||
read the des_crypt(3) manual from the MIT kerberos (or bones outside
|
||||
of the USA) distribution.
|
||||
.PP
|
||||
.I des_cfb_encrypt
|
||||
and
|
||||
.I des_ofb_encrypt
|
||||
operates on input of 8 bits. What this means is that if you set
|
||||
numbits to 12, and length to 2, the first 12 bits will come from the 1st
|
||||
input byte and the low half of the second input byte. The second 12
|
||||
bits will have the low 8 bits taken from the 3rd input byte and the
|
||||
top 4 bits taken from the 4th input byte. The same holds for output.
|
||||
This function has been implemented this way because most people will
|
||||
be using a multiple of 8 and because once you get into pulling bytes input
|
||||
bytes apart things get ugly!
|
||||
.PP
|
||||
.I des_read_pw_string
|
||||
is the most machine/OS dependent function and normally generates the
|
||||
most problems when porting this code.
|
||||
.PP
|
||||
.I des_string_to_key
|
||||
is probably different from the MIT version since there are lots
|
||||
of fun ways to implement one-way encryption of a text string.
|
||||
.PP
|
||||
The routines are optimised for 32 bit machines and so are not efficient
|
||||
on IBM PCs.
|
||||
.PP
|
||||
NOTE: extensive work has been done on this library since this document
|
||||
was origionally written. Please try to read des.doc from the libdes
|
||||
distribution since it is far more upto date and documents more of the
|
||||
functions. Libdes is now also being shipped as part of SSLeay, a
|
||||
general cryptographic library that amonst other things implements
|
||||
netscapes SSL protocoll. The most recent version can be found in
|
||||
SSLeay distributions.
|
||||
.SH AUTHOR
|
||||
Eric Young (eay@cryptsoft.com)
|
@ -1,46 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
@l=(
|
||||
0, 1, 2, 3, 4, 5, 6, 7,
|
||||
8, 9,10,11,12,13,14,15,
|
||||
16,17,18,19,20,21,22,23,
|
||||
24,25,26,27,28,29,30,31
|
||||
);
|
||||
@r=(
|
||||
32,33,34,35,36,37,38,39,
|
||||
40,41,42,43,44,45,46,47,
|
||||
48,49,50,51,52,53,54,55,
|
||||
56,57,58,59,60,61,62,63
|
||||
);
|
||||
|
||||
require 'shifts.pl';
|
||||
|
||||
sub PERM_OP
|
||||
{
|
||||
local(*a,*b,*t,$n,$m)=@_;
|
||||
|
||||
@z=&shift(*a,-$n);
|
||||
@z=&xor(*b,*z);
|
||||
@z=&and(*z,$m);
|
||||
@b=&xor(*b,*z);
|
||||
@z=&shift(*z,$n);
|
||||
@a=&xor(*a,*z);
|
||||
}
|
||||
|
||||
|
||||
@L=@l;
|
||||
@R=@r;
|
||||
&PERM_OP(*R,*L,*T,4,0x0f0f0f0f);
|
||||
&PERM_OP(*L,*R,*T,16,0x0000ffff);
|
||||
&PERM_OP(*R,*L,*T,2,0x33333333);
|
||||
&PERM_OP(*L,*R,*T,8,0x00ff00ff);
|
||||
&PERM_OP(*R,*L,*T,1,0x55555555);
|
||||
&printit(@L);
|
||||
&printit(@R);
|
||||
&PERM_OP(*R,*L,*T,1,0x55555555);
|
||||
&PERM_OP(*L,*R,*T,8,0x00ff00ff);
|
||||
&PERM_OP(*R,*L,*T,2,0x33333333);
|
||||
&PERM_OP(*L,*R,*T,16,0x0000ffff);
|
||||
&PERM_OP(*R,*L,*T,4,0x0f0f0f0f);
|
||||
&printit(@L);
|
||||
&printit(@R);
|
@ -1,110 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
@l=(
|
||||
0, 1, 2, 3, 4, 5, 6, 7,
|
||||
8, 9,10,11,12,13,14,15,
|
||||
16,17,18,19,20,21,22,23,
|
||||
24,25,26,27,28,29,30,31
|
||||
);
|
||||
@r=(
|
||||
32,33,34,35,36,37,38,39,
|
||||
40,41,42,43,44,45,46,47,
|
||||
48,49,50,51,52,53,54,55,
|
||||
56,57,58,59,60,61,62,63
|
||||
);
|
||||
|
||||
require 'shifts.pl';
|
||||
|
||||
sub PERM_OP
|
||||
{
|
||||
local(*a,*b,*t,$n,$m)=@_;
|
||||
|
||||
@z=&shift(*a,-$n);
|
||||
@z=&xor(*b,*z);
|
||||
@z=&and(*z,$m);
|
||||
@b=&xor(*b,*z);
|
||||
@z=&shift(*z,$n);
|
||||
@a=&xor(*a,*z);
|
||||
}
|
||||
|
||||
sub HPERM_OP2
|
||||
{
|
||||
local(*a,*t,$n,$m)=@_;
|
||||
local(@x,@y,$i);
|
||||
|
||||
@z=&shift(*a,16-$n);
|
||||
@z=&xor(*a,*z);
|
||||
@z=&and(*z,$m);
|
||||
@a=&xor(*a,*z);
|
||||
@z=&shift(*z,$n-16);
|
||||
@a=&xor(*a,*z);
|
||||
}
|
||||
|
||||
sub HPERM_OP
|
||||
{
|
||||
local(*a,*t,$n,$m)=@_;
|
||||
local(@x,@y,$i);
|
||||
|
||||
for ($i=0; $i<16; $i++)
|
||||
{
|
||||
$x[$i]=$a[$i];
|
||||
$y[$i]=$a[16+$i];
|
||||
}
|
||||
@z=&shift(*x,-$n);
|
||||
@z=&xor(*y,*z);
|
||||
@z=&and(*z,$m);
|
||||
@y=&xor(*y,*z);
|
||||
@z=&shift(*z,$n);
|
||||
@x=&xor(*x,*z);
|
||||
for ($i=0; $i<16; $i++)
|
||||
{
|
||||
$a[$i]=$x[$i];
|
||||
$a[16+$i]=$y[$i];
|
||||
}
|
||||
}
|
||||
|
||||
@L=@l;
|
||||
@R=@r;
|
||||
|
||||
print "---\n"; &printit(@R);
|
||||
&PERM_OP(*R,*L,*T,4,0x0f0f0f0f);
|
||||
print "---\n"; &printit(@R);
|
||||
&HPERM_OP2(*L,*T,-2,0xcccc0000);
|
||||
&HPERM_OP2(*R,*T,-2,0xcccc0000);
|
||||
print "---\n"; &printit(@R);
|
||||
&PERM_OP(*R,*L,*T,1,0x55555555);
|
||||
print "---\n"; &printit(@R);
|
||||
&PERM_OP(*L,*R,*T,8,0x00ff00ff);
|
||||
print "---\n"; &printit(@R);
|
||||
&PERM_OP(*R,*L,*T,1,0x55555555);
|
||||
print "---\n"; &printit(@R);
|
||||
# &printit(@L);
|
||||
&printit(@R);
|
||||
print <<"EOF";
|
||||
==============================
|
||||
63 55 47 39 31 23 15 7
|
||||
62 54 46 38 30 22 14 6
|
||||
61 53 45 37 29 21 13 5
|
||||
60 52 44 36 -- -- -- --
|
||||
|
||||
57 49 41 33 25 17 9 1
|
||||
58 50 42 34 26 18 10 2
|
||||
59 51 43 35 27 19 11 3
|
||||
28 20 12 4 -- -- -- --
|
||||
EOF
|
||||
exit(1);
|
||||
@A=&and(*R,0x000000ff);
|
||||
@A=&shift(*A,16);
|
||||
@B=&and(*R,0x0000ff00);
|
||||
@C=&and(*R,0x00ff0000);
|
||||
@C=&shift(*C,-16);
|
||||
@D=&and(*L,0xf0000000);
|
||||
@D=&shift(*D,-4);
|
||||
@A=&or(*A,*B);
|
||||
@B=&or(*D,*C);
|
||||
@R=&or(*A,*B);
|
||||
@L=&and(*L,0x0fffffff);
|
||||
|
||||
&printit(@L);
|
||||
&printit(@R);
|
||||
|
@ -1,94 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
@PC2_C=(14,17,11,24, 1, 5,
|
||||
3,28,15, 6,21,10,
|
||||
23,19,12, 4,26, 8,
|
||||
16, 7,27,20,13, 2,
|
||||
);
|
||||
|
||||
@PC2_D=(41,52,31,37,47,55,
|
||||
30,40,51,45,33,48,
|
||||
44,49,39,56,34,53,
|
||||
46,42,50,36,29,32,
|
||||
);
|
||||
|
||||
$i=0;
|
||||
foreach (@PC2_C) {
|
||||
$_--;
|
||||
# printf "%2d,",$_;
|
||||
$C{$_}=$i;
|
||||
++$i;
|
||||
# print "\n" if ((($i) % 8) == 0);
|
||||
}
|
||||
$i=0;
|
||||
#print "\n";
|
||||
foreach (@PC2_D) {
|
||||
$_-=28;
|
||||
$_--;
|
||||
# printf "%2d,",$_;
|
||||
$D{$_}=$i;
|
||||
$i++;
|
||||
# print "\n" if ((($i) % 8) == 0);
|
||||
}
|
||||
|
||||
#print "\n";
|
||||
foreach $i (0 .. 27)
|
||||
{
|
||||
$_=$C{$i};
|
||||
# printf "%2d,",$_;
|
||||
$i++;
|
||||
# print "\n" if ((($i) % 8) == 0);
|
||||
}
|
||||
#print "\n";
|
||||
|
||||
#print "\n";
|
||||
foreach $i (0 .. 27)
|
||||
{
|
||||
$_=$D{$i};
|
||||
# printf "%2d,",$_;
|
||||
$i++;
|
||||
# print "\n" if ((($i) % 8) == 0);
|
||||
}
|
||||
#print "\n";
|
||||
|
||||
print "static ulong skb[8][64]={\n";
|
||||
&doit("C",*C, 0, 1, 2, 3, 4, 5);
|
||||
&doit("C",*C, 6, 7, 9,10,11,12);
|
||||
&doit("C",*C,13,14,15,16,18,19);
|
||||
&doit("C",*C,20,22,23,25,26,27);
|
||||
|
||||
&doit("D",*D, 0, 1, 2, 3, 4, 5);
|
||||
&doit("D",*D, 7, 8,10,11,12,13);
|
||||
&doit("D",*D,15,16,17,18,19,20);
|
||||
&doit("D",*D,21,22,23,24,26,27);
|
||||
print "};\n";
|
||||
|
||||
sub doit
|
||||
{
|
||||
local($l,*A,@b)=@_;
|
||||
local(@out);
|
||||
|
||||
printf("/* for $l bits (numbered as per FIPS 46) %d %d %d %d %d %d */\n",
|
||||
$b[0]+1, $b[1]+1, $b[2]+1, $b[3]+1, $b[4]+1, $b[5]+1);
|
||||
for ($i=0; $i<64; $i++)
|
||||
{
|
||||
$out[$i]=0;
|
||||
$j=1;
|
||||
#print "\n";
|
||||
for ($k=0; $k<6; $k++)
|
||||
{
|
||||
$l=$A{$b[$k]};
|
||||
#print"$l - ";
|
||||
if ((1<<$k) & $i)
|
||||
{
|
||||
$ll=int($l/6)*8+($l%6);
|
||||
$out[$i]|=1<<($ll);
|
||||
}
|
||||
}
|
||||
$pp=$out[$i];
|
||||
$pp=($pp&0xff0000ff)| (($pp&0x00ff0000)>>8)|
|
||||
(($pp&0x0000ff00)<<8);
|
||||
printf("0x%08X,",$pp);
|
||||
print "\n" if (($i+1) % 4 == 0);
|
||||
}
|
||||
}
|
@ -1,75 +0,0 @@
|
||||
/* crypto/des/podd.h */
|
||||
/* 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.]
|
||||
*/
|
||||
|
||||
static const unsigned char odd_parity[256]={
|
||||
1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11, 11, 13, 13, 14, 14,
|
||||
16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31,
|
||||
32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47,
|
||||
49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62,
|
||||
64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79,
|
||||
81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94,
|
||||
97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110,
|
||||
112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127,
|
||||
128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143,
|
||||
145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158,
|
||||
161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174,
|
||||
176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191,
|
||||
193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206,
|
||||
208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223,
|
||||
224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239,
|
||||
241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254};
|
@ -1,198 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
sub lab_shift
|
||||
{
|
||||
local(*a,$n)=@_;
|
||||
local(@r,$i,$j,$k,$d,@z);
|
||||
|
||||
@r=&shift(*a,$n);
|
||||
foreach $i (0 .. 31)
|
||||
{
|
||||
@z=split(/\^/,$r[$i]);
|
||||
for ($j=0; $j <= $#z; $j++)
|
||||
{
|
||||
($d)=($z[$j] =~ /^(..)/);
|
||||
($k)=($z[$j] =~ /\[(.*)\]$/);
|
||||
$k.=",$n" if ($k ne "");
|
||||
$k="$n" if ($k eq "");
|
||||
$d="$d[$k]";
|
||||
$z[$j]=$d;
|
||||
}
|
||||
$r[$i]=join('^',@z);
|
||||
}
|
||||
return(@r);
|
||||
}
|
||||
|
||||
sub shift
|
||||
{
|
||||
local(*a,$n)=@_;
|
||||
local(@f);
|
||||
|
||||
if ($n > 0)
|
||||
{
|
||||
@f=&shiftl(*a,$n);
|
||||
}
|
||||
else
|
||||
{
|
||||
@f=&shiftr(*a,-$n);
|
||||
}
|
||||
return(@f);
|
||||
}
|
||||
|
||||
sub rotate
|
||||
{
|
||||
local(*a,$n)=@_;
|
||||
local(@f);
|
||||
|
||||
if ($n > 0)
|
||||
{ @f=&rotatel(*a,$n); }
|
||||
else
|
||||
{ @f=&rotater(*a,-$n); }
|
||||
return(@f);
|
||||
}
|
||||
|
||||
sub rotater
|
||||
{
|
||||
local(*a,$n)=@_;
|
||||
local(@f,@g);
|
||||
|
||||
@f=&shiftr(*a,$n);
|
||||
@g=&shiftl(*a,32-$n);
|
||||
$#f=31;
|
||||
$#g=31;
|
||||
return(&or(*f,*g));
|
||||
}
|
||||
|
||||
sub rotatel
|
||||
{
|
||||
local(*a,$n)=@_;
|
||||
local(@f,@g);
|
||||
|
||||
@f=&shiftl(*a,$n);
|
||||
@g=&shiftr(*a,32-$n);
|
||||
$#f=31;
|
||||
$#g=31;
|
||||
return(&or(*f,*g));
|
||||
}
|
||||
|
||||
sub shiftr
|
||||
{
|
||||
local(*a,$n)=@_;
|
||||
local(@r,$i);
|
||||
|
||||
$#r=31;
|
||||
foreach $i (0 .. 31)
|
||||
{
|
||||
if (($i+$n) > 31)
|
||||
{
|
||||
$r[$i]="--";
|
||||
}
|
||||
else
|
||||
{
|
||||
$r[$i]=$a[$i+$n];
|
||||
}
|
||||
}
|
||||
return(@r);
|
||||
}
|
||||
|
||||
sub shiftl
|
||||
{
|
||||
local(*a,$n)=@_;
|
||||
local(@r,$i);
|
||||
|
||||
$#r=31;
|
||||
foreach $i (0 .. 31)
|
||||
{
|
||||
if ($i < $n)
|
||||
{
|
||||
$r[$i]="--";
|
||||
}
|
||||
else
|
||||
{
|
||||
$r[$i]=$a[$i-$n];
|
||||
}
|
||||
}
|
||||
return(@r);
|
||||
}
|
||||
|
||||
sub printit
|
||||
{
|
||||
local(@a)=@_;
|
||||
local($i);
|
||||
|
||||
foreach $i (0 .. 31)
|
||||
{
|
||||
printf "%2s ",$a[$i];
|
||||
print "\n" if (($i%8) == 7);
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
|
||||
sub xor
|
||||
{
|
||||
local(*a,*b)=@_;
|
||||
local(@r,$i);
|
||||
|
||||
$#r=31;
|
||||
foreach $i (0 .. 31)
|
||||
{
|
||||
$r[$i]=&compress($a[$i].'^'.$b[$i]);
|
||||
# $r[$i]=$a[$i]."^".$b[$i];
|
||||
}
|
||||
return(@r);
|
||||
}
|
||||
|
||||
sub and
|
||||
{
|
||||
local(*a,$m)=@_;
|
||||
local(@r,$i);
|
||||
|
||||
$#r=31;
|
||||
foreach $i (0 .. 31)
|
||||
{
|
||||
$r[$i]=(($m & (1<<$i))?($a[$i]):('--'));
|
||||
}
|
||||
return(@r);
|
||||
}
|
||||
|
||||
sub or
|
||||
{
|
||||
local(*a,*b)=@_;
|
||||
local(@r,$i);
|
||||
|
||||
$#r=31;
|
||||
foreach $i (0 .. 31)
|
||||
{
|
||||
$r[$i]='--' if (($a[$i] eq '--') && ($b[$i] eq '--'));
|
||||
$r[$i]=$a[$i] if (($a[$i] ne '--') && ($b[$i] eq '--'));
|
||||
$r[$i]=$b[$i] if (($a[$i] eq '--') && ($b[$i] ne '--'));
|
||||
$r[$i]='++' if (($a[$i] ne '--') && ($b[$i] ne '--'));
|
||||
}
|
||||
return(@r);
|
||||
}
|
||||
|
||||
sub compress
|
||||
{
|
||||
local($s)=@_;
|
||||
local($_,$i,@a,%a,$r);
|
||||
|
||||
$s =~ s/\^\^/\^/g;
|
||||
$s =~ s/^\^//;
|
||||
$s =~ s/\^$//;
|
||||
@a=split(/\^/,$s);
|
||||
|
||||
while ($#a >= 0)
|
||||
{
|
||||
$_=shift(@a);
|
||||
next unless /\d/;
|
||||
$a{$_}++;
|
||||
}
|
||||
foreach $i (sort keys %a)
|
||||
{
|
||||
next if ($a{$i}%2 == 0);
|
||||
$r.="$i^";
|
||||
}
|
||||
chop($r);
|
||||
return($r);
|
||||
}
|
||||
1;
|
@ -1,204 +0,0 @@
|
||||
/* crypto/des/sk.h */
|
||||
/* 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.]
|
||||
*/
|
||||
|
||||
static const DES_LONG des_skb[8][64]={
|
||||
{
|
||||
/* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
|
||||
0x00000000L,0x00000010L,0x20000000L,0x20000010L,
|
||||
0x00010000L,0x00010010L,0x20010000L,0x20010010L,
|
||||
0x00000800L,0x00000810L,0x20000800L,0x20000810L,
|
||||
0x00010800L,0x00010810L,0x20010800L,0x20010810L,
|
||||
0x00000020L,0x00000030L,0x20000020L,0x20000030L,
|
||||
0x00010020L,0x00010030L,0x20010020L,0x20010030L,
|
||||
0x00000820L,0x00000830L,0x20000820L,0x20000830L,
|
||||
0x00010820L,0x00010830L,0x20010820L,0x20010830L,
|
||||
0x00080000L,0x00080010L,0x20080000L,0x20080010L,
|
||||
0x00090000L,0x00090010L,0x20090000L,0x20090010L,
|
||||
0x00080800L,0x00080810L,0x20080800L,0x20080810L,
|
||||
0x00090800L,0x00090810L,0x20090800L,0x20090810L,
|
||||
0x00080020L,0x00080030L,0x20080020L,0x20080030L,
|
||||
0x00090020L,0x00090030L,0x20090020L,0x20090030L,
|
||||
0x00080820L,0x00080830L,0x20080820L,0x20080830L,
|
||||
0x00090820L,0x00090830L,0x20090820L,0x20090830L,
|
||||
},{
|
||||
/* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
|
||||
0x00000000L,0x02000000L,0x00002000L,0x02002000L,
|
||||
0x00200000L,0x02200000L,0x00202000L,0x02202000L,
|
||||
0x00000004L,0x02000004L,0x00002004L,0x02002004L,
|
||||
0x00200004L,0x02200004L,0x00202004L,0x02202004L,
|
||||
0x00000400L,0x02000400L,0x00002400L,0x02002400L,
|
||||
0x00200400L,0x02200400L,0x00202400L,0x02202400L,
|
||||
0x00000404L,0x02000404L,0x00002404L,0x02002404L,
|
||||
0x00200404L,0x02200404L,0x00202404L,0x02202404L,
|
||||
0x10000000L,0x12000000L,0x10002000L,0x12002000L,
|
||||
0x10200000L,0x12200000L,0x10202000L,0x12202000L,
|
||||
0x10000004L,0x12000004L,0x10002004L,0x12002004L,
|
||||
0x10200004L,0x12200004L,0x10202004L,0x12202004L,
|
||||
0x10000400L,0x12000400L,0x10002400L,0x12002400L,
|
||||
0x10200400L,0x12200400L,0x10202400L,0x12202400L,
|
||||
0x10000404L,0x12000404L,0x10002404L,0x12002404L,
|
||||
0x10200404L,0x12200404L,0x10202404L,0x12202404L,
|
||||
},{
|
||||
/* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
|
||||
0x00000000L,0x00000001L,0x00040000L,0x00040001L,
|
||||
0x01000000L,0x01000001L,0x01040000L,0x01040001L,
|
||||
0x00000002L,0x00000003L,0x00040002L,0x00040003L,
|
||||
0x01000002L,0x01000003L,0x01040002L,0x01040003L,
|
||||
0x00000200L,0x00000201L,0x00040200L,0x00040201L,
|
||||
0x01000200L,0x01000201L,0x01040200L,0x01040201L,
|
||||
0x00000202L,0x00000203L,0x00040202L,0x00040203L,
|
||||
0x01000202L,0x01000203L,0x01040202L,0x01040203L,
|
||||
0x08000000L,0x08000001L,0x08040000L,0x08040001L,
|
||||
0x09000000L,0x09000001L,0x09040000L,0x09040001L,
|
||||
0x08000002L,0x08000003L,0x08040002L,0x08040003L,
|
||||
0x09000002L,0x09000003L,0x09040002L,0x09040003L,
|
||||
0x08000200L,0x08000201L,0x08040200L,0x08040201L,
|
||||
0x09000200L,0x09000201L,0x09040200L,0x09040201L,
|
||||
0x08000202L,0x08000203L,0x08040202L,0x08040203L,
|
||||
0x09000202L,0x09000203L,0x09040202L,0x09040203L,
|
||||
},{
|
||||
/* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
|
||||
0x00000000L,0x00100000L,0x00000100L,0x00100100L,
|
||||
0x00000008L,0x00100008L,0x00000108L,0x00100108L,
|
||||
0x00001000L,0x00101000L,0x00001100L,0x00101100L,
|
||||
0x00001008L,0x00101008L,0x00001108L,0x00101108L,
|
||||
0x04000000L,0x04100000L,0x04000100L,0x04100100L,
|
||||
0x04000008L,0x04100008L,0x04000108L,0x04100108L,
|
||||
0x04001000L,0x04101000L,0x04001100L,0x04101100L,
|
||||
0x04001008L,0x04101008L,0x04001108L,0x04101108L,
|
||||
0x00020000L,0x00120000L,0x00020100L,0x00120100L,
|
||||
0x00020008L,0x00120008L,0x00020108L,0x00120108L,
|
||||
0x00021000L,0x00121000L,0x00021100L,0x00121100L,
|
||||
0x00021008L,0x00121008L,0x00021108L,0x00121108L,
|
||||
0x04020000L,0x04120000L,0x04020100L,0x04120100L,
|
||||
0x04020008L,0x04120008L,0x04020108L,0x04120108L,
|
||||
0x04021000L,0x04121000L,0x04021100L,0x04121100L,
|
||||
0x04021008L,0x04121008L,0x04021108L,0x04121108L,
|
||||
},{
|
||||
/* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
|
||||
0x00000000L,0x10000000L,0x00010000L,0x10010000L,
|
||||
0x00000004L,0x10000004L,0x00010004L,0x10010004L,
|
||||
0x20000000L,0x30000000L,0x20010000L,0x30010000L,
|
||||
0x20000004L,0x30000004L,0x20010004L,0x30010004L,
|
||||
0x00100000L,0x10100000L,0x00110000L,0x10110000L,
|
||||
0x00100004L,0x10100004L,0x00110004L,0x10110004L,
|
||||
0x20100000L,0x30100000L,0x20110000L,0x30110000L,
|
||||
0x20100004L,0x30100004L,0x20110004L,0x30110004L,
|
||||
0x00001000L,0x10001000L,0x00011000L,0x10011000L,
|
||||
0x00001004L,0x10001004L,0x00011004L,0x10011004L,
|
||||
0x20001000L,0x30001000L,0x20011000L,0x30011000L,
|
||||
0x20001004L,0x30001004L,0x20011004L,0x30011004L,
|
||||
0x00101000L,0x10101000L,0x00111000L,0x10111000L,
|
||||
0x00101004L,0x10101004L,0x00111004L,0x10111004L,
|
||||
0x20101000L,0x30101000L,0x20111000L,0x30111000L,
|
||||
0x20101004L,0x30101004L,0x20111004L,0x30111004L,
|
||||
},{
|
||||
/* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
|
||||
0x00000000L,0x08000000L,0x00000008L,0x08000008L,
|
||||
0x00000400L,0x08000400L,0x00000408L,0x08000408L,
|
||||
0x00020000L,0x08020000L,0x00020008L,0x08020008L,
|
||||
0x00020400L,0x08020400L,0x00020408L,0x08020408L,
|
||||
0x00000001L,0x08000001L,0x00000009L,0x08000009L,
|
||||
0x00000401L,0x08000401L,0x00000409L,0x08000409L,
|
||||
0x00020001L,0x08020001L,0x00020009L,0x08020009L,
|
||||
0x00020401L,0x08020401L,0x00020409L,0x08020409L,
|
||||
0x02000000L,0x0A000000L,0x02000008L,0x0A000008L,
|
||||
0x02000400L,0x0A000400L,0x02000408L,0x0A000408L,
|
||||
0x02020000L,0x0A020000L,0x02020008L,0x0A020008L,
|
||||
0x02020400L,0x0A020400L,0x02020408L,0x0A020408L,
|
||||
0x02000001L,0x0A000001L,0x02000009L,0x0A000009L,
|
||||
0x02000401L,0x0A000401L,0x02000409L,0x0A000409L,
|
||||
0x02020001L,0x0A020001L,0x02020009L,0x0A020009L,
|
||||
0x02020401L,0x0A020401L,0x02020409L,0x0A020409L,
|
||||
},{
|
||||
/* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
|
||||
0x00000000L,0x00000100L,0x00080000L,0x00080100L,
|
||||
0x01000000L,0x01000100L,0x01080000L,0x01080100L,
|
||||
0x00000010L,0x00000110L,0x00080010L,0x00080110L,
|
||||
0x01000010L,0x01000110L,0x01080010L,0x01080110L,
|
||||
0x00200000L,0x00200100L,0x00280000L,0x00280100L,
|
||||
0x01200000L,0x01200100L,0x01280000L,0x01280100L,
|
||||
0x00200010L,0x00200110L,0x00280010L,0x00280110L,
|
||||
0x01200010L,0x01200110L,0x01280010L,0x01280110L,
|
||||
0x00000200L,0x00000300L,0x00080200L,0x00080300L,
|
||||
0x01000200L,0x01000300L,0x01080200L,0x01080300L,
|
||||
0x00000210L,0x00000310L,0x00080210L,0x00080310L,
|
||||
0x01000210L,0x01000310L,0x01080210L,0x01080310L,
|
||||
0x00200200L,0x00200300L,0x00280200L,0x00280300L,
|
||||
0x01200200L,0x01200300L,0x01280200L,0x01280300L,
|
||||
0x00200210L,0x00200310L,0x00280210L,0x00280310L,
|
||||
0x01200210L,0x01200310L,0x01280210L,0x01280310L,
|
||||
},{
|
||||
/* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
|
||||
0x00000000L,0x04000000L,0x00040000L,0x04040000L,
|
||||
0x00000002L,0x04000002L,0x00040002L,0x04040002L,
|
||||
0x00002000L,0x04002000L,0x00042000L,0x04042000L,
|
||||
0x00002002L,0x04002002L,0x00042002L,0x04042002L,
|
||||
0x00000020L,0x04000020L,0x00040020L,0x04040020L,
|
||||
0x00000022L,0x04000022L,0x00040022L,0x04040022L,
|
||||
0x00002020L,0x04002020L,0x00042020L,0x04042020L,
|
||||
0x00002022L,0x04002022L,0x00042022L,0x04042022L,
|
||||
0x00000800L,0x04000800L,0x00040800L,0x04040800L,
|
||||
0x00000802L,0x04000802L,0x00040802L,0x04040802L,
|
||||
0x00002800L,0x04002800L,0x00042800L,0x04042800L,
|
||||
0x00002802L,0x04002802L,0x00042802L,0x04042802L,
|
||||
0x00000820L,0x04000820L,0x00040820L,0x04040820L,
|
||||
0x00000822L,0x04000822L,0x00040822L,0x04040822L,
|
||||
0x00002820L,0x04002820L,0x00042820L,0x04042820L,
|
||||
0x00002822L,0x04002822L,0x00042822L,0x04042822L,
|
||||
}};
|
@ -1,107 +0,0 @@
|
||||
/* crypto/des/supp.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) 1995
|
||||
* Mark Murray. 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 acknowledgement:
|
||||
* This product includes software developed by Mark Murray
|
||||
* 4. Neither the name of the author nor the names of any co-contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY MARK MURRAY AND CONTRIBUTORS ``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 REGENTS 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.
|
||||
*
|
||||
* $Id: supp.c,v 1.5 1999/05/16 12:25:45 bodo Exp $
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "des_locl.h"
|
||||
|
||||
void des_cblock_print_file(const_des_cblock *cb, FILE *fp)
|
||||
{
|
||||
int i;
|
||||
const unsigned int *p = (const unsigned int *)cb;
|
||||
|
||||
fprintf(fp, " 0x { ");
|
||||
for (i = 0; i < 8; i++) {
|
||||
fprintf(fp, "%x", p[i]);
|
||||
if (i != 7) fprintf(fp, ", ");
|
||||
}
|
||||
fprintf(fp, " }");
|
||||
}
|
@ -1,167 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
|
||||
# des.pl tesing code
|
||||
|
||||
require 'des.pl';
|
||||
|
||||
$num_tests=34;
|
||||
@key_data=(
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
|
||||
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10,
|
||||
0x7C,0xA1,0x10,0x45,0x4A,0x1A,0x6E,0x57,
|
||||
0x01,0x31,0xD9,0x61,0x9D,0xC1,0x37,0x6E,
|
||||
0x07,0xA1,0x13,0x3E,0x4A,0x0B,0x26,0x86,
|
||||
0x38,0x49,0x67,0x4C,0x26,0x02,0x31,0x9E,
|
||||
0x04,0xB9,0x15,0xBA,0x43,0xFE,0xB5,0xB6,
|
||||
0x01,0x13,0xB9,0x70,0xFD,0x34,0xF2,0xCE,
|
||||
0x01,0x70,0xF1,0x75,0x46,0x8F,0xB5,0xE6,
|
||||
0x43,0x29,0x7F,0xAD,0x38,0xE3,0x73,0xFE,
|
||||
0x07,0xA7,0x13,0x70,0x45,0xDA,0x2A,0x16,
|
||||
0x04,0x68,0x91,0x04,0xC2,0xFD,0x3B,0x2F,
|
||||
0x37,0xD0,0x6B,0xB5,0x16,0xCB,0x75,0x46,
|
||||
0x1F,0x08,0x26,0x0D,0x1A,0xC2,0x46,0x5E,
|
||||
0x58,0x40,0x23,0x64,0x1A,0xBA,0x61,0x76,
|
||||
0x02,0x58,0x16,0x16,0x46,0x29,0xB0,0x07,
|
||||
0x49,0x79,0x3E,0xBC,0x79,0xB3,0x25,0x8F,
|
||||
0x4F,0xB0,0x5E,0x15,0x15,0xAB,0x73,0xA7,
|
||||
0x49,0xE9,0x5D,0x6D,0x4C,0xA2,0x29,0xBF,
|
||||
0x01,0x83,0x10,0xDC,0x40,0x9B,0x26,0xD6,
|
||||
0x1C,0x58,0x7F,0x1C,0x13,0x92,0x4F,0xEF,
|
||||
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
|
||||
0x1F,0x1F,0x1F,0x1F,0x0E,0x0E,0x0E,0x0E,
|
||||
0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1,0xFE,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
|
||||
0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10,
|
||||
);
|
||||
|
||||
@plain_data=(
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
|
||||
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
|
||||
0x01,0xA1,0xD6,0xD0,0x39,0x77,0x67,0x42,
|
||||
0x5C,0xD5,0x4C,0xA8,0x3D,0xEF,0x57,0xDA,
|
||||
0x02,0x48,0xD4,0x38,0x06,0xF6,0x71,0x72,
|
||||
0x51,0x45,0x4B,0x58,0x2D,0xDF,0x44,0x0A,
|
||||
0x42,0xFD,0x44,0x30,0x59,0x57,0x7F,0xA2,
|
||||
0x05,0x9B,0x5E,0x08,0x51,0xCF,0x14,0x3A,
|
||||
0x07,0x56,0xD8,0xE0,0x77,0x47,0x61,0xD2,
|
||||
0x76,0x25,0x14,0xB8,0x29,0xBF,0x48,0x6A,
|
||||
0x3B,0xDD,0x11,0x90,0x49,0x37,0x28,0x02,
|
||||
0x26,0x95,0x5F,0x68,0x35,0xAF,0x60,0x9A,
|
||||
0x16,0x4D,0x5E,0x40,0x4F,0x27,0x52,0x32,
|
||||
0x6B,0x05,0x6E,0x18,0x75,0x9F,0x5C,0xCA,
|
||||
0x00,0x4B,0xD6,0xEF,0x09,0x17,0x60,0x62,
|
||||
0x48,0x0D,0x39,0x00,0x6E,0xE7,0x62,0xF2,
|
||||
0x43,0x75,0x40,0xC8,0x69,0x8F,0x3C,0xFA,
|
||||
0x07,0x2D,0x43,0xA0,0x77,0x07,0x52,0x92,
|
||||
0x02,0xFE,0x55,0x77,0x81,0x17,0xF1,0x2A,
|
||||
0x1D,0x9D,0x5C,0x50,0x18,0xF7,0x28,0xC2,
|
||||
0x30,0x55,0x32,0x28,0x6D,0x6F,0x29,0x5A,
|
||||
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
|
||||
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
|
||||
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);
|
||||
|
||||
@cipher_data=(
|
||||
0x8C,0xA6,0x4D,0xE9,0xC1,0xB1,0x23,0xA7,
|
||||
0x73,0x59,0xB2,0x16,0x3E,0x4E,0xDC,0x58,
|
||||
0x95,0x8E,0x6E,0x62,0x7A,0x05,0x55,0x7B,
|
||||
0xF4,0x03,0x79,0xAB,0x9E,0x0E,0xC5,0x33,
|
||||
0x17,0x66,0x8D,0xFC,0x72,0x92,0x53,0x2D,
|
||||
0x8A,0x5A,0xE1,0xF8,0x1A,0xB8,0xF2,0xDD,
|
||||
0x8C,0xA6,0x4D,0xE9,0xC1,0xB1,0x23,0xA7,
|
||||
0xED,0x39,0xD9,0x50,0xFA,0x74,0xBC,0xC4,
|
||||
0x69,0x0F,0x5B,0x0D,0x9A,0x26,0x93,0x9B,
|
||||
0x7A,0x38,0x9D,0x10,0x35,0x4B,0xD2,0x71,
|
||||
0x86,0x8E,0xBB,0x51,0xCA,0xB4,0x59,0x9A,
|
||||
0x71,0x78,0x87,0x6E,0x01,0xF1,0x9B,0x2A,
|
||||
0xAF,0x37,0xFB,0x42,0x1F,0x8C,0x40,0x95,
|
||||
0x86,0xA5,0x60,0xF1,0x0E,0xC6,0xD8,0x5B,
|
||||
0x0C,0xD3,0xDA,0x02,0x00,0x21,0xDC,0x09,
|
||||
0xEA,0x67,0x6B,0x2C,0xB7,0xDB,0x2B,0x7A,
|
||||
0xDF,0xD6,0x4A,0x81,0x5C,0xAF,0x1A,0x0F,
|
||||
0x5C,0x51,0x3C,0x9C,0x48,0x86,0xC0,0x88,
|
||||
0x0A,0x2A,0xEE,0xAE,0x3F,0xF4,0xAB,0x77,
|
||||
0xEF,0x1B,0xF0,0x3E,0x5D,0xFA,0x57,0x5A,
|
||||
0x88,0xBF,0x0D,0xB6,0xD7,0x0D,0xEE,0x56,
|
||||
0xA1,0xF9,0x91,0x55,0x41,0x02,0x0B,0x56,
|
||||
0x6F,0xBF,0x1C,0xAF,0xCF,0xFD,0x05,0x56,
|
||||
0x2F,0x22,0xE4,0x9B,0xAB,0x7C,0xA1,0xAC,
|
||||
0x5A,0x6B,0x61,0x2C,0xC2,0x6C,0xCE,0x4A,
|
||||
0x5F,0x4C,0x03,0x8E,0xD1,0x2B,0x2E,0x41,
|
||||
0x63,0xFA,0xC0,0xD0,0x34,0xD9,0xF7,0x93,
|
||||
0x61,0x7B,0x3A,0x0C,0xE8,0xF0,0x71,0x00,
|
||||
0xDB,0x95,0x86,0x05,0xF8,0xC8,0xC6,0x06,
|
||||
0xED,0xBF,0xD1,0xC6,0x6C,0x29,0xCC,0xC7,
|
||||
0x35,0x55,0x50,0xB2,0x15,0x0E,0x24,0x51,
|
||||
0xCA,0xAA,0xAF,0x4D,0xEA,0xF1,0xDB,0xAE,
|
||||
0xD5,0xD4,0x4F,0xF7,0x20,0x68,0x3D,0x0D,
|
||||
0x2A,0x2B,0xB0,0x08,0xDF,0x97,0xC2,0xF2);
|
||||
|
||||
print "Doing ecb tests\n";
|
||||
for ($i=0; $i<$num_tests; $i++)
|
||||
{
|
||||
printf "Doing test $i\n";
|
||||
$key =pack("C8",splice(@key_data ,0,8));
|
||||
$data=pack("C8",splice(@plain_data ,0,8));
|
||||
$res =pack("C8",splice(@cipher_data,0,8));
|
||||
|
||||
@ks= &des_set_key($key);
|
||||
$out1= &des_ecb_encrypt(*ks,1,$data);
|
||||
$out2= &des_ecb_encrypt(*ks,0,$out1);
|
||||
$out3= &des_ecb_encrypt(*ks,0,$res);
|
||||
&eprint("encryption failure",$res,$out1)
|
||||
if ($out1 ne $res);
|
||||
&eprint("encryption/decryption failure",$data,$out2)
|
||||
if ($out2 ne $data);
|
||||
&eprint("decryption failure",$data,$out3)
|
||||
if ($data ne $out3);
|
||||
}
|
||||
print "Done\n";
|
||||
|
||||
print "doing speed test over 30 seconds\n";
|
||||
$SIG{'ALRM'}='done';
|
||||
sub done {$done=1;}
|
||||
$done=0;
|
||||
|
||||
$count=0;
|
||||
$d=pack("C8",0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef);
|
||||
@ks= &des_set_key($d);
|
||||
alarm(30);
|
||||
$start=(times)[0];
|
||||
while (!$done)
|
||||
{
|
||||
$count++;
|
||||
$d=&des_ecb_encrypt(*ks,1,$d);
|
||||
}
|
||||
$end=(times)[0];
|
||||
$t=$end-$start;
|
||||
printf "$count DESs in %.2f seconds is %.2f DESs/sec or %.2f bytes/sec\n",
|
||||
1.0*$t,1.0*$count/$t,$count*8.0/$t;
|
||||
|
||||
sub eprint
|
||||
{
|
||||
local($s,$c,$e)=@_;
|
||||
local(@k);
|
||||
|
||||
@k=unpack("C8",$c);
|
||||
printf "%02x%02x%02x%02x %02x%02x%02x%02x - ",unpack("C8",$c);
|
||||
printf "%02x%02x%02x%02x %02x%02x%02x%02x :",unpack("C8",$e);
|
||||
print " $s\n";
|
||||
}
|
@ -1,119 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/dh/Makefile
|
||||
#
|
||||
|
||||
DIR= dh
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST= dhtest.c
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
|
||||
LIBOBJ= dh_gen.o dh_key.o dh_lib.o dh_check.o dh_err.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= dh.h
|
||||
HEADER= $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
dh_check.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dh_check.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dh_check.o: ../../include/openssl/dh.h ../../include/openssl/e_os.h
|
||||
dh_check.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
dh_check.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dh_check.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
dh_check.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dh_check.o: ../cryptlib.h
|
||||
dh_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dh_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
|
||||
dh_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dh_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dh_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dh_err.o: ../../include/openssl/symhacks.h
|
||||
dh_gen.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dh_gen.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dh_gen.o: ../../include/openssl/dh.h ../../include/openssl/e_os.h
|
||||
dh_gen.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
dh_gen.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dh_gen.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
dh_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dh_gen.o: ../cryptlib.h
|
||||
dh_key.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dh_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dh_key.o: ../../include/openssl/dh.h ../../include/openssl/e_os.h
|
||||
dh_key.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
dh_key.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dh_key.o: ../../include/openssl/opensslv.h ../../include/openssl/rand.h
|
||||
dh_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dh_key.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
dh_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dh_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dh_lib.o: ../../include/openssl/dh.h ../../include/openssl/e_os.h
|
||||
dh_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
dh_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dh_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
dh_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dh_lib.o: ../cryptlib.h
|
@ -1,154 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/dsa/Makefile
|
||||
#
|
||||
|
||||
DIR= dsa
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=dsatest.c
|
||||
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
|
||||
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
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= dsa.h
|
||||
HEADER= $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
dsa_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/asn1_mac.h
|
||||
dsa_asn1.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dsa_asn1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
dsa_asn1.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dsa_asn1.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dsa_asn1.o: ../../include/openssl/opensslconf.h
|
||||
dsa_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
dsa_asn1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dsa_asn1.o: ../cryptlib.h
|
||||
dsa_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
|
||||
dsa_err.o: ../../include/openssl/dsa.h ../../include/openssl/err.h
|
||||
dsa_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dsa_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
dsa_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
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/dh.h ../../include/openssl/dsa.h
|
||||
dsa_gen.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dsa_gen.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dsa_gen.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.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_key.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dsa_key.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
dsa_key.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dsa_key.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dsa_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dsa_key.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
dsa_key.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
dsa_key.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
dsa_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
dsa_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
dsa_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
|
||||
dsa_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os.h
|
||||
dsa_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
dsa_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dsa_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
dsa_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dsa_lib.o: ../cryptlib.h
|
||||
dsa_ossl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
dsa_ossl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
dsa_ossl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
|
||||
dsa_ossl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os.h
|
||||
dsa_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
dsa_ossl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dsa_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/rand.h
|
||||
dsa_ossl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dsa_ossl.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
dsa_sign.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
dsa_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
dsa_sign.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
|
||||
dsa_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os.h
|
||||
dsa_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
dsa_sign.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/rand.h
|
||||
dsa_sign.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dsa_sign.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
dsa_vrf.o: ../../include/openssl/asn1.h ../../include/openssl/asn1_mac.h
|
||||
dsa_vrf.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_vrf.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dsa_vrf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
dsa_vrf.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dsa_vrf.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dsa_vrf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.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
|
@ -1,141 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/dso/Makefile
|
||||
#
|
||||
|
||||
DIR= dso
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= dso_dl.c dso_dlfcn.c dso_err.c dso_lib.c dso_null.c \
|
||||
dso_openssl.c dso_win32.c dso_vms.c
|
||||
LIBOBJ= dso_dl.o dso_dlfcn.o dso_err.o dso_lib.o dso_null.o \
|
||||
dso_openssl.o dso_win32.o dso_vms.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= dso.h
|
||||
HEADER= $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
dso_dl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
dso_dl.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
|
||||
dso_dl.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dso_dl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dso_dl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dso_dl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dso_dl.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
dso_dlfcn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
dso_dlfcn.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
|
||||
dso_dlfcn.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dso_dlfcn.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dso_dlfcn.o: ../../include/openssl/opensslconf.h
|
||||
dso_dlfcn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
dso_dlfcn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dso_dlfcn.o: ../cryptlib.h
|
||||
dso_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
|
||||
dso_err.o: ../../include/openssl/dso.h ../../include/openssl/err.h
|
||||
dso_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslv.h
|
||||
dso_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dso_err.o: ../../include/openssl/symhacks.h
|
||||
dso_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
dso_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
|
||||
dso_lib.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dso_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dso_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dso_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dso_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
dso_null.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
dso_null.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
|
||||
dso_null.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dso_null.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dso_null.o: ../../include/openssl/opensslconf.h
|
||||
dso_null.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
dso_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dso_null.o: ../cryptlib.h
|
||||
dso_openssl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
dso_openssl.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
|
||||
dso_openssl.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dso_openssl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dso_openssl.o: ../../include/openssl/opensslconf.h
|
||||
dso_openssl.o: ../../include/openssl/opensslv.h
|
||||
dso_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dso_openssl.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
dso_vms.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
dso_vms.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
|
||||
dso_vms.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dso_vms.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dso_vms.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dso_vms.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dso_vms.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
dso_win32.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
dso_win32.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
|
||||
dso_win32.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
dso_win32.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dso_win32.o: ../../include/openssl/opensslconf.h
|
||||
dso_win32.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
dso_win32.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dso_win32.o: ../cryptlib.h
|
@ -1,116 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/err/Makefile
|
||||
#
|
||||
|
||||
DIR= err
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC=err.c err_all.c err_prn.c
|
||||
LIBOBJ=err.o err_all.o err_prn.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= err.h
|
||||
HEADER= $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
err.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
err.o: ../cryptlib.h
|
||||
err_all.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
err_all.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
err_all.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
err_all.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
err_all.o: ../../include/openssl/des.h ../../include/openssl/dh.h
|
||||
err_all.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
|
||||
err_all.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
err_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
err_all.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
err_all.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
err_all.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
|
||||
err_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
err_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.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/rc2.h ../../include/openssl/rc4.h
|
||||
err_all.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.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/x509.h
|
||||
err_all.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
|
||||
err_prn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
err_prn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||
err_prn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
err_prn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
err_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||
err_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
err_prn.o: ../cryptlib.h
|
@ -1,917 +0,0 @@
|
||||
#
|
||||
# SSLeay/crypto/evp/Makefile
|
||||
#
|
||||
|
||||
DIR= evp
|
||||
TOP= ../..
|
||||
CC= cc
|
||||
INCLUDES= -I.. -I../../include
|
||||
CFLAG=-g
|
||||
INSTALL_PREFIX=
|
||||
OPENSSLDIR= /usr/local/ssl
|
||||
INSTALLTOP=/usr/local/ssl
|
||||
MAKE= make -f Makefile.ssl
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP)
|
||||
MAKEFILE= Makefile.ssl
|
||||
AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
TEST=
|
||||
APPS=
|
||||
|
||||
LIB=$(TOP)/libcrypto.a
|
||||
LIBSRC= encode.c digest.c evp_enc.c evp_key.c \
|
||||
e_des.c e_bf.c e_idea.c e_des3.c \
|
||||
e_rc4.c names.c \
|
||||
e_xcbc_d.c e_rc2.c e_cast.c e_rc5.c \
|
||||
m_null.c m_md2.c m_md4.c m_md5.c m_sha.c m_sha1.c \
|
||||
m_dss.c m_dss1.c m_mdc2.c m_ripemd.c \
|
||||
p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c \
|
||||
bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c \
|
||||
c_all.c c_allc.c c_alld.c evp_lib.c bio_ok.c \
|
||||
evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c
|
||||
|
||||
LIBOBJ= encode.o digest.o evp_enc.o evp_key.o \
|
||||
e_des.o e_bf.o e_idea.o e_des3.o \
|
||||
e_rc4.o names.o \
|
||||
e_xcbc_d.o e_rc2.o e_cast.o e_rc5.o \
|
||||
m_null.o m_md2.o m_md4.o m_md5.o m_sha.o m_sha1.o \
|
||||
m_dss.o m_dss1.o m_mdc2.o m_ripemd.o \
|
||||
p_open.o p_seal.o p_sign.o p_verify.o p_lib.o p_enc.o p_dec.o \
|
||||
bio_md.o bio_b64.o bio_enc.o evp_err.o e_null.o \
|
||||
c_all.o c_allc.o c_alld.o evp_lib.o bio_ok.o \
|
||||
evp_pkey.o evp_pbe.o p5_crpt.o p5_crpt2.o
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
EXHEADER= evp.h
|
||||
HEADER= $(EXHEADER)
|
||||
|
||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||
|
||||
top:
|
||||
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
@echo You may get an error following this line. Please ignore.
|
||||
- $(RANLIB) $(LIB)
|
||||
@touch lib
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||
|
||||
links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@for i in $(EXHEADER) ; \
|
||||
do \
|
||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
|
||||
tags:
|
||||
ctags $(SRC)
|
||||
|
||||
tests:
|
||||
|
||||
lint:
|
||||
lint -DLINT $(INCLUDES) $(SRC)>fluff
|
||||
|
||||
depend:
|
||||
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(LIBSRC)
|
||||
|
||||
dclean:
|
||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||
mv -f Makefile.new $(MAKEFILE)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
bio_b64.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
bio_b64.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
bio_b64.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
bio_b64.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
bio_b64.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
bio_b64.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bio_b64.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
bio_b64.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
bio_b64.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
bio_b64.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
bio_b64.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
bio_b64.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
bio_b64.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
bio_b64.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
bio_enc.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
bio_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
bio_enc.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
bio_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
bio_enc.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
bio_enc.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bio_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
bio_enc.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
bio_enc.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
bio_enc.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
bio_enc.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
bio_enc.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
bio_enc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
bio_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
bio_md.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
bio_md.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
bio_md.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
bio_md.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
bio_md.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
bio_md.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bio_md.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
bio_md.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
bio_md.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
bio_md.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
bio_md.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
bio_md.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
bio_md.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
bio_md.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
bio_ok.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
bio_ok.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
bio_ok.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
bio_ok.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
bio_ok.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
bio_ok.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
bio_ok.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
bio_ok.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
bio_ok.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
bio_ok.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rand.h ../../include/openssl/rc2.h
|
||||
bio_ok.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
bio_ok.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
|
||||
bio_ok.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
bio_ok.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
bio_ok.o: ../cryptlib.h
|
||||
c_all.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
c_all.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
c_all.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
c_all.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
c_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
c_all.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
c_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
c_all.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
c_all.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
c_all.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
c_all.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
c_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
c_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
c_all.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
c_allc.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
c_allc.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
c_allc.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
c_allc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
c_allc.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
c_allc.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
c_allc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
c_allc.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
c_allc.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
c_allc.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs12.h ../../include/openssl/pkcs7.h
|
||||
c_allc.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
c_allc.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
c_allc.o: ../../include/openssl/rsa.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_alld.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
c_alld.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
c_alld.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
c_alld.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
c_alld.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
c_alld.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
c_alld.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
c_alld.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
c_alld.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
c_alld.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs12.h ../../include/openssl/pkcs7.h
|
||||
c_alld.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
c_alld.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
c_alld.o: ../../include/openssl/rsa.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
|
||||
digest.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
digest.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
digest.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
digest.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
digest.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
digest.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
digest.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
digest.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
digest.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
digest.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
digest.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
digest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
digest.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
e_bf.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_bf.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
e_bf.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_bf.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_bf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
e_bf.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
e_bf.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_bf.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_bf.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
e_bf.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
e_bf.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
e_bf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
e_bf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
e_bf.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
|
||||
e_cast.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_cast.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
e_cast.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_cast.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_cast.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
e_cast.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
e_cast.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_cast.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_cast.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
e_cast.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
e_cast.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
e_cast.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
e_cast.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
e_cast.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
|
||||
e_des.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_des.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
e_des.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_des.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_des.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
e_des.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
e_des.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_des.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_des.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
e_des.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
e_des.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
e_des.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
e_des.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
e_des.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
|
||||
e_des3.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_des3.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
e_des3.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_des3.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_des3.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
e_des3.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
e_des3.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_des3.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_des3.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
e_des3.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
e_des3.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
e_des3.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
e_des3.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
e_des3.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
|
||||
e_idea.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_idea.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
e_idea.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_idea.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_idea.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
e_idea.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
e_idea.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_idea.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_idea.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
e_idea.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
e_idea.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
e_idea.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
e_idea.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
e_idea.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
|
||||
e_null.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_null.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
e_null.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_null.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_null.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
e_null.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
e_null.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_null.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_null.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
e_null.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
e_null.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
e_null.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
e_null.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
e_null.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
e_rc2.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_rc2.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
e_rc2.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_rc2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_rc2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
e_rc2.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
e_rc2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_rc2.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_rc2.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
e_rc2.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
e_rc2.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
e_rc2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
e_rc2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
e_rc2.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
|
||||
e_rc4.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_rc4.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
e_rc4.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_rc4.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_rc4.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
e_rc4.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
e_rc4.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_rc4.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_rc4.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
e_rc4.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
e_rc4.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
e_rc4.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
e_rc4.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
e_rc4.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
e_rc5.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_rc5.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
e_rc5.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_rc5.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_rc5.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
e_rc5.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
e_rc5.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_rc5.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_rc5.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
e_rc5.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
|
||||
e_rc5.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
e_rc5.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
e_rc5.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
e_rc5.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
e_rc5.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
e_rc5.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
e_rc5.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
|
||||
e_xcbc_d.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
e_xcbc_d.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
e_xcbc_d.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
e_xcbc_d.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
e_xcbc_d.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
e_xcbc_d.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
e_xcbc_d.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
e_xcbc_d.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
e_xcbc_d.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
e_xcbc_d.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h
|
||||
e_xcbc_d.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
e_xcbc_d.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
|
||||
e_xcbc_d.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
e_xcbc_d.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
e_xcbc_d.o: ../cryptlib.h
|
||||
encode.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
encode.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
encode.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
encode.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
encode.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
encode.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
encode.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
encode.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
encode.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
encode.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
encode.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
encode.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
encode.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
encode.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
evp_enc.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
evp_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
evp_enc.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
evp_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
evp_enc.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
evp_enc.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
evp_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
evp_enc.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
evp_enc.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
evp_enc.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
evp_enc.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
evp_enc.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
evp_enc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
evp_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
|
||||
evp_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
evp_err.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
evp_err.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
|
||||
evp_err.o: ../../include/openssl/des.h ../../include/openssl/dh.h
|
||||
evp_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
evp_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
evp_err.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
evp_err.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
evp_err.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
evp_err.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
evp_err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
evp_err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
evp_err.o: ../../include/openssl/symhacks.h
|
||||
evp_key.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
evp_key.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
evp_key.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
evp_key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
evp_key.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
evp_key.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
evp_key.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
evp_key.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
evp_key.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
evp_key.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
evp_key.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
evp_key.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.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/x509.h ../../include/openssl/x509_vfy.h
|
||||
evp_key.o: ../cryptlib.h
|
||||
evp_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
evp_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
evp_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
evp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
evp_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
evp_lib.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
evp_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
evp_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
evp_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
evp_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/rc2.h ../../include/openssl/rc4.h
|
||||
evp_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
evp_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
evp_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
evp_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||
evp_pbe.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
evp_pbe.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
evp_pbe.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
evp_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
evp_pbe.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
evp_pbe.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
evp_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
evp_pbe.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
evp_pbe.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
evp_pbe.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
evp_pbe.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
evp_pbe.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.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_pkey.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
evp_pkey.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
evp_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
evp_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
evp_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
evp_pkey.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
evp_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
evp_pkey.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
evp_pkey.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
evp_pkey.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/opensslv.h ../../include/openssl/pkcs7.h
|
||||
evp_pkey.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
|
||||
evp_pkey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
evp_pkey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
|
||||
evp_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
evp_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
evp_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
evp_pkey.o: ../cryptlib.h
|
||||
m_dss.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_dss.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
m_dss.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
m_dss.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
m_dss.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
m_dss.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
m_dss.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_dss.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
m_dss.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
m_dss.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
m_dss.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
m_dss.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.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_dss1.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_dss1.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
m_dss1.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
m_dss1.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
m_dss1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
m_dss1.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
m_dss1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_dss1.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
m_dss1.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
m_dss1.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
m_dss1.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
m_dss1.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.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_md2.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_md2.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
m_md2.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
m_md2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
m_md2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
m_md2.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
m_md2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_md2.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
m_md2.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
m_md2.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
m_md2.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
m_md2.o: ../../include/openssl/ripemd.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
|
||||
m_md4.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_md4.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
m_md4.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
m_md4.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
m_md4.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
m_md4.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
m_md4.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_md4.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
m_md4.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
m_md4.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
m_md4.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
m_md4.o: ../../include/openssl/ripemd.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
|
||||
m_md5.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_md5.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
m_md5.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
m_md5.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
m_md5.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
m_md5.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
m_md5.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_md5.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
m_md5.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
m_md5.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
m_md5.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
m_md5.o: ../../include/openssl/ripemd.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
|
||||
m_mdc2.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_mdc2.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
m_mdc2.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
m_mdc2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
m_mdc2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
m_mdc2.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
m_mdc2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_mdc2.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
m_mdc2.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
m_mdc2.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
|
||||
m_mdc2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
m_mdc2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
m_mdc2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
|
||||
m_mdc2.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
m_mdc2.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
|
||||
m_mdc2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
m_mdc2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
m_mdc2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
m_mdc2.o: ../cryptlib.h
|
||||
m_null.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_null.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
m_null.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
m_null.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
m_null.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
m_null.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
m_null.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_null.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
m_null.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
m_null.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
m_null.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
m_null.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.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_ripemd.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_ripemd.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
m_ripemd.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
m_ripemd.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
m_ripemd.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
m_ripemd.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
m_ripemd.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_ripemd.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
m_ripemd.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
m_ripemd.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/opensslv.h ../../include/openssl/pkcs7.h
|
||||
m_ripemd.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
m_ripemd.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
m_ripemd.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
m_ripemd.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
m_ripemd.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
m_ripemd.o: ../../include/openssl/x509_vfy.h ../cryptlib.h
|
||||
m_sha.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_sha.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
m_sha.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
m_sha.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
m_sha.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
m_sha.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
m_sha.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_sha.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
m_sha.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
m_sha.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
m_sha.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
m_sha.o: ../../include/openssl/ripemd.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_sha1.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
m_sha1.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
m_sha1.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
m_sha1.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
m_sha1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
m_sha1.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
m_sha1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
m_sha1.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
m_sha1.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
m_sha1.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
m_sha1.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
m_sha1.o: ../../include/openssl/ripemd.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
|
||||
names.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
names.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
names.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
names.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
names.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
names.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
names.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
names.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
names.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
names.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
names.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
names.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.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
|
||||
p5_crpt.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p5_crpt.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
p5_crpt.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
p5_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
p5_crpt.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
p5_crpt.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
p5_crpt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p5_crpt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
p5_crpt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
p5_crpt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
p5_crpt.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
p5_crpt.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.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_crpt2.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p5_crpt2.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
p5_crpt2.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
p5_crpt2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
p5_crpt2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
p5_crpt2.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
p5_crpt2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p5_crpt2.o: ../../include/openssl/hmac.h ../../include/openssl/idea.h
|
||||
p5_crpt2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
|
||||
p5_crpt2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
|
||||
p5_crpt2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
|
||||
p5_crpt2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
p5_crpt2.o: ../../include/openssl/opensslv.h ../../include/openssl/pkcs7.h
|
||||
p5_crpt2.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
p5_crpt2.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
p5_crpt2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
p5_crpt2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p5_crpt2.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p5_crpt2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h
|
||||
p_dec.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p_dec.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
p_dec.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
p_dec.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
p_dec.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
p_dec.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
p_dec.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_dec.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
p_dec.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
p_dec.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rand.h
|
||||
p_dec.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
p_dec.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.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_enc.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
p_enc.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
p_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
p_enc.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
p_enc.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
p_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_enc.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
p_enc.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
p_enc.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rand.h
|
||||
p_enc.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
p_enc.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.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_lib.o: ../../include/openssl/asn1.h ../../include/openssl/asn1_mac.h
|
||||
p_lib.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
|
||||
p_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
p_lib.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
|
||||
p_lib.o: ../../include/openssl/des.h ../../include/openssl/dh.h
|
||||
p_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os.h
|
||||
p_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
p_lib.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
|
||||
p_lib.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
|
||||
p_lib.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
|
||||
p_lib.o: ../../include/openssl/mdc2.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/pkcs7.h
|
||||
p_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
p_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.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_open.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p_open.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
p_open.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
p_open.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
p_open.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
p_open.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
p_open.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_open.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
p_open.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
p_open.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
p_open.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
p_open.o: ../../include/openssl/ripemd.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_seal.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p_seal.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
p_seal.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
p_seal.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
p_seal.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
p_seal.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
p_seal.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_seal.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
p_seal.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
p_seal.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rand.h
|
||||
p_seal.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
p_seal.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.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_sign.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p_sign.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
p_sign.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
p_sign.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
p_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
p_sign.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
p_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_sign.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
p_sign.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
p_sign.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/pkcs7.h ../../include/openssl/rc2.h
|
||||
p_sign.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
p_sign.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.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_verify.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
p_verify.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
p_verify.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
p_verify.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
p_verify.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
p_verify.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||
p_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
p_verify.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
p_verify.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
p_verify.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.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/opensslv.h ../../include/openssl/pkcs7.h
|
||||
p_verify.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
p_verify.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
p_verify.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
p_verify.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p_verify.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p_verify.o: ../../include/openssl/x509_vfy.h ../cryptlib.h
|
@ -1,151 +0,0 @@
|
||||
/* crypto/evp/e_cbc_3d.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 NO_DES
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/objects.h>
|
||||
|
||||
static void des_cbc_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv,int enc);
|
||||
static void des_cbc_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv,int enc);
|
||||
static void des_cbc_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl);
|
||||
static EVP_CIPHER d_cbc_ede_cipher2=
|
||||
{
|
||||
NID_des_ede_cbc,
|
||||
8,16,8,
|
||||
des_cbc_ede_init_key,
|
||||
des_cbc_ede_cipher,
|
||||
NULL,
|
||||
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
|
||||
sizeof((((EVP_CIPHER_CTX *)NULL)->c.des_ede)),
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
};
|
||||
|
||||
static EVP_CIPHER d_cbc_ede_cipher3=
|
||||
{
|
||||
NID_des_ede3_cbc,
|
||||
8,24,8,
|
||||
des_cbc_ede3_init_key,
|
||||
des_cbc_ede_cipher,
|
||||
NULL,
|
||||
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
|
||||
sizeof((((EVP_CIPHER_CTX *)NULL)->c.des_ede)),
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
};
|
||||
|
||||
EVP_CIPHER *EVP_des_ede_cbc(void)
|
||||
{
|
||||
return(&d_cbc_ede_cipher2);
|
||||
}
|
||||
|
||||
EVP_CIPHER *EVP_des_ede3_cbc(void)
|
||||
{
|
||||
return(&d_cbc_ede_cipher3);
|
||||
}
|
||||
|
||||
static void des_cbc_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv, int enc)
|
||||
{
|
||||
des_cblock *deskey = (des_cblock *)key;
|
||||
|
||||
if (iv != NULL)
|
||||
memcpy(&(ctx->oiv[0]),iv,8);
|
||||
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
|
||||
|
||||
if (deskey != NULL)
|
||||
{
|
||||
des_set_key_unchecked(&deskey[0],ctx->c.des_ede.ks1);
|
||||
des_set_key_unchecked(&deskey[1],ctx->c.des_ede.ks2);
|
||||
memcpy( (char *)ctx->c.des_ede.ks3,
|
||||
(char *)ctx->c.des_ede.ks1,
|
||||
sizeof(ctx->c.des_ede.ks1));
|
||||
}
|
||||
}
|
||||
|
||||
static void des_cbc_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv, int enc)
|
||||
{
|
||||
des_cblock *deskey = (des_cblock *)key;
|
||||
|
||||
if (iv != NULL)
|
||||
memcpy(&(ctx->oiv[0]),iv,8);
|
||||
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
|
||||
|
||||
if (deskey != NULL)
|
||||
{
|
||||
des_set_key_unchecked(&deskey[0],ctx->c.des_ede.ks1);
|
||||
des_set_key_unchecked(&deskey[1],ctx->c.des_ede.ks2);
|
||||
des_set_key_unchecked(&deskey[2],ctx->c.des_ede.ks3);
|
||||
}
|
||||
}
|
||||
|
||||
static void des_cbc_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl)
|
||||
{
|
||||
des_ede3_cbc_encrypt(in,out,inl, ctx->c.des_ede.ks1,
|
||||
ctx->c.des_ede.ks2,ctx->c.des_ede.ks3,
|
||||
(des_cblock *) &(ctx->iv[0]),
|
||||
ctx->encrypt);
|
||||
}
|
||||
#endif
|
@ -1,106 +0,0 @@
|
||||
/* crypto/evp/e_cbc_bf.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 NO_BF
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/objects.h>
|
||||
|
||||
static void bf_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv,int enc);
|
||||
static void bf_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl);
|
||||
static EVP_CIPHER bfish_cbc_cipher=
|
||||
{
|
||||
NID_bf_cbc,
|
||||
8,EVP_BLOWFISH_KEY_SIZE,8,
|
||||
bf_cbc_init_key,
|
||||
bf_cbc_cipher,
|
||||
NULL,
|
||||
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
|
||||
sizeof((((EVP_CIPHER_CTX *)NULL)->c.bf_ks)),
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
};
|
||||
|
||||
EVP_CIPHER *EVP_bf_cbc(void)
|
||||
{
|
||||
return(&bfish_cbc_cipher);
|
||||
}
|
||||
|
||||
static void bf_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv, int enc)
|
||||
{
|
||||
if (iv != NULL)
|
||||
memcpy(&(ctx->oiv[0]),iv,8);
|
||||
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
|
||||
if (key != NULL)
|
||||
BF_set_key(&(ctx->c.bf_ks),EVP_BLOWFISH_KEY_SIZE,key);
|
||||
}
|
||||
|
||||
static void bf_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl)
|
||||
{
|
||||
BF_cbc_encrypt(
|
||||
in,out,(long)inl,
|
||||
&(ctx->c.bf_ks),&(ctx->iv[0]),
|
||||
ctx->encrypt);
|
||||
}
|
||||
|
||||
#endif
|
@ -1,107 +0,0 @@
|
||||
/* crypto/evp/e_cbc_c.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 NO_CAST
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/objects.h>
|
||||
|
||||
static void cast_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv,int enc);
|
||||
static void cast_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl);
|
||||
static EVP_CIPHER cast5_cbc_cipher=
|
||||
{
|
||||
NID_cast5_cbc,
|
||||
8,EVP_CAST5_KEY_SIZE,8,
|
||||
cast_cbc_init_key,
|
||||
cast_cbc_cipher,
|
||||
NULL,
|
||||
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
|
||||
sizeof((((EVP_CIPHER_CTX *)NULL)->c.cast_ks)),
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
};
|
||||
|
||||
EVP_CIPHER *EVP_cast5_cbc(void)
|
||||
{
|
||||
return(&cast5_cbc_cipher);
|
||||
}
|
||||
|
||||
static void cast_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv, int enc)
|
||||
{
|
||||
if (iv != NULL)
|
||||
memcpy(&(ctx->oiv[0]),iv,8);
|
||||
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
|
||||
if (key != NULL)
|
||||
CAST_set_key(&(ctx->c.cast_ks),EVP_CAST5_KEY_SIZE,key);
|
||||
}
|
||||
|
||||
static void cast_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl)
|
||||
{
|
||||
CAST_cbc_encrypt(
|
||||
in,out,(long)inl,
|
||||
&(ctx->c.cast_ks),&(ctx->iv[0]),
|
||||
ctx->encrypt);
|
||||
}
|
||||
|
||||
#endif
|
@ -1,106 +0,0 @@
|
||||
/* crypto/evp/e_cbc_d.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 NO_DES
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/objects.h>
|
||||
|
||||
static void des_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv,int enc);
|
||||
static void des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl);
|
||||
static EVP_CIPHER d_cbc_cipher=
|
||||
{
|
||||
NID_des_cbc,
|
||||
8,8,8,
|
||||
des_cbc_init_key,
|
||||
des_cbc_cipher,
|
||||
NULL,
|
||||
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
|
||||
sizeof((((EVP_CIPHER_CTX *)NULL)->c.des_ks)),
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
};
|
||||
|
||||
EVP_CIPHER *EVP_des_cbc(void)
|
||||
{
|
||||
return(&d_cbc_cipher);
|
||||
}
|
||||
|
||||
static void des_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv, int enc)
|
||||
{
|
||||
des_cblock *deskey = (des_cblock *)key;
|
||||
|
||||
if (iv != NULL)
|
||||
memcpy(&(ctx->oiv[0]),iv,8);
|
||||
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
|
||||
if (deskey != NULL)
|
||||
des_set_key_unchecked(deskey,ctx->c.des_ks);
|
||||
}
|
||||
|
||||
static void des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl)
|
||||
{
|
||||
des_ncbc_encrypt(in,out,inl,ctx->c.des_ks,
|
||||
(des_cblock *)&(ctx->iv[0]),
|
||||
ctx->encrypt);
|
||||
}
|
||||
#endif
|
@ -1,119 +0,0 @@
|
||||
/* crypto/evp/e_cbc_i.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 NO_IDEA
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/objects.h>
|
||||
|
||||
static void idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv,int enc);
|
||||
static void idea_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl);
|
||||
static EVP_CIPHER i_cbc_cipher=
|
||||
{
|
||||
NID_idea_cbc,
|
||||
8,16,8,
|
||||
idea_cbc_init_key,
|
||||
idea_cbc_cipher,
|
||||
NULL,
|
||||
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
|
||||
sizeof((((EVP_CIPHER_CTX *)NULL)->c.idea_ks)),
|
||||
EVP_CIPHER_set_asn1_iv,
|
||||
EVP_CIPHER_get_asn1_iv,
|
||||
};
|
||||
|
||||
EVP_CIPHER *EVP_idea_cbc(void)
|
||||
{
|
||||
return(&i_cbc_cipher);
|
||||
}
|
||||
|
||||
static void idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv, int enc)
|
||||
{
|
||||
if (iv != NULL)
|
||||
memcpy(&(ctx->oiv[0]),iv,8);
|
||||
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
|
||||
if (key != NULL)
|
||||
{
|
||||
if (enc)
|
||||
idea_set_encrypt_key(key,&(ctx->c.idea_ks));
|
||||
else
|
||||
{
|
||||
IDEA_KEY_SCHEDULE tmp;
|
||||
|
||||
idea_set_encrypt_key(key,&tmp);
|
||||
idea_set_decrypt_key(&tmp,&(ctx->c.idea_ks));
|
||||
memset((unsigned char *)&tmp,0,
|
||||
sizeof(IDEA_KEY_SCHEDULE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void idea_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl)
|
||||
{
|
||||
idea_cbc_encrypt(
|
||||
in,out,(long)inl,
|
||||
&(ctx->c.idea_ks),&(ctx->iv[0]),
|
||||
ctx->encrypt);
|
||||
}
|
||||
|
||||
#endif
|
@ -1,216 +0,0 @@
|
||||
/* crypto/evp/e_cbc_r2.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 NO_RC2
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/objects.h>
|
||||
|
||||
static void rc2_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv,int enc);
|
||||
static void rc2_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl);
|
||||
static int rc2_meth_to_magic(const EVP_CIPHER *e);
|
||||
static EVP_CIPHER *rc2_magic_to_meth(int i);
|
||||
static int rc2_set_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
|
||||
static int rc2_get_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
|
||||
|
||||
#define RC2_40_MAGIC 0xa0
|
||||
#define RC2_64_MAGIC 0x78
|
||||
#define RC2_128_MAGIC 0x3a
|
||||
|
||||
static EVP_CIPHER r2_cbc_cipher=
|
||||
{
|
||||
NID_rc2_cbc,
|
||||
8,EVP_RC2_KEY_SIZE,8,
|
||||
rc2_cbc_init_key,
|
||||
rc2_cbc_cipher,
|
||||
NULL,
|
||||
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
|
||||
sizeof((((EVP_CIPHER_CTX *)NULL)->c.rc2_ks)),
|
||||
rc2_set_asn1_type_and_iv,
|
||||
rc2_get_asn1_type_and_iv,
|
||||
};
|
||||
|
||||
static EVP_CIPHER r2_64_cbc_cipher=
|
||||
{
|
||||
NID_rc2_64_cbc,
|
||||
8,8 /* 64 bit */,8,
|
||||
rc2_cbc_init_key,
|
||||
rc2_cbc_cipher,
|
||||
NULL,
|
||||
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
|
||||
sizeof((((EVP_CIPHER_CTX *)NULL)->c.rc2_ks)),
|
||||
rc2_set_asn1_type_and_iv,
|
||||
rc2_get_asn1_type_and_iv,
|
||||
};
|
||||
|
||||
static EVP_CIPHER r2_40_cbc_cipher=
|
||||
{
|
||||
NID_rc2_40_cbc,
|
||||
8,5 /* 40 bit */,8,
|
||||
rc2_cbc_init_key,
|
||||
rc2_cbc_cipher,
|
||||
NULL,
|
||||
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
|
||||
sizeof((((EVP_CIPHER_CTX *)NULL)->c.rc2_ks)),
|
||||
rc2_set_asn1_type_and_iv,
|
||||
rc2_get_asn1_type_and_iv,
|
||||
};
|
||||
|
||||
EVP_CIPHER *EVP_rc2_cbc(void)
|
||||
{
|
||||
return(&r2_cbc_cipher);
|
||||
}
|
||||
|
||||
EVP_CIPHER *EVP_rc2_64_cbc(void)
|
||||
{
|
||||
return(&r2_64_cbc_cipher);
|
||||
}
|
||||
|
||||
EVP_CIPHER *EVP_rc2_40_cbc(void)
|
||||
{
|
||||
return(&r2_40_cbc_cipher);
|
||||
}
|
||||
|
||||
static void rc2_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv, int enc)
|
||||
{
|
||||
if (iv != NULL)
|
||||
memcpy(&(ctx->oiv[0]),iv,8);
|
||||
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
|
||||
if (key != NULL)
|
||||
RC2_set_key(&(ctx->c.rc2_ks),EVP_CIPHER_CTX_key_length(ctx),
|
||||
key,EVP_CIPHER_CTX_key_length(ctx)*8);
|
||||
}
|
||||
|
||||
static void rc2_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl)
|
||||
{
|
||||
RC2_cbc_encrypt(
|
||||
in,out,(long)inl,
|
||||
&(ctx->c.rc2_ks),&(ctx->iv[0]),
|
||||
ctx->encrypt);
|
||||
}
|
||||
|
||||
static int rc2_meth_to_magic(const EVP_CIPHER *e)
|
||||
{
|
||||
int i;
|
||||
|
||||
i=EVP_CIPHER_key_length(e);
|
||||
if (i == 16) return(RC2_128_MAGIC);
|
||||
else if (i == 8) return(RC2_64_MAGIC);
|
||||
else if (i == 5) return(RC2_40_MAGIC);
|
||||
else return(0);
|
||||
}
|
||||
|
||||
static EVP_CIPHER *rc2_magic_to_meth(int i)
|
||||
{
|
||||
if (i == RC2_128_MAGIC) return(EVP_rc2_cbc());
|
||||
else if (i == RC2_64_MAGIC) return(EVP_rc2_64_cbc());
|
||||
else if (i == RC2_40_MAGIC) return(EVP_rc2_40_cbc());
|
||||
else
|
||||
{
|
||||
EVPerr(EVP_F_RC2_MAGIC_TO_METH,EVP_R_UNSUPPORTED_KEY_SIZE);
|
||||
return(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static int rc2_get_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
|
||||
{
|
||||
long num=0;
|
||||
int i=0,l;
|
||||
EVP_CIPHER *e;
|
||||
|
||||
if (type != NULL)
|
||||
{
|
||||
l=EVP_CIPHER_CTX_iv_length(c);
|
||||
i=ASN1_TYPE_get_int_octetstring(type,&num,c->oiv,l);
|
||||
if (i != l)
|
||||
return(-1);
|
||||
else if (i > 0)
|
||||
memcpy(c->iv,c->oiv,l);
|
||||
e=rc2_magic_to_meth((int)num);
|
||||
if (e == NULL)
|
||||
return(-1);
|
||||
if (e != EVP_CIPHER_CTX_cipher(c))
|
||||
{
|
||||
EVP_CIPHER_CTX_cipher(c)=e;
|
||||
rc2_cbc_init_key(c,NULL,NULL,1);
|
||||
}
|
||||
}
|
||||
return(i);
|
||||
}
|
||||
|
||||
static int rc2_set_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
|
||||
{
|
||||
long num;
|
||||
int i=0,j;
|
||||
|
||||
if (type != NULL)
|
||||
{
|
||||
num=rc2_meth_to_magic(EVP_CIPHER_CTX_cipher(c));
|
||||
j=EVP_CIPHER_CTX_iv_length(c);
|
||||
i=ASN1_TYPE_set_int_octetstring(type,num,c->oiv,j);
|
||||
}
|
||||
return(i);
|
||||
}
|
||||
|
||||
#endif
|
@ -1,108 +0,0 @@
|
||||
/* crypto/evp/e_cbc_r5.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 NO_RC5
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/objects.h>
|
||||
|
||||
static void r_32_12_16_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv,int enc);
|
||||
static void r_32_12_16_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl);
|
||||
static EVP_CIPHER rc5_32_12_16_cbc_cipher=
|
||||
{
|
||||
NID_rc5_cbc,
|
||||
8,EVP_RC5_32_12_16_KEY_SIZE,8,
|
||||
r_32_12_16_cbc_init_key,
|
||||
r_32_12_16_cbc_cipher,
|
||||
NULL,
|
||||
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
|
||||
sizeof((((EVP_CIPHER_CTX *)NULL)->c.rc5_ks)),
|
||||
NULL,
|
||||
NULL,
|
||||
};
|
||||
|
||||
EVP_CIPHER *EVP_rc5_32_12_16_cbc(void)
|
||||
{
|
||||
return(&rc5_32_12_16_cbc_cipher);
|
||||
}
|
||||
|
||||
static void r_32_12_16_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
|
||||
unsigned char *iv, int enc)
|
||||
{
|
||||
if (iv != NULL)
|
||||
memcpy(&(ctx->oiv[0]),iv,8);
|
||||
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
|
||||
if (key != NULL)
|
||||
RC5_32_set_key(&(ctx->c.rc5_ks),EVP_RC5_32_12_16_KEY_SIZE,
|
||||
key,RC5_12_ROUNDS);
|
||||
}
|
||||
|
||||
static void r_32_12_16_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
unsigned char *in, unsigned int inl)
|
||||
{
|
||||
RC5_32_cbc_encrypt(
|
||||
in,out,(long)inl,
|
||||
&(ctx->c.rc5_ks),&(ctx->iv[0]),
|
||||
ctx->encrypt);
|
||||
}
|
||||
|
||||
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user