Compare commits

..

360 Commits

Author SHA1 Message Date
Ralf S. Engelschall
8af354d449 Ops, interrupted commit. Fixed 1999-03-22 16:27:02 +00:00
Ralf S. Engelschall
36108adbb8 update list 1999-03-22 15:56:31 +00:00
Ralf S. Engelschall
f5904406d0 Merge ext-conf.txt and buffer.txt into a global openssl.txt because we
shouldn't again start with thousend little text files or we quickly come back
to the old SSLeay days ;-)
1999-03-22 15:55:01 +00:00
Ralf S. Engelschall
6e9f108dd7 Add two recently added functions 1999-03-22 15:53:08 +00:00
Ralf S. Engelschall
72e442a3a6 function names recently changed - consistency. 1999-03-22 15:50:34 +00:00
Ralf S. Engelschall
74355a3554 One more 0.9.2b 1999-03-22 15:44:10 +00:00
Ralf S. Engelschall
eee591a466 Final polishing for README file 1999-03-22 15:38:59 +00:00
Ralf S. Engelschall
738769ff43 Add latest changes to NEWS file 1999-03-22 15:38:12 +00:00
Ralf S. Engelschall
4109b97c4b Bring style of INSTALL* documents in sync with README file
and fix some inconsistencies.
1999-03-22 15:36:37 +00:00
Ralf S. Engelschall
e42263c226 Remove up_ver.pl call 1999-03-22 15:02:34 +00:00
Ralf S. Engelschall
8b8839ba88 up_ver.pl is now obsolete 1999-03-22 15:01:30 +00:00
Ralf S. Engelschall
4f0a2bce80 More 0.9.2 -> 0.9.2b 1999-03-22 14:57:24 +00:00
Ralf S. Engelschall
e98b5b58a0 Be consistent: 0.9.2b 1999-03-22 14:54:52 +00:00
Ralf S. Engelschall
d56128f014 Remove obsolete references to SSLeay and change default PLATFORM from
"FreeBSD" to the generic "dist" as it's done implicitly by "make dist".
1999-03-22 14:45:08 +00:00
Ralf S. Engelschall
5ea177cfbc Print a little bit more information 1999-03-22 14:38:33 +00:00
Ben Laurie
b4cadc6e13 Fix security hole. 1999-03-22 12:22:14 +00:00
Ralf S. Engelschall
0f423567a7 Add missing pipe char to "make dist" target.
Found by Richard Levitte <levitte@stacken.kth.se>
1999-03-20 13:49:32 +00:00
Ralf S. Engelschall
f4f2fe40e8 Remove confusing hint to non-existing file. Instead make it clear that one
shouldn't change it manually just here. The util/ssldir.pl script does more
and has to be used for this.  Pointed out by Jacques Supcik
<supcik@inf.ethz.ch>.
1999-03-20 13:17:22 +00:00
Ralf S. Engelschall
afb2306346 Some more source tree cleanups (removed obsolete files crypto/bf/asm/bf586.pl,
test/test.txt and crypto/sha/asm/f.s; changed permission on "config" script to
be executable) and a fix for the INSTALL document.

Submitted by: Ulf Moeller <ulf@fitug.de>
Reviewed by: Ralf S. Engelschall
1999-03-20 13:04:12 +00:00
Dr. Stephen Henson
e2e044faa1 Comment out the lines that generated by mk1mf.pl include three separate rules
that are equivalent to $(OUT_D). This was what was causing the 'too many rules'
warning under VC++.
1999-03-17 23:30:39 +00:00
Dr. Stephen Henson
0b415fb0ed Using int for the digest length in EVP_DigestFinal() broke some compilers.
Changed to unsigned int: also need an evil cast in pk7_doit.c because a
signed, unsigned comparison chokes VC++.
1999-03-14 13:31:42 +00:00
Dr. Stephen Henson
199d59e5a1 Remove some references which called malloc and free instead of Malloc and Free. 1999-03-14 01:16:45 +00:00
Dr. Stephen Henson
b29524c15b Delete Win32 test with testreq.pem and req: there is already a test with
testreq2.pem.
1999-03-12 22:59:13 +00:00
Ben Laurie
b4899bb1fa Fail if test fails. 1999-03-12 20:41:09 +00:00
Ben Laurie
2a04d1e453 Update dependencies. 1999-03-12 20:33:26 +00:00
Ben Laurie
999e5715f2 Allow bsdi-gcc - see if it gets anyone anywhere. 1999-03-12 20:31:13 +00:00
Ben Laurie
29c0fccba8 Solaris shared library support. 1999-03-12 20:26:27 +00:00
Ben Laurie
463dc742ff This is now generated, it seems. 1999-03-12 20:19:45 +00:00
Ben Laurie
cadf126b99 Use the right compiler for ctx_size. 1999-03-12 19:58:43 +00:00
Dr. Stephen Henson
bc420ac592 Delete NULL ciphers from 'ALL' in the cipher list aliases. This means that
NULL ciphers specifically have to be enabled with e.g. "DEFAULT:eNULL". This
prevents cipher lists from inadvertantly having NULL ciphers at the top
of their list (e.g. the default ones) because they didn't have to be taken
into account before.
1999-03-12 01:43:28 +00:00
Dr. Stephen Henson
abd4c91527 Fix for RSA private key encryption if p < q. This took ***ages*** to track down. 1999-03-11 02:42:13 +00:00
Ralf S. Engelschall
47c389e7cc Just cosmetics: replace a tab with a normal space because
the tab always looked too estoeric to my eyes while building... ;)
1999-03-10 20:09:29 +00:00
Ralf S. Engelschall
7e37e72a3d Be less restrictive and allow also `perl util/perlpath.pl /path/to/bin/perl'
in addition to `perl util/perlpath.pl /path/to/bin', because this way one can
also use an interpreter named `perl5' (which is usually the name of Perl 5.xxx
on platforms where an Perl 4.x is still installed as `perl').

Submitted by: Matthias Loepfe <Matthias.Loepfe@adnovum.ch>
Reviewed by: Ralf S. Engelschall
1999-03-10 19:57:05 +00:00
Ralf S. Engelschall
637691e6b4 Let util/clean-depend.pl work also with older Perl 5.00x versions.
Submitted by: Matthias Loepfe <Matthias.Loepfe@adnovum.ch>
Reviewed by: Ralf S. Engelschall
1999-03-10 19:51:43 +00:00
Dr. Stephen Henson
381380206b Fix couple of ANSI declarations and prototypes 1999-03-10 18:30:48 +00:00
Ralf S. Engelschall
035eb85d2f Update 1999-03-10 16:17:31 +00:00
Ralf S. Engelschall
f11f8d580e Update platform test list 1999-03-10 14:53:54 +00:00
Ralf S. Engelschall
defba77f39 Two more things we should look at before release 1999-03-10 14:50:28 +00:00
Dr. Stephen Henson
83ec54b40d Make CC,CFLAG etc get passed to make links and various Win32 fixes. 1999-03-10 01:37:33 +00:00
Dr. Stephen Henson
e476f4256a Remove some hard coded paths from Win32 test stuff. 1999-03-09 23:54:31 +00:00
Ben Laurie
047f1a4466 Remake cert links when the app is built. 1999-03-09 20:06:39 +00:00
Ralf S. Engelschall
38ef9a0c70 Update to current state... 1999-03-09 15:36:53 +00:00
Ralf S. Engelschall
15542b2847 Make it more clear what option -WWW to s_server does. 1999-03-09 13:09:07 +00:00
Ben Laurie
b241fefd98 Fix quad checksum bug. 1999-03-09 11:37:23 +00:00
Ben Laurie
cbb7792613 Go faster. 1999-03-09 10:10:03 +00:00
Ben Laurie
5d11adc8af Correct English. 1999-03-09 10:08:17 +00:00
Dr. Stephen Henson
d4d2f98c59 Comment out two unimplemented functions from bio.h. Attempt to get the
Win32 test batch file going again.
1999-03-09 03:01:48 +00:00
Dr. Stephen Henson
0cc395796b Add missing funtions from non ANSI section of header files and add missing
ordinals to libeay.num.
1999-03-08 22:46:56 +00:00
Ben Laurie
6420b77fec test. 1999-03-08 21:56:46 +00:00
Dr. Stephen Henson
6e0642407d Various fixes to Win32, update ssleay.num, libeay.num, shuffle various #ifdefs
around so more options appear in e_os.h
1999-03-08 18:41:15 +00:00
Ben Laurie
86fd166eeb Make links no longer needed. 1999-03-08 13:32:44 +00:00
Ralf S. Engelschall
cdb8115660 Solaris 2.6 makes still problems.
Details were posted.
1999-03-08 12:56:07 +00:00
Ralf S. Engelschall
6b50354041 typo 1999-03-08 12:39:41 +00:00
Ralf S. Engelschall
d10f052be5 Make `openssl version' output lines consistent. 1999-03-08 12:35:01 +00:00
Ralf S. Engelschall
5a0611297b Start with some more tarball rolling preparation to make sure it's not
overlooed next Monday:
- rmlinks is no longer existing
- use openssl as the name and not rse
- don't roll the STATUS file into the tarball
1999-03-08 12:17:53 +00:00
Ralf S. Engelschall
54d9976c79 Let us start with some platform test list... 1999-03-08 12:13:35 +00:00
Ralf S. Engelschall
c0e538e117 Fix Win32 symbol export lists for BIO functions: Added BIO_get_ex_new_index,
BIO_get_ex_num, BIO_get_ex_data and BIO_set_ex_data to ms/libeay{16,32}.def.
I'm not a Win32 hacker, but I think I've done it correctly.

Steve or Ben: can you confirm that it's correct?
              I don't want to break any Win32 stuff.
1999-03-08 11:41:26 +00:00
Ralf S. Engelschall
84107e6ca8 Second round of fixing the OpenSSL perl/ stuff. It now at least compiled fine
under Unix and passes some trivial tests I've now added. But the whole stuff
is horribly incomplete, so a README.1ST with a disclaimer was added to make
sure no one expects that this stuff really works in the OpenSSL 0.9.2 release.
Additionally I've started to clean the XS sources up and fixed a few little
bugs and inconsistencies in OpenSSL.{pm,xs} and openssl_bio.xs.

PS: I'm still not convinces whether we should try to make this
    finally running or kick it out and replace it with some
    other module....
1999-03-08 11:25:49 +00:00
Ralf S. Engelschall
9ea0e64de7 Two more .cvsignore files for the assembler stuff 1999-03-08 09:47:30 +00:00
Ralf S. Engelschall
a5e035b54a Notice freeze state and update my entry 1999-03-08 09:43:53 +00:00
Dr. Stephen Henson
1f0f37b0a4 Delete obsolete old X509V3 files. 1999-03-07 16:25:59 +00:00
Ben Laurie
dd56626ecc Don't make links in INSTALL doc - also, work first time! 1999-03-07 15:22:59 +00:00
Ben Laurie
efadf60f9c Don't make links on Windoze. 1999-03-07 15:21:08 +00:00
Ben Laurie
26a0846fc1 Fix perl assembler. 1999-03-07 15:08:38 +00:00
Ben Laurie
05dc84b82b Fix DWP when only given three parameters. 1999-03-07 15:08:04 +00:00
Ben Laurie
7d3ce7ba37 Linux MIPS support. 1999-03-07 14:17:32 +00:00
Ben Laurie
cba5068d10 Always make links. 1999-03-07 14:05:36 +00:00
Ben Laurie
f2595f5402 Fix a typo. 1999-03-07 14:01:55 +00:00
Dr. Stephen Henson
1756d405cc Added support for adding extensions to CRLs, also fix a memory leak and
make 'req' check the config file syntax before it adds extensions. Added
info in the documentation as well.
1999-03-06 19:33:29 +00:00
Ralf S. Engelschall
116e315303 Add a useful kludge to allow package maintainers to specify compiler and other
platforms details on the command line without having to patch the Configure
script everytime: One now can use ``perl Configure <id>:<details>'', i.e.
platform ids are allowed to have details appended to them (seperated by
colons). This is treated as there would be a static pre-configured entry in
Configure's %table under key <id> with value <details> and ``perl Configure
<id>'' is called.  So, when you want to perform a quick test-compile under
FreeBSD 3.1 with pgcc and without assembler stuff you can use ``perl Configure
"FreeBSD-elf:pgcc:-O6:::"'' now, which overrides the FreeBSD-elf entry
on-the-fly.

(PS: Notice that the same effect _cannot_ be achieved by using
     ``make CC=pgcc ..'' etc, because you cannot override all
     things from there.)
1999-03-06 16:07:47 +00:00
Ben Laurie
bc3482442a Disable new TLS1 ciphersuites. 1999-03-06 15:21:02 +00:00
Ben Laurie
a49034aba9 Fix names of cert stack functions. 1999-03-06 14:49:11 +00:00
Ralf S. Engelschall
03e20a1a44 Typo :-) 1999-03-06 14:41:24 +00:00
Ralf S. Engelschall
3eb0ed6d91 Allow DSO flags like -fpic, -fPIC, -KPIC etc. to be specified on the `perl
Configure ...' command line. This way one can compile OpenSSL libraries with
Position Independent Code (PIC) which is needed for linking it into DSOs.
1999-03-06 14:35:03 +00:00
Ben Laurie
6242bb9c63 Put the dependencies back. 1999-03-06 14:32:48 +00:00
Ralf S. Engelschall
63493c7b06 Move the SSL_CTX_xxx defines at the top of ssl.h to the location of other
SSL_CTX_xxx defines. What was the reason to move them to the top, even before
the copyright and #ifdef HEADER_SSL_H? Hmmm...  when there was and still is a
good reason feel free to reverse this patch, but please document why it is
needed this way.
1999-03-06 14:24:54 +00:00
Ben Laurie
f415fa3243 Fix export ciphersuites, again. 1999-03-06 14:09:36 +00:00
Ralf S. Engelschall
dfca822f79 Reshape the README file out of the existing README stuff
into a single file. Need more cleanup for final release IMHO.
1999-03-06 14:04:40 +00:00
Ralf S. Engelschall
2c6ccde1f7 just a little typo 1999-03-06 14:01:29 +00:00
Ralf S. Engelschall
3b52c2e715 Add a first cut for a NEWS document similar to what other packages (mostly GNU
packages) provide.  The idea is that because of the large number of CHANGES
entries, this file summarizes the major changes for a brief overview.
1999-03-06 13:53:17 +00:00
Ralf S. Engelschall
1c308226fe Bring the README file in sync and shape a little bit more... 1999-03-06 13:35:14 +00:00
Ralf S. Engelschall
0b903ec018 Cleaned up the LICENSE document: The official contact for any license
questions now is the OpenSSL core team under openssl-core@openssl.org.  And
add a paragraph about the dual-license situation to make sure people recognize
that _BOTH_ the OpenSSL license _AND_ the SSLeay license apply to the OpenSSL
toolkit.
1999-03-06 13:29:09 +00:00
Ralf S. Engelschall
0de6fd7361 Ralf is now using FreeBSD 3.1 which runs ELF instead of a.out... 1999-03-06 13:15:15 +00:00
Ralf S. Engelschall
bb8f3c5879 General source tree makefile cleanups: Made `making xxx in yyy...' display
consistent in the source tree and replaced `/bin/rm' by `rm'.  Additonally
cleaned up the `make links' target: Remove unnecessary semicolons, subsequent
redundant removes, inline point.sh into mklink.sh to speed processing and no
longer clutter the display with confusing stuff. Instead only the actually
done links are displayed.
1999-03-06 12:32:06 +00:00
Ben Laurie
988788f697 Permit null ciphers. 1999-03-06 12:09:36 +00:00
Ralf S. Engelschall
f9b2e53052 Fix GCC warning...
t_req.c: In function `X509_REQ_print':
t_req.c:181: warning: suggest explicit braces to avoid ambiguous `else'
1999-03-06 11:58:03 +00:00
Dr. Stephen Henson
79a474e8f2 Add an extra 'raw' function r2i to the extension code. Nothing uses this yet and
it is just a place holder for functionality to be added later. Its been added
now so the X509V3_EXT_METHOD structure shouldn't (hopefully) have to change
after the release.
1999-03-06 02:34:07 +00:00
Dr. Stephen Henson
924acc5451 Fix the PKCS#7 stuff: signature verify could fail if attributes reordered, the
detached data encoding was wrong and free up public keys.
1999-03-05 02:05:15 +00:00
Dr. Stephen Henson
d00b7aad5a Workaround for a Win95 console bug triggered by the password read stuff. 1999-03-05 01:07:04 +00:00
Dr. Stephen Henson
9985bed331 Deleted my str_dup() function from X509V3: the same functionality is provided
by BUF_MEM_strdup(). Added text documentation to the BUF_MEM stuff.
1999-03-04 23:29:51 +00:00
Ralf S. Engelschall
789285aa96 Added the new `Includes OpenSSL Cryptography Software' button as
doc/openssl_button.{gif,html} which is similar in style to the old SSLeay
button and can be used by applications based on OpenSSL to show the
relationship to the OpenSSL project.

PS: This beast caused me three hours to create, because
    of the size I had to hand-paint the 7pt fonts in Photoshop.
1999-03-04 12:55:42 +00:00
Ralf S. Engelschall
a06c602e6f Remove confusing variables in function signatures in files
ssl/ssl_lib.c and ssl/ssl.h. At least the double ctx-variable
confused some compilers.

Submitted by: Lennart Bong <lob@kulthea.stacken.kth.se>
Reviewed by: Ralf S. Engelschall
1999-03-04 07:54:01 +00:00
Ralf S. Engelschall
8d697db1d0 Don't install bss_file.c under PREFIX/include/. It was introduced by Eric
between SSLeay 0.8 and 0.9 and just looks useless and confusing.

Pointed out by: Lennart Bong <lob@kulthea.stacken.kth.se>
Submitted by: Ralf S. Engelschall
1999-03-04 07:47:27 +00:00
Dr. Stephen Henson
06c6849124 Fix the Win32 compile environment and add various changes so it will now compile
under Win32 (9X and NT) again. Note: some signed/unsigned changes recently
checked in were killing the Win32 compile.
1999-03-03 02:01:26 +00:00
Ben Laurie
726bae3f0f Supper's cooking. 1999-02-28 20:51:38 +00:00
Ben Laurie
eb90a483ad Add functions to add certs to stacks, used for CA file/path stuff in servers. 1999-02-28 17:41:55 +00:00
Ben Laurie
49bc262459 More truth in declarations. 1999-02-28 14:39:18 +00:00
Ben Laurie
b4f10a7e92 doxygen configuration file. 1999-02-28 12:42:50 +00:00
Ben Laurie
4f43d0e71f Experiment with doxygen documentation. 1999-02-28 12:41:50 +00:00
Ben Laurie
1efa9c33c0 Update dependencies. 1999-02-27 18:41:04 +00:00
Ralf S. Engelschall
74d7abc2ab Get rid of remaining C++-style comments which strict C compilers hate.
(Pointed out by Carlos Amengual).
1999-02-27 12:17:40 +00:00
Ralf S. Engelschall
c707fb2741 Ops, the logic of the second argument has to be coupled with the != test to
work correctly for the SSL_CTX_xxx situations, too. Now "make test" passes
again fine.
1999-02-26 22:31:54 +00:00
Ralf S. Engelschall
aa2b6baf4f Use consistent and existing addresses 1999-02-26 21:44:17 +00:00
Dr. Stephen Henson
7283ecea22 BN_RECURSION causes the stuff in bn_mont.c to fall over for large keys. For
now change it to BN_RECURSION_MONT so it isn't compiled in.
1999-02-26 01:37:34 +00:00
Ben Laurie
754048577b Perhaps if I do a tiny bit of docco, others may follow? 1999-02-25 17:39:04 +00:00
Ralf S. Engelschall
090db4f475 Remember one more wish from the users 1999-02-25 14:44:55 +00:00
Ralf S. Engelschall
15d21c2df4 Add a bunch of SSL_xxx() functions for configuring the temporary RSA and DH
private keys and/or callback functions which directly correspond to their
SSL_CTX_xxx() counterparts but work on a per-connection basis. This is needed
for applications which have to configure certificates on a per-connection
basis (e.g. Apache+mod_ssl) instead of a per-context basis (e.g.
s_server).

For the RSA certificate situation is makes no difference, but for the DSA
certificate situation this fixes the "no shared cipher" problem where the
OpenSSL cipher selection procedure failed because the temporary keys were not
overtaken from the context and the API provided no way to reconfigure them.

The new functions now let applications reconfigure the stuff and they are in
detail: SSL_need_tmp_RSA, SSL_set_tmp_rsa, SSL_set_tmp_dh,
SSL_set_tmp_rsa_callback and SSL_set_tmp_dh_callback.  Additionally a new
non-public-API function ssl_cert_instantiate() is used as a helper function
and also to reduce code redundancy inside ssl_rsa.c.

Submitted by: Ralf S. Engelschall
Reviewed by: Ben Laurie
1999-02-25 14:40:29 +00:00
Ralf S. Engelschall
ea14a91f64 Move s_server -dcert and -dkey options out of the undocumented feature area
because they are useful for the DSA situation and should be recognized by the
users. Thanks to Steve for the original hint.
1999-02-25 11:26:26 +00:00
Ralf S. Engelschall
4b8f2ce648 Typo 1999-02-25 11:06:52 +00:00
Ralf S. Engelschall
90a52cecaf Fix the cipher decision scheme for export ciphers: the export bits are *not*
within SSL_MKEY_MASK or SSL_AUTH_MASK, they are within SSL_EXP_MASK.  So, the
original variable has to be used instead of the already masked variable.

Submitted by: Richard Levitte <levitte@stacken.kth.se>
Reviewed by: Ralf S. Engelschall
1999-02-25 11:03:18 +00:00
Ralf S. Engelschall
def9f43151 Fix 'port' variable from int' to unsigned int' in crypto/bio/b_sock.c
Submitted by: Richard Levitte <levitte@stacken.kth.se>
Reviewed by: Ralf S. Engelschall
1999-02-25 10:54:27 +00:00
Ralf S. Engelschall
8aef252bf4 Change type of another md_len variable in pk7_doit.c:PKCS7_dataFinal()
from `int' to `unsigned int' because it's a length and initialized by
EVP_DigestFinal() which expects an `unsigned int *'.

Submitted by: Richard Levitte <levitte@stacken.kth.se>
Reviewed by: Ralf S. Engelschall
1999-02-25 10:47:24 +00:00
Ben Laurie
4f9b306ca7 Fix clearly untested "clever" hack. 1999-02-25 09:43:26 +00:00
Ralf S. Engelschall
74cc3698bd More CVS ignore stuff... 1999-02-25 09:06:30 +00:00
Ralf S. Engelschall
a4ed5532a8 Don't hard-code path to Perl interpreter on shebang line of Configure
script. Instead use the usual Shell->Perl transition trick.
1999-02-25 08:48:52 +00:00
Ralf S. Engelschall
1b3b0a54d1 Remember good pointers to Montgomery multiplication algorithm
descriptions as pointed out by Dave Carman <carman@erols.com>
1999-02-25 08:00:57 +00:00
Ralf S. Engelschall
7be304acdb Make `openssl x509 -noout -modulus' functional also for DSA certificates (in
addition to RSA certificates) to match the behaviour of `openssl dsa -noout
-modulus' as it's already the case for `openssl rsa -noout -modulus'.  For RSA
the -modulus is the real "modulus" while for DSA currently the public key is
printed (a decision which was already done by `openssl dsa -modulus' in the
past) which serves a similar purpose.  Additionally the NO_RSA no longer
completely removes the whole -modulus option; it now only avoids using the RSA
stuff. Same applies to NO_DSA now, too.
1999-02-24 17:17:31 +00:00
Dr. Stephen Henson
6b313a7365 Remove debugging fprintf from req.c and fix the code so it properly skips over
the first leading XXX. in the DN.
1999-02-24 00:14:21 +00:00
Ben Laurie
1745a3fb9f Code for reliable BIO. 1999-02-23 21:45:23 +00:00
Ben Laurie
55ab3bf7f9 Add reliable BIO. 1999-02-23 21:44:34 +00:00
Ben Laurie
15799403ad Fix more warnings. 1999-02-23 12:53:49 +00:00
Ralf S. Engelschall
3a1daca9ef Get rid of a nasty debugging message which was forgotten here... 1999-02-23 08:53:04 +00:00
Ralf S. Engelschall
f2f351ce9c Fix usage message on gendsa:
1. The dsaparam argument is mandatory and not optional
2. Add a little text what this actually is: a filename
1999-02-23 08:52:20 +00:00
Ralf S. Engelschall
04fa4cb721 Make gcc -Wall happy ("might be used uninitialized...") 1999-02-23 07:47:30 +00:00
Dr. Stephen Henson
a43aa73e3b Redo the way 'req' and 'ca' add objects: add support for oid_section. 1999-02-23 00:07:46 +00:00
Ben Laurie
0849d13811 Add syslogging BIO. 1999-02-22 21:21:08 +00:00
Dr. Stephen Henson
e527ba09a6 Various changes to make this stuff compile under Win32 and VC++ with and
without -debug option to mk1mf.pl. Change _export to is_export (_export is
a reserved word under VC++). Add yucky function prototype function pointer
casts. Sanitise the included files in crypto/x509v3.

Also changed ssleay.exe target to openssl.exe
1999-02-22 01:26:40 +00:00
Ben Laurie
60e31c3a4b More stuff for new TLS ciphersuites. 1999-02-21 21:58:59 +00:00
Ben Laurie
a040ea8251 Undo a couple of kludges. 1999-02-21 20:07:41 +00:00
Ben Laurie
06ab81f9f7 Add support for new TLS export ciphersuites. 1999-02-21 20:03:24 +00:00
Ben Laurie
abf87f79f7 Fix warning. 1999-02-21 20:01:39 +00:00
Dr. Stephen Henson
deff75b634 Add preliminary user level config documentation for extension stuff. Programming
info will come later...

Feel free to reformat and tidy this up...
1999-02-21 17:41:08 +00:00
Dr. Stephen Henson
0c8a1281d0 Make RSA_NO_PADDING really use no padding.
Submitted by: Ulf Moeller <ulf@fitug.de>
1999-02-21 17:39:07 +00:00
Ralf S. Engelschall
189b6a6062 Remember some open issues and available patches 1999-02-21 12:33:58 +00:00
Dr. Stephen Henson
aa066b9e6e Add more functionality to issuer alt name and subject alt name. New options
to include email addresses from DN and copy details from issuer certificate.
Include examples in openssl.cnf, update Win32 ordinals.
1999-02-21 01:46:45 +00:00
Ralf S. Engelschall
a67a9694f7 Ok, propose a release date of March 15th with a code freeze a few days before
so we have enough time for final testing and tarball rolling.
1999-02-20 16:50:53 +00:00
Ben Laurie
57c86f79bb Fix a warning. 1999-02-20 16:36:28 +00:00
Ben Laurie
4004dbb7f6 Generate errors when public/private key check is done. 1999-02-20 11:50:07 +00:00
Dr. Stephen Henson
c74f1eb9bd Preliminary support for reason code CRL extension. 1999-02-20 01:15:41 +00:00
Dr. Stephen Henson
ee5425d97d Patch so the new crl stuff actually compiles this time :-) Also update the
Win32 ordinals.
1999-02-19 02:26:21 +00:00
Dr. Stephen Henson
0ca5f8b15c Overhaul 'crl' application, add a proper X509_CRL_print function and start
to support CRL extensions.
1999-02-19 01:29:29 +00:00
Ben Laurie
6b056c414d Fix case of new functions in error files. 1999-02-18 18:26:42 +00:00
Dr. Stephen Henson
0be9747b39 Oops! Remeber to include the other patches this time... 1999-02-17 23:22:57 +00:00
Dr. Stephen Henson
3d8accc3ae Fuller authority key id support, partial support for private key usage extension
and really fix the ASN.1 IMPLICIT bug this time :-)
1999-02-17 23:21:01 +00:00
Ben Laurie
a49498969e Add OAEP. 1999-02-17 21:11:08 +00:00
Dr. Stephen Henson
d08d8da432 Added code to GENERAL_NAME with support for more options and preliminary
support for assignment in config files.
1999-02-17 03:09:58 +00:00
Mark J. Cox
413c4f45ed Updates to the new SSL compression code
[Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]

Fix so that the version number in the master secret, when passed
     via RSA, checks that if TLS was proposed, but we roll back to SSLv3
     (because the server will not accept higher), that the version number
     is 0x03,0x01, not 0x03,0x00
     [Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]

Submitted by:
Reviewed by:
PR:
1999-02-16 09:22:21 +00:00
Dr. Stephen Henson
a8236c8c32 Fix various memory leaks in SSL, apps and DSA 1999-02-15 21:05:21 +00:00
Dr. Stephen Henson
1750ebcba9 Patch to Configure script. For some reason the BN_ASM part was truncated to
the first word which broke (at least) the Linux compile. Hopefully this wont
break other platforms.
1999-02-14 22:47:21 +00:00
Dr. Stephen Henson
5236efdbf5 Update error codes. 1999-02-14 17:21:14 +00:00
Dr. Stephen Henson
388ff0b076 Add support for raw extensions. This means that you can include the DER encoding
of an arbitrary extension: e.g. 1.3.4.5=critical,RAW:12:34:56 Using this
technique currently unsupported extensions can be generated if you know their
DER encoding. Even if the extension is supported in future the raw extension
will still work: that is the raw version can always be used even if it is a
supported extension.
1999-02-14 16:48:22 +00:00
Ralf S. Engelschall
6013fa8395 Make sure latest Perl versions don't interpret some generated C array as Perl
array code in the crypto/err/err_genc.pl script.

Submitted by: Lars Weber <3weber@informatik.uni-hamburg.de>
Reviewed by: Ralf s. Engelschall
1999-02-14 13:21:52 +00:00
Dr. Stephen Henson
e3577ba07b Convert ms/do_ms.bat to DOS EOL format of DOS chokes on it. 1999-02-14 02:37:45 +00:00
Dr. Stephen Henson
5c00879ef0 More Win32 fixes and upsdate INSTALL.W32 documentation. 1999-02-14 00:40:13 +00:00
Dr. Stephen Henson
9becf66621 Oops... add other changes this time too. 1999-02-13 23:13:32 +00:00
Dr. Stephen Henson
e2d795cb96 Modify configure script to generate some files that Win32 needs and new
script that does the same as 'make files'.
1999-02-13 23:12:30 +00:00
Ben Laurie
08853ba82d Finally(?) fix DES stuff. 1999-02-13 21:49:34 +00:00
Ben Laurie
c09c3c4b2f Update dependencies. 1999-02-13 19:03:16 +00:00
Ben Laurie
4e31df2cd7 Fix ghastly DES declarations, and all consequential warnings. 1999-02-13 18:52:38 +00:00
Dr. Stephen Henson
e4119b9311 Fix typo in asn1.h (PRINTABLESTRING_STRING) and fix a bug in object creation
perl script. It failed if the OID had any zeros in it.
1999-02-13 17:15:32 +00:00
Ben Laurie
4a71b90deb Add support for 3DES CBCM mode. 1999-02-13 15:03:47 +00:00
Ben Laurie
436d318c80 In the absence of feedback either way, commit the fix that looks right for
wrong keylength with export null ciphers.
1999-02-13 12:39:50 +00:00
Ben Laurie
be560e7b67 Whoops, missed one. 1999-02-13 12:38:44 +00:00
Ben Laurie
9151d39645 Some cleanup. 1999-02-13 12:28:12 +00:00
Ben Laurie
0628728556 Actually use BN when selected! 1999-02-12 19:33:55 +00:00
Ben Laurie
65b8ca07a5 Tidy up asm stuff. 1999-02-12 19:05:10 +00:00
Dr. Stephen Henson
55a9cc6e47 Make the 'crypto' and 'ssl' options in the perl script mkdef.pl really work,
also add an 'update' option to automatically append any new functions to the
ssleay.num and libeay.num files.
1999-02-11 01:39:30 +00:00
Dr. Stephen Henson
3773d138ce Delete a few unused files in apps, restore CAST WIN32 ASM file to main
tree.
1999-02-11 00:07:39 +00:00
Ralf S. Engelschall
4a16967b45 Remove one more totally bogus source file.
This one is exactly the same as ssl_sess.c.
Thanks to Adam Goodman <adam@a-domain.com> for hint.
1999-02-10 12:44:27 +00:00
Ralf S. Engelschall
c91531d9fe Remove three more bogus files (2x temp file, 1x trash) 1999-02-10 12:37:59 +00:00
Ralf S. Engelschall
d5083e0142 What is on my ToDo list... 1999-02-10 09:47:05 +00:00
Ralf S. Engelschall
8073036dd6 Overhauled the Perl interface (perl/*):
- ported BN stuff to OpenSSL's different BN library

- made the perl/ source tree CVS-aware

- renamed the package from SSLeay to OpenSSL (the files still contain
  their history because I've copied them in the repository)

- removed obsolete files (the test scripts will be replaced
  by better Test::Harness variants in the future)
1999-02-10 09:38:31 +00:00
Ralf S. Engelschall
0517335e3c Ignore mx86unix.cpp which is generated on Intel platforms 1999-02-10 08:48:10 +00:00
Ralf S. Engelschall
483fdf1883 Remember the cleanup 1999-02-10 08:34:01 +00:00
Ralf S. Engelschall
155d7a0e1d First cut for a very conservative source tree cleanup:
1. merge various obsolete readme texts into doc/ssleay.txt
   where we collect the old documents and readme texts.

2. remove the first part of files where I'm already sure that we no longer need
   them because of three reasons: either they are just temporary files which
   were left by Eric or they are preserved original files where I've verified
   that the diff is also available in the CVS via "cvs diff -rSSLeay_0_8_1b"
   or they were renamed (as it was definitely the case for the crypto/md/
   stuff).

We've still a horrible mess under crypto/bn/asm/.  There for a lot of files
I'm sure whether we need them or not. So, when someone knows it better, feel
free to cleanup there.
1999-02-10 08:26:08 +00:00
Ralf S. Engelschall
2c2cba0d13 Ops, one more reference to 0.9.1c. Make sure we don't forget it... 1999-02-10 08:21:19 +00:00
Dr. Stephen Henson
df16c60842 Oops. Forgot to do a 'make errors'. 1999-02-10 01:36:45 +00:00
Dr. Stephen Henson
175b0942ec More extension code. Incomplete support for subject and issuer alt
name, issuer and authority key id. Change the i2v function parameters
and add an extra 'crl' parameter in the X509V3_CTX structure: guess
what that's for :-) Fix to ASN1 macro which messed up
IMPLICIT tag and add f_enum.c which adds a2i, i2a for ENUMERATED.
1999-02-10 01:12:59 +00:00
Ben Laurie
c45beb91b3 Update dependencies. 1999-02-09 23:02:47 +00:00
Ben Laurie
bf5dcd135f More exactitude with function arguments. 1999-02-09 23:01:08 +00:00
Dr. Stephen Henson
119f62881a Oops... forgot to add new ENUMERATED file... 1999-02-09 01:30:41 +00:00
Dr. Stephen Henson
bceacf938f Support for ASN1 ENUMERATED type. This copies and duplicates the ASN1_INTEGER
code and adds support to ASN1_TYPE and asn1parse.
1999-02-09 01:29:37 +00:00
Dr. Stephen Henson
068197a70c Comment out def of currently unimplemented function to stop warning. 1999-02-08 00:48:30 +00:00
Ben Laurie
6457ad15a8 Minor tweaks to keep Perl 5.001 happy. 1999-02-07 18:22:15 +00:00
Dr. Stephen Henson
643aaa1979 Fix filename in comment. 1999-02-07 01:34:26 +00:00
Dr. Stephen Henson
142fcca8ca Add support for GeneralName and GeneralNames extensions. Also preliminary
support for subject and issuer alt name. Add a new ASN1 macro and fix a
nasty bug that left an ASN1 buffer modified on an error condition with
IMPLICIT tagging.
1999-02-07 00:14:12 +00:00
Dr. Stephen Henson
ebbfd76c69 Delete legacy file. 1999-02-06 20:30:40 +00:00
Ben Laurie
547ff5e6a9 Slightly improved diagnostics. 1999-02-06 18:09:13 +00:00
Ben Laurie
7ec218eb4a Process extensions when they are there. 1999-02-06 17:46:23 +00:00
Ben Laurie
9f7646da25 Diagnose errors. 1999-02-06 15:20:44 +00:00
Ben Laurie
29d2824788 Typo in arguments. 1999-02-06 15:19:16 +00:00
Ben Laurie
c106c6132c Clear error we don't care about. 1999-02-06 13:30:37 +00:00
Dr. Stephen Henson
a83d7d1491 Rename v3_bitstr.c to v3_bitst.c to fit in 8+3. Rebuild MINFO to reflect
change.
1999-02-06 12:35:53 +00:00
Mark J. Cox
6ccec43933 add what I'm doing and a vote
Submitted by:
Reviewed by:
PR:
1999-02-01 08:18:31 +00:00
Dr. Stephen Henson
72b35c4a26 Oops! Restore ssleay.num: it got overwritten with libeay.num :-( 1999-02-01 01:25:19 +00:00
Dr. Stephen Henson
f614496cfb Delete bogus V3 prototype and update the *.num files to include ordinals for
the new functions. Update MINFO.
1999-02-01 01:17:53 +00:00
Dr. Stephen Henson
df0af1a7d8 More Win32 fixes. The Configure script used to give *lots* of warnings about
use of undefined variables: kludge so they all get initialised. Also avoid use
of POSIX module.
1999-02-01 00:43:14 +00:00
Dr. Stephen Henson
9b3086fe38 Fix various stuff: that VC++ 5.0 chokes on:
1. Add *lots* of missing prototypes for static ssl functions.
2. VC++ doesn't understand the 'LL' suffix for 64 bits constants: change bn.org
3. Add a few missing prototypes in pem.org
Fix mk1mf.pl so it outputs a Makefile that doesn't choke Win95.
Fix mkdef.pl so it doesn't truncate longer names.
1999-01-31 17:30:18 +00:00
Ben Laurie
d433f9014e Yet more pissing about to get PEM built at the right moment. 1999-01-31 15:00:12 +00:00
Mark J. Cox
351d899878 Add new function, EVP_MD_CTX_copy() to replace frequent use of memcpy.
Submitted by: Eric A Young - from changes to C2Net SSLeay
Reviewed by: Mark Cox
PR:
1999-01-31 12:14:39 +00:00
Ralf S. Engelschall
5810a5f4c7 Reflect correct filename 1999-01-31 11:19:17 +00:00
Ralf S. Engelschall
058bf5596b Update README file a little bit... 1999-01-31 11:15:44 +00:00
Ralf S. Engelschall
b621d77258 Make sure make rehash' target really finds the openssl' program. 1999-01-31 11:10:10 +00:00
Mark J. Cox
d1f4c83ce5 Fix some more typos
Submitted by:
Reviewed by:
PR:
1999-01-31 09:59:54 +00:00
Mark J. Cox
bc2646ef11 fix typo
Submitted by:
Reviewed by:
PR:
1999-01-31 09:57:00 +00:00
Ben Laurie
a96e7810e2 Squeeze a bit more speed out of MD5 assembler. 1999-01-30 17:53:00 +00:00
Dr. Stephen Henson
679ab7c39e Update STATUS, modify ssl.h so mkdef.pl will pick up prototypes and
add x509v3.h to mkdef.pl list of include files.
1999-01-30 17:35:01 +00:00
Ben Laurie
f33fbc2e1e More pissing about to get pem.h to behave properly. 1999-01-30 14:05:52 +00:00
Ben Laurie
59ff713462 Break circular dependency between pem and err. 1999-01-30 13:40:34 +00:00
Ralf S. Engelschall
ae3d365f99 Ignore crypto/x509v3/lib 1999-01-30 13:26:41 +00:00
Ben Laurie
31df0990a1 Update dependencies. 1999-01-30 12:49:44 +00:00
Ben Laurie
5f0451daa2 Add dependencies. 1999-01-30 12:15:11 +00:00
Ralf S. Engelschall
4c441f30bb Update 1999-01-30 12:06:16 +00:00
Ben Laurie
fc8c1a5c67 Update dependencies. 1999-01-30 12:05:42 +00:00
Ralf S. Engelschall
154adc8963 Change address now that we've the mailing lists established 1999-01-30 11:52:04 +00:00
Ralf S. Engelschall
e04a6c2b35 Add CygWin32 platform information to Configure script.
Submitted by: Alan Batie <batie@aahz.jf.intel.com>
1999-01-30 11:50:48 +00:00
Ralf S. Engelschall
0172f988c7 Fixed ms/32all.bat script: no_asm' -> no-asm'
Submitted by: Rainer W. Gerling <gerling@mpg-gv.mpg.de>
Reviewed by: Ralf S. Engelschall
1999-01-30 11:36:05 +00:00
Dr. Stephen Henson
79dfa97555 New program 'nseq' added to apps to allow Netscape certificate sequences to
be pulled apart and built.
1999-01-29 23:34:19 +00:00
Dr. Stephen Henson
9fe84296a4 Allow the -certfile argument to be used multiple times in crl2pkcs7.
Also fix typos in the usage messages: "inout" instead of "input".
1999-01-29 01:53:55 +00:00
Ralf S. Engelschall
288cb84fb4 Fill in more contents for the openssl(1) manpage. 1999-01-28 14:50:10 +00:00
Ralf S. Engelschall
7ae01d4adc One more incorrect name in usage page 1999-01-28 14:48:31 +00:00
Ralf S. Engelschall
b6cff93dcf Fix names in usage page of s_time, s_server and s_client 1999-01-28 14:44:08 +00:00
Mark J. Cox
a0a5407901 Fixes to BN code. Previously the default was to define BN_RECURSION
but the BN code had some problems that would cause failures when
doing certificate verification and some other functions.

Submitted by: Eric A Young from a C2Net version of SSLeay
Reviewed by: Mark J Cox
PR:
1999-01-28 10:40:38 +00:00
Dr. Stephen Henson
8938272b32 Remember to add the new file this time :-) 1999-01-28 00:34:42 +00:00
Dr. Stephen Henson
92c046cac0 Add ASN1 code for netscape certificate sequences. 1999-01-28 00:16:44 +00:00
Dr. Stephen Henson
a27598bf7e Add a few extended key usage OIDs. 1999-01-26 23:13:14 +00:00
Dr. Stephen Henson
b2347661ce Still more X509 V3 stuff. Modify ca.c to work with the new code and modify
openssl.cnf for the new syntax.
1999-01-26 01:19:27 +00:00
Ben Laurie
fd9d35f56e Oops. One header too many. 1999-01-25 21:36:51 +00:00
Ben Laurie
f3d2e56bb3 Update dependencies. 1999-01-25 21:25:54 +00:00
Ben Laurie
8a5222113b Declare correctly on FreeBSD. 1999-01-25 21:20:57 +00:00
Ben Laurie
a224de3f5d Reduce header dependencies. 1999-01-25 21:19:12 +00:00
Dr. Stephen Henson
f317aa4c9c More X509 V3 stuff. Add support for extensions in the 'req' application
so that: openssl req -x509 -new -out cert.pem
will take extensions from openssl.cnf a sample for a CA is included.
Also change the directory order so pem is nearer the end. Otherwise 'make links'
wont work because pem.h can't be built.
1999-01-25 01:09:21 +00:00
Dr. Stephen Henson
d0cc3d3460 Add file x509v3.err. 1999-01-24 20:58:44 +00:00
Ben Laurie
9535d20282 Make sure people know when they need to rebuild the Makefile. 1999-01-24 18:15:00 +00:00
Ben Laurie
41c62a8e56 Minor constification. 1999-01-24 17:54:23 +00:00
Dr. Stephen Henson
834eeef995 Continuing adding X509 V3 support. This starts to integrate the code with
the main library, but only with printing at present. To see this try:
openssl x509 -in cert.pem -text
on a certificate with some extensions in it.
1999-01-24 17:50:32 +00:00
Dr. Stephen Henson
9aeaf1b4a7 Initial addition of new X509 V3 files, tidy of old files. 1999-01-24 00:50:01 +00:00
Ralf S. Engelschall
69d1dfba24 Start keeping track of wishes people make on our mailing lists to make sure we
don't forget them and this way we have them bundled together.
1999-01-21 13:01:20 +00:00
Ben Laurie
1bbd21eec5 Correct bracketing error. 1999-01-21 11:46:01 +00:00
Dr. Stephen Henson
9b5cc156f3 Continued patches so certificates and CRLs now can support and use
GeneralizedTime.
1999-01-20 00:14:40 +00:00
Ben Laurie
6f93539970 This time, get it right. 1999-01-19 23:25:22 +00:00
Ben Laurie
8039257dbc Finally lay dependencies to rest (I hope!). 1999-01-19 21:36:31 +00:00
Ben Laurie
b13a155492 Spelling mistake. 1999-01-19 19:18:20 +00:00
Dr. Stephen Henson
fdc71eccec This is the result of a "make errors" with the new error building functionality
in place.
1999-01-18 22:19:46 +00:00
Dr. Stephen Henson
6c8abdd744 New err_code.pl script to retain old error codes. This should allow the use
of 'make errors' without causing huge re-organisations of files when a new
code is added.
1999-01-18 22:18:38 +00:00
Ben Laurie
4a66b7e0b2 Ignore auto-generated programs. 1999-01-17 16:28:06 +00:00
Ben Laurie
690ad20a0f Dispose of generated programs. 1999-01-17 16:27:15 +00:00
Ben Laurie
649cdb7be9 Fix major cockup with short keys in CAST-128. 1999-01-17 16:26:24 +00:00
Dr. Stephen Henson
fdd3b64215 Update CHANGES for GeneralizedTime info. 1999-01-17 15:10:33 +00:00
Ben Laurie
dabba1104b Correct Linux 1 recognition.
Contributed by: Ulf Möller <ulf@fitug.de>
1999-01-17 14:20:20 +00:00
Ben Laurie
f9e6fac357 Oops. Missing NULL frees. 1999-01-17 14:19:31 +00:00
Ben Laurie
512d222830 Remove pointless MD5 hash.
Contributed by: Anonymous <nobody@replay.com>
1999-01-17 14:14:41 +00:00
Ben Laurie
2c1ef383ae Generate an error on an invalid directory. 1999-01-17 14:10:08 +00:00
Dr. Stephen Henson
f6aed2cda6 Time to blow up the source tree :-) This is the beginning of support for
GeneralizedTime. At several points PKIX specifies that GeneralizedTime can be
used but OpenSSL doesn't currently support it. This patch adds several files
and a bunch of functions.

Of interest is the ASN1_TIME structure and its related functions. At several
points certificates, CRLs et al specify that a time can be expressed as a
choice of UTCTime and GeneralizedTime. Currently OpenSSL interprets this
(wrongly) as UTCTime because GeneralizedTime isn't supported. The ASN1_TIME
stuff provides this functionality.

Still todo is to trace which cert and CRL points need an ASN1_TIME and modify
the utilities appropriately and of course fix all the bugs.

Note new OpenSSL copyright in the new file a_time.c. I didn't put it in
a_gentm.c because it is a minimally modified form a_utctm.c .

Since this adds new files and error codes you will need to do a 'make errors'
at the top level to add the new codes.
1999-01-17 00:13:14 +00:00
Ben Laurie
c3ae9a4851 More prototypes. 1999-01-16 18:46:23 +00:00
Ben Laurie
f06b01eb62 More prototypes. 1999-01-16 17:56:00 +00:00
Ben Laurie
da10692aa2 More prototypes. 1999-01-16 17:49:12 +00:00
Ben Laurie
f7ba298480 More prototypes. 1999-01-16 17:40:04 +00:00
Ben Laurie
207ccf628d More prototypes. 1999-01-16 17:28:15 +00:00
Ben Laurie
cd3916c40f More prototypes. 1999-01-16 17:12:36 +00:00
Dr. Stephen Henson
ee13f9b165 Fix parameters to dummy function BN_ref_mod_exp(). 1999-01-14 18:25:07 +00:00
Dr. Stephen Henson
27eb622b78 Submitted by: Neil Costigan <neil.costigan@celocom.com>
PR:
1999-01-14 18:21:57 +00:00
Dr. Stephen Henson
2d723902a0 Fix OBJ_txt2nid(): old function was broken when input used the "dot" form, e.g.
1.2.3.4 . Also added new function OBJ_txt2obj().
1999-01-12 18:40:33 +00:00
Ben Laurie
a6801a91cd Add prototype, fix parameter passing bug. 1999-01-10 20:36:02 +00:00
Ben Laurie
1933485b60 Fix comment. 1999-01-10 19:41:33 +00:00
Ben Laurie
50acf46b92 Sort openssl functions by name. 1999-01-09 19:15:59 +00:00
Dr. Stephen Henson
7f9b7b074d Fix the gendsa program and add it to the app list. The progs.h file is
auto generated but not auto updated so it is included. Also remove the
encryption from the sample DSA keys.
1999-01-09 17:29:34 +00:00
Ben Laurie
cf6dcfec97 Get rid of redundant files. 1999-01-09 13:01:35 +00:00
Ben Laurie
e03ddfae7e Accept NULL in *_free. 1999-01-07 19:15:59 +00:00
Ben Laurie
6fa89f94c4 Fix DH key generation.
Contributed by: Anonymous <nobody@replay.com>
1999-01-07 00:37:01 +00:00
Ben Laurie
c13d4799dd Send the right CAs to the client. 1999-01-07 00:16:37 +00:00
Ben Laurie
bc4deee07a Fix numeric -newkey args.
Contributed by: Bodo Moeller <3moeller@informatik.uni-hamburg.de>
1999-01-07 00:10:32 +00:00
Ben Laurie
5b00115ab0 Fix export tests. 1999-01-06 23:18:08 +00:00
Ben Laurie
f8c3c05db9 Make the world a safer place (if people object to this kind of change, speak up
soon - I intend to do a lot of it!).
1999-01-06 22:53:34 +00:00
Dr. Stephen Henson
384c479c85 Oops! update CHANGES file properly. 1999-01-06 01:41:21 +00:00
Dr. Stephen Henson
ad65ce755e Fix things so DH_free() will be no-op when passed NULL, like RSA_free() and
DSA_free(): this was causing crashes when for example an attempt was made
to handle a (currently) unsupported DH public key. Also X509_PUBKEY_set()i
wasn't checking errors from d2i_PublicKey().
1999-01-06 01:39:24 +00:00
Ben Laurie
e416ad9772 Free the right thing. 1999-01-04 21:43:32 +00:00
Ben Laurie
4a18cddd16 Only free if it ain't NULL. 1999-01-04 21:39:34 +00:00
Ben Laurie
bb65e20b1c Remove the bugfix that was really a bug.
Submitted by: Arne Ansper <arne@ats.cyber.ee>
1999-01-04 20:11:31 +00:00
Ben Laurie
b5e406f755 Pass on BIO_CTRL_FLUSH.
Submitted by: Arne Ansper <arne@ats.cyber.ee>
1999-01-04 19:55:12 +00:00
Paul C. Sutton
888007108b The dir is named util/ and better to explicitly call the
perl interpreter because not everyone has it in /usr/local/bin/perl.
1999-01-04 09:58:25 +00:00
Dr. Stephen Henson
10061c7c47 More EVP_PKEY patches for new functionality. 1999-01-03 23:00:45 +00:00
Ralf S. Engelschall
cb0f35d716 Make sure the already existing X509_STORE->depth variable is initialized
in X509_STORE_new(), but document the fact that this variable is still
unused in the certificate verification process.
1999-01-03 15:31:11 +00:00
Ralf S. Engelschall
8a8d8ededd The dir is named util/ and better to explicitly call the
perl interpreter because not everyone has it in /usr/local/bin/perl.
1999-01-03 14:58:44 +00:00
Ralf S. Engelschall
4c7b481b4c More .cvsignore stuff to make CVS quiet on our generated files. 1999-01-03 13:17:47 +00:00
Dr. Stephen Henson
098fc2c0d8 Remove one EVP_PKEY_free() that shouldn't be there. 1999-01-03 02:15:34 +00:00
Dr. Stephen Henson
cfcf645356 Make sure applications free up pkey structures and add netscape extension
handling to x509.c
1999-01-03 01:08:33 +00:00
Ben Laurie
cdbb8c2f26 Fix reference counting. 1999-01-02 19:04:27 +00:00
Ben Laurie
c2245b68f5 Don't confuse matters by using the wrong library. 1999-01-02 19:03:46 +00:00
Ben Laurie
288370ea26 Fix tests for ssleay -> openssl. 1999-01-02 19:01:41 +00:00
Ralf S. Engelschall
2ec077d87e A few train of thoughts about the build procedure mess 1999-01-02 16:28:51 +00:00
Paul C. Sutton
c142bdf725 Update scripts to use "openssl" instead of "ssleay" 1999-01-02 16:02:24 +00:00
Paul C. Sutton
c9f06e7f9f Reflect change from "ssleay" to "openssl" as the main binary name.
Also document "sh config" as an easier alternative to "./Configure
system".
1999-01-02 15:53:22 +00:00
Paul C. Sutton
724e095e76 Various ssleay to openssl fixups 1999-01-02 15:52:11 +00:00
Paul C. Sutton
794b9c8f50 Binary is now apps/openssl not apps/ssleay so use the new name when
rehashing the test certs
1999-01-02 15:08:29 +00:00
Paul C. Sutton
251f25e0b5 A couple more ssleay.cnf to openssl.cnf changes 1999-01-02 15:05:08 +00:00
Paul C. Sutton
e170a5c050 Some more changes for renaming the binary from ssleay to openssl.
I wonder what eay.c is?
1999-01-02 14:42:23 +00:00
Ralf S. Engelschall
06d5b16225 First cut of a cleanup for apps/. First the `ssleay' program is now named
`openssl' and second, the shortcut symlinks for the `openssl <command>' are no
longer created. This way we have a single and consistent command line
interface `openssl <command>', similar to `cvs <command>'.

Notice, the openssl.cnf, openssl.c and progs.pl files were changed after a
repository copy, i.e. they still contain the complete file history.
1999-01-02 12:59:33 +00:00
Ralf S. Engelschall
0491b70983 Make GCC happy by removing an unused variable defintion. 1999-01-02 12:10:43 +00:00
Dr. Stephen Henson
c35f549e8b Move DSA test in ca.c inside #ifdef and make pubkey BIT STRING always have
zero unused bits.
1999-01-02 01:53:06 +00:00
Dr. Stephen Henson
ebc828cad9 Add extended key usage OID and update STATUS file. 1999-01-01 18:43:44 +00:00
Ralf S. Engelschall
96e479e360 cleanup of apps/ and an answer 1999-01-01 15:58:14 +00:00
Paul C. Sutton
a472dde430 ssldir.pl did not correctly set the directory in utils/mk1mk.pl when
perl5 was used.
1999-01-01 14:17:55 +00:00
Paul C. Sutton
68a8a41bef Add votes 1999-01-01 14:13:59 +00:00
Paul C. Sutton
79e259e3ce Make the installation documentation easier to follow. 1999-01-01 14:04:07 +00:00
Paul C. Sutton
56ee3117a5 Makefiles updated to exit if an error occurs in a sub-directory make
(including if user presses ^C)
1999-01-01 12:51:11 +00:00
stephen
8f3e97bac3 This is a quick hack conversion of the 'CA.sh' script to perl. It fixes one
bug in the original but is otherwise just as horrible :-)
1999-01-01 00:54:48 +00:00
Ralf S. Engelschall
f7ceceb518 Remove more old temporary files from CVS 1998-12-31 21:51:27 +00:00
Ben Laurie
6063b27bb6 Document recent changes. 1998-12-31 17:11:46 +00:00
Ben Laurie
c77f1b37fd Fix name delete problem. 1998-12-31 17:08:34 +00:00
Ben Laurie
c54b4ee16a Fix pem/err ordering. 1998-12-31 16:50:03 +00:00
Ralf S. Engelschall
c1374a7dc0 A hint about the license 1998-12-31 12:52:23 +00:00
Ralf S. Engelschall
a6f20a1e01 Some issues for voting 1998-12-31 12:14:27 +00:00
Ralf S. Engelschall
9f28c57cea More structuring and sorting of the SSL API documentation.
And the first steps to descriptions in prosa.
1998-12-31 11:18:15 +00:00
Ralf S. Engelschall
fcc6c7199b Puhhh... now we've documented the prototypes of all 214 API "functions". This
is a pain to do, because of the various macro definitions which I had to
expand manually to get their prototype :-(

What's now needed is a volunteer who wants to write down one or two sentences
per API function to document it a little bit...
1998-12-31 10:33:17 +00:00
Ralf S. Engelschall
9cb0969f65 Fix version stuff:
1. The already released version was 0.9.1c and not 0.9.1b

2. The next release should be 0.9.2 and not 0.9.1d, because
   first the changes are already too large, second we should avoid any more
   0.9.1x confusions and third, the Apache version semantics of
   VERSION.REVISION.PATCHLEVEL for the version string is reasonable (and here
   .2 is already just a patchlevel and not major change).
tVS: ----------------------------------------------------------------------
1998-12-31 09:36:40 +00:00
stephen
792a90020f Update CHANGES file for latest additions 1998-12-31 01:35:07 +00:00
stephen
e9b8eb3155 Fix for sk_insert bug: it never worked properly.
Allow explicit tag asn macros to handle indefinite length constructed stuff:
without this certain "certificates" can't be read in.
1998-12-31 00:59:02 +00:00
Ralf S. Engelschall
88fce97953 MIME encoding and ISO chars at the same time messes up the stuff 1998-12-30 23:09:13 +00:00
Ralf S. Engelschall
ce72df1c6a Ops, forgot to commit the changes entry in recent commit... 1998-12-30 23:07:32 +00:00
Ralf S. Engelschall
db1842132f Cleanup of doc/ directory: The old/obsolete SSLeay files are now assembled
together in a ssleay.txt file.
1998-12-30 22:58:47 +00:00
stephen
0c106d75e3 fix pk7_doit.c for new i2d_ASN1_SET argument 1998-12-30 20:34:50 +00:00
stephen
d97b4dd866 external error lib number now global and allow error lib to have a name 1998-12-30 18:42:02 +00:00
Ralf S. Engelschall
75b8dfc068 Create a STATUS file to coordinate us. Feel free to edit 1998-12-30 09:08:05 +00:00
Ralf S. Engelschall
1b4559977e Replace AUTHOR with a better HISTORY as in FreeBSD's manpages 1998-12-30 07:21:32 +00:00
Ralf S. Engelschall
9b21f59103 Fix an error message 1998-12-30 07:12:35 +00:00
Ben Laurie
4098e89cbf Fix incorrect DER encoding of SETs and all knock-ons from that. 1998-12-29 21:43:55 +00:00
Ben Laurie
03f8b04277 Add prototypes. Make Montgomery stuff explicitly for that purpose. 1998-12-29 17:22:31 +00:00
Ralf S. Engelschall
cb496082f8 Import the first cut for manual pages.
They are written in Perl's POD format for two reasons: First Perl is already
needed for SSLeay and second, POD is easy to write and maintain _AND_ created
nice looking NRoff manpages.

The idea is to have three manual pages:

  openssl(1) ... The manpage for the `openssl' program (formerly ssleay)
  crypto(3) .... The manpage for crypto.h/libcrypto.a
  ssl(3) ....... The manpage for ssl.h/libssl.a

The openssl(1) should be very similar to cvs(1), i.e.  it should document all
commands in a compact way.  And I've even created the first cut for an
overview of all 243 functions of the SSL API for ssl.pod. More to come...
1998-12-29 17:12:34 +00:00
Ben Laurie
f2d4be3b84 Make Configure work again after eliminating files. 1998-12-28 22:05:44 +00:00
Ben Laurie
8d7ed6ff90 Deal with generated files. 1998-12-28 21:58:19 +00:00
Ben Laurie
29c7896f13 This is not a bug in NT Perl, its a bug in Configure. 1998-12-28 19:36:49 +00:00
Ben Laurie
448cb8b56f Require Perl 5. 1998-12-28 17:37:17 +00:00
Ben Laurie
11ee069b91 Fix option listing. 1998-12-28 17:35:02 +00:00
Ben Laurie
9228157c07 Typo. 1998-12-28 17:15:43 +00:00
Ben Laurie
5dcdcd475c Autodetect FreeBSD 3. 1998-12-28 17:14:28 +00:00
Ben Laurie
1641cb6043 Add strictness, fix variable substition bugs. 1998-12-28 17:08:48 +00:00
Ralf S. Engelschall
bb258c1c5e Test remote CVS commit... 1998-12-28 09:36:31 +00:00
Ralf S. Engelschall
ae82b46ffb Test for new CVS repository 1998-12-26 12:42:56 +00:00
Ralf S. Engelschall
320a14cb5b *** empty log message *** 1998-12-23 12:09:47 +00:00
Ralf S. Engelschall
f10a5c2a96 *** empty log message *** 1998-12-23 08:18:47 +00:00
Ralf S. Engelschall
9ce5db45be *** empty log message *** 1998-12-23 07:58:53 +00:00
Ralf S. Engelschall
457c8a3965 Add include dir 1998-12-23 07:55:37 +00:00
Ralf S. Engelschall
5f32680329 Switch version string to SSLeay/OpenSSL 1998-12-23 07:53:55 +00:00
Ralf S. Engelschall
9acc2aa6d1 *** empty log message *** 1998-12-23 07:42:26 +00:00
Ralf S. Engelschall
f1c236f849 Switch to OpenSSL name 1998-12-23 07:38:54 +00:00
Ralf S. Engelschall
f92e687e17 Fix unused variable warning of GCC 1998-12-22 16:20:18 +00:00
Ralf S. Engelschall
305f402e75 *** empty log message *** 1998-12-22 16:04:08 +00:00
Ralf S. Engelschall
c537fb08cd OpenTLS ready 1998-12-22 16:01:06 +00:00
Ralf S. Engelschall
13e91dd365 Incorporation of RSEs assembled patches 1998-12-22 15:59:57 +00:00
Ralf S. Engelschall
8c6c8d80b7 *** empty log message *** 1998-12-22 15:08:48 +00:00
Ralf S. Engelschall
651d0aff98 Various cleanups and fixed by Marc and Ralf to start the OpenTLS project 1998-12-22 15:04:48 +00:00
Ralf S. Engelschall
31b8d86844 This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
1998-12-21 11:00:56 +00:00
Ralf S. Engelschall
dfeab0689f Import of old SSLeay release: SSLeay 0.9.1b (unreleased) 1998-12-21 11:00:56 +00:00
Ralf S. Engelschall
7dfb0b774e This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
1998-12-21 11:00:43 +00:00
Ralf S. Engelschall
15403de6ca Import of old SSLeay release: SSLeay 0.9.1b (unreleased) 1998-12-21 11:00:43 +00:00
Ralf S. Engelschall
78414a6a89 This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
1998-12-21 10:56:39 +00:00
Ralf S. Engelschall
eda1f21f1a This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
1998-12-21 10:56:30 +00:00
Ralf S. Engelschall
b7896b3cb8 This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
1998-12-21 10:52:47 +00:00
Ralf S. Engelschall
90718ac527 This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
1998-12-21 10:52:45 +00:00
875 changed files with 60873 additions and 28082 deletions

1
.cvsignore Normal file
View File

@@ -0,0 +1 @@
Makefile.ssl

833
CHANGES Normal file
View File

@@ -0,0 +1,833 @@
OpenSSL CHANGES
_______________
Changes between 0.9.1c and 0.9.2b
*) Make SSL_get_peer_cert_chain() work in servers. Unfortunately, it still
doesn't work when the session is reused. Coming soon!
[Ben Laurie]
*) Fix a security hole, that allows sessions to be reused in the wrong
context thus bypassing client cert protection! All software that uses
client certs and session caches in multiple contexts NEEDS PATCHING to
allow session reuse! A fuller solution is in the works.
[Ben Laurie, problem pointed out by Holger Reif, Bodo Moeller (and ???)]
*) Some more source tree cleanups (removed obsolete files
crypto/bf/asm/bf586.pl, test/test.txt and crypto/sha/asm/f.s; changed
permission on "config" script to be executable) and a fix for the INSTALL
document.
[Ulf Moeller <ulf@fitug.de>]
*) Remove some legacy and erroneous uses of malloc, free instead of
Malloc, Free.
[Lennart Bang <lob@netstream.se>, with minor changes by Steve]
*) Make rsa_oaep_test return non-zero on error.
[Ulf Moeller <ulf@fitug.de>]
*) Add support for native Solaris shared libraries. Configure
solaris-sparc-sc4-pic, make, then run shlib/solaris-sc4.sh. It'd be nice
if someone would make that last step automatic.
[Matthias Loepfe <Matthias.Loepfe@AdNovum.CH>]
*) ctx_size was not built with the right compiler during "make links". Fixed.
[Ben Laurie]
*) Change the meaning of 'ALL' in the cipher list. It now means "everything
except NULL ciphers". This means the default cipher list will no longer
enable NULL ciphers. They need to be specifically enabled e.g. with
the string "DEFAULT:eNULL".
[Steve Henson]
*) Fix to RSA private encryption routines: if p < q then it would
occasionally produce an invalid result. This will only happen with
externally generated keys because OpenSSL (and SSLeay) ensure p > q.
[Steve Henson]
*) Be less restrictive and allow also `perl util/perlpath.pl
/path/to/bin/perl' in addition to `perl util/perlpath.pl /path/to/bin',
because this way one can also use an interpreter named `perl5' (which is
usually the name of Perl 5.xxx on platforms where an Perl 4.x is still
installed as `perl').
[Matthias Loepfe <Matthias.Loepfe@adnovum.ch>]
*) Let util/clean-depend.pl work also with older Perl 5.00x versions.
[Matthias Loepfe <Matthias.Loepfe@adnovum.ch>]
*) Fix Makefile.org so CC,CFLAG etc are passed to 'make links' add
advapi32.lib to Win32 build and change the pem test comparision
to fc.exe (thanks to Ulrich Kroener <kroneru@yahoo.com> for the
suggestion). Fix misplaced ASNI prototypes and declarations in evp.h
and crypto/des/ede_cbcm_enc.c.
[Steve Henson]
*) DES quad checksum was broken on big-endian architectures. Fixed.
[Ben Laurie]
*) Comment out two functions in bio.h that aren't implemented. Fix up the
Win32 test batch file so it (might) work again. The Win32 test batch file
is horrible: I feel ill....
[Steve Henson]
*) Move various #ifdefs around so NO_SYSLOG, NO_DIRENT etc are now selected
in e_os.h. Audit of header files to check ANSI and non ANSI
sections: 10 functions were absent from non ANSI section and not exported
from Windows DLLs. Fixed up libeay.num for new functions.
[Steve Henson]
*) Make `openssl version' output lines consistent.
[Ralf S. Engelschall]
*) Fix Win32 symbol export lists for BIO functions: Added
BIO_get_ex_new_index, BIO_get_ex_num, BIO_get_ex_data and BIO_set_ex_data
to ms/libeay{16,32}.def.
[Ralf S. Engelschall]
*) Second round of fixing the OpenSSL perl/ stuff. It now at least compiled
fine under Unix and passes some trivial tests I've now added. But the
whole stuff is horribly incomplete, so a README.1ST with a disclaimer was
added to make sure no one expects that this stuff really works in the
OpenSSL 0.9.2 release. Additionally I've started to clean the XS sources
up and fixed a few little bugs and inconsistencies in OpenSSL.{pm,xs} and
openssl_bio.xs.
[Ralf S. Engelschall]
*) Fix the generation of two part addresses in perl.
[Kenji Miyake <kenji@miyake.org>, integrated by Ben Laurie]
*) Add config entry for Linux on MIPS.
[John Tobey <jtobey@channel1.com>]
*) Make links whenever Configure is run, unless we are on Windoze.
[Ben Laurie]
*) Permit extensions to be added to CRLs using crl_section in openssl.cnf.
Currently only issuerAltName and AuthorityKeyIdentifier make any sense
in CRLs.
[Steve Henson]
*) Add a useful kludge to allow package maintainers to specify compiler and
other platforms details on the command line without having to patch the
Configure script everytime: One now can use ``perl Configure
<id>:<details>'', i.e. platform ids are allowed to have details appended
to them (seperated by colons). This is treated as there would be a static
pre-configured entry in Configure's %table under key <id> with value
<details> and ``perl Configure <id>'' is called. So, when you want to
perform a quick test-compile under FreeBSD 3.1 with pgcc and without
assembler stuff you can use ``perl Configure "FreeBSD-elf:pgcc:-O6:::"''
now, which overrides the FreeBSD-elf entry on-the-fly.
[Ralf S. Engelschall]
*) Disable new TLS1 ciphersuites by default: they aren't official yet.
[Ben Laurie]
*) Allow DSO flags like -fpic, -fPIC, -KPIC etc. to be specified
on the `perl Configure ...' command line. This way one can compile
OpenSSL libraries with Position Independent Code (PIC) which is needed
for linking it into DSOs.
[Ralf S. Engelschall]
*) Remarkably, export ciphers were totally broken and no-one had noticed!
Fixed.
[Ben Laurie]
*) Cleaned up the LICENSE document: The official contact for any license
questions now is the OpenSSL core team under openssl-core@openssl.org.
And add a paragraph about the dual-license situation to make sure people
recognize that _BOTH_ the OpenSSL license _AND_ the SSLeay license apply
to the OpenSSL toolkit.
[Ralf S. Engelschall]
*) General source tree makefile cleanups: Made `making xxx in yyy...'
display consistent in the source tree and replaced `/bin/rm' by `rm'.
Additonally cleaned up the `make links' target: Remove unnecessary
semicolons, subsequent redundant removes, inline point.sh into mklink.sh
to speed processing and no longer clutter the display with confusing
stuff. Instead only the actually done links are displayed.
[Ralf S. Engelschall]
*) Permit null encryption ciphersuites, used for authentication only. It used
to be necessary to set the preprocessor define SSL_ALLOW_ENULL to do this.
It is now necessary to set SSL_FORBID_ENULL to prevent the use of null
encryption.
[Ben Laurie]
*) Add a bunch of fixes to the PKCS#7 stuff. It used to sometimes reorder
signed attributes when verifying signatures (this would break them),
the detached data encoding was wrong and public keys obtained using
X509_get_pubkey() weren't freed.
[Steve Henson]
*) Add text documentation for the BUFFER functions. Also added a work around
to a Win95 console bug. This was triggered by the password read stuff: the
last character typed gets carried over to the next fread(). If you were
generating a new cert request using 'req' for example then the last
character of the passphrase would be CR which would then enter the first
field as blank.
[Steve Henson]
*) Added the new `Includes OpenSSL Cryptography Software' button as
doc/openssl_button.{gif,html} which is similar in style to the old SSLeay
button and can be used by applications based on OpenSSL to show the
relationship to the OpenSSL project.
[Ralf S. Engelschall]
*) Remove confusing variables in function signatures in files
ssl/ssl_lib.c and ssl/ssl.h.
[Lennart Bong <lob@kulthea.stacken.kth.se>]
*) Don't install bss_file.c under PREFIX/include/
[Lennart Bong <lob@kulthea.stacken.kth.se>]
*) Get the Win32 compile working again. Modify mkdef.pl so it can handle
functions that return function pointers and has support for NT specific
stuff. Fix mk1mf.pl and VC-32.pl to support NT differences also. Various
#ifdef WIN32 and WINNTs sprinkled about the place and some changes from
unsigned to signed types: this was killing the Win32 compile.
[Steve Henson]
*) Add new certificate file to stack functions,
SSL_add_dir_cert_subjects_to_stack() and
SSL_add_file_cert_subjects_to_stack(). These largely supplant
SSL_load_client_CA_file(), and can be used to add multiple certs easily
to a stack (usually this is then handed to SSL_CTX_set_client_CA_list()).
This means that Apache-SSL and similar packages don't have to mess around
to add as many CAs as they want to the preferred list.
[Ben Laurie]
*) Experiment with doxygen documentation. Currently only partially applied to
ssl/ssl_lib.c.
See http://www.stack.nl/~dimitri/doxygen/index.html, and run doxygen with
openssl.doxy as the configuration file.
[Ben Laurie]
*) Get rid of remaining C++-style comments which strict C compilers hate.
[Ralf S. Engelschall, pointed out by Carlos Amengual]
*) Changed BN_RECURSION in bn_mont.c to BN_RECURSION_MONT so it is not
compiled in by default: it has problems with large keys.
[Steve Henson]
*) Add a bunch of SSL_xxx() functions for configuring the temporary RSA and
DH private keys and/or callback functions which directly correspond to
their SSL_CTX_xxx() counterparts but work on a per-connection basis. This
is needed for applications which have to configure certificates on a
per-connection basis (e.g. Apache+mod_ssl) instead of a per-context basis
(e.g. s_server).
For the RSA certificate situation is makes no difference, but
for the DSA certificate situation this fixes the "no shared cipher"
problem where the OpenSSL cipher selection procedure failed because the
temporary keys were not overtaken from the context and the API provided
no way to reconfigure them.
The new functions now let applications reconfigure the stuff and they
are in detail: SSL_need_tmp_RSA, SSL_set_tmp_rsa, SSL_set_tmp_dh,
SSL_set_tmp_rsa_callback and SSL_set_tmp_dh_callback. Additionally a new
non-public-API function ssl_cert_instantiate() is used as a helper
function and also to reduce code redundancy inside ssl_rsa.c.
[Ralf S. Engelschall]
*) Move s_server -dcert and -dkey options out of the undocumented feature
area because they are useful for the DSA situation and should be
recognized by the users.
[Ralf S. Engelschall]
*) Fix the cipher decision scheme for export ciphers: the export bits are
*not* within SSL_MKEY_MASK or SSL_AUTH_MASK, they are within
SSL_EXP_MASK. So, the original variable has to be used instead of the
already masked variable.
[Richard Levitte <levitte@stacken.kth.se>]
*) Fix 'port' variable from `int' to `unsigned int' in crypto/bio/b_sock.c
[Richard Levitte <levitte@stacken.kth.se>]
*) Change type of another md_len variable in pk7_doit.c:PKCS7_dataFinal()
from `int' to `unsigned int' because it's a length and initialized by
EVP_DigestFinal() which expects an `unsigned int *'.
[Richard Levitte <levitte@stacken.kth.se>]
*) Don't hard-code path to Perl interpreter on shebang line of Configure
script. Instead use the usual Shell->Perl transition trick.
[Ralf S. Engelschall]
*) Make `openssl x509 -noout -modulus' functional also for DSA certificates
(in addition to RSA certificates) to match the behaviour of `openssl dsa
-noout -modulus' as it's already the case for `openssl rsa -noout
-modulus'. For RSA the -modulus is the real "modulus" while for DSA
currently the public key is printed (a decision which was already done by
`openssl dsa -modulus' in the past) which serves a similar purpose.
Additionally the NO_RSA no longer completely removes the whole -modulus
option; it now only avoids using the RSA stuff. Same applies to NO_DSA
now, too.
[Ralf S. Engelschall]
*) Add Arne Ansper's reliable BIO - this is an encrypted, block-digested
BIO. See the source (crypto/evp/bio_ok.c) for more info.
[Arne Ansper <arne@ats.cyber.ee>]
*) Dump the old yucky req code that tried (and failed) to allow raw OIDs
to be added. Now both 'req' and 'ca' can use new objects defined in the
config file.
[Steve Henson]
*) Add cool BIO that does syslog (or event log on NT).
[Arne Ansper <arne@ats.cyber.ee>, integrated by Ben Laurie]
*) Add support for new TLS ciphersuites, TLS_RSA_EXPORT56_WITH_RC4_56_MD5,
TLS_RSA_EXPORT56_WITH_RC2_CBC_56_MD5 and
TLS_RSA_EXPORT56_WITH_DES_CBC_SHA, as specified in "56-bit Export Cipher
Suites For TLS", draft-ietf-tls-56-bit-ciphersuites-00.txt.
[Ben Laurie]
*) Add preliminary config info for new extension code.
[Steve Henson]
*) Make RSA_NO_PADDING really use no padding.
[Ulf Moeller <ulf@fitug.de>]
*) Generate errors when private/public key check is done.
[Ben Laurie]
*) Overhaul for 'crl' utility. New function X509_CRL_print. Partial support
for some CRL extensions and new objects added.
[Steve Henson]
*) Really fix the ASN1 IMPLICIT bug this time... Partial support for private
key usage extension and fuller support for authority key id.
[Steve Henson]
*) Add OAEP encryption for the OpenSSL crypto library. OAEP is the improved
padding method for RSA, which is recommended for new applications in PKCS
#1 v2.0 (RFC 2437, October 1998).
OAEP (Optimal Asymmetric Encryption Padding) has better theoretical
foundations than the ad-hoc padding used in PKCS #1 v1.5. It is secure
against Bleichbacher's attack on RSA.
[Ulf Moeller <ulf@fitug.de>, reformatted, corrected and integrated by
Ben Laurie]
*) Updates to the new SSL compression code
[Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]
*) Fix so that the version number in the master secret, when passed
via RSA, checks that if TLS was proposed, but we roll back to SSLv3
(because the server will not accept higher), that the version number
is 0x03,0x01, not 0x03,0x00
[Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]
*) Run extensive memory leak checks on SSL apps. Fixed *lots* of memory
leaks in ssl/ relating to new X509_get_pubkey() behaviour. Also fixes
in apps/ and an unrelated leak in crypto/dsa/dsa_vrf.c
[Steve Henson]
*) Support for RAW extensions where an arbitrary extension can be
created by including its DER encoding. See apps/openssl.cnf for
an example.
[Steve Henson]
*) Make sure latest Perl versions don't interpret some generated C array
code as Perl array code in the crypto/err/err_genc.pl script.
[Lars Weber <3weber@informatik.uni-hamburg.de>]
*) Modify ms/do_ms.bat to not generate assembly language makefiles since
not many people have the assembler. Various Win32 compilation fixes and
update to the INSTALL.W32 file with (hopefully) more accurate Win32
build instructions.
[Steve Henson]
*) Modify configure script 'Configure' to automatically create crypto/date.h
file under Win32 and also build pem.h from pem.org. New script
util/mkfiles.pl to create the MINFO file on environments that can't do a
'make files': perl util/mkfiles.pl >MINFO should work.
[Steve Henson]
*) Major rework of DES function declarations, in the pursuit of correctness
and purity. As a result, many evil casts evaporated, and some weirdness,
too. You may find this causes warnings in your code. Zapping your evil
casts will probably fix them. Mostly.
[Ben Laurie]
*) Fix for a typo in asn1.h. Bug fix to object creation script
obj_dat.pl. It considered a zero in an object definition to mean
"end of object": none of the objects in objects.h have any zeros
so it wasn't spotted.
[Steve Henson, reported by Erwann ABALEA <eabalea@certplus.com>]
*) Add support for Triple DES Cipher Block Chaining with Output Feedback
Masking (CBCM). In the absence of test vectors, the best I have been able
to do is check that the decrypt undoes the encrypt, so far. Send me test
vectors if you have them.
[Ben Laurie]
*) Correct calculation of key length for export ciphers (too much space was
allocated for null ciphers). This has not been tested!
[Ben Laurie]
*) Modifications to the mkdef.pl for Win32 DEF file creation. The usage
message is now correct (it understands "crypto" and "ssl" on its
command line). There is also now an "update" option. This will update
the util/ssleay.num and util/libeay.num files with any new functions.
If you do a:
perl util/mkdef.pl crypto ssl update
it will update them.
[Steve Henson]
*) Overhauled the Perl interface (perl/*):
- ported BN stuff to OpenSSL's different BN library
- made the perl/ source tree CVS-aware
- renamed the package from SSLeay to OpenSSL (the files still contain
their history because I've copied them in the repository)
- removed obsolete files (the test scripts will be replaced
by better Test::Harness variants in the future)
[Ralf S. Engelschall]
*) First cut for a very conservative source tree cleanup:
1. merge various obsolete readme texts into doc/ssleay.txt
where we collect the old documents and readme texts.
2. remove the first part of files where I'm already sure that we no
longer need them because of three reasons: either they are just temporary
files which were left by Eric or they are preserved original files where
I've verified that the diff is also available in the CVS via "cvs diff
-rSSLeay_0_8_1b" or they were renamed (as it was definitely the case for
the crypto/md/ stuff).
[Ralf S. Engelschall]
*) More extension code. Incomplete support for subject and issuer alt
name, issuer and authority key id. Change the i2v function parameters
and add an extra 'crl' parameter in the X509V3_CTX structure: guess
what that's for :-) Fix to ASN1 macro which messed up
IMPLICIT tag and add f_enum.c which adds a2i, i2a for ENUMERATED.
[Steve Henson]
*) Preliminary support for ENUMERATED type. This is largely copied from the
INTEGER code.
[Steve Henson]
*) Add new function, EVP_MD_CTX_copy() to replace frequent use of memcpy.
[Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]
*) Make sure `make rehash' target really finds the `openssl' program.
[Ralf S. Engelschall, Matthias Loepfe <Matthias.Loepfe@adnovum.ch>]
*) Squeeze another 7% of speed out of MD5 assembler, at least on a P2. I'd
like to hear about it if this slows down other processors.
[Ben Laurie]
*) Add CygWin32 platform information to Configure script.
[Alan Batie <batie@aahz.jf.intel.com>]
*) Fixed ms/32all.bat script: `no_asm' -> `no-asm'
[Rainer W. Gerling <gerling@mpg-gv.mpg.de>]
*) New program nseq to manipulate netscape certificate sequences
[Steve Henson]
*) Modify crl2pkcs7 so it supports multiple -certfile arguments. Fix a
few typos.
[Steve Henson]
*) Fixes to BN code. Previously the default was to define BN_RECURSION
but the BN code had some problems that would cause failures when
doing certificate verification and some other functions.
[Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]
*) Add ASN1 and PEM code to support netscape certificate sequences.
[Steve Henson]
*) Add ASN1 and PEM code to support netscape certificate sequences.
[Steve Henson]
*) Add several PKIX and private extended key usage OIDs.
[Steve Henson]
*) Modify the 'ca' program to handle the new extension code. Modify
openssl.cnf for new extension format, add comments.
[Steve Henson]
*) More X509 V3 changes. Fix typo in v3_bitstr.c. Add support to 'req'
and add a sample to openssl.cnf so req -x509 now adds appropriate
CA extensions.
[Steve Henson]
*) Continued X509 V3 changes. Add to other makefiles, integrate with the
error code, add initial support to X509_print() and x509 application.
[Steve Henson]
*) Takes a deep breath and start addding X509 V3 extension support code. Add
files in crypto/x509v3. Move original stuff to crypto/x509v3/old. All this
stuff is currently isolated and isn't even compiled yet.
[Steve Henson]
*) Continuing patches for GeneralizedTime. Fix up certificate and CRL
ASN1 to use ASN1_TIME and modify print routines to use ASN1_TIME_print.
Removed the versions check from X509 routines when loading extensions:
this allows certain broken certificates that don't set the version
properly to be processed.
[Steve Henson]
*) Deal with irritating shit to do with dependencies, in YAAHW (Yet Another
Ad Hoc Way) - Makefile.ssls now all contain local dependencies, which
can still be regenerated with "make depend".
[Ben Laurie]
*) Spelling mistake in C version of CAST-128.
[Ben Laurie, reported by Jeremy Hylton <jeremy@cnri.reston.va.us>]
*) Changes to the error generation code. The perl script err-code.pl
now reads in the old error codes and retains the old numbers, only
adding new ones if necessary. It also only changes the .err files if new
codes are added. The makefiles have been modified to only insert errors
when needed (to avoid needlessly modifying header files). This is done
by only inserting errors if the .err file is newer than the auto generated
C file. To rebuild all the error codes from scratch (the old behaviour)
either modify crypto/Makefile.ssl to pass the -regen flag to err_code.pl
or delete all the .err files.
[Steve Henson]
*) CAST-128 was incorrectly implemented for short keys. The C version has
been fixed, but is untested. The assembler versions are also fixed, but
new assembler HAS NOT BEEN GENERATED FOR WIN32 - the Makefile needs fixing
to regenerate it if needed.
[Ben Laurie, reported (with fix for C version) by Jun-ichiro itojun
Hagino <itojun@kame.net>]
*) File was opened incorrectly in randfile.c.
[Ulf M<>ller <ulf@fitug.de>]
*) Beginning of support for GeneralizedTime. d2i, i2d, check and print
functions. Also ASN1_TIME suite which is a CHOICE of UTCTime or
GeneralizedTime. ASN1_TIME is the proper type used in certificates et
al: it's just almost always a UTCTime. Note this patch adds new error
codes so do a "make errors" if there are problems.
[Steve Henson]
*) Correct Linux 1 recognition in config.
[Ulf M<>ller <ulf@fitug.de>]
*) Remove pointless MD5 hash when using DSA keys in ca.
[Anonymous <nobody@replay.com>]
*) Generate an error if given an empty string as a cert directory. Also
generate an error if handed NULL (previously returned 0 to indicate an
error, but didn't set one).
[Ben Laurie, reported by Anonymous <nobody@replay.com>]
*) Add prototypes to SSL methods. Make SSL_write's buffer const, at last.
[Ben Laurie]
*) Fix the dummy function BN_ref_mod_exp() in rsaref.c to have the correct
parameters. This was causing a warning which killed off the Win32 compile.
[Steve Henson]
*) Remove C++ style comments from crypto/bn/bn_local.h.
[Neil Costigan <neil.costigan@celocom.com>]
*) The function OBJ_txt2nid was broken. It was supposed to return a nid
based on a text string, looking up short and long names and finally
"dot" format. The "dot" format stuff didn't work. Added new function
OBJ_txt2obj to do the same but return an ASN1_OBJECT and rewrote
OBJ_txt2nid to use it. OBJ_txt2obj can also return objects even if the
OID is not part of the table.
[Steve Henson]
*) Add prototypes to X509 lookup/verify methods, fixing a bug in
X509_LOOKUP_by_alias().
[Ben Laurie]
*) Sort openssl functions by name.
[Ben Laurie]
*) Get the gendsa program working (hopefully) and add it to app list. Remove
encryption from sample DSA keys (in case anyone is interested the password
was "1234").
[Steve Henson]
*) Make _all_ *_free functions accept a NULL pointer.
[Frans Heymans <fheymans@isaserver.be>]
*) If a DH key is generated in s3_srvr.c, don't blow it by trying to use
NULL pointers.
[Anonymous <nobody@replay.com>]
*) s_server should send the CAfile as acceptable CAs, not its own cert.
[Bodo Moeller <3moeller@informatik.uni-hamburg.de>]
*) Don't blow it for numeric -newkey arguments to apps/req.
[Bodo Moeller <3moeller@informatik.uni-hamburg.de>]
*) Temp key "for export" tests were wrong in s3_srvr.c.
[Anonymous <nobody@replay.com>]
*) Add prototype for temp key callback functions
SSL_CTX_set_tmp_{rsa,dh}_callback().
[Ben Laurie]
*) Make DH_free() tolerate being passed a NULL pointer (like RSA_free() and
DSA_free()). Make X509_PUBKEY_set() check for errors in d2i_PublicKey().
[Steve Henson]
*) X509_name_add_entry() freed the wrong thing after an error.
[Arne Ansper <arne@ats.cyber.ee>]
*) rsa_eay.c would attempt to free a NULL context.
[Arne Ansper <arne@ats.cyber.ee>]
*) BIO_s_socket() had a broken should_retry() on Windoze.
[Arne Ansper <arne@ats.cyber.ee>]
*) BIO_f_buffer() didn't pass on BIO_CTRL_FLUSH.
[Arne Ansper <arne@ats.cyber.ee>]
*) Make sure the already existing X509_STORE->depth variable is initialized
in X509_STORE_new(), but document the fact that this variable is still
unused in the certificate verification process.
[Ralf S. Engelschall]
*) Fix the various library and apps files to free up pkeys obtained from
X509_PUBKEY_get() et al. Also allow x509.c to handle netscape extensions.
[Steve Henson]
*) Fix reference counting in X509_PUBKEY_get(). This makes
demos/maurice/example2.c work, amongst others, probably.
[Steve Henson and Ben Laurie]
*) First cut of a cleanup for apps/. First the `ssleay' program is now named
`openssl' and second, the shortcut symlinks for the `openssl <command>'
are no longer created. This way we have a single and consistent command
line interface `openssl <command>', similar to `cvs <command>'.
[Ralf S. Engelschall, Paul Sutton and Ben Laurie]
*) ca.c: move test for DSA keys inside #ifndef NO_DSA. Make pubkey
BIT STRING wrapper always have zero unused bits.
[Steve Henson]
*) Add CA.pl, perl version of CA.sh, add extended key usage OID.
[Steve Henson]
*) Make the top-level INSTALL documentation easier to understand.
[Paul Sutton]
*) Makefiles updated to exit if an error occurs in a sub-directory
make (including if user presses ^C) [Paul Sutton]
*) Make Montgomery context stuff explicit in RSA data structure.
[Ben Laurie]
*) Fix build order of pem and err to allow for generated pem.h.
[Ben Laurie]
*) Fix renumbering bug in X509_NAME_delete_entry().
[Ben Laurie]
*) Enhanced the err-ins.pl script so it makes the error library number
global and can add a library name. This is needed for external ASN1 and
other error libraries.
[Steve Henson]
*) Fixed sk_insert which never worked properly.
[Steve Henson]
*) Fix ASN1 macros so they can handle indefinite length construted
EXPLICIT tags. Some non standard certificates use these: they can now
be read in.
[Steve Henson]
*) Merged the various old/obsolete SSLeay documentation files (doc/xxx.doc)
into a single doc/ssleay.txt bundle. This way the information is still
preserved but no longer messes up this directory. Now it's new room for
the new set of documenation files.
[Ralf S. Engelschall]
*) SETs were incorrectly DER encoded. This was a major pain, because they
shared code with SEQUENCEs, which aren't coded the same. This means that
almost everything to do with SETs or SEQUENCEs has either changed name or
number of arguments.
[Ben Laurie, based on a partial fix by GP Jayan <gp@nsj.co.jp>]
*) Fix test data to work with the above.
[Ben Laurie]
*) Fix the RSA header declarations that hid a bug I fixed in 0.9.0b but
was already fixed by Eric for 0.9.1 it seems.
[Ben Laurie - pointed out by Ulf M<>ller <ulf@fitug.de>]
*) Autodetect FreeBSD3.
[Ben Laurie]
*) Fix various bugs in Configure. This affects the following platforms:
nextstep
ncr-scde
unixware-2.0
unixware-2.0-pentium
sco5-cc.
[Ben Laurie]
*) Eliminate generated files from CVS. Reorder tests to regenerate files
before they are needed.
[Ben Laurie]
*) Generate Makefile.ssl from Makefile.org (to keep CVS happy).
[Ben Laurie]
Changes between 0.9.1b and 0.9.1c
*) Added OPENSSL_VERSION_NUMBER to crypto/crypto.h and
changed SSLeay to OpenSSL in version strings.
[Ralf S. Engelschall]
*) Some fixups to the top-level documents.
[Paul Sutton]
*) Fixed the nasty bug where rsaref.h was not found under compile-time
because the symlink to include/ was missing.
[Ralf S. Engelschall]
*) Incorporated the popular no-RSA/DSA-only patches
which allow to compile a RSA-free SSLeay.
[Andrew Cooke / Interrader Ldt., Ralf S. Engelschall]
*) Fixed nasty rehash problem under `make -f Makefile.ssl links'
when "ssleay" is still not found.
[Ralf S. Engelschall]
*) Added more platforms to Configure: Cray T3E, HPUX 11,
[Ralf S. Engelschall, Beckmann <beckman@acl.lanl.gov>]
*) Updated the README file.
[Ralf S. Engelschall]
*) Added various .cvsignore files in the CVS repository subdirs
to make a "cvs update" really silent.
[Ralf S. Engelschall]
*) Recompiled the error-definition header files and added
missing symbols to the Win32 linker tables.
[Ralf S. Engelschall]
*) Cleaned up the top-level documents;
o new files: CHANGES and LICENSE
o merged VERSION, HISTORY* and README* files a CHANGES.SSLeay
o merged COPYRIGHT into LICENSE
o removed obsolete TODO file
o renamed MICROSOFT to INSTALL.W32
[Ralf S. Engelschall]
*) Removed dummy files from the 0.9.1b source tree:
crypto/asn1/x crypto/bio/cd crypto/bio/fg crypto/bio/grep crypto/bio/vi
crypto/bn/asm/......add.c crypto/bn/asm/a.out crypto/dsa/f crypto/md5/f
crypto/pem/gmon.out crypto/perlasm/f crypto/pkcs7/build crypto/rsa/f
crypto/sha/asm/f crypto/threads/f ms/zzz ssl/f ssl/f.mak test/f
util/f.mak util/pl/f util/pl/f.mak crypto/bf/bf_locl.old apps/f
[Ralf S. Engelschall]
*) Added various platform portability fixes.
[Mark J. Cox]
*) The Genesis of the OpenSSL rpject:
We start with the latest (unreleased) SSLeay version 0.9.1b which Eric A.
Young and Tim J. Hudson created while they were working for C2Net until
summer 1998.
[The OpenSSL Project]
Changes between 0.9.0b and 0.9.1b
*) Updated a few CA certificates under certs/
[Eric A. Young]
*) Changed some BIGNUM api stuff.
[Eric A. Young]
*) Various platform ports: OpenBSD, Ultrix, IRIX 64bit, NetBSD,
DGUX x86, Linux Alpha, etc.
[Eric A. Young]
*) New COMP library [crypto/comp/] for SSL Record Layer Compression:
RLE (dummy implemented) and ZLIB (really implemented when ZLIB is
available).
[Eric A. Young]
*) Add -strparse option to asn1pars program which parses nested
binary structures
[Dr Stephen Henson <shenson@bigfoot.com>]
*) Added "oid_file" to ssleay.cnf for "ca" and "req" programs.
[Eric A. Young]
*) DSA fix for "ca" program.
[Eric A. Young]
*) Added "-genkey" option to "dsaparam" program.
[Eric A. Young]
*) Added RIPE MD160 (rmd160) message digest.
[Eric A. Young]
*) Added -a (all) option to "ssleay version" command.
[Eric A. Young]
*) Added PLATFORM define which is the id given to Configure.
[Eric A. Young]
*) Added MemCheck_XXXX functions to crypto/mem.c for memory checking.
[Eric A. Young]
*) Extended the ASN.1 parser routines.
[Eric A. Young]
*) Extended BIO routines to support REUSEADDR, seek, tell, etc.
[Eric A. Young]
*) Added a BN_CTX to the BN library.
[Eric A. Young]
*) Fixed the weak key values in DES library
[Eric A. Young]
*) Changed API in EVP library for cipher aliases.
[Eric A. Young]
*) Added support for RC2/64bit cipher.
[Eric A. Young]
*) Converted the lhash library to the crypto/mem.c functions.
[Eric A. Young]
*) Added more recognized ASN.1 object ids.
[Eric A. Young]
*) Added more RSA padding checks for SSL/TLS.
[Eric A. Young]
*) Added BIO proxy/filter functionality.
[Eric A. Young]
*) Added extra_certs to SSL_CTX which can be used
send extra CA certificates to the client in the CA cert chain sending
process. It can be configured with SSL_CTX_add_extra_chain_cert().
[Eric A. Young]
*) Now Fortezza is denied in the authentication phase because
this is key exchange mechanism is not supported by SSLeay at all.
[Eric A. Young]
*) Additional PKCS1 checks.
[Eric A. Young]
*) Support the string "TLSv1" for all TLS v1 ciphers.
[Eric A. Young]
*) Added function SSL_get_ex_data_X509_STORE_CTX_idx() which gives the
ex_data index of the SSL context in the X509_STORE_CTX ex_data.
[Eric A. Young]
*) Fixed a few memory leaks.
[Eric A. Young]
*) Fixed various code and comment typos.
[Eric A. Young]
*) A minor bug in ssl/s3_clnt.c where there would always be 4 0
bytes sent in the client random.
[Edward Bishop <ebishop@spyglass.com>]

View File

@@ -1,4 +1,529 @@
SSLeay 0.6.5
This file contains the changes for the SSLeay library up to version
0.9.0b. For later changes, see the file "CHANGES".
SSLeay CHANGES
______________
Changes between 0.8.x and 0.9.0b
10-Apr-1998
I said the next version would go out at easter, and so it shall.
I expect a 0.9.1 will follow with portability fixes in the next few weeks.
This is a quick, meet the deadline. Look to ssl-users for comments on what
is new etc.
eric (about to go bushwalking for the 4 day easter break :-)
16-Mar-98
- Patch for Cray T90 from Wayne Schroeder <schroede@SDSC.EDU>
- Lots and lots of changes
29-Jan-98
- ASN1_BIT_STRING_set_bit()/ASN1_BIT_STRING_get_bit() from
Goetz Babin-Ebell <babinebell@trustcenter.de>.
- SSL_version() now returns SSL2_VERSION, SSL3_VERSION or
TLS1_VERSION.
7-Jan-98
- Finally reworked the cipher string to ciphers again, so it
works correctly
- All the app_data stuff is now ex_data with funcion calls to access.
The index is supplied by a function and 'methods' can be setup
for the types that are called on XXX_new/XXX_free. This lets
applications get notified on creation and destruction. Some of
the RSA methods could be implemented this way and I may do so.
- Oh yes, SSL under perl5 is working at the basic level.
15-Dec-97
- Warning - the gethostbyname cache is not fully thread safe,
but it should work well enough.
- Major internal reworking of the app_data stuff. More functions
but if you were accessing ->app_data directly, things will
stop working.
- The perlv5 stuff is working. Currently on message digests,
ciphers and the bignum library.
9-Dec-97
- Modified re-negotiation so that server initated re-neg
will cause a SSL_read() to return -1 should retry.
The danger otherwise was that the server and the
client could end up both trying to read when using non-blocking
sockets.
4-Dec-97
- Lots of small changes
- Fix for binaray mode in Windows for the FILE BIO, thanks to
Bob Denny <rdenny@dc3.com>
17-Nov-97
- Quite a few internal cleanups, (removal of errno, and using macros
defined in e_os.h).
- A bug in ca.c, pointed out by yasuyuki-ito@d-cruise.co.jp, where
the automactic naming out output files was being stuffed up.
29-Oct-97
- The Cast5 cipher has been added. MD5 and SHA-1 are now in assember
for x86.
21-Oct-97
- Fixed a bug in the BIO_gethostbyname() cache.
15-Oct-97
- cbc mode for blowfish/des/3des is now in assember. Blowfish asm
has also been improved. At this point in time, on the pentium,
md5 is %80 faster, the unoptimesed sha-1 is %79 faster,
des-cbc is %28 faster, des-ede3-cbc is %9 faster and blowfish-cbc
is %62 faster.
12-Oct-97
- MEM_BUF_grow() has been fixed so that it always sets the buf->length
to the value we are 'growing' to. Think of MEM_BUF_grow() as the
way to set the length value correctly.
10-Oct-97
- I now hash for certificate lookup on the raw DER encoded RDN (md5).
This breaks things again :-(. This is efficent since I cache
the DER encoding of the RDN.
- The text DN now puts in the numeric OID instead of UNKNOWN.
- req can now process arbitary OIDs in the config file.
- I've been implementing md5 in x86 asm, much faster :-).
- Started sha1 in x86 asm, needs more work.
- Quite a few speedups in the BN stuff. RSA public operation
has been made faster by caching the BN_MONT_CTX structure.
The calulating of the Ai where A*Ai === 1 mod m was rather
expensive. Basically a 40-50% speedup on public operations.
The RSA speedup is now 15% on pentiums and %20 on pentium
pro.
30-Sep-97
- After doing some profiling, I added x86 adm for bn_add_words(),
which just adds 2 arrays of longs together. A %10 speedup
for 512 and 1024 bit RSA on the pentium pro.
29-Sep-97
- Converted the x86 bignum assembler to us the perl scripts
for generation.
23-Sep-97
- If SSL_set_session() is passed a NULL session, it now clears the
current session-id.
22-Sep-97
- Added a '-ss_cert file' to apps/ca.c. This will sign selfsigned
certificates.
- Bug in crypto/evp/encode.c where by decoding of 65 base64
encoded lines, one line at a time (via a memory BIO) would report
EOF after the first line was decoded.
- Fix in X509_find_by_issuer_and_serial() from
Dr Stephen Henson <shenson@bigfoot.com>
19-Sep-97
- NO_FP_API and NO_STDIO added.
- Put in sh config command. It auto runs Configure with the correct
parameters.
18-Sep-97
- Fix x509.c so if a DSA cert has different parameters to its parent,
they are left in place. Not tested yet.
16-Sep-97
- ssl_create_cipher_list() had some bugs, fixes from
Patrick Eisenacher <eisenach@stud.uni-frankfurt.de>
- Fixed a bug in the Base64 BIO, where it would return 1 instead
of -1 when end of input was encountered but should retry.
Basically a Base64/Memory BIO interaction problem.
- Added a HMAC set of functions in preporarion for TLS work.
15-Sep-97
- Top level makefile tweak - Cameron Simpson <cs@zip.com.au>
- Prime generation spead up %25 (512 bit prime, pentium pro linux)
by using montgomery multiplication in the prime number test.
11-Sep-97
- Ugly bug in ssl3_write_bytes(). Basically if application land
does a SSL_write(ssl,buf,len) where len > 16k, the SSLv3 write code
did not check the size and tried to copy the entire buffer.
This would tend to cause memory overwrites since SSLv3 has
a maximum packet size of 16k. If your program uses
buffers <= 16k, you would probably never see this problem.
- Fixed a new errors that were cause by malloc() not returning
0 initialised memory..
- SSL_OP_NETSCAPE_CA_DN_BUG was being switched on when using
SSL_CTX_set_options(ssl_ctx,SSL_OP_ALL); which was a bad thing
since this flags stops SSLeay being able to handle client
cert requests correctly.
08-Sep-97
- SSL_SESS_CACHE_NO_INTERNAL_LOOKUP option added. When switched
on, the SSL server routines will not use a SSL_SESSION that is
held in it's cache. This in intended to be used with the session-id
callbacks so that while the session-ids are still stored in the
cache, the decision to use them and how to look them up can be
done by the callbacks. The are the 'new', 'get' and 'remove'
callbacks. This can be used to determine the session-id
to use depending on information like which port/host the connection
is coming from. Since the are also SSL_SESSION_set_app_data() and
SSL_SESSION_get_app_data() functions, the application can hold
information against the session-id as well.
03-Sep-97
- Added lookup of CRLs to the by_dir method,
X509_load_crl_file() also added. Basically it means you can
lookup CRLs via the same system used to lookup certificates.
- Changed things so that the X509_NAME structure can contain
ASN.1 BIT_STRINGS which is required for the unique
identifier OID.
- Fixed some problems with the auto flushing of the session-id
cache. It was not occuring on the server side.
02-Sep-97
- Added SSL_CTX_sess_cache_size(SSL_CTX *ctx,unsigned long size)
which is the maximum number of entries allowed in the
session-id cache. This is enforced with a simple FIFO list.
The default size is 20*1024 entries which is rather large :-).
The Timeout code is still always operating.
01-Sep-97
- Added an argument to all the 'generate private key/prime`
callbacks. It is the last parameter so this should not
break existing code but it is needed for C++.
- Added the BIO_FLAGS_BASE64_NO_NL flag for the BIO_f_base64()
BIO. This lets the BIO read and write base64 encoded data
without inserting or looking for '\n' characters. The '-A'
flag turns this on when using apps/enc.c.
- RSA_NO_PADDING added to help BSAFE functionality. This is a
very dangerous thing to use, since RSA private key
operations without random padding bytes (as PKCS#1 adds) can
be attacked such that the private key can be revealed.
- ASN.1 bug and rc2-40-cbc and rc4-40 added by
Dr Stephen Henson <shenson@bigfoot.com>
31-Aug-97 (stuff added while I was away)
- Linux pthreads by Tim Hudson (tjh@cryptsoft.com).
- RSA_flags() added allowing bypass of pub/priv match check
in ssl/ssl_rsa.c - Tim Hudson.
- A few minor bugs.
SSLeay 0.8.1 released.
19-Jul-97
- Server side initated dynamic renegotiation is broken. I will fix
it when I get back from holidays.
15-Jul-97
- Quite a few small changes.
- INVALID_SOCKET usage cleanups from Alex Kiernan <alex@hisoft.co.uk>
09-Jul-97
- Added 2 new values to the SSL info callback.
SSL_CB_START which is passed when the SSL protocol is started
and SSL_CB_DONE when it has finished sucsessfully.
08-Jul-97
- Fixed a few bugs problems in apps/req.c and crypto/asn1/x_pkey.c
that related to DSA public/private keys.
- Added all the relevent PEM and normal IO functions to support
reading and writing RSAPublic keys.
- Changed makefiles to use ${AR} instead of 'ar r'
07-Jul-97
- Error in ERR_remove_state() that would leave a dangling reference
to a free()ed location - thanks to Alex Kiernan <alex@hisoft.co.uk>
- s_client now prints the X509_NAMEs passed from the server
when requesting a client cert.
- Added a ssl->type, which is one of SSL_ST_CONNECT or
SSL_ST_ACCEPT. I had to add it so I could tell if I was
a connect or an accept after the handshake had finished.
- SSL_get_client_CA_list(SSL *s) now returns the CA names
passed by the server if called by a client side SSL.
05-Jul-97
- Bug in X509_NAME_get_text_by_OBJ(), looking starting at index
0, not -1 :-( Fix from Tim Hudson (tjh@cryptsoft.com).
04-Jul-97
- Fixed some things in X509_NAME_add_entry(), thanks to
Matthew Donald <matthew@world.net>.
- I had a look at the cipher section and though that it was a
bit confused, so I've changed it.
- I was not setting up the RC4-64-MD5 cipher correctly. It is
a MS special that appears in exported MS Money.
- Error in all my DH ciphers. Section 7.6.7.3 of the SSLv3
spec. I was missing the two byte length header for the
ClientDiffieHellmanPublic value. This is a packet sent from
the client to the server. The SSL_OP_SSLEAY_080_CLIENT_DH_BUG
option will enable SSLeay server side SSLv3 accept either
the correct or my 080 packet format.
- Fixed a few typos in crypto/pem.org.
02-Jul-97
- Alias mapping for EVP_get_(digest|cipher)byname is now
performed before a lookup for actual cipher. This means
that an alias can be used to 're-direct' a cipher or a
digest.
- ASN1_read_bio() had a bug that only showed up when using a
memory BIO. When EOF is reached in the memory BIO, it is
reported as a -1 with BIO_should_retry() set to true.
01-Jul-97
- Fixed an error in X509_verify_cert() caused by my
miss-understanding how 'do { contine } while(0);' works.
Thanks to Emil Sit <sit@mit.edu> for educating me :-)
30-Jun-97
- Base64 decoding error. If the last data line did not end with
a '=', sometimes extra data would be returned.
- Another 'cut and paste' bug in x509.c related to setting up the
STDout BIO.
27-Jun-97
- apps/ciphers.c was not printing due to an editing error.
- Alex Kiernan <alex@hisoft.co.uk> send in a nice fix for
a library build error in util/mk1mf.pl
26-Jun-97
- Still did not have the auto 'experimental' code removal
script correct.
- A few header tweaks for Watcom 11.0 under Win32 from
Rolf Lindemann <Lindemann@maz-hh.de>
- 0 length OCTET_STRING bug in asn1_parse
- A minor fix with an non-existent function in the MS .def files.
- A few changes to the PKCS7 stuff.
25-Jun-97
SSLeay 0.8.0 finally it gets released.
24-Jun-97
Added a SSL_OP_EPHEMERAL_RSA option which causes all SSLv3 RSA keys to
use a temporary RSA key. This is experimental and needs some more work.
Fixed a few Win16 build problems.
23-Jun-97
SSLv3 bug. I was not doing the 'lookup' of the CERT structure
correctly. I was taking the SSL->ctx->default_cert when I should
have been using SSL->cert. The bug was in ssl/s3_srvr.c
20-Jun-97
X509_ATTRIBUTES were being encoded wrongly by apps/reg.c and the
rest of the library. Even though I had the code required to do
it correctly, apps/req.c was doing the wrong thing. I have fixed
and tested everything.
Missing a few #ifdef FIONBIO sections in crypto/bio/bss_acpt.c.
19-Jun-97
Fixed a bug in the SSLv2 server side first packet handling. When
using the non-blocking test BIO, the ssl->s2->first_packet flag
was being reset when a would-block failure occurred when reading
the first 5 bytes of the first packet. This caused the checking
logic to run at the wrong time and cause an error.
Fixed a problem with specifying cipher. If RC4-MD5 were used,
only the SSLv3 version would be picked up. Now this will pick
up both SSLv2 and SSLv3 versions. This required changing the
SSL_CIPHER->mask values so that they only mask the ciphers,
digests, authentication, export type and key-exchange algorithms.
I found that when a SSLv23 session is established, a reused
session, of type SSLv3 was attempting to write the SSLv2
ciphers, which were invalid. The SSL_METHOD->put_cipher_by_char
method has been modified so it will only write out cipher which
that method knows about.
Changes between 0.8.0 and 0.8.1
*) Mostly bug fixes.
There is an Ephemeral DH cipher problem which is fixed.
SSLeay 0.8.0
This version of SSLeay has quite a lot of things different from the
previous version.
Basically check all callback parameters, I will be producing documentation
about how to use things in th future. Currently I'm just getting 080 out
the door. Please not that there are several ways to do everything, and
most of the applications in the apps directory are hybrids, some using old
methods and some using new methods.
Have a look in demos/bio for some very simple programs and
apps/s_client.c and apps/s_server.c for some more advanced versions.
Notes are definitly needed but they are a week or so away.
Anyway, some quick nots from Tim Hudson (tjh@cryptsoft.com)
---
Quick porting notes for moving from SSLeay-0.6.x to SSLeay-0.8.x to
get those people that want to move to using the new code base off to
a quick start.
Note that Eric has tidied up a lot of the areas of the API that were
less than desirable and renamed quite a few things (as he had to break
the API in lots of places anyrate). There are a whole pile of additional
functions for making dealing with (and creating) certificates a lot
cleaner.
01-Jul-97
Tim Hudson
tjh@cryptsoft.com
---8<---
To maintain code that uses both SSLeay-0.6.x and SSLeay-0.8.x you could
use something like the following (assuming you #include "crypto.h" which
is something that you really should be doing).
#if SSLEAY_VERSION_NUMBER >= 0x0800
#define SSLEAY8
#endif
buffer.h -> splits into buffer.h and bio.h so you need to include bio.h
too if you are working with BIO internal stuff (as distinct
from simply using the interface in an opaque manner)
#include "bio.h" - required along with "buffer.h" if you write
your own BIO routines as the buffer and bio
stuff that was intermixed has been separated
out
envelope.h -> evp.h (which should have been done ages ago)
Initialisation ... don't forget these or you end up with code that
is missing the bits required to do useful things (like ciphers):
SSLeay_add_ssl_algorithms()
(probably also want SSL_load_error_strings() too but you should have
already had that call in place)
SSL_CTX_new() - requires an extra method parameter
SSL_CTX_new(SSLv23_method())
SSL_CTX_new(SSLv2_method())
SSL_CTX_new(SSLv3_method())
OR to only have the server or the client code
SSL_CTX_new(SSLv23_server_method())
SSL_CTX_new(SSLv2_server_method())
SSL_CTX_new(SSLv3_server_method())
or
SSL_CTX_new(SSLv23_client_method())
SSL_CTX_new(SSLv2_client_method())
SSL_CTX_new(SSLv3_client_method())
SSL_set_default_verify_paths() ... renamed to the more appropriate
SSL_CTX_set_default_verify_paths()
If you want to use client certificates then you have to add in a bit
of extra stuff in that a SSLv3 server sends a list of those CAs that
it will accept certificates from ... so you have to provide a list to
SSLeay otherwise certain browsers will not send client certs.
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(s_cert_file));
X509_NAME_oneline(X) -> X509_NAME_oneline(X,NULL,0)
or provide a buffer and size to copy the
result into
X509_add_cert -> X509_STORE_add_cert (and you might want to read the
notes on X509_NAME structure changes too)
VERIFICATION CODE
=================
The codes have all be renamed from VERIFY_ERR_* to X509_V_ERR_* to
more accurately reflect things.
The verification callback args are now packaged differently so that
extra fields for verification can be added easily in future without
having to break things by adding extra parameters each release :-)
X509_cert_verify_error_string -> X509_verify_cert_error_string
BIO INTERNALS
=============
Eric has fixed things so that extra flags can be introduced in
the BIO layer in future without having to play with all the BIO
modules by adding in some macros.
The ugly stuff using
b->flags ~= (BIO_FLAGS_RW|BIO_FLAGS_SHOULD_RETRY)
becomes
BIO_clear_retry_flags(b)
b->flags |= (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)
becomes
BIO_set_retry_read(b)
Also ... BIO_get_retry_flags(b), BIO_set_flags(b)
OTHER THINGS
============
X509_NAME has been altered so that it isn't just a STACK ... the STACK
is now in the "entries" field ... and there are a pile of nice functions
for getting at the details in a much cleaner manner.
SSL_CTX has been altered ... "cert" is no longer a direct member of this
structure ... things are now down under "cert_store" (see x509_vfy.h) and
things are no longer in a CERTIFICATE_CTX but instead in a X509_STORE.
If your code "knows" about this level of detail then it will need some
surgery.
If you depending on the incorrect spelling of a number of the error codes
then you will have to change your code as these have been fixed.
ENV_CIPHER "type" got renamed to "nid" and as that is what it actually
has been all along so this makes things clearer.
ify_cert_error_string(ctx->error));
SSL_R_NO_CIPHER_WE_TRUST -> SSL_R_NO_CIPHER_LIST
and SSL_R_REUSE_CIPHER_LIST_NOT_ZERO
Changes between 0.7.x and 0.8.0
*) There have been lots of changes, mostly the addition of SSLv3.
There have been many additions from people and amongst
others, C2Net has assisted greatly.
Changes between 0.7.x and 0.7.x
*) Internal development version only
SSLeay 0.6.6 13-Jan-1997
The main additions are
- assember for x86 DES improvments.
From 191,000 per second on a pentium 100, I now get 281,000. The inner
loop and the IP/FP modifications are from
Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>. Many thanks for his
contribution.
- The 'DES macros' introduced in 0.6.5 now have 3 types.
DES_PTR1, DES_PTR2 and 'normal'. As per before, des_opts reports which
is best and there is a summery of mine in crypto/des/options.txt
- A few bug fixes.
- Added blowfish. It is not used by SSL but all the other stuff that
deals with ciphers can use it in either ecb, cbc, cfb64 or ofb64 modes.
There are 3 options for optimising Blowfish. BF_PTR, BF_PTR2 and 'normal'.
BF_PTR2 is pentium/x86 specific. The correct option is setup in
the 'Configure' script.
- There is now a 'get client certificate' callback which can be
'non-blocking'. If more details are required, let me know. It will
documented more in SSLv3 when I finish it.
- Bug fixes from 0.6.5 including the infamous 'ca' bug. The 'make test'
now tests the ca program.
- Lots of little things modified and tweaked.
SSLeay 0.6.5
After quite some time (3 months), the new release. I have been very busy
for the last few months and so this is mostly bug fixes and improvments.
@@ -57,7 +582,7 @@ The main changes in this release
- 'ssleay ciphers' added, lists the default cipher list for SSLeay.
- RC2 key setup is now compatable with Netscape.
- Modifed server side of SSL implementation, big performance difference when
using session-id reuse.
using session-id reuse.
0.6.3
@@ -186,16 +711,16 @@ The wrappers are easy to write
function_fp(fp,x)
FILE *fp;
{
BIO *b;
int ret;
{
BIO *b;
int ret;
if ((b=BIO_new(BIO_s_file())) == NULL) error.....
BIO_set_fp(b,fp,BIO_NOCLOSE);
ret=function_bio(b,x);
BIO_free(b);
return(ret);
}
if ((b=BIO_new(BIO_s_file())) == NULL) error.....
BIO_set_fp(b,fp,BIO_NOCLOSE);
ret=function_bio(b,x);
BIO_free(b);
return(ret);
}
Remember, there are no functions that take FILE * in SSLeay when
compiled for Windows 3.1 DLL's.
@@ -236,8 +761,8 @@ The list of things to read and do
dgst -d
s_client -state (this uses a callback placed in the SSL state loop and
will be used else-where to help debug/monitor what
is happening.)
will be used else-where to help debug/monitor what
is happening.)
doc/why.doc
doc/bio.doc <- hmmm, needs lots of work.

View File

@@ -1,65 +0,0 @@
Copyright (C) 1997 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).
Please note that MD2, MD5 and IDEA are publically available standards
that contain sample implementations, I have re-coded them in my own
way but there is nothing special about those implementations. The DES
library is another mater :-).
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.]
The reason behind this being stated in this direct manner is past
experience in code simply being copied and the attribution removed
from it and then being distributed as part of other packages. This
implementation was a non-trivial and unpaid effort.

341
Configure
View File

@@ -1,4 +1,13 @@
#!/usr/local/bin/perl
:
eval 'exec perl -S $0 ${1+"$@"}'
if $running_under_some_shell;
##
## Configure -- OpenSSL source tree configuration script
##
require 5.000;
use strict;
#
# see PROBLEMS for instructions on what sort of things to do when
# tracking a bug --tjh
@@ -36,36 +45,35 @@
# MD5_ASM use some extra md5 assember,
# SHA1_ASM use some extra sha1 assember, must define L_ENDIAN for x86
# RMD160_ASM use some extra ripemd160 assember,
# BN_ASM use some extra bn assember,
$x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
# MD2_CHAR slags pentium pros
$x86_gcc_opts="RC4_INDEX MD2_INT BF_PTR2";
my $x86_gcc_opts="RC4_INDEX MD2_INT BF_PTR2";
# MODIFY THESE PARAMETERS IF YOU ARE GOING TO USE THE 'util/speed.sh SCRIPT
# Don't worry about these normally
$tcc="cc";
$tflags="-fast -Xa";
$tbn_mul="";
$tlib="-lnsl -lsocket";
my $tcc="cc";
my $tflags="-fast -Xa";
my $tbn_mul="";
my $tlib="-lnsl -lsocket";
#$bits1="SIXTEEN_BIT ";
#$bits2="THIRTY_TWO_BIT ";
$bits1="THIRTY_TWO_BIT ";
$bits2="SIXTY_FOUR_BIT ";
my $bits1="THIRTY_TWO_BIT ";
my $bits2="SIXTY_FOUR_BIT ";
$x86_sol_asm="asm/bn86-sol.o:asm/dx86-sol.o asm/yx86-sol.o:asm/bx86-sol.o:asm/mx86-sol.o:asm/sx86-sol.o:asm/cx86-sol.o:asm/rx86-sol.o:asm/rm86-sol.o:asm/r586-sol.o";
$x86_elf_asm="asm/bn86-elf.o:asm/dx86-elf.o asm/yx86-elf.o:asm/bx86-elf.o:asm/mx86-elf.o:asm/sx86-elf.o:asm/cx86-elf.o:asm/rx86-elf.o:asm/rm86-elf.o:asm/r586-elf.o";
$x86_out_asm="asm/bn86-out.o:asm/dx86-out.o asm/yx86-out.o:asm/bx86-out.o:asm/mx86-out.o:asm/sx86-out.o:asm/cx86-out.o:asm/rx86-out.o:asm/rm86-out.o:asm/r586-out.o";
$x86_bsdi_asm="asm/bn86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/mx86bsdi.o:asm/sx86bsdi.o:asm/cx86bsdi.o:asm/rx86bsdi.o:asm/rm86bsdi.o:asm/r586bsdi.o";
my $x86_sol_asm="asm/bn86-sol.o asm/co86-sol.o:asm/dx86-sol.o asm/yx86-sol.o:asm/bx86-sol.o:asm/mx86-sol.o:asm/sx86-sol.o:asm/cx86-sol.o:asm/rx86-sol.o:asm/rm86-sol.o:asm/r586-sol.o";
my $x86_elf_asm="asm/bn86-elf.o asm/co86-elf.o:asm/dx86-elf.o asm/yx86-elf.o:asm/bx86-elf.o:asm/mx86-elf.o:asm/sx86-elf.o:asm/cx86-elf.o:asm/rx86-elf.o:asm/rm86-elf.o:asm/r586-elf.o";
my $x86_out_asm="asm/bn86-out.o asm/co86-out.o:asm/dx86-out.o asm/yx86-out.o:asm/bx86-out.o:asm/mx86-out.o:asm/sx86-out.o:asm/cx86-out.o:asm/rx86-out.o:asm/rm86-out.o:asm/r586-out.o";
my $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/mx86bsdi.o:asm/sx86bsdi.o:asm/cx86bsdi.o:asm/rx86bsdi.o:asm/rm86bsdi.o:asm/r586bsdi.o";
# -DB_ENDIAN slows things down on a sparc for md5, but helps sha1.
# So the md5_locl.h file has an undef B_ENDIAN if sun is defined
#config-string CC : CFLAGS : LDFLAGS : special header file mods:bn_asm \
# des_asm:bf_asm
%table=(
my %table=(
#"b", "$tcc:$tflags:$tlib:$bits1:$tbn_mul::",
#"bl-4c-2c", "$tcc:$tflags:$tlib:${bits1}BN_LLONG RC4_CHAR MD2_CHAR:$tbn_mul::",
#"bl-4c-ri", "$tcc:$tflags:$tlib:${bits1}BN_LLONG RC4_CHAR RC4_INDEX:$tbn_mul::",
@@ -73,7 +81,9 @@ $x86_bsdi_asm="asm/bn86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/m
# A few of my development configs
"purify", "purify gcc:-g -DPURIFY -Wall:-lsocket -lnsl::::",
"debug", "gcc:-DREF_CHECK -DCRYPTO_MDEBUG -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::::",
"debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:-lefence::::",
"debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -O2 -Wall -Wshadow -Werror -pipe:::::",
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
"dist", "cc:-O -DNOPROTO::::",
# Basic configs that should work on any box
@@ -82,7 +92,7 @@ $x86_bsdi_asm="asm/bn86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/m
# My solaris setups
"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN -DBN_ASM:-lsocket -lnsl:BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_sol_asm:",
"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN:-lsocket -lnsl:BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_sol_asm",
"solaris-sparc-gcc","gcc:-O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN:-lsocket -lnsl:BN_LLONG RC4_CHAR DES_UNROLL BF_PTR:::",
# DO NOT use /xO[34] on sparc with SC3.0.
# It is broken, and will not pass the tests
@@ -95,6 +105,8 @@ $x86_bsdi_asm="asm/bn86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/m
"solaris-usparc-sc4","cc:-xtarget=ultra -xarch=v8plus -Xa -xO5 -DB_ENDIAN:\
-lsocket -lnsl:\
BN_LLONG RC4_CHAR DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparc.o::",
"solaris-sparc-sc4-pic","cc:-xO5 -Xa -DB_ENDIAN -KPIC:-lsocket -lnsl:\
BN_LLONG RC4_CHAR DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparc.o::",
# Sunos configs, assuming sparc for the gcc one.
"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::DES_UNROLL:::",
@@ -103,10 +115,16 @@ $x86_bsdi_asm="asm/bn86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/m
# SGI configurations. If the box is rather old (r3000 cpu), you will
# probably have to remove the '-mips2' flag. I've only been using
# IRIX 5.[23].
#"irix-gcc","gcc:-O2 -mips2::BN_LLONG RC4_INDEX RC4_CHAR:::",
"irix-gcc","gcc:-O2 -DTERMIOS -DB_ENDIAN::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR:::",
"irix-cc", "cc:-O2 -DTERMIOS -DB_ENDIAN::DES_PTR DES_RISC2 DES_UNROLL BF_PTR:asm/r3000.o::",
# I've recently done 32 and 64 bit mips assember, it make this RSA
# 3 times faster, use if at all possible.
#"irix-gcc","gcc:-O2 -mips2::SIXTY_FOUR_BIT BN_LLONG RC4_INDEX RC4_CHAR:::",
"irix-gcc","gcc:-O2 -DTERMIOS -DB_ENDIAN::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR:asm/mips1.o::",
"irix64-gcc","gcc:-mips3 -O2 -DTERMIOS -DB_ENDIAN::MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT:asm/mips3.o::",
"irix-cc", "cc:-O2 -use_readonly_const -DTERMIOS -DB_ENDIAN::BN_LLONG DES_PTR DES_RISC2 DES_UNROLL BF_PTR:asm/mips1.o::",
"irix64-cc", "cc:-O2 -use_readonly_const -DTERMIOS -DB_ENDIAN::DES_PTR DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT:asm/mips3.o::",
"debug-irix-cc", "cc:-w2 -g -DCRYPTO_MDEBUG -DTERMIOS -DB_ENDIAN:::asm/r3000.o::",
# This is the n64 mode build.
"irix-n64-cc", "cc:-64 -O2 -use_readonly_const -DTERMIOS::DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT:asm/mips3_64.o::",
# HPUX config. I've been building on HPUX 9, so the options may be
# different on version 10. The pa-risc2.o assember file is 2 times
@@ -117,30 +135,38 @@ $x86_bsdi_asm="asm/bn86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/m
"hpux-cc", "cc:-DB_ENDIAN -D_HPUX_SOURCE -Aa -Ae +ESlit +O4 -Wl,-a,archive::DES_PTR DES_UNROLL DES_RISC1:asm/pa-risc2.o::",
"hpux-kr-cc", "cc:-DB_ENDIAN -DNOCONST -DNOPROTO -D_HPUX_SOURCE::DES_PTR DES_UNROLL:asm/pa-risc2.o::",
"hpux-gcc", "gcc:-DB_ENDIAN -O3::BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
# HPUX from www.globus.org
"hpux11-32bit-cc","cc:+DA2.0 -DB_ENDIAN -D_HPUX_SOURCE -Aa -Ae +ESlit::DES_PTR DES_UNROLL DES_RISC1:::",
"hpux11-64bit-cc","cc:+DA2.0W -g -D_HPUX_SOURCE -Aa -Ae +ESlit::SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT :::",
# Dec Alpha, OSF/1 - the alpha400-cc is the flags for a 21164A with
# Dec Alpha, OSF/1 - the alpha164-cc is the flags for a 21164A with
# the new compiler
"alpha-gcc","gcc:-O3::SIXTY_FOUR_BIT_LONGS DES_INT DES_PTR DES_RISC2:asm/alpha.o::",
"alpha-cc", "cc:-O2::SIXTY_FOUR_BIT_LONGS DES_INT DES_PTR DES_RISC2:asm/alpha.o::",
"alpha400-cc", "cc:-arch host -tune host -fast -std -O4 -inline speed::SIXTY_FOUR_BIT_LONG:asm/alpha.o::",
# For gcc, the following gave a %50 speedup on a 164 over the 'DES_INT' version
"alpha-gcc","gcc:-O3::SIXTY_FOUR_BIT_LONG DES_UNROLL DES_RISC1:asm/alpha.o::",
"alpha-cc", "cc:-tune host -O4 -readonly_strings::SIXTY_FOUR_BIT_LONG:asm/alpha.o::",
"alpha164-cc", "cc:-tune host -fast -readonly_strings::SIXTY_FOUR_BIT_LONG:asm/alpha.o::",
# The intel boxes :-), It would be worth seeing if bsdi-gcc can use the
# bn86-elf.o file file since it is hand tweaked assembler.
"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -DBN_ASM -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
"debug-linux-elf","gcc:-DREF_CHECK -DBN_ASM -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall:-lefence:BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -DBN_ASM -O3 -fomit-frame-pointer -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
"debug-linux-elf","gcc:-DREF_CHECK -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall:-lefence:BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
"linux-mips", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
-Wuninitialized:::BN_LLONG:",
"NetBSD-sparc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::",
"NetBSD-m86", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::",
"NetBSD-x86", "gcc:-DTERMIOS -DBN_ASM -D_ANSI_SOURCE -O3 -fomit-frame-pointer -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:",
"FreeBSD", "gcc:-DTERMIOS -DBN_ASM -DL_ENDIAN -D_ANSI_SOURCE -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
#"bsdi-gcc", "gcc:-O3 -ffast-math -DBN_ASM -DL_ENDIAN -DPERL5 -m486::RSA_LLONG $x86_gc_des $x86_gcc_opts:$x86_bsdi_asm",
"nextstep", "cc:-O3 -Wall -DBN_ASM::BN_LLONG $x86_gcc_des $x86_gcc_opts:::",
"NetBSD-m68", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::",
"NetBSD-x86", "gcc:-DTERMIOS -D_ANSI_SOURCE -O3 -fomit-frame-pointer -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:",
#"FreeBSD", "gcc:-DTERMIOS -DL_ENDIAN -D_ANSI_SOURCE -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
"FreeBSD", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
"FreeBSD-elf", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
"bsdi-gcc", "gcc:-O3 -ffast-math -DL_ENDIAN -DPERL5 -m486::RSA_LLONG $x86_gcc_des $x86_gcc_opts:$x86_bsdi_asm",
"nextstep", "cc:-O3 -Wall::BN_LLONG $x86_gcc_des ${x86_gcc_opts}:::",
# NCR MP-RAS UNIX ver 02.03.01
"ncr-scde","cc:-O6 -Xa -Hoff=BEHAVED -686 -Hwide -Hiw:-lsocket -lnsl:$x86_gcc_des $x86_gcc_opts:::",
"ncr-scde","cc:-O6 -Xa -Hoff=BEHAVED -686 -Hwide -Hiw:-lsocket -lnsl:$x86_gcc_des ${x86_gcc_opts}:::",
# UnixWare 2.0
"unixware-2.0","cc:-O -DFILIO_H:-lsocket -lnsl:$x86_gcc_des $x86_gcc_opts:::",
"unixware-2.0-pentium","cc:-O -DFILIO_H -Kpentium -Kthread:-lsocket -lnsl:MD2_CHAR RC4_INDEX $x86_des_des::",
"unixware-2.0","cc:-O -DFILIO_H:-lsocket -lnsl:$x86_gcc_des ${x86_gcc_opts}:::",
"unixware-2.0-pentium","cc:-O -DFILIO_H -Kpentium -Kthread:-lsocket -lnsl:MD2_CHAR RC4_INDEX ${x86_gcc_des}::",
# IBM's AIX.
"aix-cc", "cc:-O -DAIX -DB_ENDIAN::BN_LLONG RC4_CHAR:::",
@@ -159,22 +185,32 @@ $x86_bsdi_asm="asm/bn86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/m
# (written by Wayne Schroeder <schroede@SDSC.EDU>)
"cray-t90-cc", "cc: -DBIT_FIELD_LIMITS -DTERMIOS::SIXTY_FOUR_BIT_LONG DES_INT:::",
#
# Cray T3E (Research Center Juelich, beckman@acl.lanl.gov)
#
# The BIT_FIELD_LIMITS define was written for the C90 (it seems). I added
# another use. Basically, the problem is that the T3E uses some bit fields
# for some st_addr stuff, and then sizeof and address-of fails
# I could not use the ams/alpha.o option because the Cray assembler, 'cam'
# did not like it.
"cray-t3e", "cc: -DBIT_FIELD_LIMITS -DTERMIOS::SIXTY_FOUR_BIT_LONG DES_INT:::",
# DGUX, 88100.
"dgux-R3-gcc", "gcc:-O3 -fomit-frame-pointer::RC4_INDEX DES_UNROLL:::",
"dgux-R4-gcc", "gcc:-O3 -fomit-frame-pointer:-lnsl -lsocket:RC4_INDEX:RC4_INDEX DES_UNROLL:::",
"dgux-R4-x86-gcc", "gcc:-O3 -DBN_ASM -fomit-frame-pointer -DL_ENDIAN:-lnsl -lsocket:BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
"dgux-R4-x86-gcc", "gcc:-O3 -fomit-frame-pointer -DL_ENDIAN:-lnsl -lsocket:BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
# SCO 5
"sco5-cc", "cc:-O:-lsocket:$x86_gcc_des $x86_gcc_opts:::", # des options?
# SCO 5 - Ben Laurie <ben@algroup.co.uk> says the -O breaks the
# SCO cc.
"sco5-cc", "cc::-lsocket:$x86_gcc_des ${x86_gcc_opts}:::", # des options?
# Sinix RM400
"SINIX-N","/usr/ucb/cc:-O2 -misaligned:-lucb:RC4_INDEX RC4_CHAR:::",
# Windows NT, Microsoft Visual C++ 4.0
# hmm... bug in perl under NT, I need to concatinate :-(
"VC-NT","cl:::BN_LLONG RC4_INDEX ".$x86_gcc_opts.":::",
"VC-WIN32","cl:::BN_LLONG RC4_INDEX ".$x86_gcc_opts.":::",
"VC-NT","cl:::BN_LLONG RC4_INDEX ${x86_gcc_opts}:::",
"VC-WIN32","cl:::BN_LLONG RC4_INDEX ${x86_gcc_opts}:::",
"VC-WIN16","cl:::MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX THIRTY_TWO_BIT:::",
"VC-W31-16","cl:::BN_LLONG MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX SIXTEEN_BIT:::",
"VC-W31-32","cl:::MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX THIRTY_TWO_BIT:::",
@@ -183,28 +219,59 @@ $x86_bsdi_asm="asm/bn86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/m
# Borland C++ 4.5
"BC-32","bcc32:::DES_PTR RC4_INDEX:::",
"BC-16","bcc:::BN_LLONG DES_PTR RC4_INDEX SIXTEEN_BIT:::",
# CygWin32
"CygWin32", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:",
# Our old Ultrix box :-). -O2 breaks some of the bignum stuff (now fixed,
# it is a compiler bug, look in bug/ultrixcc.c for example code.
"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN:::asm/mips1.o:::",
# Some OpenBSD from Bob Beck <beck@obtuse.com>
"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer:SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:asm/alpha.o::",
"OpenBSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
"OpenBSD", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::BN_LLONG RC2_CHAR RC4_INDEX DES_UNROLL:::",
"OpenBSD-mips","gcc:-O2 -DL_ENDIAN:BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR::::",
);
$postfix="org";
$Makefile="Makefile.ssl";
$des_locl="crypto/des/des_locl.h";
$des ="crypto/des/des.h";
$bn ="crypto/bn/bn.h";
$md2 ="crypto/md2/md2.h";
$rc4 ="crypto/rc4/rc4.h";
$rc4_locl="crypto/rc4/rc4_locl.h";
$idea ="crypto/idea/idea.h";
$rc2 ="crypto/rc2/rc2.h";
$bf ="crypto/bf/bf_locl.h";
$bn_mulw="bn_mulw.o";
$des_enc="des_enc.o fcrypt_b.o";
$bf_enc ="bf_enc.o";
$cast_enc="c_enc.o";
$rc4_enc="rc4_enc.o";
$rc5_enc="rc5_enc.o";
$md5_obj="";
$sha1_obj="";
$rmd160_obj="";
# Miscellaneous hacks: this is designed to allow environments where the "one
# makefile" option does not auto build all files.
# The first six fields are the hard coded versions of the stuff generated by
# ctx_size for pem.h: that is EVP_ENCODE_CTX_SIZE, EVP_MD_SIZE EVP_MD_CTX_SIZE,
# EVP_CIPHER_SIZE, EVP_CIPHER_CTX_SIZE and EVP_MAX_MD_SIZE respectively.
# If the seventh field is 1 then auto generate
# crypto/date.h
# Need to add Win16 and others here.
my %misc_table = (
"VC-WIN32", "96:60:152:40:4212:20:1",
"VC-NT", "96:60:152:40:4212:20:1"
);
my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
BC-16 CygWin32);
my $no_asm=0;
my $postfix="org";
my $Makefile="Makefile.ssl";
my $des_locl="crypto/des/des_locl.h";
my $des ="crypto/des/des.h";
my $bn ="crypto/bn/bn.h";
my $md2 ="crypto/md2/md2.h";
my $rc4 ="crypto/rc4/rc4.h";
my $rc4_locl="crypto/rc4/rc4_locl.h";
my $idea ="crypto/idea/idea.h";
my $rc2 ="crypto/rc2/rc2.h";
my $bf ="crypto/bf/bf_locl.h";
my $bn_asm ="bn_asm.o";
my $des_enc="des_enc.o fcrypt_b.o";
my $bf_enc ="bf_enc.o";
my $cast_enc="c_enc.o";
my $rc4_enc="rc4_enc.o";
my $rc5_enc="rc5_enc.o";
my $md5_obj="";
my $sha1_obj="";
my $rmd160_obj="";
if ($#ARGV < 0)
{
@@ -212,10 +279,14 @@ if ($#ARGV < 0)
exit(1);
}
$flags="";
my $flags="";
my $libs="";
my $target="";
foreach (@ARGV)
{
if ($_ =~ /^-/)
if ($_ =~ /^no-asm$/)
{ $no_asm=1; }
elsif ($_ =~ /^-/)
{
if ($_ =~ /^-[lL](.*)$/)
{
@@ -225,11 +296,19 @@ foreach (@ARGV)
{
$flags.=$_." ";
}
elsif ($_ =~ /^-[fK](.*)$/)
{
$flags.=$_." ";
}
else
{
die "unknown options, only -Dxxx, -Lxxx -lxxx supported\n";
die "unknown options, only -Dxxx, -Lxxx, -lxxx, -fxxx and -Kxxx are supported\n";
}
}
elsif ($_ =~ /^([^:]+):(.+)$/) {
eval "\$table{\$1} = \"$2\""; # allow $xxx constructs in the string
$target=$1;
}
else
{
die "target already defined - $target\n" if ($target ne "");
@@ -248,13 +327,29 @@ if (!defined($table{$target}))
exit(1);
}
($cc,$cflags,$lflags,$bn_ops,$bn_obj,$des_obj,$bf_obj,$md5_obj,$sha1_obj,
$cast_obj,$rc4_obj,$rmd160_obj,$rc5_obj)=
split(/\s*:\s*/,$table{$target});
my $IsWindows=scalar grep /^$target$/,@WinTargets;
print "IsWindows=$IsWindows\n";
(my $cc,my $cflags,my $lflags,my $bn_ops,my $bn_obj,my $des_obj,my $bf_obj,
$md5_obj,$sha1_obj,my $cast_obj,my $rc4_obj,$rmd160_obj,my $rc5_obj)=
split(/\s*:\s*/,$table{$target} . ":" x 20 , -1);
$cflags="$flags$cflags" if ($flags ne "");
$lflags="$libs$lflags"if ($libs ne "");
$bn_obj=$bn_mulw unless ($bn_obj =~ /\.o$/);
if ($no_asm)
{
$bn_obj=$des_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj="";
$sha1_obj=$md5_obj=$rmd160_obj="";
}
#my ($bn1)=split(/\s+/,$bn_obj);
#$bn1 = "" unless defined $bn1;
#$bn1=$bn_asm unless ($bn1 =~ /\.o$/);
#$bn_obj="$bn1";
$bn_obj = $bn_asm unless $bn_obj ne "";
$des_obj=$des_enc unless ($des_obj =~ /\.o$/);
$bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);
$cast_obj=$cast_enc unless ($cast_obj =~ /\.o$/);
@@ -276,16 +371,16 @@ if ($rmd160_obj =~ /\.o$/)
$cflags.=" -DRMD160_ASM";
}
$n=&file_new($Makefile);
open(IN,"<".$Makefile) || die "unable to read $Makefile:$!\n";
open(OUT,">".$n) || die "unable to read $n:$!\n";
open(IN,'<Makefile.org') || die "unable to read Makefile.org:$!\n";
open(OUT,">$Makefile") || die "unable to create $Makefile:$!\n";
while (<IN>)
{
chop;
s/^PLATFORM=.*$/PLATFORM=$target/;
s/^CC=.*$/CC= $cc/;
s/^CFLAG=.*$/CFLAG= $cflags/;
s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
s/^BN_MULW=.*$/BN_MULW= $bn_obj/;
s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
s/^DES_ENC=.*$/DES_ENC= $des_obj/;
s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
s/^CAST_ENC=.*$/CAST_ENC= $cast_obj/;
@@ -298,12 +393,11 @@ while (<IN>)
}
close(IN);
close(OUT);
&Rename($Makefile,&file_old($Makefile));
&Rename($n,$Makefile);
print "CC =$cc\n";
print "CFLAG =$cflags\n";
print "EX_LIBS =$lflags\n";
print "BN_MULW =$bn_obj\n";
print "BN_ASM =$bn_obj\n";
print "DES_ENC =$des_obj\n";
print "BF_ENC =$bf_obj\n";
print "CAST_ENC =$cast_obj\n";
@@ -313,20 +407,22 @@ print "MD5_OBJ_ASM =$md5_obj\n";
print "SHA1_OBJ_ASM =$sha1_obj\n";
print "RMD160_OBJ_ASM=$rmd160_obj\n";
$des_ptr=0;
$des_risc1=0;
$des_risc2=0;
$des_unroll=0;
$bn_ll=0;
$def_int=2;
$rc4_int=$def_int;
$md2_int=$def_int;
$idea_int=$def_int;
$rc2_int=$def_int;
$rc4_idx=0;
$bf_ptr=0;
@type=("char","short","int","long");
($b64l,$b64,$b32,$b16,$b8)=(0,0,1,0,0);
my $des_ptr=0;
my $des_risc1=0;
my $des_risc2=0;
my $des_unroll=0;
my $bn_ll=0;
my $def_int=2;
my $rc4_int=$def_int;
my $md2_int=$def_int;
my $idea_int=$def_int;
my $rc2_int=$def_int;
my $rc4_idx=0;
my $bf_ptr=0;
my @type=("char","short","int","long");
my ($b64l,$b64,$b32,$b16,$b8)=(0,0,1,0,0);
my $des_int;
foreach (sort split(/\s+/,$bn_ops))
{
@@ -354,8 +450,8 @@ foreach (sort split(/\s+/,$bn_ops))
($b64l,$b64,$b32,$b16,$b8)=(0,0,0,0,1) if /EIGHT_BIT/;
}
(($in=$bn) =~ s/\.([^.]+)/.$postfix/);
$n=&file_new($bn);
((my $in=$bn) =~ s/\.([^.]+)/.$postfix/);
my $n=&file_new($bn);
open(IN,"<".$in) || die "unable to read $bn:$!\n";
open(OUT,">$n") || die "unable to read $n:$!\n";
while (<IN>)
@@ -519,6 +615,50 @@ close(OUT);
&Rename($bf,&file_old($bf));
&Rename($n,$bf);
# Now the miscellaneous fixups
if(defined $misc_table{$target}) {
my ($enc_ctx, $md_size, $md_ctx_size, $cipher_size, $cipher_ctx_size,
$max_md_size, $date_fix) =
split(/\s*:\s*/,$misc_table{$target} . ":", -1);
#print "EVP_ENCODE_CTX_SIZE $enc_ctx\n";
#print "EVP_MD_SIZE $md_size\n";
#print "EVP_MD_CTX_SIZE $md_ctx_size\n";
#print "EVP_CIPHER_SIZE $cipher_size\n";
#print "EVP_CIPHER_CTX_SIZE $cipher_ctx_size\n";
#print "EVP_MAX_MD_SIZE $max_md_size\n";
#printf "Date fix: %s\n", $date_fix ? "Yes" : "No";
# Fix the date
if($date_fix) {
open (OUT,">crypto/date.h") || die "Can't open date.h";
printf OUT "#define DATE \"%s\"\n", scalar gmtime();
close(OUT);
}
open (IN, "crypto/pem/pem.org") || die "Can't open crypto/pem/pem.org";
open (OUT, ">crypto/pem/pem.h") || die "Can't create crypto/pem/pem.h";
# Now fix up pem.h
while(<IN>) {
chop;
s/^(#define EVP_ENCODE_CTX_SIZE).*$/$1 $enc_ctx/;
s/^(#define EVP_MD_SIZE).*$/$1 $md_size/;
s/^(#define EVP_MD_CTX_SIZE).*$/$1 $md_ctx_size/;
s/^(#define EVP_CIPHER_SIZE).*$/$1 $cipher_size/;
s/^(#define EVP_CIPHER_CTX_SIZE).*$/$1 $cipher_ctx_size/;
s/^(#define EVP_MAX_MD_SIZE).*$/$1 $max_md_size/;
print OUT "$_\n";
}
close (IN);
close (OUT);
}
print "SIXTY_FOUR_BIT_LONG mode\n" if $b64l;
print "SIXTY_FOUR_BIT mode\n" if $b64;
print "THIRTY_TWO_BIT mode\n" if $b32;
@@ -537,16 +677,19 @@ print "IDEA uses u$type[$idea_int]\n" if $idea_int != $def_int;
print "RC2 uses u$type[$rc2_int]\n" if $rc2_int != $def_int;
print "BF_PTR used\n" if $bf_ptr == 1;
print "BF_PTR2 used\n" if $bf_ptr == 2;
system 'make -f Makefile.ssl links' if !$IsWindows;
exit(0);
sub bad_target
{
print STDERR "Usage: Configure [-Dxxx] [-Lxxx] [-lxxx] os/compiler\n";
print STDERR "pick os/compiler from:";
$j=0;
my $j=0;
my $i;
foreach $i (sort keys %table)
{
next if /^b-/;
print STDERR "\n" if ($j++ % 4) == 0;
printf(STDERR "%-18s ",$i);
}
@@ -555,11 +698,13 @@ sub bad_target
sub Rename
{
local($from,$to)=@_;
my($from,$to)=@_;
unlink($to);
rename($from,$to) || die "unable to rename $from to $to:$!\n";
if(!rename($from,$to))
{
-e $from && die "unable to rename $from to $to:$!\n";
}
}
sub file_new { local($a)=@_; $a =~ s/(\.[^.]+$|$)/.new/; $a; }
sub file_old { local($a)=@_; $a =~ s/(\.[^.]+$|$)/.old/; $a; }
sub file_new { my($a)=@_; $a =~ s/(\.[^.]+$|$)/.new/; $a; }
sub file_old { my($a)=@_; $a =~ s/(\.[^.]+$|$)/.old/; $a; }

316
HISTORY
View File

@@ -1,316 +0,0 @@
16-Mar-98
- Patch for Cray T90 from Wayne Schroeder <schroede@SDSC.EDU>
- Lots and lots of changes
29-Jan-98
- ASN1_BIT_STRING_set_bit()/ASN1_BIT_STRING_get_bit() from
Goetz Babin-Ebell <babinebell@trustcenter.de>.
- SSL_version() now returns SSL2_VERSION, SSL3_VERSION or
TLS1_VERSION.
7-Jan-98
- Finally reworked the cipher string to ciphers again, so it
works correctly
- All the app_data stuff is now ex_data with funcion calls to access.
The index is supplied by a function and 'methods' can be setup
for the types that are called on XXX_new/XXX_free. This lets
applications get notified on creation and destruction. Some of
the RSA methods could be implemented this way and I may do so.
- Oh yes, SSL under perl5 is working at the basic level.
15-Dec-97
- Warning - the gethostbyname cache is not fully thread safe,
but it should work well enough.
- Major internal reworking of the app_data stuff. More functions
but if you were accessing ->app_data directly, things will
stop working.
- The perlv5 stuff is working. Currently on message digests,
ciphers and the bignum library.
9-Dec-97
- Modified re-negotiation so that server initated re-neg
will cause a SSL_read() to return -1 should retry.
The danger otherwise was that the server and the
client could end up both trying to read when using non-blocking
sockets.
4-Dec-97
- Lots of small changes
- Fix for binaray mode in Windows for the FILE BIO, thanks to
Bob Denny <rdenny@dc3.com>
17-Nov-97
- Quite a few internal cleanups, (removal of errno, and using macros
defined in e_os.h).
- A bug in ca.c, pointed out by yasuyuki-ito@d-cruise.co.jp, where
the automactic naming out output files was being stuffed up.
29-Oct-97
- The Cast5 cipher has been added. MD5 and SHA-1 are now in assember
for x86.
21-Oct-97
- Fixed a bug in the BIO_gethostbyname() cache.
15-Oct-97
- cbc mode for blowfish/des/3des is now in assember. Blowfish asm
has also been improved. At this point in time, on the pentium,
md5 is %80 faster, the unoptimesed sha-1 is %79 faster,
des-cbc is %28 faster, des-ede3-cbc is %9 faster and blowfish-cbc
is %62 faster.
12-Oct-97
- MEM_BUF_grow() has been fixed so that it always sets the buf->length
to the value we are 'growing' to. Think of MEM_BUF_grow() as the
way to set the length value correctly.
10-Oct-97
- I now hash for certificate lookup on the raw DER encoded RDN (md5).
This breaks things again :-(. This is efficent since I cache
the DER encoding of the RDN.
- The text DN now puts in the numeric OID instead of UNKNOWN.
- req can now process arbitary OIDs in the config file.
- I've been implementing md5 in x86 asm, much faster :-).
- Started sha1 in x86 asm, needs more work.
- Quite a few speedups in the BN stuff. RSA public operation
has been made faster by caching the BN_MONT_CTX structure.
The calulating of the Ai where A*Ai === 1 mod m was rather
expensive. Basically a 40-50% speedup on public operations.
The RSA speedup is now 15% on pentiums and %20 on pentium
pro.
30-Sep-97
- After doing some profiling, I added x86 adm for bn_add_words(),
which just adds 2 arrays of longs together. A %10 speedup
for 512 and 1024 bit RSA on the pentium pro.
29-Sep-97
- Converted the x86 bignum assembler to us the perl scripts
for generation.
23-Sep-97
- If SSL_set_session() is passed a NULL session, it now clears the
current session-id.
22-Sep-97
- Added a '-ss_cert file' to apps/ca.c. This will sign selfsigned
certificates.
- Bug in crypto/evp/encode.c where by decoding of 65 base64
encoded lines, one line at a time (via a memory BIO) would report
EOF after the first line was decoded.
- Fix in X509_find_by_issuer_and_serial() from
Dr Stephen Henson <shenson@bigfoot.com>
19-Sep-97
- NO_FP_API and NO_STDIO added.
- Put in sh config command. It auto runs Configure with the correct
parameters.
18-Sep-97
- Fix x509.c so if a DSA cert has different parameters to its parent,
they are left in place. Not tested yet.
16-Sep-97
- ssl_create_cipher_list() had some bugs, fixes from
Patrick Eisenacher <eisenach@stud.uni-frankfurt.de>
- Fixed a bug in the Base64 BIO, where it would return 1 instead
of -1 when end of input was encountered but should retry.
Basically a Base64/Memory BIO interaction problem.
- Added a HMAC set of functions in preporarion for TLS work.
15-Sep-97
- Top level makefile tweak - Cameron Simpson <cs@zip.com.au>
- Prime generation spead up %25 (512 bit prime, pentium pro linux)
by using montgomery multiplication in the prime number test.
11-Sep-97
- Ugly bug in ssl3_write_bytes(). Basically if application land
does a SSL_write(ssl,buf,len) where len > 16k, the SSLv3 write code
did not check the size and tried to copy the entire buffer.
This would tend to cause memory overwrites since SSLv3 has
a maximum packet size of 16k. If your program uses
buffers <= 16k, you would probably never see this problem.
- Fixed a new errors that were cause by malloc() not returning
0 initialised memory..
- SSL_OP_NETSCAPE_CA_DN_BUG was being switched on when using
SSL_CTX_set_options(ssl_ctx,SSL_OP_ALL); which was a bad thing
since this flags stops SSLeay being able to handle client
cert requests correctly.
08-Sep-97
- SSL_SESS_CACHE_NO_INTERNAL_LOOKUP option added. When switched
on, the SSL server routines will not use a SSL_SESSION that is
held in it's cache. This in intended to be used with the session-id
callbacks so that while the session-ids are still stored in the
cache, the decision to use them and how to look them up can be
done by the callbacks. The are the 'new', 'get' and 'remove'
callbacks. This can be used to determine the session-id
to use depending on information like which port/host the connection
is coming from. Since the are also SSL_SESSION_set_app_data() and
SSL_SESSION_get_app_data() functions, the application can hold
information against the session-id as well.
03-Sep-97
- Added lookup of CRLs to the by_dir method,
X509_load_crl_file() also added. Basically it means you can
lookup CRLs via the same system used to lookup certificates.
- Changed things so that the X509_NAME structure can contain
ASN.1 BIT_STRINGS which is required for the unique
identifier OID.
- Fixed some problems with the auto flushing of the session-id
cache. It was not occuring on the server side.
02-Sep-97
- Added SSL_CTX_sess_cache_size(SSL_CTX *ctx,unsigned long size)
which is the maximum number of entries allowed in the
session-id cache. This is enforced with a simple FIFO list.
The default size is 20*1024 entries which is rather large :-).
The Timeout code is still always operating.
01-Sep-97
- Added an argument to all the 'generate private key/prime`
callbacks. It is the last parameter so this should not
break existing code but it is needed for C++.
- Added the BIO_FLAGS_BASE64_NO_NL flag for the BIO_f_base64()
BIO. This lets the BIO read and write base64 encoded data
without inserting or looking for '\n' characters. The '-A'
flag turns this on when using apps/enc.c.
- RSA_NO_PADDING added to help BSAFE functionality. This is a
very dangerous thing to use, since RSA private key
operations without random padding bytes (as PKCS#1 adds) can
be attacked such that the private key can be revealed.
- ASN.1 bug and rc2-40-cbc and rc4-40 added by
Dr Stephen Henson <shenson@bigfoot.com>
31-Aug-97 (stuff added while I was away)
- Linux pthreads by Tim Hudson (tjh@cryptsoft.com).
- RSA_flags() added allowing bypass of pub/priv match check
in ssl/ssl_rsa.c - Tim Hudson.
- A few minor bugs.
SSLeay 0.8.1 released.
19-Jul-97
- Server side initated dynamic renegotiation is broken. I will fix
it when I get back from holidays.
15-Jul-97
- Quite a few small changes.
- INVALID_SOCKET usage cleanups from Alex Kiernan <alex@hisoft.co.uk>
09-Jul-97
- Added 2 new values to the SSL info callback.
SSL_CB_START which is passed when the SSL protocol is started
and SSL_CB_DONE when it has finished sucsessfully.
08-Jul-97
- Fixed a few bugs problems in apps/req.c and crypto/asn1/x_pkey.c
that related to DSA public/private keys.
- Added all the relevent PEM and normal IO functions to support
reading and writing RSAPublic keys.
- Changed makefiles to use ${AR} instead of 'ar r'
07-Jul-97
- Error in ERR_remove_state() that would leave a dangling reference
to a free()ed location - thanks to Alex Kiernan <alex@hisoft.co.uk>
- s_client now prints the X509_NAMEs passed from the server
when requesting a client cert.
- Added a ssl->type, which is one of SSL_ST_CONNECT or
SSL_ST_ACCEPT. I had to add it so I could tell if I was
a connect or an accept after the handshake had finished.
- SSL_get_client_CA_list(SSL *s) now returns the CA names
passed by the server if called by a client side SSL.
05-Jul-97
- Bug in X509_NAME_get_text_by_OBJ(), looking starting at index
0, not -1 :-( Fix from Tim Hudson (tjh@cryptsoft.com).
04-Jul-97
- Fixed some things in X509_NAME_add_entry(), thanks to
Matthew Donald <matthew@world.net>.
- I had a look at the cipher section and though that it was a
bit confused, so I've changed it.
- I was not setting up the RC4-64-MD5 cipher correctly. It is
a MS special that appears in exported MS Money.
- Error in all my DH ciphers. Section 7.6.7.3 of the SSLv3
spec. I was missing the two byte length header for the
ClientDiffieHellmanPublic value. This is a packet sent from
the client to the server. The SSL_OP_SSLEAY_080_CLIENT_DH_BUG
option will enable SSLeay server side SSLv3 accept either
the correct or my 080 packet format.
- Fixed a few typos in crypto/pem.org.
02-Jul-97
- Alias mapping for EVP_get_(digest|cipher)byname is now
performed before a lookup for actual cipher. This means
that an alias can be used to 're-direct' a cipher or a
digest.
- ASN1_read_bio() had a bug that only showed up when using a
memory BIO. When EOF is reached in the memory BIO, it is
reported as a -1 with BIO_should_retry() set to true.
01-Jul-97
- Fixed an error in X509_verify_cert() caused by my
miss-understanding how 'do { contine } while(0);' works.
Thanks to Emil Sit <sit@mit.edu> for educating me :-)
30-Jun-97
- Base64 decoding error. If the last data line did not end with
a '=', sometimes extra data would be returned.
- Another 'cut and paste' bug in x509.c related to setting up the
STDout BIO.
27-Jun-97
- apps/ciphers.c was not printing due to an editing error.
- Alex Kiernan <alex@hisoft.co.uk> send in a nice fix for
a library build error in util/mk1mf.pl
26-Jun-97
- Still did not have the auto 'experimental' code removal
script correct.
- A few header tweaks for Watcom 11.0 under Win32 from
Rolf Lindemann <Lindemann@maz-hh.de>
- 0 length OCTET_STRING bug in asn1_parse
- A minor fix with an non-existent function in the MS .def files.
- A few changes to the PKCS7 stuff.
25-Jun-97
SSLeay 0.8.0 finally it gets released.
24-Jun-97
Added a SSL_OP_EPHEMERAL_RSA option which causes all SSLv3 RSA keys to
use a temporary RSA key. This is experimental and needs some more work.
Fixed a few Win16 build problems.
23-Jun-97
SSLv3 bug. I was not doing the 'lookup' of the CERT structure
correctly. I was taking the SSL->ctx->default_cert when I should
have been using SSL->cert. The bug was in ssl/s3_srvr.c
20-Jun-97
X509_ATTRIBUTES were being encoded wrongly by apps/reg.c and the
rest of the library. Even though I had the code required to do
it correctly, apps/req.c was doing the wrong thing. I have fixed
and tested everything.
Missing a few #ifdef FIONBIO sections in crypto/bio/bss_acpt.c.
19-Jun-97
Fixed a bug in the SSLv2 server side first packet handling. When
using the non-blocking test BIO, the ssl->s2->first_packet flag
was being reset when a would-block failure occurred when reading
the first 5 bytes of the first packet. This caused the checking
logic to run at the wrong time and cause an error.
Fixed a problem with specifying cipher. If RC4-MD5 were used,
only the SSLv3 version would be picked up. Now this will pick
up both SSLv2 and SSLv3 versions. This required changing the
SSL_CIPHER->mask values so that they only mask the ciphers,
digests, authentication, export type and key-exchange algorithms.
I found that when a SSLv23 session is established, a reused
session, of type SSLv3 was attempting to write the SSLv2
ciphers, which were invalid. The SSL_METHOD->put_cipher_by_char
method has been modified so it will only write out cipher which
that method knows about.

140
INSTALL
View File

@@ -1,6 +1,135 @@
# Installation of SSLeay.
# It depends on perl for a few bits but those steps can be skipped and
# the top level makefile edited by hand
INSTALLATION ON THE UNIX PLATFORM
---------------------------------
[For instructions for compiling OpenSSL on Windows systems, see INSTALL.W32].
To install OpenSSL, you will need:
* Perl
* C compiler
* A supported Unix operating system
Quick Start
-----------
If you want to just get on with it, do:
$ ./config [if this fails, go to step 1b below]
$ make
$ make rehash
$ make test
$ make install
This will build and install OpenSSL in the default location, which is (for
historical reasons) /usr/local/ssl. If you want to install it anywhere else,
do this after running `sh config':
$ perl util/ssldir.pl /new/install/path
If anything goes wrong, follow the detailed instructions below. If your
operating system is not (yet) supported by OpenSSL, see the section on
porting to a new system.
Installation in Detail
----------------------
1a. Configure OpenSSL for your operation system automatically:
$ ./config
This guesses at your operating system (and compiler, if necessary) and
configures OpenSSL based on this guess. Check the first line of output to
see if it guessed correctly. If it did not get it correct or you want to
use a different compiler then go to step 1b. Otherwise go to step 2.
1b. Configure OpenSSL for your operating system manually
OpenSSL knows about a range of different operating system, hardware and
compiler combinations. To see the ones it knows about, run
$ ./Configure
Pick a suitable name from the list that matches your system. For most
operating systems there is a choice between using "cc" or "gcc". When
you have identified your system (and if necessary compiler) use this name
as the argument to ./Configure. For example, a "linux-elf" user would
run:
$ ./Configure linux-elf
If your system is not available, you will have to edit the Configure
program and add the correct configuration for your system.
Configure configures various files by converting an existing .org file
into the real file. If you edit any files, remember that if a
corresponding .org file exists them the next time you run ./Configure
your changes will be lost when the file gets re-created from the .org
file. The files that are created from .org files are:
Makefile.ssl
crypto/des/des.h
crypto/des/des_locl.h
crypto/md2/md2.h
crypto/rc4/rc4.h
crypto/rc4/rc4_enc.c
crypto/rc2/rc2.h
crypto/bf/bf_locl.h
crypto/idea/idea.h
crypto/bn/bn.h
2. Set the install directory
If the install directory will be the default of /usr/local/ssl, skip to
the next stage. Otherwise, run
$ perl util/ssldir.pl /new/install/path
This configures the installation location into the "install" target of
the top-level Makefile, and also updates some defines in an include file
so that the default certificate directory is under the proper
installation directory. It also updates a few utility files used in the
build process.
3. Build OpenSSL by running:
$ make
This will build the OpenSSL libraries (libcrypto.a and libssl.a) and the
OpenSSL binary ("openssl"). The libraries will be built in the top-level
directory, and the binary will be in the "apps" directory.
4. After a successful build, the libraries should be tested. Run:
$ make rehash
$ make test
(The first line makes the test certificates in the "certs" directory
accessable via an hash name, which is required for some of the tests).
5. If everything tests ok, install OpenSSL with
$ make install
This will create the installation directory (if it does not exist) and
then create the following subdirectories:
bin Contains the openssl binary and a few other
utility programs.
include Contains the header files needed if you want to
compile programs with libcrypto or libssl.
lib Contains the library files themselves and the
OpenSSL configuration file "openssl.cnf".
certs Initially empty, this is the default location
for certificate files.
private Initially empty, this is the default location
for private key files.
--------------------------------------------------------------------------------
The orignal Unix build instructions from SSLeay follow.
Note: some of this may be out of date and no longer applicable
--------------------------------------------------------------------------------
# When bringing the SSLeay distribution back from the evil intel world
# of Windows NT, do the following to make it nice again under unix :-)
@@ -126,3 +255,8 @@ The examples for solaris and windows NT/95 are in the mt directory.
have fun
eric 25-Jun-1997
IRIX 5.x will build as a 32 bit system with mips1 assember.
IRIX 6.x will build as a 64 bit system with mips3 assember. It conforms
to n32 standards. In theory you can compile the 64 bit assember under
IRIX 5.x but you will have to have the correct system software installed.

View File

@@ -1,3 +1,106 @@
INSTALLATION ON THE WIN32 PLATFORM
----------------------------------
Heres a few comments about building OpenSSL in Windows environments. Most of
this is tested on Win32 but it may also work in Win 3.1 with some
modification. See the end of this file for Eric's original comments.
Note: the default Win32 environment is to leave out any Windows NT specific
features: (currently only BIO_s_log()) if you want NT specific features see
the "Tweaks" section later.
You will need perl for Win32 (which can be got from various sources) and
Visual C++.
If you are compiling from a tarball or a CVS snapshot then the Win32 files
may well be not up to date. This may mean that some "tweaking" is required to
get it all to work. See the trouble shooting section later on for if (when?)
it goes wrong.
Firstly you should run Configure:
> perl Configure VC-WIN32
Then rebuild the Win32 Makefiles and friends:
> ms\do_ms
If you get errors about things not having numbers assigned then check the
troubleshooting section: you probably wont be able to compile it as it
stands.
Then from the VC++ environment at a prompt do:
> nmake -f ms\ntdll.mak
If all is well it should compile and you will have some DLLs and executables
in out32dll. If you want to try the tests then do:
> cd out32dll
> ..\ms\test
Troubleshooting
---------------
Since the Win32 build is only occasionally tested it may not always compile
cleanly. If you get an error about functions not having numbers assigned
when you run ms\do_ms then this means the Win32 ordinal files are not up to
date. You can do:
> perl util\mkdef.pl crypto ssl update
then ms\do_ms should not give a warning any more. However the numbers that
get assigned by this technique may not match those that eventually get
assigned in the CVS tree: so anything linked against this version of the
library may need to be recompiled.
If you get errors about unresolved externals then this means that either you
didn't read the note above about functions not having numbers assigned or
someone forgot to add a function to the header file.
In this latter case check out the header file to see if the function is
defined in the header file: it should be defined twice: once with ANSI
prototypes and once without. If its missing from the non ASNI section then
add an entry for it: check that ms\do_ms now reports missing numbers and
update the numbers as above.
If you get warnings in the code then the compilation will halt.
The default Makefile for Win32 halts whenever any warnings occur. Since VC++
has its own ideas about warnings which don't always match up to other
environments this can happen. The best fix is to edit the file with the
warning in and fix it. Alternatively you can turn off the halt on warnings by
editing the CFLAG line in the Makefile and deleting the /WX option.
You might get compilation errors. Again you will have to fix these or report
them.
One final comment about compiling applications linked to the OpenSSL library.
If you don't use the multithreaded DLL runtime library (/MD option) your
program will almost certainly crash: see the original SSLeay description
below for more details.
Tweaks
------
There are various changes you can make to the Win32 compile environment. If
you have the MASM assembler 'ml' then you can try the assembly language code.
To do this remove the 'no-asm' part from do_ms.bat. You can also add 'debug'
here to make a debugging version of the library.
If you want to enable the NT specific features of OpenSSL (currently only the
logging BIO) follow the instructions above but call the batch file do_nt.bat
instead of do_ms.bat.
You can also build a static version of the library using the Makefile
ms\nt.mak
--------------------------------------------------------------------------------
The orignal Windows build instructions from SSLeay follow.
Note: some of this may be out of date and no longer applicable
--------------------------------------------------------------------------------
The Microsoft World.
The good news, to build SSLeay for the Microsft World

127
LICENSE Normal file
View File

@@ -0,0 +1,127 @@
LICENSE ISSUES
==============
The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
the OpenSSL License and the original SSLeay license apply to the toolkit.
See below for the actual license texts. Actually both licenses are BSD-style
Open Source licenses. In case of any license issues related to OpenSSL
please contact openssl-core@openssl.org.
OpenSSL License
---------------
/* ====================================================================
* Copyright (c) 1998-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
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
Original SSLeay License
-----------------------
/* 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.]
*/

272
MINFO
View File

@@ -1,14 +1,14 @@
RELATIVE_DIRECTORY=.
AR=ar r
BASENAME=SSLeay
BASENAME=openssl
BF_ENC=bf_enc.o
BN_MULW=bn_mulw.o
BN_ASM=bn_asm.o
CAST_ENC=c_enc.o
CC=cc
CFLAG=-O -DNOPROTO
DES_ENC=des_enc.o fcrypt_b.o
DIRS=crypto ssl rsaref apps test tools
EDIRS=times doc bugs util include certs ms shlib mt demos perl dep
EDIRS=times doc bugs util include certs ms shlib mt demos perl sf dep
EXHEADER=e_os.h
EX_LIBS=
GENERAL=Makefile
@@ -20,53 +20,53 @@ MAKEFILE=Makefile.ssl
MAN1=1
MAN3=3
MD5_ASM_OBJ=
MISC=COPYRIGHT Configure HISTORY.066 INSTALL Makefile.ssl Makefile README TODO HISTORY README.066 README.080 README.090 VERSION PROBLEMS MINFO makefile.one e_os.h MICROSOFT makevms.com config PATENTS
NAME=SSLeay-0.9.0
NAME=openssl-0.9.1c
ONEDIRS=out tmp
PEX_LIBS=-L. -L.. -L../.. -L../../..
PLATFORM=dist
RC4_ENC=rc4_enc.o
RC5_ENC=rc5_enc.o
RMD160_ASM_OBJ=
SDIRS=md2 md5 sha mdc2 hmac ripemd des rc2 rc4 rc5 idea bf cast bn rsa dsa dh buffer bio stack lhash rand err objects evp pem asn1 x509 conf txt_db pkcs7
SDIRS=md2 md5 sha mdc2 hmac ripemd des rc2 rc4 rc5 idea bf cast bn rsa dsa dh buffer bio stack lhash rand err objects evp asn1 pem x509 x509v3 conf txt_db pkcs7 comp
SHA1_ASM_OBJ=
SHELL=/bin/sh
TARFILE=SSLeay-0.9.0.tar
TARFILE=openssl-0.9.1c.tar
TOP=.
VERSION=0.9.0
VERSION=0.9.1c
WDIRS=windows
WTARFILE=SSLeay-0.9.0-win.tar
WTARFILE=openssl-0.9.1c-win.tar
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto
ALL=Makefile README cryptlib.c mem.c cversion.c ex_data.c cpt_err.c cryptlib.h date.h crypto.h cryptall.h
ALL=Makefile README cryptlib.c mem.c cversion.c ex_data.c tmdiff.c cpt_err.c cryptlib.h date.h crypto.h cryptall.h tmdiff.h
AR=ar r
CC=cc
CFLAG=-g
CFLAGS=-I. -I../include -g -DCFLAGS=" \"cc -g\" "
CFLAGS=-I. -I../include -g -DCFLAGS=" \"cc -g\" " -DPLATFORM=" \"\" "
DIR=crypto
ERR=crypto
ERRC=cpt_err
EXHEADER=crypto.h cryptall.h
EXHEADER=crypto.h cryptall.h tmdiff.h
EX_LIBS=
GENERAL=Makefile README
HEADER=cryptlib.h date.h crypto.h cryptall.h
HEADER=cryptlib.h date.h crypto.h cryptall.h tmdiff.h
INCLUDE=-I. -I../include
INCLUDES=-I.. -I../../include
INSTALLTOP=/usr/local/ssl
LIB=../libcrypto.a
LIBOBJ=cryptlib.o mem.o cversion.o ex_data.o cpt_err.o
LIBOBJ=cryptlib.o mem.o cversion.o ex_data.o tmdiff.o cpt_err.o
LIBS=
LIBSRC=cryptlib.c mem.c cversion.c ex_data.c cpt_err.c
LIBSRC=cryptlib.c mem.c cversion.c ex_data.c tmdiff.c cpt_err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../util/domd ..
MAKEFILE=Makefile.ssl
PEX_LIBS=
RM=/bin/rm -f
SDIRS=md2 md5 sha mdc2 hmac ripemd des rc2 rc4 rc5 idea bf cast bn rsa dsa dh buffer bio stack lhash rand err objects evp pem x509 asn1 conf txt_db pkcs7
SRC=cryptlib.c mem.c cversion.c ex_data.c cpt_err.c
SDIRS=md2 md5 sha mdc2 hmac ripemd des rc2 rc4 rc5 idea bf cast bn rsa dsa dh buffer bio stack lhash rand err objects evp asn1 pem x509 x509v3 conf txt_db pkcs7 comp
SRC=cryptlib.c mem.c cversion.c ex_data.c tmdiff.c cpt_err.c
TOP=..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto/md2
ALL=Makefile md2_dgst.c md5_one.c md2.h
ALL=Makefile md2_dgst.c md2_one.c md2.h
APPS=
AR=ar r
CC=cc
@@ -80,11 +80,11 @@ INCLUDES=
INSTALLTOP=/usr/local/ssl
LIB=../../libcrypto.a
LIBOBJ=md2_dgst.o md2_one.o
LIBSRC=md2_dgst.c md5_one.c
LIBSRC=md2_dgst.c md2_one.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=md2_dgst.c md5_one.c
SRC=md2_dgst.c md2_one.c
TEST=md2test.c
TOP=../..
RELATIVE_DIRECTORY=
@@ -106,7 +106,7 @@ LIB=../../libcrypto.a
LIBOBJ=md5_dgst.o md5_one.o
LIBSRC=md5_dgst.c md5_one.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
MD5_ASM_OBJ=
SRC=md5_dgst.c md5_one.c
@@ -130,7 +130,7 @@ LIB=../../libcrypto.a
LIBOBJ=sha_dgst.o sha1dgst.o sha_one.o sha1_one.o
LIBSRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SHA1_ASM_OBJ=
SRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
@@ -154,7 +154,7 @@ LIB=../../libcrypto.a
LIBOBJ=mdc2dgst.o mdc2_one.o
LIBSRC=mdc2dgst.c mdc2_one.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=mdc2dgst.c mdc2_one.c
TEST=mdc2test.c
@@ -177,7 +177,7 @@ LIB=../../libcrypto.a
LIBOBJ=hmac.o
LIBSRC=hmac.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=hmac.c
TEST=hmactest.c
@@ -201,7 +201,7 @@ LIB=../../libcrypto.a
LIBOBJ=rmd_dgst.o rmd_one.o
LIBSRC=rmd_dgst.c rmd_one.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
RIP_ASM_OBJ=
SRC=rmd_dgst.c rmd_one.c
@@ -227,7 +227,7 @@ LIB=../../libcrypto.a
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.o fcrypt_b.o read2pwd.o fcrypt.o xcbc_enc.o read_pwd.o rpc_enc.o cbc_cksm.o supp.o
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 fcrypt.c xcbc_enc.c str2key.c cfb64ede.c ofb64ede.c supp.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=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 fcrypt.c xcbc_enc.c str2key.c cfb64ede.c ofb64ede.c supp.c
TEST=destest.c
@@ -250,7 +250,7 @@ LIB=../../libcrypto.a
LIBOBJ=rc2_ecb.o rc2_skey.o rc2_cbc.o rc2cfb64.o rc2ofb64.o
LIBSRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
TEST=rc2test.c
@@ -273,7 +273,7 @@ LIB=../../libcrypto.a
LIBOBJ=rc4_skey.o rc4_enc.o
LIBSRC=rc4_skey.c rc4_enc.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
RC4_ENC=rc4_enc.o
SRC=rc4_skey.c rc4_enc.c
@@ -298,7 +298,7 @@ LIB=../../libcrypto.a
LIBOBJ=rc5_skey.o rc5_ecb.o rc5_enc.o rc5cfb64.o rc5ofb64.o
LIBSRC=rc5_skey.c rc5_ecb.c rc5_enc.c rc5cfb64.c rc5ofb64.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
RC5_ENC=rc5_enc.o
SRC=rc5_skey.c rc5_ecb.c rc5_enc.c rc5cfb64.c rc5ofb64.c
@@ -322,7 +322,7 @@ LIB=../../libcrypto.a
LIBOBJ=i_cbc.o i_cfb64.o i_ofb64.o i_ecb.o i_skey.o
LIBSRC=i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c
TEST=ideatest.c
@@ -347,7 +347,7 @@ LIB=../../libcrypto.a
LIBOBJ=bf_skey.o bf_ecb.o bf_enc.o bf_cfb64.o bf_ofb64.o
LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
TEST=bftest.c
@@ -372,17 +372,17 @@ LIB=../../libcrypto.a
LIBOBJ=c_skey.o c_ecb.o c_enc.o c_cfb64.o c_ofb64.o
LIBSRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c
TEST=casttest.c
TOP=../..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto/bn
ALL=Makefile bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c bn_word.c bn_blind.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_mulw.c bn_recp.c bn_mont.c bn_mpi.c bn_lcl.h bn_prime.h bn.h
ALL=Makefile bn_add.c bn_div.c bn_exp.c bn_lib.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 bn_lcl.h bn_prime.h bn.h
APPS=
AR=ar r
BN_MULW=bn_mulw.o
BN_ASM=bn_asm.o
CC=cc
CFLAG=-g
CFLAGS=-I.. -I../../include -g
@@ -395,12 +395,12 @@ HEADER=bn_lcl.h bn_prime.h bn.h
INCLUDES=-I.. -I../../include
INSTALLTOP=/usr/local/ssl
LIB=../../libcrypto.a
LIBOBJ=bn_add.o bn_div.o bn_exp.o bn_lib.o bn_mod.o bn_mul.o bn_print.o bn_rand.o bn_shift.o bn_sub.o bn_word.o bn_blind.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o bn_mulw.o bn_recp.o bn_mont.o bn_mpi.o
LIBSRC=bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c bn_word.c bn_blind.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_mulw.c bn_recp.c bn_mont.c bn_mpi.c
LIBOBJ=bn_add.o bn_div.o bn_exp.o bn_lib.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.o bn_recp.o bn_mont.o bn_mpi.o bn_exp2.o
LIBSRC=bn_add.c bn_div.c bn_exp.c bn_lib.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
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c bn_word.c bn_blind.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_mulw.c bn_recp.c bn_mont.c bn_mpi.c
SRC=bn_add.c bn_div.c bn_exp.c bn_lib.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
TEST=bntest.c exptest.c
TOP=../..
RELATIVE_DIRECTORY=
@@ -423,7 +423,7 @@ LIB=../../libcrypto.a
LIBOBJ=rsa_eay.o rsa_gen.o rsa_lib.o rsa_sign.o rsa_saos.o rsa_err.o rsa_pk1.o rsa_ssl.o rsa_none.o
LIBSRC=rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c rsa_pk1.c rsa_ssl.c rsa_none.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c rsa_pk1.c rsa_ssl.c rsa_none.c
TEST=
@@ -448,7 +448,7 @@ LIB=../../libcrypto.a
LIBOBJ=dsa_gen.o dsa_key.o dsa_lib.o dsa_vrf.o dsa_sign.o dsa_err.o
LIBSRC=dsa_gen.c dsa_key.c dsa_lib.c dsa_vrf.c dsa_sign.c dsa_err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=dsa_gen.c dsa_key.c dsa_lib.c dsa_vrf.c dsa_sign.c dsa_err.c
TEST=dsatest.c
@@ -473,7 +473,7 @@ LIB=../../libcrypto.a
LIBOBJ=dh_gen.o dh_key.o dh_lib.o dh_check.o dh_err.o
LIBSRC=dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
TEST=dhtest.c
@@ -498,7 +498,7 @@ LIB=../../libcrypto.a
LIBOBJ=buffer.o buf_err.o
LIBSRC=buffer.c buf_err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=buffer.c buf_err.c
TEST=
@@ -523,7 +523,7 @@ LIB=../../libcrypto.a
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
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
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=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
TEST=
@@ -546,7 +546,7 @@ LIB=../../libcrypto.a
LIBOBJ=stack.o
LIBSRC=stack.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=stack.c
TEST=
@@ -569,14 +569,14 @@ LIB=../../libcrypto.a
LIBOBJ=lhash.o lh_stats.o
LIBSRC=lhash.c lh_stats.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=lhash.c lh_stats.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto/rand
ALL=Makefile md_rand.c randfile.c rand.h
ALL=Makefile md_rand.c randfile.c rand_lib.c rand.h
APPS=
AR=ar r
CC=cc
@@ -589,12 +589,12 @@ HEADER=rand.h
INCLUDES=
INSTALLTOP=/usr/local/ssl
LIB=../../libcrypto.a
LIBOBJ=md_rand.o randfile.o
LIBSRC=md_rand.c randfile.c
LIBOBJ=md_rand.o randfile.o rand_lib.o
LIBSRC=md_rand.c randfile.c rand_lib.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=md_rand.c randfile.c
SRC=md_rand.c randfile.c rand_lib.c
TEST=randtest.c
TOP=../..
RELATIVE_DIRECTORY=
@@ -615,14 +615,14 @@ LIB=../../libcrypto.a
LIBOBJ=err.o err_all.o err_prn.o
LIBSRC=err.c err_all.c err_prn.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=err.c err_all.c err_prn.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto/objects
ALL=Makefile README obj_dat.c obj_lib.c obj_err.c objects.h obj_dat.h
ALL=Makefile README o_names.c obj_dat.c obj_lib.c obj_err.c objects.h obj_dat.h
APPS=
AR=ar r
CC=cc
@@ -637,12 +637,12 @@ HEADER=objects.h obj_dat.h
INCLUDES=-I.. -I../../include
INSTALLTOP=/usr/local/ssl
LIB=../../libcrypto.a
LIBOBJ=obj_dat.o obj_lib.o obj_err.o
LIBSRC=obj_dat.c obj_lib.c obj_err.c
LIBOBJ=o_names.o obj_dat.o obj_lib.o obj_err.o
LIBSRC=o_names.c obj_dat.c obj_lib.c obj_err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=obj_dat.c obj_lib.c obj_err.c
SRC=o_names.c obj_dat.c obj_lib.c obj_err.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
@@ -665,40 +665,14 @@ LIB=../../libcrypto.a
LIBOBJ=encode.o digest.o evp_enc.o evp_key.o e_ecb_d.o e_cbc_d.o e_cfb_d.o e_ofb_d.o e_ecb_i.o e_cbc_i.o e_cfb_i.o e_ofb_i.o e_ecb_3d.o e_cbc_3d.o e_rc4.o names.o e_cfb_3d.o e_ofb_3d.o e_xcbc_d.o e_ecb_r2.o e_cbc_r2.o e_cfb_r2.o e_ofb_r2.o e_ecb_bf.o e_cbc_bf.o e_cfb_bf.o e_ofb_bf.o e_ecb_c.o e_cbc_c.o e_cfb_c.o e_ofb_c.o e_ecb_r5.o e_cbc_r5.o e_cfb_r5.o e_ofb_r5.o m_null.o m_md2.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 evp_lib.o
LIBSRC=encode.c digest.c evp_enc.c evp_key.c e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c e_ecb_c.c e_cbc_c.c e_cfb_c.c e_ofb_c.c e_ecb_r5.c e_cbc_r5.c e_cfb_r5.c e_ofb_r5.c m_null.c m_md2.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 evp_lib.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=encode.c digest.c evp_enc.c evp_key.c e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c e_ecb_c.c e_cbc_c.c e_cfb_c.c e_ofb_c.c e_ecb_r5.c e_cbc_r5.c e_cfb_r5.c e_ofb_r5.c m_null.c m_md2.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 evp_lib.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto/pem
ALL=Makefile pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c pem.h
APPS=
AR=ar r
CC=cc
CFLAG=-g
CFLAGS=-I.. -I../../include -g
CTX_SIZE=ctx_size
DIR=pem
ERR=pem
ERRC=pem_err
EXHEADER=pem.h
GENERAL=Makefile
HEADER=pem.h
INCLUDES=-I.. -I../../include
INSTALLTOP=/usr/local/ssl
LIB=../../libcrypto.a
LIBOBJ=pem_sign.o pem_seal.o pem_info.o pem_lib.o pem_all.o pem_err.o
LIBSRC=pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEFILE=Makefile.ssl
SRC=pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto/asn1
ALL=Makefile README a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c asn1.h asn1_mac.h
ALL=Makefile README a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c nsseq.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c asn1.h asn1_mac.h
APPS=
AR=ar r
CC=cc
@@ -713,12 +687,38 @@ HEADER=asn1.h asn1_mac.h
INCLUDES=-I.. -I../../include
INSTALLTOP=/usr/local/ssl
LIB=../../libcrypto.a
LIBOBJ=a_object.o a_bitstr.o a_utctm.o a_int.o a_octet.o a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o a_sign.o a_digest.o a_verify.o x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o x_name.o x_cinf.o x_x509.o x_crl.o x_info.o x_spki.o d2i_r_pr.o i2d_r_pr.o d2i_r_pu.o i2d_r_pu.o d2i_s_pr.o i2d_s_pr.o d2i_s_pu.o i2d_s_pu.o d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o t_req.o t_x509.o t_pkey.o p7_i_s.o p7_signi.o p7_signd.o p7_recip.o p7_enc_c.o p7_evp.o p7_dgst.o p7_s_e.o p7_enc.o p7_lib.o f_int.o f_string.o i2d_dhp.o i2d_dsap.o d2i_dhp.o d2i_dsap.o n_pkey.o a_hdr.o x_pkey.o a_bool.o x_exten.o asn1_par.o asn1_lib.o asn1_err.o a_meth.o a_bytes.o evp_asn1.o
LIBSRC=a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c
LIBOBJ=a_object.o a_bitstr.o a_utctm.o a_gentm.o a_time.o a_int.o a_octet.o a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o a_bmp.o a_sign.o a_digest.o a_verify.o x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o x_name.o x_cinf.o x_x509.o x_crl.o x_info.o x_spki.o nsseq.o d2i_r_pr.o i2d_r_pr.o d2i_r_pu.o i2d_r_pu.o d2i_s_pr.o i2d_s_pr.o d2i_s_pu.o i2d_s_pu.o d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o t_req.o t_x509.o t_pkey.o p7_i_s.o p7_signi.o p7_signd.o p7_recip.o p7_enc_c.o p7_evp.o p7_dgst.o p7_s_e.o p7_enc.o p7_lib.o f_int.o f_string.o i2d_dhp.o i2d_dsap.o d2i_dhp.o d2i_dsap.o n_pkey.o a_hdr.o x_pkey.o a_bool.o x_exten.o asn1_par.o asn1_lib.o asn1_err.o a_meth.o a_bytes.o evp_asn1.o
LIBSRC=a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c nsseq.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c
SRC=a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c nsseq.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto/pem
ALL=Makefile pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c pem.h pem2.h
APPS=
AR=ar r
CC=cc
CFLAG=-g
CFLAGS=-I.. -I../../include -g
CTX_SIZE=ctx_size
DIR=pem
ERR=pem
ERRC=pem_err
EXHEADER=pem.h pem2.h
GENERAL=Makefile
HEADER=pem.h pem2.h
INCLUDES=-I.. -I../../include
INSTALLTOP=/usr/local/ssl
LIB=../../libcrypto.a
LIBOBJ=pem_sign.o pem_seal.o pem_info.o pem_lib.o pem_all.o pem_err.o
LIBSRC=pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
@@ -741,12 +741,37 @@ LIB=../../libcrypto.a
LIBOBJ=x509_def.o x509_d2.o x509_r2x.o x509_cmp.o x509_obj.o x509_req.o x509_vfy.o x509_set.o x509rset.o x509_err.o x509name.o x509_v3.o x509_ext.o x509pack.o x509type.o x509_lu.o x_all.o x509_txt.o by_file.o by_dir.o v3_net.o v3_x509.o
LIBSRC=x509_def.c x509_d2.c x509_r2x.c x509_cmp.c x509_obj.c x509_req.c x509_vfy.c x509_set.c x509rset.c x509_err.c x509name.c x509_v3.c x509_ext.c x509pack.c x509type.c x509_lu.c x_all.c x509_txt.c by_file.c by_dir.c v3_net.c v3_x509.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=x509_def.c x509_d2.c x509_r2x.c x509_cmp.c x509_obj.c x509_req.c x509_vfy.c x509_set.c x509rset.c x509_err.c x509name.c x509_v3.c x509_ext.c x509pack.c x509type.c x509_lu.c x_all.c x509_txt.c by_file.c by_dir.c v3_net.c v3_x509.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto/x509v3
ALL=Makefile README v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c v3_prn.c v3_utl.c v3err.c x509v3.h
APPS=
AR=ar r
CC=cc
CFLAG=-g
CFLAGS=-I.. -I../../include -g
DIR=x509v3
ERR=x509v3
ERRC=v3err
EXHEADER=x509v3.h
GENERAL=Makefile README
HEADER=x509v3.h
INCLUDES=-I.. -I../../include
INSTALLTOP=/usr/local/ssl
LIB=../../libcrypto.a
LIBOBJ=v3_bcons.o v3_bitst.o v3_conf.o v3_extku.o v3_ia5.o v3_lib.o v3_prn.o v3_utl.o v3err.o
LIBSRC=v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c v3_prn.c v3_utl.c v3err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c v3_prn.c v3_utl.c v3err.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto/conf
ALL=Makefile conf.c conf_err.c conf_lcl.h conf.h
APPS=
@@ -766,7 +791,7 @@ LIB=../../libcrypto.a
LIBOBJ=conf.o conf_err.o
LIBSRC=conf.c conf_err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=conf.c conf_err.c
TEST=
@@ -789,7 +814,7 @@ LIB=../../libcrypto.a
LIBOBJ=txt_db.o
LIBSRC=txt_db.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=txt_db.c
TEST=
@@ -814,12 +839,37 @@ LIB=../../libcrypto.a
LIBOBJ=pk7_lib.o pkcs7err.o pk7_doit.o
LIBSRC=pk7_lib.c pkcs7err.c pk7_doit.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=pk7_lib.c pkcs7err.c pk7_doit.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=crypto/comp
ALL=Makefile comp_lib.c c_rle.c c_zlib.c comp.h
APPS=
AR=ar r
CC=cc
CFLAG=-g
CFLAGS=-I.. -I../../include -g
DIR=comp
ERR=comp
ERRC=comp_err
EXHEADER=comp.h
GENERAL=Makefile
HEADER=comp.h
INCLUDES=-I.. -I../../include
INSTALLTOP=/usr/local/ssl
LIB=../../libcrypto.a
LIBOBJ=comp_lib.o c_rle.o c_zlib.o
LIBSRC=comp_lib.c c_rle.c c_zlib.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=../../util/domd ../..
MAKEFILE=Makefile.ssl
SRC=comp_lib.c c_rle.c c_zlib.c
TEST=
TOP=../..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=ssl
ALL=Makefile README s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c ssl.h ssl2.h ssl3.h ssl23.h tls1.h ssl_locl.h
APPS=
@@ -839,14 +889,14 @@ LIB=../libssl.a
LIBOBJ=s2_meth.o s2_srvr.o s2_clnt.o s2_lib.o s2_enc.o s2_pkt.o s3_meth.o s3_srvr.o s3_clnt.o s3_lib.o s3_enc.o s3_pkt.o s3_both.o s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o s23_pkt.o t1_meth.o t1_srvr.o t1_clnt.o t1_lib.o t1_enc.o ssl_lib.o ssl_err2.o ssl_cert.o ssl_sess.o ssl_ciph.o ssl_stat.o ssl_rsa.o ssl_asn1.o ssl_txt.o ssl_algs.o bio_ssl.o ssl_err.o
LIBSRC=s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../util/domd ..
MAKEFILE=Makefile.ssl
SRC=s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c
TEST=ssltest.c
TOP=..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=rsaref
ALL=Makefile rsaref.c rsar_err.c rsaref.h
ALL=Makefile rsaref.c rsar_err.c rsaref.h
APPS=
AR=ar r
CC=cc
@@ -855,23 +905,23 @@ CFLAGS=-I../crypto -I../include -g
DIR=rsaref
ERR=rsaref
ERRC=rsar_err
EXHEADER=
EXHEADER=rsaref.h
GENERAL=Makefile
HEADER= rsaref.h
HEADER=rsaref.h
INCLUDES=-I../crypto -I../include
INSTALLTOP=/usr/local/ssl
LIB=../libRSAglue.a
LIBOBJ=rsaref.o rsar_err.o
LIBSRC=rsaref.c rsar_err.c
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../util/domd ..
MAKEFILE=Makefile.ssl
SRC=rsaref.c rsar_err.c
TEST=
TOP=..
RELATIVE_DIRECTORY=
RELATIVE_DIRECTORY=apps
ALL=Makefile verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c apps.h progs.h s_apps.h testdsa.h testrsa.h
ALL=Makefile verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c nseq.c apps.h progs.h s_apps.h testdsa.h testrsa.h
A_OBJ=apps.o
A_SRC=apps.c
CC=cc
@@ -880,12 +930,12 @@ CFLAGS=-DMONOLITH -I../include -g -static
DIR=apps
DLIBCRYPTO=../libcrypto.a
DLIBSSL=../libssl.a
EXE=ssleay
EXE=openssl
EXHEADER=
EX_LIBS=
E_EXE=verify asn1pars req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers
E_OBJ=verify.o asn1pars.o req.o dgst.o dh.o enc.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o dsa.o dsaparam.o x509.o genrsa.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o version.o sess_id.o ciphers.o
E_SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c
E_EXE=verify asn1pars req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa gendsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers nseq
E_OBJ=verify.o asn1pars.o req.o dgst.o dh.o enc.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o dsa.o dsaparam.o x509.o genrsa.o gendsa.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o version.o sess_id.o ciphers.o nseq.o
E_SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c nseq.c
GENERAL=Makefile
HEADER=apps.h progs.h s_apps.h testdsa.h testrsa.h
INCLUDES=-I../include
@@ -893,14 +943,14 @@ INSTALLTOP=/usr/local/ssl
LIBCRYPTO=-L.. -lcrypto
LIBSSL=-L.. -lssl
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../util/domd ..
MAKEFILE=Makefile.ssl
PEX_LIBS=
PROGS=ssleay.c
PROGRAM=openssl
PROGS=openssl.c
RM=/bin/rm -f
SCRIPTS=CA.sh der_chop
SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c
SSLEAY=ssleay
SCRIPTS=CA.sh CA.pl der_chop
SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c nseq.c
S_OBJ=s_cb.o s_socket.o
S_SRC=s_cb.c s_socket.c
TOP=..
@@ -932,7 +982,7 @@ INSTALLTOP=/usr/local/ssl
LIBCRYPTO=-L.. -lcrypto
LIBSSL=-L.. -lssl
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -fMakefile.ssl
MAKEDEPEND=../util/domd ..
MAKEFILE=Makefile.ssl
MD2TEST=md2test
MD5TEST=md5test
@@ -961,7 +1011,7 @@ GENERAL=Makefile.ssl
INCLUDES=-I.. -I../../include
INSTALLTOP=/usr/local/ssl
MAKE=make -f Makefile.ssl
MAKEDEPEND=makedepend -f Makefile.ssl
MAKEDEPEND=../util/domd ..
MAKEFILE=Makefile.ssl
TEST=
TOP=..

View File

@@ -1,33 +1,10 @@
#
# Makefile for all the SSL related library routines and utilities
VERSION = 0.9.0a
#
# make install will install:
# libraries into $INSTALLTOP/lib
# headers into $INSTALLTOP/include
# utilities into $INSTALLTOP/bin
#
# By default INSTALLTOP is set to /usr/local/ssl
# If you want things install elsewere, consider running
# perl util/ssldir.pl /new/path
#
# Interesting Mailing Lists:
# ssl-bugs@mincom.oz.au
# ssl-users@mincom.oz.au
#
# To join the Mailing Lists:
# ssl-bugs-request@mincom.oz.au
# ssl-users-request@mincom.oz.au
#
# If you must get hold of people directly (we much prefer the above
# lists to be used if the question is of general interest!):
# Eric Young <eay@cryptsoft.com>
# Tim Hudson <tjh@cryptsoft.com>
# or both <ssleay@cryptsoft.com>
#
# The primary distribution of SSLeay is from
# ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL
#
##
## Makefile for OpenSSL
##
VERSION = 0.9.2b
PLATFORM=dist
# NOCONST - Define for C compilers that don't like the const key word.
# NOPROTO - Define in if your compiler does not support prototypes.
# RSAref - Define if we are to link with RSAref.
@@ -57,33 +34,35 @@ VERSION = 0.9.0a
# MD5_ASM needs to be defined to use the x86 assembler for MD5
# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must
# equal 4.
# PKCS1_CHECK - pkcs1 tests.
CC= cc
#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DMD5_ASM -DSHA1_ASM -DRMD160_ASM
CFLAG= -O -DNOPROTO
CC= gcc
#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
CFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
PEX_LIBS= -L. -L.. -L../.. -L../../..
EX_LIBS=
AR=ar r
# Set BN_MULW to bn_mulw.o if you want to use the C version
BN_MULW= bn_mulw.o
#BN_MULW= bn_mulw.o
#BN_MULW= asm/bn86-elf.o # elf, linux-elf
#BN_MULW= asm/bn86-sol.o # solaris
#BN_MULW= asm/bn86-out.o # a.out, FreeBSD
#BN_MULW= asm/bn86bsdi.o # bsdi
#BN_MULW= asm/alpha.o # DEC Alpha
#BN_MULW= asm/pa-risc2.o # HP-UX PA-RISC
#BN_MULW= asm/r3000.o # SGI MIPS cpu
#BN_MULW= asm/sparc.o # Sun solaris/SunOS
#BN_MULW= asm/bn-win32.o # Windows 95/NT
#BN_MULW= asm/x86w16.o # 16 bit code for Windows 3.1/DOS
#BN_MULW= asm/x86w32.o # 32 bit code for Windows 3.1
# Set BN_ASM to bn_asm.o if you want to use the C version
BN_ASM= bn_asm.o
#BN_ASM= bn_asm.o
#BN_ASM= asm/bn86-elf.o # elf, linux-elf
#BN_ASM= asm/bn86-sol.o # solaris
#BN_ASM= asm/bn86-out.o # a.out, FreeBSD
#BN_ASM= asm/bn86bsdi.o # bsdi
#BN_ASM= asm/alpha.o # DEC Alpha
#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC
#BN_ASM= asm/r3000.o # SGI MIPS cpu
#BN_ASM= asm/sparc.o # Sun solaris/SunOS
#BN_ASM= asm/bn-win32.o # Windows 95/NT
#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS
#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1
# Set DES_ENC to des_enc.o if you want to use the C version
#There are 4 x86 assember options.
DES_ENC= des_enc.o fcrypt_b.o
DES_ENC= asm/dx86-out.o asm/yx86-out.o
#DES_ENC= des_enc.o fcrypt_b.o # C
#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
@@ -92,7 +71,7 @@ DES_ENC= des_enc.o fcrypt_b.o
# Set BF_ENC to bf_enc.o if you want to use the C version
#There are 4 x86 assember options.
BF_ENC= bf_enc.o
BF_ENC= asm/bx86-out.o
#BF_ENC= bf_enc.o
#BF_ENC= asm/bx86-elf.o # elf
#BF_ENC= asm/bx86-sol.o # solaris
@@ -101,7 +80,7 @@ BF_ENC= bf_enc.o
# Set CAST_ENC to c_enc.o if you want to use the C version
#There are 4 x86 assember options.
CAST_ENC= c_enc.o
CAST_ENC= asm/cx86-out.o
#CAST_ENC= c_enc.o
#CAST_ENC= asm/cx86-elf.o # elf
#CAST_ENC= asm/cx86-sol.o # solaris
@@ -110,7 +89,7 @@ CAST_ENC= c_enc.o
# Set RC4_ENC to rc4_enc.o if you want to use the C version
#There are 4 x86 assember options.
RC4_ENC= rc4_enc.o
RC4_ENC= asm/rx86-out.o
#RC4_ENC= rc4_enc.o
#RC4_ENC= asm/rx86-elf.o # elf
#RC4_ENC= asm/rx86-sol.o # solaris
@@ -119,7 +98,7 @@ RC4_ENC= rc4_enc.o
# Set RC5_ENC to rc5_enc.o if you want to use the C version
#There are 4 x86 assember options.
RC5_ENC= rc5_enc.o
RC5_ENC= asm/r586-out.o
#RC5_ENC= rc5_enc.o
#RC5_ENC= asm/r586-elf.o # elf
#RC5_ENC= asm/r586-sol.o # solaris
@@ -127,21 +106,21 @@ RC5_ENC= rc5_enc.o
#RC5_ENC= asm/r586bsdi.o # bsdi
# Also need MD5_ASM defined
MD5_ASM_OBJ=
MD5_ASM_OBJ= asm/mx86-out.o
#MD5_ASM_OBJ= asm/mx86-elf.o # elf
#MD5_ASM_OBJ= asm/mx86-sol.o # solaris
#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD
#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi
# Also need SHA1_ASM defined
SHA1_ASM_OBJ=
SHA1_ASM_OBJ= asm/sx86-out.o
#SHA1_ASM_OBJ= asm/sx86-elf.o # elf
#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris
#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD
#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi
# Also need RMD160_ASM defined
RMD160_ASM_OBJ=
RMD160_ASM_OBJ= asm/rm86-out.o
#RMD160_ASM_OBJ= asm/rm86-elf.o # elf
#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris
#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD
@@ -154,10 +133,9 @@ SDIRS= \
des rc2 rc4 rc5 idea bf cast \
bn rsa dsa dh \
buffer bio stack lhash rand err objects \
evp pem asn1 x509 conf txt_db pkcs7
evp asn1 pem x509 x509v3 conf txt_db pkcs7 comp
# If you change the INSTALLTOP, make sure to also change the values
# in crypto/location.h
# Do not edit this manually. Use util/ssldir.pl do change this!
INSTALLTOP=/usr/local/ssl
MAKEFILE= Makefile.ssl
@@ -169,49 +147,54 @@ SHELL=/bin/sh
TOP= .
ONEDIRS=out tmp
EDIRS= times doc bugs util include certs ms shlib mt demos perl dep
MISC= COPYRIGHT Configure HISTORY.066 INSTALL Makefile.ssl Makefile \
README TODO HISTORY README.066 README.080 README.090 \
VERSION PROBLEMS MINFO makefile.one e_os.h \
MICROSOFT makevms.com config PATENTS
EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep
WDIRS= windows
LIBS= libcrypto.a libssl.a
GENERAL= Makefile
BASENAME= SSLeay
BASENAME= openssl
NAME= $(BASENAME)-$(VERSION)
TARFILE= $(NAME).tar
WTARFILE= $(NAME)-win.tar
EXHEADER= e_os.h
HEADER= e_os.h
all:
all: Makefile.ssl
@for i in $(DIRS) ;\
do \
(cd $$i; echo "making $$i..."; \
$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' SDIRS='${SDIRS}' AR='${AR}' all ); \
(cd $$i && echo "making all in $$i..." && \
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' SDIRS='${SDIRS}' AR='${AR}' all ) || exit 1; \
done;
sub_all:
@for i in $(DIRS) ;\
do \
(cd $$i; echo "making $$i..."; \
$(MAKE) CC='${CC}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' all ); \
(cd $$i && echo "making all in $$i..." && \
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' all ) || exit 1; \
done;
Makefile.ssl: Makefile.org
@echo "Makefile.ssl is older than Makefile.org."
@echo "Reconfigure the source tree (via 'perl Configure' or 'sh config')"
@echo "and update the error lists (via 'make errors'), please."
@false
libclean:
rm -f *.a */lib */*/lib
clean:
/bin/rm -f shlib/*.o *.o core a.out fluff *.map
rm -f shlib/*.o *.o core a.out fluff *.map
@for i in $(DIRS) ;\
do \
(cd $$i; echo "cleaning $$i..."; \
$(MAKE) SDIRS='${SDIRS}' clean ); \
/bin/rm -f $(LIBS); \
(cd $$i && echo "making clean in $$i..." && \
$(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \
rm -f $(LIBS); \
done;
/bin/rm -f *.a *.o speed.* *.map *.so .pure core
/bin/rm -f $(TARFILE)
rm -f *.a *.o speed.* *.map *.so .pure core
rm -f $(TARFILE)
@for i in $(ONEDIRS) ;\
do \
/bin/rm -fr $$i/*; \
rm -fr $$i/*; \
done
makefile.one: files
@@ -222,88 +205,78 @@ files: MINFO
perl $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO
@for i in $(DIRS) ;\
do \
(cd $$i; echo "making 'files' in $$i..."; \
$(MAKE) SDIRS='${SDIRS}' files ); \
(cd $$i && echo "making 'files' in $$i..." && \
$(MAKE) SDIRS='${SDIRS}' files ) || exit 1; \
done;
links:
/bin/rm -f Makefile;
./util/point.sh Makefile.ssl Makefile;
$(TOP)/util/mklink.sh include $(EXHEADER) ;
@for i in $(DIRS) ;\
do \
(cd $$i; echo "making links in $$i..."; \
$(MAKE) SDIRS='${SDIRS}' links ); \
@$(TOP)/util/point.sh Makefile.ssl Makefile
@$(TOP)/util/mklink.sh include $(EXHEADER)
@for i in $(DIRS); do \
(cd $$i && echo "making links in $$i..." && \
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' links ) || exit 1; \
done;
# @(cd apps; sh ./mklinks)
@( SSLEAY="`pwd`/apps/ssleay"; export SSLEAY; sh tools/c_rehash certs )
@(OPENSSL="`pwd`/apps/openssl"; export OPENSSL; sh tools/c_rehash certs)
dclean:
/bin/rm -f *.bak
rm -f *.bak
@for i in $(DIRS) ;\
do \
(cd $$i; echo "undoing makedepend in $$i..."; \
$(MAKE) SDIRS='${SDIRS}' dclean ); \
(cd $$i && echo "making dclean in $$i..." && \
$(MAKE) SDIRS='${SDIRS}' dclean ) || exit 1; \
done;
rehash:
@(PATH="`pwd`/apps:${PATH}"; sh tools/c_rehash certs)
@(OPENSSL="`pwd`/apps/openssl"; export OPENSSL; sh tools/c_rehash certs)
test: tests
tests:
(cd test; echo "testing $$i..."; \
$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SDIRS='${SDIRS}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' tests );
@apps/ssleay version -a
@(cd test && echo "testing..." && \
$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SDIRS='${SDIRS}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' tests );
@apps/openssl version -a
depend:
@for i in $(DIRS) ;\
do \
(cd $$i; echo "making dependancies $$i..."; \
$(MAKE) SDIRS='${SDIRS}' depend ); \
(cd $$i && echo "making dependancies $$i..." && \
$(MAKE) SDIRS='${SDIRS}' depend ) || exit 1; \
done;
lint:
@for i in $(DIRS) ;\
do \
(cd $$i; echo "making lint $$i..."; \
$(MAKE) SDIRS='${SDIRS}' lint ); \
(cd $$i && echo "making lint $$i..." && \
$(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
done;
tags:
@for i in $(DIRS) ;\
do \
(cd $$i; echo "making tags $$i..."; \
$(MAKE) SDIRS='${SDIRS}' tags ); \
(cd $$i && echo "making tags $$i..." && \
$(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \
done;
errors:
@for i in $(DIRS) ;\
do \
(cd $$i; echo "making errors in $$i..."; \
$(MAKE) SDIRS='${SDIRS}' errors ); \
(cd $$i && echo "making errors in $$i..." && \
$(MAKE) SDIRS='${SDIRS}' errors ) || exit 1; \
done;
tar:
@(cd ..;\
mv $(BASENAME) $(NAME); \
export STUFF; \
for i in $(MISC) $(DIRS) $(EDIRS) $(ONEDIRS) ;\
do \
STUFF="$$STUFF $(NAME)/$$i"; \
done; \
tar cf $(NAME)/$(TARFILE) $$STUFF; \
mv $(NAME) $(BASENAME) )
gzip -f $(TARFILE)
@gtar --no-recursion -cvf - \
`find * -depth -print | grep -v CVS | grep -v .cvsignore | grep -v STATUS | sort` |\
tardy --user_number=0 --user_name=openssl \
--group_number=0 --group_name=openssl \
--prefix=openssl-$(VERSION) - |\
gzip --best >../$(TARFILE).gz; \
ls -l ../$(TARFILE).gz
dist:
perl Configure dist
perl util/up_ver.pl ${VERSION}
@$(MAKE) dist_pem_h
@$(MAKE) SDIRS='${SDIRS}' clean
@$(MAKE) SDIRS='${SDIRS}' dclean
@(cd apps; sh ./rmlinks)
@$(MAKE) makefile.one
@$(MAKE) tar
dist_pem_h:

40
NEWS Normal file
View File

@@ -0,0 +1,40 @@
NEWS
====
This file gives a brief overview of the major changes between each OpenSSL
release. For more details please read the CHANGES file.
Major changes between SSLeay 0.9.1c and OpenSSL 0.9.2b:
o Fixed a security hole related to session resumption
o Fixed RSA encryption routines for the p < q case
o "ALL" in cipher lists now means "everything except NULL ciphers"
o Support for Triple-DES CBCM cipher
o Support of Optimal Asymmetric Encryption Padding (OAEP) for RSA
o First support for new TLSv1 ciphers
o Added a few new BIOs (syslog BIO, reliable BIO)
o Extended support for DSA certificate/keys.
o Extended support for Certificate Signing Requests (CSR)
o Initial support for X.509v3 extensions
o Extended support for compression inside the SSL record layer
o Overhauled Win32 builds
o Cleanups and fixes to the Big Number (BN) library
o Support for ASN.1 GeneralizedTime
o Splitted ASN.1 SETs from SEQUENCEs
o ASN1 and PEM support for Netscape Certificate Sequences
o Overhauled Perl interface
o Lots of source tree cleanups.
o Lots of memory leak fixes.
o Lots of bug fixes.
Major changes between SSLeay 0.9.0b and OpenSSL 0.9.1c:
o Integration of the popular NO_RSA/NO_DSA patches
o Initial support for compression inside the SSL record layer
o Added BIO proxy and filtering functionality
o Extended Big Number (BN) library
o Added RIPE MD160 message digest
o Addeed support for RC2/64bit cipher
o Extended ASN.1 parser routines
o Adjustations of the source tree for CVS
o Support for various new platforms

View File

@@ -1,9 +0,0 @@
RSA Data Security holds software patents on the RSA and RC5 algorithms.
If there ciphers are used used inside the USA (and Japan?), you must contact
RSA Data Security for licencing conditions.
The IDEA algorithm is patented by XXXX and they should be contacted if that
algorithm is to be used.
RC4 is a trademark of RSA Data Security, so use of this label should perhaps
only me used with RSA Data Security's permission.

View File

@@ -1,50 +0,0 @@
If you have any problems with SSLeay then please take the following
steps:
Remove the ASM version of the BN routines (edit Configure)
Remove the compiler optimisation flags
Add in the compiler debug flags (-g)
Note: if using gcc then remove -fomit-frame-pointer before you try
to debug things.
If you wish to report a bug then please include the following information
in any bug report:
SSLeay Details
- Version, most of these details can be got from the
'ssleay version -a' command.
Operating System Details
- OS Name
- OS Version
- Hardware platform
Compiler Details
- Name
- Version
Application Details
- Name
- Version
Problem Description
- include steps that will reproduce the problem (if known)
Stack Traceback (if the application dumps core)
For example:
SSLeay-0.5.1a
SunOS 5.3, SPARC, SunC 3.0
SSLtelnet-0.7
Core dumps when using telnet with SSL support in bn_mul() with
the following stack trackback
...
Report the bug to either
ssleay@mincom.oz.au (Eric and Tim)
or
ssl-bugs@mincom.oz.au (mailing list of active developers)
Tim Hudson
tjh@mincom.oz.au

305
README
View File

@@ -1,173 +1,188 @@
SSLeay 0.9.0b 29-Jun-1998
Copyright (c) 1997, Eric Young
All rights reserved.
This directory contains Eric Young's (eay@cryptsoft.com) implementation
of SSL and supporting libraries.
OpenSSL 0.9.2b 22-Mar-1999
The current version of this library is available from
ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-x.x.x.tar.gz
Copyright (c) 1998-1999 The OpenSSL Project
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
All rights reserved.
There are patches to a number of internet applications which can be found in
ftp://ftp.psy.uq.oz.au/pub/Crypto/SSLapps/
DESCRIPTION
-----------
A Web page containing the SSLeay FAQ written by Tim Hudson <tjh@cryptsoft.com>
can be found at
http://www.psy.uq.oz.au/~ftp/Crypto
The OpenSSL Project is a collaborative effort to develop a robust,
commercial-grade, fully featured, and Open Source toolkit implementing the
Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)
protocols with full-strength cryptography world-wide. The project is managed
by a worldwide community of volunteers that use the Internet to communicate,
plan, and develop the OpenSSL tookit and its related documentation.
Additional documentation is being slowly written by Eric Young, and is being
added to http://www.cryptsoft.com/ssleay/doc. It will normally also be
available on http://www.psy.uq.oz.au/~ftp/Crypto/ssleay
OpenSSL is based on the excellent SSLeay library developed from Eric A. Young
and Tim J. Hudson. The OpenSSL toolkit is licensed under a dual-license (the
OpenSSL license plus the SSLeay license) situation, which basically means
that you are free to get and use it for commercial and non-commercial
purposes as long as you fullfill the conditions of both licenses.
This Library and programs are FREE for commercial and non-commercial
usage. The only restriction is that I must be attributed with the
development of this code. See the COPYRIGHT file for more details.
Donations would still be accepted :-).
OVERVIEW
--------
THIS LIBRARY IS NOT %100 COMPATABLE WITH SSLeay 0.6.6
The OpenSSL toolkit includes:
The package includes
libssl.a:
Implementation of SSLv2, SSLv3, TLSv1 and the required code to support
both SSLv2, SSLv3 and TLSv1 in the one server and client.
libssl.a:
My implementation of SSLv2, SSLv3 and the required code to support
both SSLv2 and SSLv3 in the one server.
libcrypto.a:
General encryption and X.509 v1/v3 stuff needed by SSL/TLS but not
actually logically part of it. It includes routines for the following:
libcrypto.a:
General encryption and X509 stuff needed by SSL but not
actually logically part of it. It includes routines for the following:
Ciphers
libdes - EAY's libdes DES encryption package which has been floating
around the net for a few years. It includes 15
'modes/variations' of DES (1, 2 and 3 key versions of ecb,
cbc, cfb and ofb; pcbc and a more general form of cfb and
ofb) including desx in cbc mode, a fast crypt(3), and
routines to read passwords from the keyboard.
RC4 encryption,
RC2 encryption - 4 different modes, ecb, cbc, cfb and ofb.
Blowfish encryption - 4 different modes, ecb, cbc, cfb and ofb.
IDEA encryption - 4 different modes, ecb, cbc, cfb and ofb.
Ciphers
libdes - My libdes DES encryption package which has been floating
around the net for a few years. It includes 15
'modes/variations' of DES (1, 2 and 3 key versions of ecb,
cbc, cfb and ofb; pcbc and a more general form of cfb and ofb)
including desx in cbc mode,
a fast crypt(3), and routines to read passwords from the
keyboard.
RC4 encryption,
RC2 encryption - 4 different modes, ecb, cbc, cfb and ofb.
Blowfish encryption - 4 different modes, ecb, cbc, cfb and ofb.
IDEA encryption - 4 different modes, ecb, cbc, cfb and ofb.
Digests
MD5 and MD2 message digest algorithms, fast implementations,
SHA (SHA-0) and SHA-1 message digest algorithms,
MDC2 message digest. A DES based hash that is polular on smart cards.
Digests
MD5 and MD2 message digest algorithms, fast implementations,
SHA (SHA-0) and SHA-1 message digest algorithms,
MDC2 message digest. A DES based hash that is polular on smart cards.
Public Key
RSA encryption/decryption/generation.
There is no limit on the number of bits.
DSA encryption/decryption/generation.
There is no limit on the number of bits.
Diffie-Hellman key-exchange/key generation.
There is no limit on the number of bits.
Public Key
RSA encryption/decryption/generation. There is no limit
on the number of bits.
DSA encryption/decryption/generation. There is no limit on the
number of bits.
Diffie-Hellman key-exchange/key generation. There is no limit
on the number of bits.
X.509v3 certificates
X509 encoding/decoding into/from binary ASN1 and a PEM
based ascii-binary encoding which supports encryption with a
private key. Program to generate RSA and DSA certificate
requests and to generate RSA and DSA certificates.
X509v3 certificates
X509 encoding/decoding into/from binary ASN1 and a PEM
based ascii-binary encoding which supports encryption with
a private key.
Program to generate RSA and DSA certificate requests and to
generate RSA and DSA certificates.
Systems
The normal digital envelope routines and base64 encoding. Higher
level access to ciphers and digests by name. New ciphers can be
loaded at run time. The BIO io system which is a simple non-blocking
IO abstraction. Current methods supported are file descriptors,
sockets, socket accept, socket connect, memory buffer, buffering, SSL
client/server, file pointer, encryption, digest, non-blocking testing
and null.
Systems
The normal digital envelope routines and base64 encoding.
Higher level access to ciphers and digests by name. New ciphers can be
loaded at run time.
The BIO io system which is a simple non-blocking IO abstraction.
Current methods supported are file descriptors, sockets,
socket accept, socket connect, memory buffer, buffering,
SSL client/server, file pointer, encryption, digest,
non-blocking testing and null.
Data structures
A dynamically growing hashing system
A simple stack.
A Configuration loader that uses a format similar to MS .ini files.
Data structures
A dynamically growing hashing system
A simple stack.
A Configuration loader that uses a format similar to MS .ini files.
Programs in this package include
enc - a general encryption program that can encrypt/decrypt using
one of 17 different cipher/mode combinations. The
input/output can also be converted to/from base64
ascii encoding.
dgst - a generate message digesting program that will generate
message digests for any of md2, md5, sha (sha-0 or sha-1)
or mdc2.
asn1parse - parse and display the structure of an asn1 encoded
binary file.
rsa - Manipulate RSA private keys.
dsa - Manipulate DSA private keys.
dh - Manipulate Diffie-Hellman parameter files.
dsaparam- Manipulate and generate DSA parameter files.
crl - Manipulate certificate revocation lists.
crt2pkcs7- Generate a pkcs7 object containing a crl and a certificate.
x509 - Manipulate x509 certificates, self-sign certificates.
req - Manipulate PKCS#10 certificate requests and also
generate certificate requests.
genrsa - Generates an arbitrary sized RSA private key.
gendh - Generates a set of Diffie-Hellman parameters, the prime
will be a strong prime.
ca - Create certificates from PKCS#10 certificate requests.
This program also maintains a database of certificates
issued.
verify - Check x509 certificate signatures.
speed - Benchmark SSLeay's ciphers.
s_server- A test SSL server.
s_client- A test SSL client.
s_time - Benchmark SSL performance of SSL server programs.
errstr - Convert from SSLeay hex error codes to a readable form.
Documents avaliable are
A Postscript and html reference manual
(written by Tim Hudson tjh@cryptsoft.com).
openssl:
A command line tool which provides the following functions:
A list of text protocol references I used.
An initial version of the library manual.
enc - a general encryption program that can encrypt/decrypt using
one of 17 different cipher/mode combinations. The
input/output can also be converted to/from base64
ascii encoding.
dgst - a generate message digesting program that will generate
message digests for any of md2, md5, sha (sha-0 or sha-1)
or mdc2.
asn1parse - parse and display the structure of an asn1 encoded
binary file.
rsa - Manipulate RSA private keys.
dsa - Manipulate DSA private keys.
dh - Manipulate Diffie-Hellman parameter files.
dsaparam- Manipulate and generate DSA parameter files.
crl - Manipulate certificate revocation lists.
crt2pkcs7- Generate a pkcs7 object containing a crl and a certificate.
x509 - Manipulate x509 certificates, self-sign certificates.
req - Manipulate PKCS#10 certificate requests and also
generate certificate requests.
genrsa - Generates an arbitrary sized RSA private key.
gendsa - Generates DSA parameters.
gendh - Generates a set of Diffie-Hellman parameters, the prime
will be a strong prime.
ca - Create certificates from PKCS#10 certificate requests.
This program also maintains a database of certificates
issued.
verify - Check x509 certificate signatures.
speed - Benchmark OpenSSL's ciphers.
s_server- A test SSL server.
s_client- A test SSL client.
s_time - Benchmark SSL performance of SSL server programs.
errstr - Convert from OpenSSL hex error codes to a readable form.
nseq - Netscape certificate sequence utility
PATENTS
-------
To install this package, read the INSTALL file.
For the Microsoft word, read MICROSOFT
This library has been compiled and tested on Solaris 2.[34] (sparc and x86),
SunOS 4.1.3, DGUX, OSF1 Alpha, HPUX 9, AIX 3.5(?), IRIX 5.[23],
LINUX, NeXT (intel), linux, Windows NT, Windows 3.1, MSDOS 6.22.
Various companies hold various patents for various algorithms in various
locations around the world. _YOU_ are responsible for ensuring that your use
of any algorithms is legel by checking if there are any patents in your
country. The file contains some of the patents that we know about or are
rumoured to exist. This is not a definitive list.
Multithreading has been tested under Windows NT and Solaris 2.5.1
RSA Data Security holds software patents on the RSA and RC5 algorithms. If
their ciphers are used used inside the USA (and Japan?), you must contact RSA
Data Security for licencing conditions. Their web page is
http://www.rsa.com/.
Due to time constraints, the current release has only be rigorously tested
on Solaris 2.[45], Linux and Windows NT.
RC4 is a trademark of RSA Data Security, so use of this label should perhaps
only be used with RSA Data Security's permission.
For people in the USA, it is possible to compile SSLeay to use RSA
Inc.'s public key library, RSAref. From my understanding, it is
claimed by RSA Inc. to be illegal to use my public key routines inside the USA.
Read doc/rsaref.doc on how to build with RSAref.
The IDEA algorithm is patented by Ascom in Austria, France, Germany, Italy,
Japan, Netherlands, Spain, Sweden, Switzerland, UK and the USA. They should
be contacted if that algorithm is to be used, their web page is
http://www.ascom.ch/.
Read the documentation in the doc directory. It is quite rough,
but it lists the functions, you will probably have to look at
the code to work out how to used them. I will be working on
documentation. Look at the example programs.
INSTALLATION
------------
There should be a SSL reference manual which is being put together by
Tim Hudson (tjh@cryptsoft.com) in the same location as this
distribution. This contains a lot more information that is very
useful. For a description of X509 Certificates, their use, and
certification, read rfc1421, rfc1422, rfc1423 and rfc1424. ssl/README
also goes over the mechanism.
To install this package under a Unix derivative, read the INSTALL file. For
a Win32 platform, read the INSTALL.W32 file.
We have setup some mailing lists for use by people that are interested
in helping develop this code and/or ask questions.
ssl-bugs@mincom.oz.au
ssl-users@mincom.oz.au
ssl-bugs-request@mincom.oz.au
ssl-users-request@mincom.oz.au
For people in the USA, it is possible to compile OpenSSL to use RSA Inc.'s
public key library, RSAref. Read doc/ssleay.txt under 'rsaref.doc' on how to
build with RSAref.
I have recently read about a new form of software, that which is in
a permanent state of beta release. Linux and Netscape are 2 good
examples of this, and I would also add SSLeay to this category.
The Current stable release is 0.6.6. It has a few minor problems.
0.8.0 is not call compatable so make sure you have the correct version
of SSLeay to link with.
Read the documentation in the doc/ directory. It is quite rough, but it
lists the functions, you will probably have to look at the code to work out
how to used them. Look at the example programs.
eric (Jun 1997)
SUPPORT
-------
Eric Young (eay@cryptsoft.com)
86 Taunton St.
Annerley 4103.
Australia.
If you have any problems with OpenSSL then please take the following steps
first:
- Remove ASM versions of libraries
- Remove compiler optimisation flags
- Add compiler debug flags (if using gcc then remove -fomit-frame-pointer
before you try to debug things)
If you wish to report a bug then please include the following information in
any bug report:
OpenSSL Details
- Version, most of these details can be got from the
'openssl version -a' command.
Operating System Details
- OS Name
- OS Version
- Hardware platform
Compiler Details
- Name
- Version
Application Details
- Name
- Version
Problem Description
- include steps that will reproduce the problem (if known)
Stack Traceback (if the application dumps core)
Report the bug to the OpenSSL project at:
openssl-users@openssl.org

View File

@@ -1,27 +0,0 @@
SSLeay 0.6.6 13-Jan-1997
The main additions are
- assember for x86 DES improvments.
From 191,000 per second on a pentium 100, I now get 281,000. The inner
loop and the IP/FP modifications are from
Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>. Many thanks for his
contribution.
- The 'DES macros' introduced in 0.6.5 now have 3 types.
DES_PTR1, DES_PTR2 and 'normal'. As per before, des_opts reports which
is best and there is a summery of mine in crypto/des/options.txt
- A few bug fixes.
- Added blowfish. It is not used by SSL but all the other stuff that
deals with ciphers can use it in either ecb, cbc, cfb64 or ofb64 modes.
There are 3 options for optimising Blowfish. BF_PTR, BF_PTR2 and 'normal'.
BF_PTR2 is pentium/x86 specific. The correct option is setup in
the 'Configure' script.
- There is now a 'get client certificate' callback which can be
'non-blocking'. If more details are required, let me know. It will
documented more in SSLv3 when I finish it.
- Bug fixes from 0.6.5 including the infamous 'ca' bug. The 'make test'
now tests the ca program.
- Lots of little things modified and tweaked.
eric

View File

@@ -1,147 +0,0 @@
This version of SSLeay has quite a lot of things different from the
previous version.
Basically check all callback parameters, I will be producing documentation
about how to use things in th future. Currently I'm just getting 080 out
the door. Please not that there are several ways to do everything, and
most of the applications in the apps directory are hybrids, some using old
methods and some using new methods.
Have a look in demos/bio for some very simple programs and
apps/s_client.c and apps/s_server.c for some more advanced versions.
Notes are definitly needed but they are a week or so away.
Anyway, some quick nots from Tim Hudson (tjh@cryptsoft.com)
---
Quick porting notes for moving from SSLeay-0.6.x to SSLeay-0.8.x to
get those people that want to move to using the new code base off to
a quick start.
Note that Eric has tidied up a lot of the areas of the API that were
less than desirable and renamed quite a few things (as he had to break
the API in lots of places anyrate). There are a whole pile of additional
functions for making dealing with (and creating) certificates a lot
cleaner.
01-Jul-97
Tim Hudson
tjh@cryptsoft.com
---8<---
To maintain code that uses both SSLeay-0.6.x and SSLeay-0.8.x you could
use something like the following (assuming you #include "crypto.h" which
is something that you really should be doing).
#if SSLEAY_VERSION_NUMBER >= 0x0800
#define SSLEAY8
#endif
buffer.h -> splits into buffer.h and bio.h so you need to include bio.h
too if you are working with BIO internal stuff (as distinct
from simply using the interface in an opaque manner)
#include "bio.h" - required along with "buffer.h" if you write
your own BIO routines as the buffer and bio
stuff that was intermixed has been separated
out
envelope.h -> evp.h (which should have been done ages ago)
Initialisation ... don't forget these or you end up with code that
is missing the bits required to do useful things (like ciphers):
SSLeay_add_ssl_algorithms()
(probably also want SSL_load_error_strings() too but you should have
already had that call in place)
SSL_CTX_new() - requires an extra method parameter
SSL_CTX_new(SSLv23_method())
SSL_CTX_new(SSLv2_method())
SSL_CTX_new(SSLv3_method())
OR to only have the server or the client code
SSL_CTX_new(SSLv23_server_method())
SSL_CTX_new(SSLv2_server_method())
SSL_CTX_new(SSLv3_server_method())
or
SSL_CTX_new(SSLv23_client_method())
SSL_CTX_new(SSLv2_client_method())
SSL_CTX_new(SSLv3_client_method())
SSL_set_default_verify_paths() ... renamed to the more appropriate
SSL_CTX_set_default_verify_paths()
If you want to use client certificates then you have to add in a bit
of extra stuff in that a SSLv3 server sends a list of those CAs that
it will accept certificates from ... so you have to provide a list to
SSLeay otherwise certain browsers will not send client certs.
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(s_cert_file));
X509_NAME_oneline(X) -> X509_NAME_oneline(X,NULL,0)
or provide a buffer and size to copy the
result into
X509_add_cert -> X509_STORE_add_cert (and you might want to read the
notes on X509_NAME structure changes too)
VERIFICATION CODE
=================
The codes have all be renamed from VERIFY_ERR_* to X509_V_ERR_* to
more accurately reflect things.
The verification callback args are now packaged differently so that
extra fields for verification can be added easily in future without
having to break things by adding extra parameters each release :-)
X509_cert_verify_error_string -> X509_verify_cert_error_string
BIO INTERNALS
=============
Eric has fixed things so that extra flags can be introduced in
the BIO layer in future without having to play with all the BIO
modules by adding in some macros.
The ugly stuff using
b->flags ~= (BIO_FLAGS_RW|BIO_FLAGS_SHOULD_RETRY)
becomes
BIO_clear_retry_flags(b)
b->flags |= (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)
becomes
BIO_set_retry_read(b)
Also ... BIO_get_retry_flags(b), BIO_set_flags(b)
OTHER THINGS
============
X509_NAME has been altered so that it isn't just a STACK ... the STACK
is now in the "entries" field ... and there are a pile of nice functions
for getting at the details in a much cleaner manner.
SSL_CTX has been altered ... "cert" is no longer a direct member of this
structure ... things are now down under "cert_store" (see x509_vfy.h) and
things are no longer in a CERTIFICATE_CTX but instead in a X509_STORE.
If your code "knows" about this level of detail then it will need some
surgery.
If you depending on the incorrect spelling of a number of the error codes
then you will have to change your code as these have been fixed.
ENV_CIPHER "type" got renamed to "nid" and as that is what it actually
has been all along so this makes things clearer.
ify_cert_error_string(ctx->error));
SSL_R_NO_CIPHER_WE_TRUST -> SSL_R_NO_CIPHER_LIST
and SSL_R_REUSE_CIPHER_LIST_NOT_ZERO

View File

@@ -1,71 +0,0 @@
10-Apr-1998
I said the next version would go out at easter, and so it shall.
I expect a 0.9.1 will follow with portability fixes in the next few weeks.
This is a quick, meet the deadline. Look to ssl-users for comments on what
is new etc.
The state of play
- TLSv1 - I need to do some explaining about how the methods interact.
The bad news is that SSLeay 0.8.x application will not roll back to
SSLv3, I suffed up. 0.8.x is rather pedantic about the '3.0' version
number. Look at the 'no-tls' options in applications in the apps directory.
- The perl5 stuff is very rough. The SSL part does not work due to
reference count hassles in the BIO stuff. I just have not had time to
look at it. The cipher, digest and bignum stuff works though. I just
need to clean up the API.
- Lots of x86 assember. I now have it for des, 3des, rc4, rc5, blowfish,
cast, md5, sha1 and ripemd160. It has been tested on win32, linux (elf)
and FreeBSD (a.out).
- As mentioned above, cast, rc5 and ripemd160 have been added.
- A simple HMAC set of functions.
- EX_DATA strucutre, which can be used by applications or other libraries
to tack arbitarty data against strucutures that include it.
You will probably have to see examples to see how to use it, and I will
elaberate on the ssl-users mailing list
- RSA blinding. If you fear timing attacks on RSA, you can turn on
blinding which defeats it.
- From Tim Hudson, try running 'sh config' instead of 'perl Configure'.
I makes an educated guess as to what you are and then runs 'perl Configure'
- The error stuff has been modified so arbitary strings can be taged
against an error message. It is used in a few places to elaberate on
parameters that caused the error.
Areas of work
- The 16bit big-num assember needs a routine added. The WIN16 and
WIN32 stuff is ok, but MS-DOS or 286 builds need the update.
- Most of the bignum assember will not work. There will be a function
missing, bn_add_words(). I need people to send me the C compiler output
for platforms I don't already have. Currently, the assember is correct for
x86, win32, win16(386+), linux elf, FreeBSD a.out and sparc.
- PKCS7, I have delusions of s/MIME. I need to do a BIO interface.
- perl5, it needs finishing
- X509v3 extension. I have some ideas, I just need to
implement them :-)
- Public key methods. I need to clean up the library internally so
public key methods are loaded is a similar way to symetric ciphers
and digests. I also need to seperate out the digests from public
key methods. This stuff is needed to support sortware patents, smaller
code size and hardware tokens.
Anyway, this release gets out the bug fixes and TLS, but be warned, until
all those old SSLeay 0.8.x based server get upgraded, you will need to
connect with SSLv3 if TLSv1 fails.
eric (about to go bushwalking for the 4 day easter break :-)
PS Common problems
- For Win32 build, use /MD to specify your libraries, or build SSLeay with
the same flags as your application. Visual C stuffs up the malloc routines
if memory allocated by one memory model is freed by another. FILE pointers
are a major cause of these problem.
- If you are trying to use non-blocking IO and it is not working,
try 'ssleay s_client -help' and see if the -nbio option is listed.
For unixware, it has the non-block IO define in 'differnt' header file
and SSLeay will silently build without non-blocking IO calls (but for
unixware, the special header has been included).
- -DL_ENDIAN. For the message digests, some code needs to be turned off
in the C code when assember is used. For x86, this means the L_ENDIAN
needs to defined when x86 -DSHA1_ASM is defined. The reasons this is
not automagically done is because non-x86 assember could be bigendian.
For pure C code builds, the B_ENDIAN/L_ENDIAN flags are optional.

179
STATUS Normal file
View File

@@ -0,0 +1,179 @@
OpenSSL STATUS Last modified at
______________ $Date: 1999/03/14 01:16:42 $
DEVELOPMENT STATE
o OpenSSL 0.9.2: Freezed!
- No more feature commits, please.
- Commit bugfixes and cleanups only, please.
- Already successfully tested platform:
o FreeBSD 2.2.7 Ben Laurie OK
o FreeBSD 3.1 Ralf S. Engelschall OK
o Solaris 2.6 Ralf S. Engelschall OK except for ctype warns
o Linux RH 5.1 Steve Henson OK
o Linux 2.0 RH 5.2 Ralf S. Engelschall OK
o Linux 2.2 RH 5.2 Peter 'Luna' Altberg OK
o WinNT,95 VC++ 5 Steve Henson OK
Proposed release time: Monday, March 15th 1999
o OpenSSL 0.9.1c: Released on December 23th, 1998
RELEASE SHOWSTOPPERS
o Compilation warnings: ctype-related int vs. char
o Compilation error: "unsigned long*" and "int*" under AIX
o Why are NULL ciphers in front of the cipher spec?
(see my posting "Bug?!: Cipher Suite and NULL Ciphers" in openssl-dev)
o A Linux alpha user reported: "alpha.s does not have bn_div_word()"
(see posting "ALPHA error" in openssl-dev)
o Undefined BN symbols in assembler stuff on Solaris
(see posting "openssl-SNAP-19990308-2130 on Solaris-2.6 SC4" in openssl-dev)
AVAILABLE PATCHES
o Solaris AS error (kenji@miyake.org)
o getenv in ca.c and x509_def.c (jaltman@watsun.cc.columbia.edu)
o s3_lib.c - export clients (levitte@stacken.kth.se)
o linux dynamic libs (colin@field.medicine.adelaide.edu.au)
o MingW support (niklas@canit.se)
o crypto/des/enc_read.c bugfix (mike@cs.mun.ca)
IN PROGRESS
o Steve is currently working on:
X509 V3 extension code including:
1. Support for the more common PKIX extensions.
2. Proper (or at least usable) certificate chain verification.
3. Support in standard applications (req, x509, ca).
4. Documentation on how all the above works.
Next on the list is probably PKCS#12 integration.
o Mark is currently working on:
Folding in any changes that are in the C2Net code base that were
not in the original SSLeay-0.9.1.b release. Plus other minor
tidying.
o Ralf is currently working on:
1. Support for SSL_set_default_verify_paths(),
SSL_load_verify_locations(), SSL_get_cert_store() and
SSL_set_cert_store() functions which work like their existing
SSL_CTX_xxx() variants but on a per connection basis. That's needed
to let us provide full-featured per-URL client verification in
mod_ssl or Apache-SSL.
=> It still dumps core, so I suspend this and investigate
again for OpenSSL 0.9.3.
2. The perl/ stuff to make it really work the first time ;-)
=> I'll investigate a few more hours for OpenSSL 0.9.2
3. The new documentation set in POD format under doc/
=> I'll investigate a few more hours for OpenSSL 0.9.2
4. More cleanups to get rid of obsolete/old/ugly files in the
source tree which are not really needed.
=> Done all which were possible with my personal knowledge
o Ben is currently working on:
1. Function Prototype Thought Police issues.
2. Integrated documentation.
3. New TLS Ciphersuites.
4. Anything else that takes his fancy.
NEEDS PATCH
OPEN ISSUES
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.
2. The xxx.org -> xxx.h generation:
It's not obvious for which file xxx.org is the source.
Suggestion: Rename xxx.org to xxx.h.in (Autoconf style), this way
one sees that xxx.h.in is the input for xxx.h
Status: Mark +1
o The installation under "make install" produces a very
installation layout: $prefix/certs and $prefix/private dirs. That's
not nice. Ralf suggests to move the two certs and private dirs either
to $prefix/etc/, $prefix/lib/ or $prefix/share. Alternatively
we could also not install the certs at all.
Status: Ralf +1 for both not installing the certs at all and
moving it to $prefix/etc/. +0 for $prefix/lib/
and $prefix/share.
Paul: why is it not nice?
Ralf: because it messes up the install dir when
$prefix is not a dedicated area like /usr/local/ssl.
When we move them to a standard subdir like
etc/ lib/ or share/ we don't mess up things
when $prefix is /usr or /usr/local, etc.
Additionally it makes package vendors life
easier....
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.
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
o The EVP and ASN1 stuff is a mess. Currently you have one EVP_CIPHER
structure for each cipher. This may make sense for things like DES but
for variable length ciphers like RC2 and RC4 it is NBG. Need a way to
use the EVP interface and set up the cipher parameters. The ASN1 stuff
is also foo wrt ciphers whose AlgorithmIdentifier has more than just
an IV in it (e.g. RC2, RC5). This also means that EVP_Seal and EVP_Open
don't work unless the key length matches the fixed value (some vendors
use a key length decided by the size of the RSA encrypted key and expect
RC2 to adapt).
o Properly initialize the PRNG in the absence of /dev/random.
o > NO_RSA (ejs@bfd.com)
> ./Configure -DNO_IDEA -DNO_RC5 -DNO_RC4 -DNO_RC2 -DNO_RSA -DNO_ERR linux-elf
> I tried for a whole day to do this and could not get it to work. Linux
> machine, kernel 2.0.36 and 2.2.1, redhat 5.2 latest, gcc and egcs , no
> go. I also noticed the even with -DNO_IDEA, _DNO_RC2, etc. the make
> still goes into those subdirectories and 'makes'.
WISHES
o Damien Miller:
"How about making the each of the locations compile-time defined. I
would like to (for example) put binaries in /usr/bin, configuration
data, certs and keys in /etc/openssl/certs and /etc/openssl/keys, etc.
This would also be a great boon to binary package makers. The
SSLeay-0.9.1b RPM already includes some patches which do some of this.
I can forward them if you wish."
o Mats Nilsson <mats.nilsson@xware.se>:
"Add reference counting to all substructures of X509 etc. For instance,
X509_NAME lacks a reference counter, while EVP_PKEY has one. I'm
making COM-wrappers for selected parts of SSLeay for a project of ours,
and has found this inconsistency in copy semantics annoying."

28
TODO
View File

@@ -1,28 +0,0 @@
- The loading of the netscape RC4 encrypted key is a crock of pig pellets.
It will be reworked along with a nice general mechanism for encrypting
ASN.1 stuff. [ Jun 96 ] I've cleaned up private keys internally but
still have not done PKCS#8 support.
- Winsock support in s_client/s_server for windows nt/3.1 is a crock.
I will probably not get this fixed for a while, it is just there so
I could test things.
- Be able to generate DSS certificates.
- Add CRL to the X509 verification stuff, this will probably be added with
SSLv3.
+ X509 callback. I need to callback the application to retrieve certificates
and CRL.
*<- designates the things I'm activly working on.
+<- designates that which I have next in the queue.
====
X509v3 extensions
verify certificate chains
X509 cert lookup methods
RSA/DSA/DH methods mostly for smart cards
dsa cert generation

24
VERSION
View File

@@ -1,24 +0,0 @@
SSLeay 0.8.1
- Mostly bug fixes. There is an Ephemeral DH cipher problem which
is fixed.
SSLeay 0.8.0
- New release, for those that are wondering what happend to
0.7.x, call it our internal development version :-)
- There have been lots of changes, mostly the addition of SSLv3.
- There have been many additions from people and amongst
others, C2Net has assisted greatly.
SSLeay 0.6.6
SSLeay 0.8.0 is not upward compatable with SSLeay 0.6.6, so
if your application requires 0.6.6, use it. There have been
lots of bug fixes to 0.8.x that have not been applied to 0.6.6
so use 0.8.0+ in preference.
PORTING 0.6.6 to 0.8.0
I'll be documenting this over the next few weeks but as
pressures have been increasing for making SSLv3 support
available I'm shipping it without this documentation as I
basically have not had time to write it (too busy earning a
living :-)

1
apps/.cvsignore Normal file
View File

@@ -0,0 +1 @@
openssl

153
apps/CA.pl Executable file
View File

@@ -0,0 +1,153 @@
#!/usr/local/bin/perl
#
# CA - wrapper around ca to make it easier to use ... basically ca requires
# some setup stuff to be done before you can use it and this makes
# things easier between now and when Eric is convinced to fix it :-)
#
# CA -newca ... will setup the right stuff
# CA -newreq ... will generate a certificate request
# CA -sign ... will sign the generated request and output
#
# At the end of that grab newreq.pem and newcert.pem (one has the key
# and the other the certificate) and cat them together and that is what
# you want/need ... I'll make even this a little cleaner later.
#
#
# 12-Jan-96 tjh Added more things ... including CA -signcert which
# converts a certificate to a request and then signs it.
# 10-Jan-96 eay Fixed a few more bugs and added the SSLEAY_CONFIG
# environment variable so this can be driven from
# a script.
# 25-Jul-96 eay Cleaned up filenames some more.
# 11-Jun-96 eay Fixed a few filename missmatches.
# 03-May-96 eay Modified to use 'ssleay cmd' instead of 'cmd'.
# 18-Apr-96 tjh Original hacking
#
# Tim Hudson
# tjh@cryptsoft.com
#
# 27-Apr-98 snh Translation into perl, fix existing CA bug.
#
#
# Steve Henson
# shenson@bigfoot.com
# default openssl.cnf file has setup as per the following
# demoCA ... where everything is stored
$DAYS="-days 365";
$REQ="openssl req $SSLEAY_CONFIG";
$CA="openssl ca $SSLEAY_CONFIG";
$VERIFY="openssl verify";
$X509="openssl x509";
$CATOP="./demoCA";
$CAKEY="cakey.pem";
$CACERT="cacert.pem";
$DIRMODE = 0777;
$RET = 0;
foreach (@ARGV) {
if ( /^(-\?|-h|-help)$/ ) {
print STDERR "usage: CA -newcert|-newreq|-newca|-sign|-verify\n";
exit 0;
} elsif (/^-newcert$/) {
# create a certificate
system ("$REQ -new -x509 -keyout newreq.pem -out newreq.pem $DAYS");
$RET=$?;
print "Certificate (and private key) is in newreq.pem\n"
} elsif (/^-newreq$/) {
# create a certificate request
system ("$REQ -new -keyout newreq.pem -out newreq.pem $DAYS");
$RET=$?;
print "Request (and private key) is in newreq.pem\n";
} elsif (/^-newca$/) {
# if explictly asked for or it doesn't exist then setup the
# directory structure that Eric likes to manage things
$NEW="1";
if ( "$NEW" || ! -f ${CATOP}/serial ) {
# create the directory hierarchy
mkdir $CATOP, $DIRMODE;
mkdir "${CATOP}/certs", $DIRMODE;
mkdir "${CATOP}/crl", $DIRMODE ;
mkdir "${CATOP}/newcerts", $DIRMODE;
mkdir "${CATOP}/private", $DIRMODE;
open OUT, ">${CATOP}/serial";
print OUT "01\n";
close OUT;
open OUT, ">${CATOP}/index.txt";
close OUT;
}
if ( ! -f "${CATOP}/private/$CAKEY" ) {
print "CA certificate filename (or enter to create)\n";
$FILE = <STDIN>;
chop $FILE;
# ask user for existing CA certificate
if ($FILE) {
cp_pem($FILE,"${CATOP}/private/$CAKEY", "PRIVATE");
cp_pem($FILE,"${CATOP}/$CACERT", "CERTIFICATE");
$RET=$?;
} else {
print "Making CA certificate ...\n";
system ("$REQ -new -x509 -keyout " .
"${CATOP}/private/$CAKEY -out ${CATOP}/$CACERT $DAYS");
$RET=$?;
}
}
} elsif (/^-xsign$/) {
system ("$CA -policy policy_anything -infiles newreq.pem");
$RET=$?;
} elsif (/^(-sign|-signreq)$/) {
system ("$CA -policy policy_anything -out newcert.pem " .
"-infiles newreq.pem");
$RET=$?;
print "Signed certificate is in newcert.pem\n";
} elsif (/^-signcert$/) {
system ("$X509 -x509toreq -in newreq.pem -signkey newreq.pem " .
"-out tmp.pem");
system ("$CA -policy policy_anything -out newcert.pem " .
"-infiles tmp.pem");
$RET = $?;
print "Signed certificate is in newcert.pem\n";
} elsif (/^-verify$/) {
if (shift) {
foreach $j (@ARGV) {
system ("$VERIFY -CAfile $CATOP/$CACERT $j");
$RET=$? if ($? != 0);
}
exit $RET;
} else {
system ("$VERIFY -CAfile $CATOP/$CACERT newcert.pem");
$RET=$?;
exit 0;
}
} else {
print STDERR "Unknown arg $_\n";
print STDERR "usage: CA -newcert|-newreq|-newca|-sign|-verify\n";
exit 1;
}
}
exit $RET;
sub cp_pem {
my ($infile, $outfile, $bound) = @_;
open IN, $infile;
open OUT, ">$outfile";
my $flag = 0;
while (<IN>) {
$flag = 1 if (/^-----BEGIN.*$bound/) ;
print OUT $_ if ($flag);
if (/^-----END.*$bound/) {
close IN;
close OUT;
return;
}
}
}

View File

@@ -27,14 +27,14 @@
# tjh@cryptsoft.com
#
# default ssleay.cnf file has setup as per the following
# default openssl.cnf file has setup as per the following
# demoCA ... where everything is stored
DAYS="-days 365"
REQ="ssleay req $SSLEAY_CONFIG"
CA="ssleay ca $SSLEAY_CONFIG"
VERIFY="ssleay verify"
X509="ssleay x509"
REQ="openssl req $SSLEAY_CONFIG"
CA="openssl ca $SSLEAY_CONFIG"
VERIFY="openssl verify"
X509="openssl x509"
CATOP=./demoCA
CAKEY=./cakey.pem

View File

@@ -1,5 +1,5 @@
#
# SSLeay/apps/Makefile.ssl
# apps/Makefile.ssl
#
DIR= apps
@@ -9,9 +9,9 @@ INCLUDES= -I../include
CFLAG= -g -static
INSTALLTOP= /usr/local/ssl
MAKE= make -f Makefile.ssl
MAKEDEPEND= makedepend -f Makefile.ssl
MAKEDEPEND= $(TOP)/util/domd $(TOP)
MAKEFILE= Makefile.ssl
RM= /bin/rm -f
RM= rm -f
PEX_LIBS=
EX_LIBS=
@@ -25,18 +25,18 @@ DLIBSSL=../libssl.a
LIBCRYPTO=-L.. -lcrypto
LIBSSL=-L.. -lssl
SSLEAY= ssleay
PROGRAM= openssl
SCRIPTS=CA.sh der_chop
SCRIPTS=CA.sh CA.pl der_chop
EXE= $(SSLEAY)
EXE= $(PROGRAM)
E_EXE= verify asn1pars req dgst dh enc gendh errstr ca crl \
rsa dsa dsaparam \
x509 genrsa s_server s_client speed \
s_time version pkcs7 crl2pkcs7 sess_id ciphers
x509 genrsa gendsa s_server s_client speed \
s_time version pkcs7 crl2pkcs7 sess_id ciphers nseq
PROGS= $(SSLEAY).c
PROGS= $(PROGRAM).c
A_OBJ=apps.o
A_SRC=apps.c
@@ -46,18 +46,18 @@ S_SRC= s_cb.c s_socket.c
E_OBJ= verify.o asn1pars.o req.o dgst.o dh.o enc.o gendh.o errstr.o ca.o \
pkcs7.o crl2p7.o crl.o \
rsa.o dsa.o dsaparam.o \
x509.o genrsa.o s_server.o s_client.o speed.o \
x509.o genrsa.o gendsa.o s_server.o s_client.o speed.o \
s_time.o $(A_OBJ) $(S_OBJ) version.o sess_id.o \
ciphers.o
ciphers.o nseq.o
# pem_mail.o
E_SRC= verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c \
pkcs7.c crl2p7.c crl.c \
rsa.c dsa.c dsaparam.c \
x509.c genrsa.c s_server.c s_client.c speed.c \
x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c \
s_time.c $(A_SRC) $(S_SRC) version.c sess_id.c \
ciphers.c
ciphers.c nseq.c
# pem_mail.c
@@ -86,18 +86,15 @@ sreq.o: req.c
files:
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
install: mklinks
@for i in $(EXE) $(SCRIPTS) mklinks; \
install:
@for i in $(EXE) $(SCRIPTS); \
do \
(echo installing $$i; \
cp $$i $(INSTALLTOP)/bin/$$i; \
chmod 755 $(INSTALLTOP)/bin/$$i ); \
done; \
cp ssleay.cnf $(INSTALLTOP)/lib
chmod 644 $(INSTALLTOP)/lib/ssleay.cnf
cd $(INSTALLTOP)/bin; \
/bin/sh ./mklinks; \
/bin/rm -f ./mklinks
cp openssl.cnf $(INSTALLTOP)/lib; \
chmod 644 $(INSTALLTOP)/lib/openssl.cnf
tags:
ctags $(SRC)
@@ -105,8 +102,7 @@ tags:
tests:
links:
/bin/rm -f Makefile
$(TOP)/util/point.sh Makefile.ssl Makefile ;
@$(TOP)/util/point.sh Makefile.ssl Makefile
lint:
lint -DLINT $(INCLUDES) $(SRC)>fluff
@@ -121,8 +117,8 @@ dclean:
errors:
clean:
/bin/rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff $(EXE)
/bin/rm -f req
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff $(EXE)
rm -f req
$(DLIBSSL):
(cd ../ssl; $(MAKE))
@@ -130,15 +126,326 @@ $(DLIBSSL):
$(DLIBCRYPTO):
(cd ../crypto; $(MAKE))
$(SSLEAY): progs.h $(E_OBJ) $(SSLEAY).o $(DLIBCRYPTO) $(DLIBSSL)
$(RM) $(SSLEAY)
$(CC) -o $(SSLEAY) $(CFLAGS) $(SSLEAY).o $(E_OBJ) $(PEX_LIBS) $(LIBSSL) $(LIBCRYPTO) $(EX_LIBS)
$(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; sh tools/c_rehash certs)
progs.h:
perl ./g_ssleay.pl $(E_EXE) >progs.h
$(RM) $(SSLEAY).o
mklinks:
perl ./g_ssleay.pl $(E_EXE) >progs.h
perl ./progs.pl $(E_EXE) >progs.h
$(RM) $(PROGRAM).o
# DO NOT DELETE THIS LINE -- make depend depends on it.
apps.o: ../include/bio.h ../include/buffer.h ../include/crypto.h
apps.o: ../include/e_os.h ../include/opensslv.h ../include/stack.h apps.h
apps.o: progs.h
asn1pars.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
asn1pars.o: ../include/bn.h ../include/buffer.h ../include/cast.h
asn1pars.o: ../include/crypto.h ../include/des.h ../include/dh.h
asn1pars.o: ../include/dsa.h ../include/e_os.h ../include/err.h
asn1pars.o: ../include/evp.h ../include/idea.h ../include/md2.h
asn1pars.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
asn1pars.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
asn1pars.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
asn1pars.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h
asn1pars.o: ../include/sha.h ../include/stack.h ../include/x509.h
asn1pars.o: ../include/x509_vfy.h apps.h progs.h
ca.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
ca.o: ../include/buffer.h ../include/cast.h ../include/conf.h
ca.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
ca.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
ca.o: ../include/lhash.h ../include/md2.h ../include/md5.h ../include/mdc2.h
ca.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
ca.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
ca.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h ../include/sha.h
ca.o: ../include/stack.h ../include/txt_db.h ../include/x509.h
ca.o: ../include/x509_vfy.h ../include/x509v3.h apps.h progs.h
ciphers.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
ciphers.o: ../include/bn.h ../include/buffer.h ../include/cast.h
ciphers.o: ../include/crypto.h ../include/des.h ../include/dh.h
ciphers.o: ../include/dsa.h ../include/e_os.h ../include/err.h ../include/evp.h
ciphers.o: ../include/idea.h ../include/lhash.h ../include/md2.h
ciphers.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
ciphers.o: ../include/opensslv.h ../include/pkcs7.h ../include/rc2.h
ciphers.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
ciphers.o: ../include/rsa.h ../include/sha.h ../include/ssl.h ../include/ssl2.h
ciphers.o: ../include/ssl23.h ../include/ssl3.h ../include/stack.h
ciphers.o: ../include/tls1.h ../include/x509.h ../include/x509_vfy.h apps.h
ciphers.o: progs.h
crl.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
crl.o: ../include/buffer.h ../include/cast.h ../include/crypto.h
crl.o: ../include/des.h ../include/dh.h ../include/dsa.h ../include/e_os.h
crl.o: ../include/err.h ../include/evp.h ../include/idea.h ../include/md2.h
crl.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
crl.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
crl.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
crl.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h ../include/stack.h
crl.o: ../include/x509.h ../include/x509_vfy.h ../include/x509v3.h apps.h
crl.o: progs.h
crl2p7.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
crl2p7.o: ../include/bn.h ../include/buffer.h ../include/cast.h
crl2p7.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
crl2p7.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
crl2p7.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
crl2p7.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
crl2p7.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h
crl2p7.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
crl2p7.o: ../include/rsa.h ../include/sha.h ../include/stack.h
crl2p7.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
dgst.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
dgst.o: ../include/bn.h ../include/buffer.h ../include/cast.h
dgst.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
dgst.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
dgst.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
dgst.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
dgst.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
dgst.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h ../include/sha.h
dgst.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h apps.h
dgst.o: progs.h
dh.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
dh.o: ../include/buffer.h ../include/cast.h ../include/crypto.h
dh.o: ../include/des.h ../include/dh.h ../include/dsa.h ../include/e_os.h
dh.o: ../include/err.h ../include/evp.h ../include/idea.h ../include/md2.h
dh.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
dh.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
dh.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
dh.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h ../include/stack.h
dh.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
dsa.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
dsa.o: ../include/buffer.h ../include/cast.h ../include/crypto.h
dsa.o: ../include/des.h ../include/dh.h ../include/dsa.h ../include/e_os.h
dsa.o: ../include/err.h ../include/evp.h ../include/idea.h ../include/md2.h
dsa.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
dsa.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
dsa.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
dsa.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h ../include/stack.h
dsa.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
dsaparam.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
dsaparam.o: ../include/bn.h ../include/buffer.h ../include/cast.h
dsaparam.o: ../include/crypto.h ../include/des.h ../include/dh.h
dsaparam.o: ../include/dsa.h ../include/e_os.h ../include/err.h
dsaparam.o: ../include/evp.h ../include/idea.h ../include/md2.h
dsaparam.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
dsaparam.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
dsaparam.o: ../include/pkcs7.h ../include/rand.h ../include/rc2.h
dsaparam.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
dsaparam.o: ../include/rsa.h ../include/sha.h ../include/stack.h
dsaparam.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
enc.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
enc.o: ../include/buffer.h ../include/cast.h ../include/crypto.h
enc.o: ../include/des.h ../include/dh.h ../include/dsa.h ../include/e_os.h
enc.o: ../include/err.h ../include/evp.h ../include/idea.h ../include/md2.h
enc.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
enc.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
enc.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
enc.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h ../include/stack.h
enc.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
errstr.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
errstr.o: ../include/bn.h ../include/buffer.h ../include/cast.h
errstr.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
errstr.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
errstr.o: ../include/lhash.h ../include/md2.h ../include/md5.h
errstr.o: ../include/mdc2.h ../include/objects.h ../include/opensslv.h
errstr.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
errstr.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
errstr.o: ../include/ssl.h ../include/ssl2.h ../include/ssl23.h
errstr.o: ../include/ssl3.h ../include/stack.h ../include/tls1.h
errstr.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
gendh.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
gendh.o: ../include/bn.h ../include/buffer.h ../include/cast.h
gendh.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
gendh.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
gendh.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
gendh.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
gendh.o: ../include/pem2.h ../include/pkcs7.h ../include/rand.h
gendh.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h ../include/ripemd.h
gendh.o: ../include/rsa.h ../include/sha.h ../include/stack.h ../include/x509.h
gendh.o: ../include/x509_vfy.h apps.h progs.h
gendsa.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
gendsa.o: ../include/bn.h ../include/buffer.h ../include/cast.h
gendsa.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
gendsa.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
gendsa.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
gendsa.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
gendsa.o: ../include/pem2.h ../include/pkcs7.h ../include/rand.h
gendsa.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h
gendsa.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
gendsa.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h apps.h
gendsa.o: progs.h
genrsa.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
genrsa.o: ../include/bn.h ../include/buffer.h ../include/cast.h
genrsa.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
genrsa.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
genrsa.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
genrsa.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
genrsa.o: ../include/pem2.h ../include/pkcs7.h ../include/rand.h
genrsa.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h
genrsa.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
genrsa.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h apps.h
genrsa.o: progs.h
nseq.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
nseq.o: ../include/bn.h ../include/buffer.h ../include/cast.h
nseq.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
nseq.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
nseq.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
nseq.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
nseq.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
nseq.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h ../include/sha.h
nseq.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h apps.h
nseq.o: progs.h
openssl.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
openssl.o: ../include/bn.h ../include/buffer.h ../include/cast.h
openssl.o: ../include/conf.h ../include/crypto.h ../include/des.h
openssl.o: ../include/dh.h ../include/dsa.h ../include/e_os.h ../include/err.h
openssl.o: ../include/evp.h ../include/idea.h ../include/lhash.h
openssl.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
openssl.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
openssl.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h
openssl.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
openssl.o: ../include/rsa.h ../include/sha.h ../include/ssl.h ../include/ssl2.h
openssl.o: ../include/ssl23.h ../include/ssl3.h ../include/stack.h
openssl.o: ../include/tls1.h ../include/x509.h ../include/x509_vfy.h apps.h
openssl.o: progs.h s_apps.h
pkcs7.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
pkcs7.o: ../include/bn.h ../include/buffer.h ../include/cast.h
pkcs7.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
pkcs7.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
pkcs7.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
pkcs7.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
pkcs7.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
pkcs7.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h ../include/sha.h
pkcs7.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h apps.h
pkcs7.o: progs.h
req.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
req.o: ../include/buffer.h ../include/cast.h ../include/conf.h
req.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
req.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
req.o: ../include/lhash.h ../include/md2.h ../include/md5.h ../include/mdc2.h
req.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
req.o: ../include/pem2.h ../include/pkcs7.h ../include/rand.h ../include/rc2.h
req.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h ../include/rsa.h
req.o: ../include/sha.h ../include/stack.h ../include/x509.h
req.o: ../include/x509_vfy.h ../include/x509v3.h apps.h progs.h
rsa.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h ../include/bn.h
rsa.o: ../include/buffer.h ../include/cast.h ../include/crypto.h
rsa.o: ../include/des.h ../include/dh.h ../include/dsa.h ../include/e_os.h
rsa.o: ../include/err.h ../include/evp.h ../include/idea.h ../include/md2.h
rsa.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
rsa.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
rsa.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
rsa.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h ../include/stack.h
rsa.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
s_cb.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
s_cb.o: ../include/bn.h ../include/buffer.h ../include/cast.h
s_cb.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
s_cb.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
s_cb.o: ../include/lhash.h ../include/md2.h ../include/md5.h ../include/mdc2.h
s_cb.o: ../include/objects.h ../include/opensslv.h ../include/pkcs7.h
s_cb.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h ../include/ripemd.h
s_cb.o: ../include/rsa.h ../include/sha.h ../include/ssl.h ../include/ssl2.h
s_cb.o: ../include/ssl23.h ../include/ssl3.h ../include/stack.h
s_cb.o: ../include/tls1.h ../include/x509.h ../include/x509_vfy.h apps.h
s_cb.o: progs.h s_apps.h
s_client.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
s_client.o: ../include/bn.h ../include/buffer.h ../include/cast.h
s_client.o: ../include/crypto.h ../include/des.h ../include/dh.h
s_client.o: ../include/dsa.h ../include/e_os.h ../include/err.h
s_client.o: ../include/evp.h ../include/idea.h ../include/lhash.h
s_client.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
s_client.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
s_client.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h
s_client.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
s_client.o: ../include/rsa.h ../include/sha.h ../include/ssl.h
s_client.o: ../include/ssl2.h ../include/ssl23.h ../include/ssl3.h
s_client.o: ../include/stack.h ../include/tls1.h ../include/x509.h
s_client.o: ../include/x509_vfy.h apps.h progs.h s_apps.h
s_server.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
s_server.o: ../include/bn.h ../include/buffer.h ../include/cast.h
s_server.o: ../include/crypto.h ../include/des.h ../include/dh.h
s_server.o: ../include/dsa.h ../include/e_os.h ../include/err.h
s_server.o: ../include/evp.h ../include/idea.h ../include/lhash.h
s_server.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
s_server.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
s_server.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h
s_server.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
s_server.o: ../include/rsa.h ../include/sha.h ../include/ssl.h
s_server.o: ../include/ssl2.h ../include/ssl23.h ../include/ssl3.h
s_server.o: ../include/stack.h ../include/tls1.h ../include/x509.h
s_server.o: ../include/x509_vfy.h apps.h progs.h s_apps.h
s_socket.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
s_socket.o: ../include/bn.h ../include/buffer.h ../include/cast.h
s_socket.o: ../include/crypto.h ../include/des.h ../include/dh.h
s_socket.o: ../include/dsa.h ../include/e_os.h ../include/evp.h
s_socket.o: ../include/idea.h ../include/lhash.h ../include/md2.h
s_socket.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
s_socket.o: ../include/opensslv.h ../include/pkcs7.h ../include/rc2.h
s_socket.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
s_socket.o: ../include/rsa.h ../include/sha.h ../include/ssl.h
s_socket.o: ../include/ssl2.h ../include/ssl23.h ../include/ssl3.h
s_socket.o: ../include/stack.h ../include/tls1.h ../include/x509.h
s_socket.o: ../include/x509_vfy.h apps.h progs.h s_apps.h
s_time.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
s_time.o: ../include/bn.h ../include/buffer.h ../include/cast.h
s_time.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
s_time.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
s_time.o: ../include/lhash.h ../include/md2.h ../include/md5.h
s_time.o: ../include/mdc2.h ../include/objects.h ../include/opensslv.h
s_time.o: ../include/pem.h ../include/pem2.h ../include/pkcs7.h
s_time.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h
s_time.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
s_time.o: ../include/ssl.h ../include/ssl2.h ../include/ssl23.h
s_time.o: ../include/ssl3.h ../include/stack.h ../include/tls1.h
s_time.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h s_apps.h
sess_id.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
sess_id.o: ../include/bn.h ../include/buffer.h ../include/cast.h
sess_id.o: ../include/crypto.h ../include/des.h ../include/dh.h
sess_id.o: ../include/dsa.h ../include/e_os.h ../include/err.h ../include/evp.h
sess_id.o: ../include/idea.h ../include/lhash.h ../include/md2.h
sess_id.o: ../include/md5.h ../include/mdc2.h ../include/objects.h
sess_id.o: ../include/opensslv.h ../include/pem.h ../include/pem2.h
sess_id.o: ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
sess_id.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h
sess_id.o: ../include/sha.h ../include/ssl.h ../include/ssl2.h
sess_id.o: ../include/ssl23.h ../include/ssl3.h ../include/stack.h
sess_id.o: ../include/tls1.h ../include/x509.h ../include/x509_vfy.h apps.h
sess_id.o: progs.h
speed.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
speed.o: ../include/bn.h ../include/buffer.h ../include/cast.h
speed.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
speed.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/hmac.h
speed.o: ../include/idea.h ../include/md2.h ../include/md5.h ../include/mdc2.h
speed.o: ../include/objects.h ../include/opensslv.h ../include/pkcs7.h
speed.o: ../include/rand.h ../include/rc2.h ../include/rc4.h ../include/rc5.h
speed.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
speed.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h ./testdsa.h
speed.o: ./testrsa.h apps.h progs.h
verify.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
verify.o: ../include/bn.h ../include/buffer.h ../include/cast.h
verify.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
verify.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
verify.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
verify.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
verify.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h
verify.o: ../include/rc4.h ../include/rc5.h ../include/ripemd.h
verify.o: ../include/rsa.h ../include/sha.h ../include/stack.h
verify.o: ../include/x509.h ../include/x509_vfy.h apps.h progs.h
version.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
version.o: ../include/bn.h ../include/buffer.h ../include/cast.h
version.o: ../include/crypto.h ../include/des.h ../include/dh.h
version.o: ../include/dsa.h ../include/e_os.h ../include/evp.h
version.o: ../include/idea.h ../include/md2.h ../include/md5.h
version.o: ../include/mdc2.h ../include/objects.h ../include/opensslv.h
version.o: ../include/rc2.h ../include/rc4.h ../include/rc5.h
version.o: ../include/ripemd.h ../include/rsa.h ../include/sha.h
version.o: ../include/stack.h apps.h progs.h
x509.o: ../include/asn1.h ../include/bio.h ../include/blowfish.h
x509.o: ../include/bn.h ../include/buffer.h ../include/cast.h
x509.o: ../include/crypto.h ../include/des.h ../include/dh.h ../include/dsa.h
x509.o: ../include/e_os.h ../include/err.h ../include/evp.h ../include/idea.h
x509.o: ../include/md2.h ../include/md5.h ../include/mdc2.h
x509.o: ../include/objects.h ../include/opensslv.h ../include/pem.h
x509.o: ../include/pem2.h ../include/pkcs7.h ../include/rc2.h ../include/rc4.h
x509.o: ../include/rc5.h ../include/ripemd.h ../include/rsa.h ../include/sha.h
x509.o: ../include/stack.h ../include/x509.h ../include/x509_vfy.h
x509.o: ../include/x509v3.h apps.h progs.h

View File

@@ -56,6 +56,10 @@
* [including the GNU Public Licence.]
*/
/* A nice addition from Dr Stephen Henson <shenson@bigfoot.com> to
* add the -strparse option which parses nested binary structures
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -65,11 +69,6 @@
#include "x509.h"
#include "pem.h"
#define FORMAT_UNDEF 0
#define FORMAT_ASN1 1
#define FORMAT_TEXT 2
#define FORMAT_PEM 3
/* -inform arg - input format - default PEM (DER or PEM)
* -in arg - input file - default stdin
* -i - indent the details by depth
@@ -85,13 +84,16 @@ int MAIN(argc, argv)
int argc;
char **argv;
{
int i,badops=0,offset=0,ret=1;
int i,badops=0,offset=0,ret=1,j;
unsigned int length=0;
long num;
long num,tmplen;
BIO *in=NULL,*out=NULL,*b64=NULL;
int informat,indent=0;
char *infile=NULL,*str=NULL,*prog,*oidfile=NULL;
unsigned char *tmpbuf;
BUF_MEM *buf=NULL;
STACK *osk=NULL;
ASN1_TYPE *at=NULL;
informat=FORMAT_PEM;
@@ -104,6 +106,11 @@ char **argv;
prog=argv[0];
argc--;
argv++;
if ((osk=sk_new_null()) == NULL)
{
BIO_printf(bio_err,"Malloc failure\n");
goto end;
}
while (argc >= 1)
{
if (strcmp(*argv,"-inform") == 0)
@@ -136,6 +143,11 @@ char **argv;
length= atoi(*(++argv));
if (length == 0) goto bad;
}
else if (strcmp(*argv,"-strparse") == 0)
{
if (--argc < 1) goto bad;
sk_push(osk,*(++argv));
}
else
{
BIO_printf(bio_err,"unknown option %s\n",*argv);
@@ -152,11 +164,14 @@ bad:
BIO_printf(bio_err,"%s [options] <infile\n",prog);
BIO_printf(bio_err,"where options are\n");
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
BIO_printf(bio_err," -in arg inout file\n");
BIO_printf(bio_err," -in arg input file\n");
BIO_printf(bio_err," -offset arg offset into file\n");
BIO_printf(bio_err," -length arg lenth of section in file\n");
BIO_printf(bio_err," -i indent entries\n");
BIO_printf(bio_err," -oid file file of extra oid definitions\n");
BIO_printf(bio_err," -strparse offset\n");
BIO_printf(bio_err," a series of these can be used to 'dig' into multiple\n");
BIO_printf(bio_err," ASN1 blob wrappings\n");
goto end;
}
@@ -218,6 +233,36 @@ bad:
}
str=buf->data;
/* If any structs to parse go through in sequence */
if (sk_num(osk))
{
tmpbuf=(unsigned char *)str;
tmplen=num;
for (i=0; i<sk_num(osk); i++)
{
j=atoi(sk_value(osk,i));
if (j == 0)
{
BIO_printf(bio_err,"'%s' is an invalid number\n",sk_value(osk,i));
continue;
}
tmpbuf+=j;
tmplen-=j;
if (d2i_ASN1_TYPE(&at,&tmpbuf,tmplen) == NULL)
{
BIO_printf(bio_err,"Error parsing structure\n");
ERR_print_errors(bio_err);
goto end;
}
/* hmm... this is a little evil but it works */
tmpbuf=at->value.asn1_string->data;
tmplen=at->value.asn1_string->length;
}
str=(char *)tmpbuf;
num=tmplen;
}
if (length == 0) length=(unsigned int)num;
if (!ASN1_parse(out,(unsigned char *)&(str[offset]),length,indent))
{
@@ -232,6 +277,8 @@ end:
if (ret != 0)
ERR_print_errors(bio_err);
if (buf != NULL) BUF_MEM_free(buf);
if (at != NULL) ASN1_TYPE_free(at);
if (osk != NULL) sk_free(osk);
OBJ_cleanup();
EXIT(ret);
}

324
apps/bss_file.c Normal file
View File

@@ -0,0 +1,324 @@
/* crypto/bio/bss_file.c */
/* Copyright (C) 1995-1997 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 APPS_WIN16
#include <stdio.h>
#include <errno.h>
#include "cryptlib.h"
#include "bio.h"
#include "err.h"
#ifndef NOPROTO
static int MS_CALLBACK file_write(BIO *h,char *buf,int num);
static int MS_CALLBACK file_read(BIO *h,char *buf,int size);
static int MS_CALLBACK file_puts(BIO *h,char *str);
static int MS_CALLBACK file_gets(BIO *h,char *str,int size);
static long MS_CALLBACK file_ctrl(BIO *h,int cmd,long arg1,char *arg2);
static int MS_CALLBACK file_new(BIO *h);
static int MS_CALLBACK file_free(BIO *data);
#else
static int MS_CALLBACK file_write();
static int MS_CALLBACK file_read();
static int MS_CALLBACK file_puts();
static int MS_CALLBACK file_gets();
static long MS_CALLBACK file_ctrl();
static int MS_CALLBACK file_new();
static int MS_CALLBACK file_free();
#endif
static BIO_METHOD methods_filep=
{
BIO_TYPE_FILE,"FILE pointer",
file_write,
file_read,
file_puts,
file_gets,
file_ctrl,
file_new,
file_free,
};
BIO *BIO_new_file(filename,mode)
char *filename;
char *mode;
{
BIO *ret;
FILE *file;
if ((file=fopen(filename,mode)) == NULL)
{
SYSerr(SYS_F_FOPEN,errno);
BIOerr(BIO_F_BIO_NEW_FILE,ERR_R_SYS_LIB);
return(NULL);
}
if ((ret=BIO_new_fp(file,BIO_CLOSE)) == NULL)
{
fclose(file);
return(NULL);
}
return(ret);
}
BIO *BIO_new_fp(stream,close_flag)
FILE *stream;
int close_flag;
{
BIO *ret;
if ((ret=BIO_new(BIO_s_file())) == NULL)
return(NULL);
BIO_set_fp(ret,stream,close_flag);
return(ret);
}
#if !defined(WIN16) || defined(APPS_WIN16)
BIO_METHOD *BIO_s_file()
{
return(&methods_filep);
}
#else
BIO_METHOD *BIO_s_file_internal_w16()
{
return(&methods_filep);
}
#endif
static int MS_CALLBACK file_new(bi)
BIO *bi;
{
bi->init=0;
bi->num=0;
bi->ptr=NULL;
return(1);
}
static int MS_CALLBACK file_free(a)
BIO *a;
{
if (a == NULL) return(0);
if (a->shutdown)
{
if ((a->init) && (a->ptr != NULL))
{
fclose((FILE *)a->ptr);
a->ptr=NULL;
}
a->init=0;
}
return(1);
}
static int MS_CALLBACK file_read(b,out,outl)
BIO *b;
char *out;
int outl;
{
int ret=0;
if (b->init && (out != NULL))
{
ret=fread(out,1,(int)outl,(FILE *)b->ptr);
}
return(ret);
}
static int MS_CALLBACK file_write(b,in,inl)
BIO *b;
char *in;
int inl;
{
int ret=0;
if (b->init && (in != NULL))
{
if (fwrite(in,(int)inl,1,(FILE *)b->ptr))
ret=inl;
/* ret=fwrite(in,1,(int)inl,(FILE *)b->ptr); */
/* acording to Tim Hudson <tjh@cryptsoft.com>, the commented
* out version above can cause 'inl' write calls under
* some stupid stdio implementations (VMS) */
}
return(ret);
}
static long MS_CALLBACK file_ctrl(b,cmd,num,ptr)
BIO *b;
int cmd;
long num;
char *ptr;
{
long ret=1;
FILE *fp=(FILE *)b->ptr;
FILE **fpp;
char p[4];
switch (cmd)
{
case BIO_CTRL_RESET:
ret=(long)fseek(fp,num,0);
break;
case BIO_CTRL_EOF:
ret=(long)feof(fp);
break;
case BIO_CTRL_INFO:
ret=ftell(fp);
break;
case BIO_C_SET_FILE_PTR:
file_free(b);
b->shutdown=(int)num;
b->ptr=(char *)ptr;
b->init=1;
break;
case BIO_C_SET_FILENAME:
file_free(b);
b->shutdown=(int)num&BIO_CLOSE;
if (num & BIO_FP_APPEND)
{
if (num & BIO_FP_READ)
strcpy(p,"a+");
else strcpy(p,"a");
}
else if ((num & BIO_FP_READ) && (num & BIO_FP_WRITE))
strcpy(p,"r+");
else if (num & BIO_FP_WRITE)
strcpy(p,"w");
else if (num & BIO_FP_READ)
strcpy(p,"r");
else
{
BIOerr(BIO_F_FILE_CTRL,BIO_R_BAD_FOPEN_MODE);
ret=0;
break;
}
#if defined(MSDOS) || defined(WINDOWS)
if (!(num & BIO_FP_TEXT))
strcat(p,"b");
else
strcat(p,"t");
#endif
fp=fopen(ptr,p);
if (fp == NULL)
{
SYSerr(SYS_F_FOPEN,errno);
BIOerr(BIO_F_FILE_CTRL,ERR_R_SYS_LIB);
ret=0;
break;
}
b->ptr=(char *)fp;
b->init=1;
break;
case BIO_C_GET_FILE_PTR:
/* the ptr parameter is actually a FILE ** in this case. */
if (ptr != NULL)
{
fpp=(FILE **)ptr;
*fpp=(FILE *)b->ptr;
}
break;
case BIO_CTRL_GET_CLOSE:
ret=(long)b->shutdown;
break;
case BIO_CTRL_SET_CLOSE:
b->shutdown=(int)num;
break;
case BIO_CTRL_FLUSH:
fflush((FILE *)b->ptr);
break;
case BIO_CTRL_DUP:
ret=1;
break;
case BIO_CTRL_PENDING:
case BIO_CTRL_PUSH:
case BIO_CTRL_POP:
default:
ret=0;
break;
}
return(ret);
}
static int MS_CALLBACK file_gets(bp,buf,size)
BIO *bp;
char *buf;
int size;
{
int ret=0;
buf[0]='\0';
fgets(buf,size,(FILE *)bp->ptr);
if (buf[0] != '\0')
ret=strlen(buf);
return(ret);
}
static int MS_CALLBACK file_puts(bp,str)
BIO *bp;
char *str;
{
int n,ret;
n=strlen(str);
ret=file_write(bp,str,n);
return(ret);
}

9
apps/c512-key.pem Normal file
View File

@@ -0,0 +1,9 @@
-----BEGIN RSA PRIVATE KEY-----
MIIBOwIBAAJBALtv55QyzG6i2PlwZ1pah7++Gv8L5j6Hnyr/uTZE1NLG0ABDDexm
q/R4KedLjFEIYjocDui+IXs62NNtXrT8odkCAwEAAQJAbwXq0vJ/+uyEvsNgxLko
/V86mGXQ/KrSkeKlL0r4ENxjcyeMAGoKu6J9yMY7+X9+Zm4nxShNfTsf/+Freoe1
HQIhAPOSm5Q1YI+KIsII2GeVJx1U69+wnd71OasIPakS1L1XAiEAxQAW+J3/JWE0
ftEYakbhUOKL8tD1OaFZS71/5GdG7E8CIQCefUMmySSvwd6kC0VlATSWbW+d+jp/
nWmM1KvqnAo5uQIhALqEADu5U1Wvt8UN8UDGBRPQulHWNycuNV45d3nnskWPAiAw
ueTyr6WsZ5+SD8g/Hy3xuvF3nPmJRH+rwvVihlcFOg==
-----END RSA PRIVATE KEY-----

8
apps/c512-req.pem Normal file
View File

@@ -0,0 +1,8 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIBGzCBxgIBADBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEa
MBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGkNsaWVudCB0ZXN0
IGNlcnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALtv55QyzG6i
2PlwZ1pah7++Gv8L5j6Hnyr/uTZE1NLG0ABDDexmq/R4KedLjFEIYjocDui+IXs6
2NNtXrT8odkCAwEAATANBgkqhkiG9w0BAQQFAANBAC5JBTeji7RosqMaUIDzIW13
oO6+kPhx9fXSpMFHIsY3aH92Milkov/2A4SuZTcnv/P6+8klmS0EaiUKcRzak4E=
-----END CERTIFICATE REQUEST-----

View File

@@ -1 +1 @@
03
05

330
apps/ca.c
View File

@@ -70,6 +70,7 @@
#include "txt_db.h"
#include "evp.h"
#include "x509.h"
#include "x509v3.h"
#include "objects.h"
#include "pem.h"
#include "conf.h"
@@ -82,7 +83,7 @@
#define PROG ca_main
#define BASE_SECTION "ca"
#define CONFIG_FILE "lib/ssleay.cnf"
#define CONFIG_FILE "lib/openssl.cnf"
#define ENV_DEFAULT_CA "default_ca"
@@ -104,6 +105,7 @@
#define ENV_PRESERVE "preserve"
#define ENV_POLICY "policy"
#define ENV_EXTENSIONS "x509_extensions"
#define ENV_CRLEXT "crl_extensions"
#define ENV_MSIE_HACK "msie_hack"
#define ENV_DATABASE "database"
@@ -134,7 +136,7 @@ static char *ca_usage[]={
" -policy arg - The CA 'policy' to support\n",
" -keyfile arg - PEM private key file\n",
" -key arg - key to decode the private key if it is encrypted\n",
" -cert - The CA certificate\n",
" -cert file - The CA certificate\n",
" -in file - The input PEM encoded certificate request(s)\n",
" -out file - Where to put the output file(s)\n",
" -outdir dir - Where to put output certificates\n",
@@ -143,7 +145,7 @@ static char *ca_usage[]={
" -ss_cert file - File contains a self signed cert to sign\n",
" -preserveDN - Don't re-order the DN\n",
" -batch - Don't ask questions\n",
" -msie_hack - msie modifications to handle all thos universal strings\n",
" -msie_hack - msie modifications to handle all those universal strings\n",
NULL
};
@@ -154,7 +156,7 @@ extern int EF_ALIGNMENT;
#endif
#ifndef NOPROTO
static STACK *load_extensions(char *section);
static int add_oid_section(LHASH *conf);
static void lookup_fail(char *name,char *tag);
static int MS_CALLBACK key_callback(char *buf,int len,int verify);
static unsigned long index_serial_hash(char **a);
@@ -166,21 +168,22 @@ static BIGNUM *load_serial(char *serialfile);
static int save_serial(char *serialfile, BIGNUM *serial);
static int certify(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,char *startdate,
int days, int batch, STACK *extensions,int verbose);
int days, int batch, char *ext_sect, LHASH *conf,int verbose);
static int certify_cert(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,char *startdate,
int days,int batch,STACK *extensions,int verbose);
int days,int batch,char *ext_sect, LHASH *conf,int verbose);
static int certify_spkac(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,char *startdate,
int days,STACK *extensions,int verbose);
int days,char *ext_sect,LHASH *conf,int verbose);
static int fix_data(int nid, int *type);
static void write_new_certificate(BIO *bp, X509 *x, int output_der);
static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, EVP_MD *dgst,
STACK *policy, TXT_DB *db, BIGNUM *serial, char *startdate,
int days, int batch, int verbose, X509_REQ *req, STACK *extensions);
int days, int batch, int verbose, X509_REQ *req, char *ext_sect,
LHASH *conf);
static int check_time_format(char *str);
#else
static STACK *load_extensions();
static int add_oid_section();
static void lookup_fail();
static int MS_CALLBACK key_callback();
static unsigned long index_serial_hash();
@@ -234,6 +237,7 @@ char **argv;
char *outdir=NULL;
char *serialfile=NULL;
char *extensions=NULL;
char *crl_ext=NULL;
BIGNUM *serial=NULL;
char *startdate=NULL;
int days=0;
@@ -251,7 +255,6 @@ char **argv;
long l;
EVP_MD *dgst=NULL;
STACK *attribs=NULL;
STACK *extensions_sk=NULL;
STACK *cert_sk=NULL;
BIO *hex=NULL;
#undef BSIZE
@@ -266,7 +269,7 @@ EF_ALIGNMENT=0;
apps_startup();
X509v3_add_netscape_extensions();
X509V3_add_standard_extensions();
preserve=0;
if (bio_err == NULL)
@@ -431,6 +434,34 @@ bad:
}
}
if (conf != NULL)
{
p=CONF_get_string(conf,NULL,"oid_file");
if (p != NULL)
{
BIO *oid_bio;
oid_bio=BIO_new_file(p,"r");
if (oid_bio == NULL)
{
/*
BIO_printf(bio_err,"problems opening %s for extra oid's\n",p);
ERR_print_errors(bio_err);
*/
ERR_clear_error();
}
else
{
OBJ_create_objects(oid_bio);
BIO_free(oid_bio);
}
}
}
if(!add_oid_section(conf)) {
ERR_print_errors(bio_err);
goto err;
}
in=BIO_new(BIO_s_file());
out=BIO_new(BIO_s_file());
Sout=BIO_new(BIO_s_file());
@@ -490,6 +521,12 @@ bad:
goto err;
}
if (!X509_check_private_key(x509,pkey))
{
BIO_printf(bio_err,"CA certificate and CA private key do not match\n");
goto err;
}
f=CONF_get_string(conf,BASE_SECTION,ENV_PRESERVE);
if ((f != NULL) && ((*f == 'y') || (*f == 'Y')))
preserve=1;
@@ -659,12 +696,17 @@ bad:
goto err;
}
if ((extensions=CONF_get_string(conf,section,ENV_EXTENSIONS))
!= NULL)
{
if ((extensions_sk=load_extensions(extensions)) == NULL)
extensions=CONF_get_string(conf,section,ENV_EXTENSIONS);
if(extensions) {
/* Check syntax of file */
if(!X509V3_EXT_check_conf(conf, extensions)) {
BIO_printf(bio_err,
"Error Loading extension section %s\n",
extensions);
ret = 1;
goto err;
}
}
if (startdate == NULL)
{
@@ -700,7 +742,7 @@ bad:
}
if (verbose)
{
if ((f=BN_bn2ascii(serial)) == NULL) goto err;
if ((f=BN_bn2hex(serial)) == NULL) goto err;
BIO_printf(bio_err,"next serial number is %s\n",f);
Free(f);
}
@@ -720,7 +762,7 @@ bad:
{
total++;
j=certify_spkac(&x,spkac_file,pkey,x509,dgst,attribs,db,
serial,startdate,days,extensions_sk,verbose);
serial,startdate,days,extensions,conf,verbose);
if (j < 0) goto err;
if (j > 0)
{
@@ -744,7 +786,7 @@ bad:
total++;
j=certify_cert(&x,ss_cert_file,pkey,x509,dgst,attribs,
db,serial,startdate,days,batch,
extensions_sk,verbose);
extensions,conf,verbose);
if (j < 0) goto err;
if (j > 0)
{
@@ -763,7 +805,7 @@ bad:
total++;
j=certify(&x,infile,pkey,x509,dgst,attribs,db,
serial,startdate,days,batch,
extensions_sk,verbose);
extensions,conf,verbose);
if (j < 0) goto err;
if (j > 0)
{
@@ -782,7 +824,7 @@ bad:
total++;
j=certify(&x,argv[i],pkey,x509,dgst,attribs,db,
serial,startdate,days,batch,
extensions_sk,verbose);
extensions,conf,verbose);
if (j < 0) goto err;
if (j > 0)
{
@@ -926,6 +968,17 @@ bad:
/*****************************************************************/
if (gencrl)
{
crl_ext=CONF_get_string(conf,section,ENV_CRLEXT);
if(crl_ext) {
/* Check syntax of file */
if(!X509V3_EXT_check_conf(conf, crl_ext)) {
BIO_printf(bio_err,
"Error Loading CRL extension section %s\n",
crl_ext);
ret = 1;
goto err;
}
}
if ((hex=BIO_new(BIO_s_mem())) == NULL) goto err;
if (!crldays && !crlhours)
@@ -983,7 +1036,7 @@ bad:
r->sequence=i;
}
/* we how have a CRL */
/* we now have a CRL */
if (verbose) BIO_printf(bio_err,"signing CRL\n");
if (md != NULL)
{
@@ -994,7 +1047,32 @@ bad:
}
}
else
{
#ifndef NO_DSA
if (pkey->type == EVP_PKEY_DSA)
dgst=EVP_dss1();
else
#endif
dgst=EVP_md5();
}
/* Add any extensions asked for */
if(crl_ext) {
X509V3_CTX crlctx;
if (ci->version == NULL)
if ((ci->version=ASN1_INTEGER_new()) == NULL) goto err;
ASN1_INTEGER_set(ci->version,1); /* version 2 CRL */
crlctx.crl = crl;
crlctx.issuer_cert = x509;
crlctx.subject_cert = NULL;
crlctx.subject_req = NULL;
crlctx.flags = 0;
if(!X509V3_EXT_CRL_add_conf(conf, &crlctx,
crl_ext, crl)) goto err;
}
if (!X509_CRL_sign(crl,pkey,dgst)) goto err;
PEM_write_bio_X509_CRL(Sout,crl);
@@ -1002,24 +1080,23 @@ bad:
/*****************************************************************/
ret=0;
err:
if (hex != NULL) BIO_free(hex);
if (Cout != NULL) BIO_free(Cout);
if (Sout != NULL) BIO_free(Sout);
if (out != NULL) BIO_free(out);
if (in != NULL) BIO_free(in);
BIO_free(hex);
BIO_free(Cout);
BIO_free(Sout);
BIO_free(out);
BIO_free(in);
if (cert_sk != NULL) sk_pop_free(cert_sk,X509_free);
if (extensions_sk != NULL)
sk_pop_free(extensions_sk,X509_EXTENSION_free);
sk_pop_free(cert_sk,X509_free);
if (ret) ERR_print_errors(bio_err);
if (serial != NULL) BN_free(serial);
if (db != NULL) TXT_DB_free(db);
if (pkey != NULL) EVP_PKEY_free(pkey);
if (x509 != NULL) X509_free(x509);
if (crl != NULL) X509_CRL_free(crl);
if (conf != NULL) CONF_free(conf);
X509v3_cleanup_extensions();
BN_free(serial);
TXT_DB_free(db);
EVP_PKEY_free(pkey);
X509_free(x509);
X509_CRL_free(crl);
CONF_free(conf);
X509V3_EXT_cleanup();
OBJ_cleanup();
EXIT(ret);
}
@@ -1151,7 +1228,7 @@ err:
}
static int certify(xret,infile,pkey,x509,dgst,policy,db,serial,startdate,days,
batch,extensions,verbose)
batch,ext_sect,lconf,verbose)
X509 **xret;
char *infile;
EVP_PKEY *pkey;
@@ -1163,7 +1240,8 @@ BIGNUM *serial;
char *startdate;
int days;
int batch;
STACK *extensions;
char *ext_sect;
LHASH *lconf;
int verbose;
{
X509_REQ *req=NULL;
@@ -1195,6 +1273,7 @@ int verbose;
goto err;
}
i=X509_REQ_verify(req,pktmp);
EVP_PKEY_free(pktmp);
if (i < 0)
{
ok=0;
@@ -1211,7 +1290,7 @@ int verbose;
BIO_printf(bio_err,"Signature ok\n");
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,
days,batch,verbose,req,extensions);
days,batch,verbose,req,ext_sect,lconf);
err:
if (req != NULL) X509_REQ_free(req);
@@ -1220,7 +1299,7 @@ err:
}
static int certify_cert(xret,infile,pkey,x509,dgst,policy,db,serial,startdate,
days, batch,extensions,verbose)
days,batch,ext_sect,lconf,verbose)
X509 **xret;
char *infile;
EVP_PKEY *pkey;
@@ -1232,7 +1311,8 @@ BIGNUM *serial;
char *startdate;
int days;
int batch;
STACK *extensions;
char *ext_sect;
LHASH *lconf;
int verbose;
{
X509 *req=NULL;
@@ -1264,6 +1344,7 @@ int verbose;
goto err;
}
i=X509_verify(req,pktmp);
EVP_PKEY_free(pktmp);
if (i < 0)
{
ok=0;
@@ -1273,7 +1354,7 @@ int verbose;
if (i == 0)
{
ok=0;
BIO_printf(bio_err,"Signature did not match the certificate request\n");
BIO_printf(bio_err,"Signature did not match the certificate\n");
goto err;
}
else
@@ -1283,7 +1364,7 @@ int verbose;
goto err;
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,days,
batch,verbose,rreq,extensions);
batch,verbose,rreq,ext_sect,lconf);
err:
if (rreq != NULL) X509_REQ_free(rreq);
@@ -1293,7 +1374,7 @@ err:
}
static int do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,days,
batch,verbose,req, extensions)
batch,verbose,req,ext_sect,lconf)
X509 **xret;
EVP_PKEY *pkey;
X509 *x509;
@@ -1306,7 +1387,8 @@ int days;
int batch;
int verbose;
X509_REQ *req;
STACK *extensions;
char *ext_sect;
LHASH *lconf;
{
X509_NAME *name=NULL,*CAname=NULL,*subject=NULL;
ASN1_UTCTIME *tm,*tmptm;
@@ -1316,7 +1398,6 @@ STACK *extensions;
X509_CINF *ci;
X509_NAME_ENTRY *ne;
X509_NAME_ENTRY *tne,*push;
X509_EXTENSION *ex=NULL;
EVP_PKEY *pktmp;
int ok= -1,i,j,last,nid;
char *p;
@@ -1530,7 +1611,7 @@ again2:
BIO_printf(bio_err,"The subject name apears to be ok, checking data base for clashes\n");
row[DB_name]=X509_NAME_oneline(subject,NULL,0);
row[DB_serial]=BN_bn2ascii(serial);
row[DB_serial]=BN_bn2hex(serial);
if ((row[DB_name] == NULL) || (row[DB_serial] == NULL))
{
BIO_printf(bio_err,"Malloc failure\n");
@@ -1618,11 +1699,14 @@ again2:
if (!X509_set_subject_name(ret,subject)) goto err;
pktmp=X509_REQ_get_pubkey(req);
if (!X509_set_pubkey(ret,pktmp)) goto err;
i = X509_set_pubkey(ret,pktmp);
EVP_PKEY_free(pktmp);
if (!i) goto err;
/* Lets add the extensions, if there are any */
if ((extensions != NULL) && (sk_num(extensions) > 0))
if (ext_sect)
{
X509V3_CTX ctx;
if (ci->version == NULL)
if ((ci->version=ASN1_INTEGER_new()) == NULL)
goto err;
@@ -1633,17 +1717,16 @@ again2:
if (ci->extensions != NULL)
sk_pop_free(ci->extensions,X509_EXTENSION_free);
if ((ci->extensions=sk_new_null()) == NULL)
goto err;
ci->extensions = NULL;
ctx.subject_cert = ret;
ctx.issuer_cert = x509;
ctx.subject_req = req;
ctx.crl = NULL;
ctx.flags = 0;
if(!X509V3_EXT_add_conf(lconf, &ctx, ext_sect, ret)) goto err;
/* Lets 'copy' in the new ones */
for (i=0; i<sk_num(extensions); i++)
{
ex=X509_EXTENSION_dup((X509_EXTENSION *)
sk_value(extensions,i));
if (ex == NULL) goto err;
if (!sk_push(ci->extensions,(char *)ex)) goto err;
}
}
@@ -1661,11 +1744,14 @@ again2:
}
}
#ifndef NO_DSA
if (pkey->type == EVP_PKEY_DSA) dgst=EVP_dss1();
pktmp=X509_get_pubkey(ret);
if (EVP_PKEY_missing_parameters(pktmp) &&
!EVP_PKEY_missing_parameters(pkey))
EVP_PKEY_copy_parameters(pktmp,pkey);
EVP_PKEY_free(pktmp);
#endif
if (!X509_sign(ret,pkey,dgst))
@@ -1763,7 +1849,7 @@ int output_der;
}
static int certify_spkac(xret,infile,pkey,x509,dgst,policy,db,serial,
startdate,days,extensions,verbose)
startdate,days,ext_sect,lconf,verbose)
X509 **xret;
char *infile;
EVP_PKEY *pkey;
@@ -1774,7 +1860,8 @@ TXT_DB *db;
BIGNUM *serial;
char *startdate;
int days;
STACK *extensions;
char *ext_sect;
LHASH *lconf;
int verbose;
{
STACK *sk=NULL;
@@ -1918,8 +2005,9 @@ int verbose;
BIO_printf(bio_err,"Signature ok\n");
X509_REQ_set_pubkey(req,pktmp);
EVP_PKEY_free(pktmp);
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,
days,1,verbose,req,extensions);
days,1,verbose,req,ext_sect,lconf);
err:
if (req != NULL) X509_REQ_free(req);
if (parms != NULL) CONF_free(parms);
@@ -1947,102 +2035,6 @@ int *type;
return(1);
}
static STACK *load_extensions(sec)
char *sec;
{
STACK *ext;
STACK *ret=NULL;
CONF_VALUE *cv;
ASN1_OCTET_STRING *str=NULL;
ASN1_STRING *tmp=NULL;
X509_EXTENSION *x;
BIO *mem=NULL;
BUF_MEM *buf=NULL;
int i,nid,len;
unsigned char *ptr;
int pack_type;
int data_type;
if ((ext=CONF_get_section(conf,sec)) == NULL)
{
BIO_printf(bio_err,"unable to find extension section called '%s'\n",sec);
return(NULL);
}
if ((ret=sk_new_null()) == NULL) return(NULL);
for (i=0; i<sk_num(ext); i++)
{
cv=(CONF_VALUE *)sk_value(ext,i); /* get the object id */
if ((nid=OBJ_txt2nid(cv->name)) == NID_undef)
{
BIO_printf(bio_err,"%s:unknown object type in section, '%s'\n",sec,cv->name);
goto err;
}
pack_type=X509v3_pack_type_by_NID(nid);
data_type=X509v3_data_type_by_NID(nid);
/* pack up the input bytes */
ptr=(unsigned char *)cv->value;
len=strlen((char *)ptr);
if ((len > 2) && (cv->value[0] == '0') &&
(cv->value[1] == 'x'))
{
if (data_type == V_ASN1_UNDEF)
{
BIO_printf(bio_err,"data type for extension %s is unknown\n",cv->name);
goto err;
}
if (mem == NULL)
if ((mem=BIO_new(BIO_s_mem())) == NULL)
goto err;
if (((buf=BUF_MEM_new()) == NULL) ||
!BUF_MEM_grow(buf,128))
goto err;
if ((tmp=ASN1_STRING_new()) == NULL) goto err;
BIO_reset(mem);
BIO_write(mem,(char *)&(ptr[2]),len-2);
if (!a2i_ASN1_STRING(mem,tmp,buf->data,buf->max))
goto err;
len=tmp->length;
ptr=tmp->data;
}
switch (pack_type)
{
case X509_EXT_PACK_STRING:
if ((str=X509v3_pack_string(&str,
data_type,ptr,len)) == NULL)
goto err;
break;
case X509_EXT_PACK_UNKNOWN:
default:
BIO_printf(bio_err,"Don't know how to pack extension %s\n",cv->name);
goto err;
break;
}
if ((x=X509_EXTENSION_create_by_NID(NULL,nid,0,str)) == NULL)
goto err;
sk_push(ret,(char *)x);
}
if (0)
{
err:
if (ret != NULL) sk_pop_free(ret,X509_EXTENSION_free);
ret=NULL;
}
if (str != NULL) ASN1_OCTET_STRING_free(str);
if (tmp != NULL) ASN1_STRING_free(tmp);
if (buf != NULL) BUF_MEM_free(buf);
if (mem != NULL) BIO_free(mem);
return(ret);
}
static int check_time_format(str)
char *str;
{
@@ -2054,3 +2046,25 @@ char *str;
return(ASN1_UTCTIME_check(&tm));
}
static int add_oid_section(hconf)
LHASH *hconf;
{
char *p;
STACK *sktmp;
CONF_VALUE *cnf;
int i;
if(!(p=CONF_get_string(hconf,NULL,"oid_section"))) return 1;
if(!(sktmp = CONF_get_section(hconf, p))) {
BIO_printf(bio_err, "problem loading oid section %s\n", p);
return 0;
}
for(i = 0; i < sk_num(sktmp); i++) {
cnf = (CONF_VALUE *)sk_value(sktmp, i);
if(OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) {
BIO_printf(bio_err, "problem creating object %s=%s\n",
cnf->name, cnf->value);
return 0;
}
}
return 1;
}

View File

@@ -63,6 +63,7 @@
#include "bio.h"
#include "err.h"
#include "x509.h"
#include "x509v3.h"
#include "pem.h"
#undef PROG
@@ -71,11 +72,6 @@
#undef POSTFIX
#define POSTFIX ".rvk"
#define FORMAT_UNDEF 0
#define FORMAT_ASN1 1
#define FORMAT_TEXT 2
#define FORMAT_PEM 3
static char *crl_usage[]={
"usage: crl args\n",
"\n",
@@ -109,7 +105,7 @@ char **argv;
BIO *out=NULL;
int informat,outformat;
char *infile=NULL,*outfile=NULL;
int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0;
int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0;
char **pp,buf[256];
apps_startup();
@@ -147,10 +143,6 @@ char **argv;
if (--argc < 1) goto bad;
outformat=str2fmt(*(++argv));
}
else if (strcmp(*argv,"-text") == 0)
{
outformat=FORMAT_TEXT;
}
else if (strcmp(*argv,"-in") == 0)
{
if (--argc < 1) goto bad;
@@ -161,6 +153,8 @@ char **argv;
if (--argc < 1) goto bad;
outfile= *(++argv);
}
else if (strcmp(*argv,"-text") == 0)
text = 1;
else if (strcmp(*argv,"-hash") == 0)
hash= ++num;
else if (strcmp(*argv,"-issuer") == 0)
@@ -181,14 +175,6 @@ char **argv;
argv++;
}
if (outformat == FORMAT_TEXT)
{
num=0;
issuer= ++num;
lastupdate= ++num;
nextupdate= ++num;
}
if (badops)
{
bad:
@@ -198,6 +184,7 @@ bad:
}
ERR_load_crypto_strings();
X509V3_add_standard_extensions();
x=load_crl(infile,informat);
if (x == NULL) { goto end; }
@@ -208,28 +195,28 @@ bad:
if (issuer == i)
{
X509_NAME_oneline(x->crl->issuer,buf,256);
fprintf(stdout,"issuer= %s\n",buf);
BIO_printf(bio_out,"issuer= %s\n",buf);
}
if (hash == i)
{
fprintf(stdout,"%08lx\n",
BIO_printf(bio_out,"%08lx\n",
X509_NAME_hash(x->crl->issuer));
}
if (lastupdate == i)
{
fprintf(stdout,"lastUpdate=");
ASN1_UTCTIME_print(bio_out,x->crl->lastUpdate);
fprintf(stdout,"\n");
BIO_printf(bio_out,"lastUpdate=");
ASN1_TIME_print(bio_out,x->crl->lastUpdate);
BIO_printf(bio_out,"\n");
}
if (nextupdate == i)
{
fprintf(stdout,"nextUpdate=");
BIO_printf(bio_out,"nextUpdate=");
if (x->crl->nextUpdate != NULL)
ASN1_UTCTIME_print(bio_out,x->crl->nextUpdate);
ASN1_TIME_print(bio_out,x->crl->nextUpdate);
else
fprintf(stdout,"NONE");
fprintf(stdout,"\n");
BIO_printf(bio_out,"NONE");
BIO_printf(bio_out,"\n");
}
}
}
@@ -254,27 +241,11 @@ bad:
}
}
if (text) X509_CRL_print(out, x);
if (outformat == FORMAT_ASN1)
i=(int)i2d_X509_CRL_bio(out,x);
else if (outformat == FORMAT_PEM)
i=PEM_write_bio_X509_CRL(out,x);
else if (outformat == FORMAT_TEXT)
{
X509_REVOKED *r;
STACK *sk;
sk=sk_dup(x->crl->revoked);
while ((r=(X509_REVOKED *)sk_pop(sk)) != NULL)
{
fprintf(stdout,"revoked: serialNumber=");
i2a_ASN1_INTEGER(out,r->serialNumber);
fprintf(stdout," revocationDate=");
ASN1_UTCTIME_print(bio_out,r->revocationDate);
fprintf(stdout,"\n");
}
sk_free(sk);
i=1;
}
else
{
BIO_printf(bio_err,"bad output format specified for outfile\n");
@@ -283,9 +254,10 @@ bad:
if (!i) { BIO_printf(bio_err,"unable to write CRL\n"); goto end; }
ret=0;
end:
if (out != NULL) BIO_free(out);
if (bio_out != NULL) BIO_free(bio_out);
if (x != NULL) X509_CRL_free(x);
BIO_free(out);
BIO_free(bio_out);
X509_CRL_free(x);
X509V3_EXT_cleanup();
EXIT(ret);
}
@@ -329,7 +301,7 @@ int format;
}
end:
if (in != NULL) BIO_free(in);
BIO_free(in);
return(x);
}

8
apps/crl.out Normal file
View File

@@ -0,0 +1,8 @@
-----BEGIN X509 CRL-----
MIIBDjCBuTANBgkqhkiG9w0BAQQFADBgMQswCQYDVQQGEwJBVTEMMAoGA1UECBMD
UUxEMRkwFwYDVQQKExBNaW5jb20gUHR5LiBMdGQuMQswCQYDVQQLEwJDUzEbMBkG
A1UEAxMSU1NMZWF5IGRlbW8gc2VydmVyFw05NzA3MDkwMDAwMjJaFw05NzA4MDgw
MDAwMjJaMCgwEgIBARcNOTUxMDA5MjMzMjA1WjASAgEDFw05NTEyMDEwMTAwMDBa
MA0GCSqGSIb3DQEBBAUAA0EAcEBIWVZPXxSlLMPPLfBi4s0N3lzTgskZkgO6pjZi
oQRwh5vi5zFqDNQteGx7RTHpUYntgyoAZ87FZE0GOJgBaQ==
-----END X509 CRL-----

View File

@@ -98,6 +98,7 @@ char **argv;
PKCS7 *p7 = NULL;
PKCS7_SIGNED *p7s = NULL;
X509_CRL *crl=NULL;
STACK *certflst=NULL;
STACK *crl_stack=NULL;
STACK *cert_stack=NULL;
int ret=1,nocrl=0;
@@ -112,7 +113,6 @@ char **argv;
outfile=NULL;
informat=FORMAT_PEM;
outformat=FORMAT_PEM;
certfile=NULL;
prog=argv[0];
argc--;
@@ -146,7 +146,8 @@ char **argv;
else if (strcmp(*argv,"-certfile") == 0)
{
if (--argc < 1) goto bad;
certfile= *(++argv);
if(!certflst) certflst = sk_new(NULL);
sk_push(certflst,*(++argv));
}
else
{
@@ -165,9 +166,10 @@ bad:
BIO_printf(bio_err,"where options are\n");
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
BIO_printf(bio_err," -outform arg output format - one of DER TXT PEM\n");
BIO_printf(bio_err," -in arg inout file\n");
BIO_printf(bio_err," -in arg input file\n");
BIO_printf(bio_err," -out arg output file\n");
BIO_printf(bio_err," -certfile arg certificates file of chain to a trusted CA\n");
BIO_printf(bio_err," (can be used more than once)\n");
BIO_printf(bio_err," -nocrl no crl to load, just certs from '-certfile'\n");
EXIT(1);
}
@@ -229,15 +231,17 @@ bad:
if ((cert_stack=sk_new(NULL)) == NULL) goto end;
p7s->cert=cert_stack;
if (certfile != NULL)
{
if(certflst) for(i = 0; i < sk_num(certflst); i++) {
certfile = sk_value(certflst, i);
if (add_certs_from_file(cert_stack,certfile) < 0)
{
BIO_printf(bio_err,"error loading certificates\n");
BIO_printf(bio_err, "error loading certificates\n");
ERR_print_errors(bio_err);
goto end;
}
}
}
sk_free(certflst);
if (outfile == NULL)
BIO_set_fp(out,stdout,BIO_NOCLOSE);
@@ -297,19 +301,23 @@ char *certfile;
if ((stat(certfile,&st) != 0))
{
BIO_printf(bio_err,"unable to file the file, %s\n",certfile);
BIO_printf(bio_err,"unable to load the file, %s\n",certfile);
goto end;
}
in=BIO_new(BIO_s_file());
if ((in == NULL) || (BIO_read_filename(in,certfile) <= 0))
{
BIO_printf(bio_err,"error opening the file, %s\n",certfile);
goto end;
}
/* This loads from a file, a stack of x509/crl/pkey sets */
sk=PEM_X509_INFO_read_bio(in,NULL,NULL);
if (sk == NULL) goto end;
if (sk == NULL) {
BIO_printf(bio_err,"error reading the file, %s\n",certfile);
goto end;
}
/* scan over it and pull out the CRL's */
while (sk_num(sk))

View File

@@ -42,13 +42,13 @@ $md4_cmd="md4";
$rsa_cmd="rsa -des -inform der ";
# this was the 0.5.x way of doing things ...
$cmd="ssleay asn1parse";
$x509_cmd="ssleay x509";
$crl_cmd="ssleay crl";
$rc4_cmd="ssleay rc4";
$md2_cmd="ssleay md2";
$md4_cmd="ssleay md4";
$rsa_cmd="ssleay rsa -des -inform der ";
$cmd="openssl asn1parse";
$x509_cmd="openssl x509";
$crl_cmd="openssl crl";
$rc4_cmd="openssl rc4";
$md2_cmd="openssl md2";
$md4_cmd="openssl md4";
$rsa_cmd="openssl rsa -des -inform der ";
&Getopts('vd:') || die "usage:$0 [-v] [-d num] file";
$depth=($opt_d =~ /^\d+$/)?$opt_d:0;

View File

@@ -146,6 +146,8 @@ char **argv;
LN_sha,LN_sha);
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
LN_mdc2,LN_mdc2);
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
LN_ripemd160,LN_ripemd160);
err=1;
goto end;
}

View File

@@ -152,10 +152,10 @@ bad:
BIO_printf(bio_err,"where options are\n");
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
BIO_printf(bio_err," -outform arg output format - one of DER TXT PEM\n");
BIO_printf(bio_err," -in arg inout file\n");
BIO_printf(bio_err," -in arg input file\n");
BIO_printf(bio_err," -out arg output file\n");
BIO_printf(bio_err," -check check the DH parameters\n");
BIO_printf(bio_err," -text check the DH parameters\n");
BIO_printf(bio_err," -text print a text form of the DH parameters\n");
BIO_printf(bio_err," -C Output C code\n");
BIO_printf(bio_err," -noout no output\n");
goto end;

View File

@@ -1,17 +1,14 @@
-----BEGIN DSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,C5B6C7CC9E1FE2C0
svCXBcBRhMuU22UXOfiKZA+thmz6KYXpt1Yg5Rd+TYQcQ1MdvNy0B0tkP1SxzDq0
Xh1eMeTML9/9/0rKakgNXXXbpi5RB8t6BmwRSyej89F7nn1mtR3qzoyPRpp15SDl
Tn67C+2v+HDF3MFk88hiNCYkNbcmi7TWvChsl8N1r7wdZwtIox56yXdgxw6ZIpa/
par0oUCzN7fiavPgCWz1kfPNSaBQSdxwH7TZi5tMHAr0J3C7a7QRnZfE09R59Uqr
zslrq+ndIw1BZAxoY0SlBu+iFOVaBVlwToC4AsHkv7j7l8ITtr7f42YbBa44D9TO
uOhONmkk/v3Fso4RaOEzdKZC+hnmmzvHs6TiTWm6yzJgSFwyOUK0eGmKEeVxpcH5
rUOlHOwzen+FFtocZDZAfdFnb7QY7L/boQvyA5A+ZbRG4DUpmBQeQsSaICHM5Rxx
1QaLF413VNPXTLPbW0ilSc2H8x2iZTIVKfd33oSO6NhXPtSYQgfecEF4BvNHY5c4
HovjT4mckbK95bcBzoCHu43vuSQkmZzdYo/ydSZt6zoPavbBLueTpgSbdXiDi827
MVqOsYxGCb+kez0FoDSTgw==
MIIBugIBAAKBgQCnP26Fv0FqKX3wn0cZMJCaCR3aajMexT2GlrMV4FMuj+BZgnOQ
PnUxmUd6UvuF5NmmezibaIqEm4fGHrV+hktTW1nPcWUZiG7OZq5riDb77Cjcwtel
u+UsOSZL2ppwGJU3lRBWI/YV7boEXt45T/23Qx+1pGVvzYAR5HCVW1DNSQIVAPcH
Me36bAYD1YWKHKycZedQZmVvAoGATd9MA6aRivUZb1BGJZnlaG8w42nh5bNdmLso
hkj83pkEP1+IDJxzJA0gXbkqmj8YlifkYofBe3RiU/xhJ6h6kQmdtvFNnFQPWAbu
SXQHzlV+I84W9srcWmEBfslxtU323DQph2j2XiCTs9v15AlsQReVkusBtXOlan7Y
Mu0OArgCgYAapll6iqz9XrZFlk2GCVcB+KihxWnH7IuHvSLw9YUrJahcBHmbpvt4
94lF4gC5w3WPM+vXJofbusk4GoQEEsQNMDaah4m49uUqAylOVFJJJXuirVJ+o+0T
tOFDITEAl+YZZariXOD7tdOSOl9RLMPC6+daHKS9e68u3enxhqnDGQIUB78dhW77
J6zsFbSEHaQGUmfSeoM=
-----END DSA PRIVATE KEY-----
-----BEGIN CERTIFICATE REQUEST-----
MIICUjCCAhECAQAwUjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx

View File

@@ -1,17 +1,14 @@
-----BEGIN DSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,F80EEEBEEA7386C4
GZ9zgFcHOlnhPoiSbVi/yXc9mGoj44A6IveD4UlpSEUt6Xbse3Fr0KHIUyQ3oGnS
mClKoAp/eOTb5Frhto85SzdsxYtac+X1v5XwdzAMy2KowHVk1N8A5jmE2OlkNPNt
of132MNlo2cyIRYaa35PPYBGNCmUm7YcYS8O90YtkrQZZTf4+2C4kllhMcdkQwkr
FWSWC8YOQ7w0LHb4cX1FejHHom9Nd/0PN3vn3UyySvfOqoR7nbXkrpHXmPIr0hxX
RcF0aXcV/CzZ1/nfXWQf4o3+oD0T22SDoVcZY60IzI0oIc3pNCbDV3uKNmgekrFd
qOUJ+QW8oWp7oefRx62iBfIeC8DZunohMXaWAQCU0sLQOR4yEdeUCnzCSywe0bG1
diD0KYaEe+Yub1BQH4aLsBgDjardgpJRTQLq0DUvw0/QGO1irKTJzegEDNVBKrVn
V4AHOKT1CUKqvGNRP1UnccUDTF6miOAtaj/qpzra7sSk7dkGBvIEeFoAg84kfh9h
hVvF1YyzC9bwZepruoqoUwke/WdNIR5ymOVZ/4Liw0JdIOcq+atbdRX08niqIRkf
dsZrUj4leo3zdefYUQ7w4N2Ns37yDFq7
MIIBvAIBAAKBgQCnP26Fv0FqKX3wn0cZMJCaCR3aajMexT2GlrMV4FMuj+BZgnOQ
PnUxmUd6UvuF5NmmezibaIqEm4fGHrV+hktTW1nPcWUZiG7OZq5riDb77Cjcwtel
u+UsOSZL2ppwGJU3lRBWI/YV7boEXt45T/23Qx+1pGVvzYAR5HCVW1DNSQIVAPcH
Me36bAYD1YWKHKycZedQZmVvAoGATd9MA6aRivUZb1BGJZnlaG8w42nh5bNdmLso
hkj83pkEP1+IDJxzJA0gXbkqmj8YlifkYofBe3RiU/xhJ6h6kQmdtvFNnFQPWAbu
SXQHzlV+I84W9srcWmEBfslxtU323DQph2j2XiCTs9v15AlsQReVkusBtXOlan7Y
Mu0OArgCgYEApu25HkB1b4gKMIV7aLGNSIknMzYgrB7o1kQxeDf34dDVRM9OZ8tk
umz6tl+iUcNe5EoxdsYV1IXSddjOi08LOLsZq7AQlNnKvbtlmMDULpqkZJD0bO7A
29nisJfKy1URqABLw5DgfcPh1ZLXtmDfUgJvmjgTmvTPT2j9TPjq7RUCFQDNvrBz
6TicfImU7UFRn9h00j0lJQ==
-----END DSA PRIVATE KEY-----
-----BEGIN CERTIFICATE REQUEST-----
MIICVTCCAhMCAQAwUzELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx

View File

@@ -154,7 +154,7 @@ bad:
BIO_printf(bio_err,"where options are\n");
BIO_printf(bio_err," -inform arg input format - one of DER NET PEM\n");
BIO_printf(bio_err," -outform arg output format - one of DER NET PEM\n");
BIO_printf(bio_err," -in arg inout file\n");
BIO_printf(bio_err," -in arg input file\n");
BIO_printf(bio_err," -out arg output file\n");
BIO_printf(bio_err," -des encrypt PEM output with cbc des\n");
BIO_printf(bio_err," -des3 encrypt PEM output with ede cbc des using 168 bit key\n");

View File

@@ -80,6 +80,7 @@
* -text
* -C
* -noout
* -genkey
*/
#ifndef NOPROTO
@@ -97,7 +98,7 @@ char **argv;
BIO *in=NULL,*out=NULL;
int informat,outformat,noout=0,C=0,ret=1;
char *infile,*outfile,*prog,*inrand=NULL;
int numbits= -1,num;
int numbits= -1,num,genkey=0;
char buffer[200],*randfile=NULL;
apps_startup();
@@ -140,6 +141,8 @@ char **argv;
text=1;
else if (strcmp(*argv,"-C") == 0)
C=1;
else if (strcmp(*argv,"-genkey") == 0)
genkey=1;
else if (strcmp(*argv,"-rand") == 0)
{
if (--argc < 1) goto bad;
@@ -169,7 +172,7 @@ bad:
BIO_printf(bio_err,"where options are\n");
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
BIO_printf(bio_err," -outform arg output format - one of DER TXT PEM\n");
BIO_printf(bio_err," -in arg inout file\n");
BIO_printf(bio_err," -in arg input file\n");
BIO_printf(bio_err," -out arg output file\n");
BIO_printf(bio_err," -text check the DSA parameters\n");
BIO_printf(bio_err," -C Output C code\n");
@@ -315,6 +318,22 @@ bad:
goto end;
}
}
if (genkey)
{
DSA *dsakey;
if ((dsakey=DSAparams_dup(dsa)) == NULL) goto end;
if (!DSA_generate_key(dsakey)) goto end;
if (outformat == FORMAT_ASN1)
i=i2d_DSAPrivateKey_bio(out,dsakey);
else if (outformat == FORMAT_PEM)
i=PEM_write_bio_DSAPrivateKey(out,dsakey,NULL,NULL,0,NULL);
else {
BIO_printf(bio_err,"bad output format specified for outfile\n");
goto end;
}
DSA_free(dsakey);
}
ret=0;
end:
if (in != NULL) BIO_free(in);

View File

@@ -88,7 +88,7 @@
#define MONOLITH
#include "ssleay.c"
#include "openssl.c"
#include "apps.c"
#include "asn1pars.c"
#ifndef NO_RSA

View File

@@ -1,2 +0,0 @@
2.99999.3 SET.ex3 SET x509v3 extension 3

View File

@@ -1,114 +0,0 @@
#!/usr/local/bin/perl
$mkprog='mklinks';
$rmprog='rmlinks';
print "#ifndef NOPROTO\n";
grep(s/^asn1pars$/asn1parse/,@ARGV);
foreach (@ARGV)
{ printf "extern int %s_main(int argc,char *argv[]);\n",$_; }
print "#else\n";
foreach (@ARGV)
{ printf "extern int %s_main();\n",$_; }
print "#endif\n";
print <<'EOF';
#ifdef SSLEAY_SRC
#define FUNC_TYPE_GENERAL 1
#define FUNC_TYPE_MD 2
#define FUNC_TYPE_CIPHER 3
typedef struct {
int type;
char *name;
int (*func)();
} FUNCTION;
FUNCTION functions[] = {
EOF
foreach (@ARGV)
{
push(@files,$_);
$str="\t{FUNC_TYPE_GENERAL,\"$_\",${_}_main},\n";
if (($_ =~ /^s_/) || ($_ =~ /^ciphers$/))
{ print "#if !defined(NO_SOCK) && !(defined(NO_SSL2) && defined(O_SSL3))\n${str}#endif\n"; }
elsif ( ($_ =~ /^rsa$/) || ($_ =~ /^genrsa$/) ||
($_ =~ /^req$/) || ($_ =~ /^ca$/) || ($_ =~ /^x509$/))
{ print "#ifndef NO_RSA\n${str}#endif\n"; }
elsif ( ($_ =~ /^dsa$/) || ($_ =~ /^gendsa$/) || ($_ =~ /^dsaparam$/))
{ print "#ifndef NO_DSA\n${str}#endif\n"; }
elsif ( ($_ =~ /^dh$/) || ($_ =~ /^gendh$/))
{ print "#ifndef NO_DH\n${str}#endif\n"; }
else
{ print $str; }
}
foreach ("md2","md5","sha","sha1","mdc2")
{
push(@files,$_);
printf "\t{FUNC_TYPE_MD,\"%s\",dgst_main},\n",$_;
}
foreach (
"base64",
"des", "des3", "desx", "idea", "rc4", "rc2","bf","cast","rc5",
"des-ecb", "des-ede", "des-ede3",
"des-cbc", "des-ede-cbc","des-ede3-cbc",
"des-cfb", "des-ede-cfb","des-ede3-cfb",
"des-ofb", "des-ede-ofb","des-ede3-ofb",
"idea-cbc","idea-ecb", "idea-cfb", "idea-ofb",
"rc2-cbc", "rc2-ecb", "rc2-cfb", "rc2-ofb",
"bf-cbc", "bf-ecb", "bf-cfb", "bf-ofb",
"cast5-cbc","cast5-ecb", "cast5-cfb","cast5-ofb",
"cast-cbc", "rc5-cbc", "rc5-ecb", "rc5-cfb", "rc5-ofb")
{
push(@files,$_);
$t=sprintf("\t{FUNC_TYPE_CIPHER,\"%s\",enc_main},\n",$_);
if ($_ =~ /des/) { $t="#ifndef NO_DES\n${t}#endif\n"; }
elsif ($_ =~ /idea/) { $t="#ifndef NO_IDEA\n${t}#endif\n"; }
elsif ($_ =~ /rc4/) { $t="#ifndef NO_RC4\n${t}#endif\n"; }
elsif ($_ =~ /rc2/) { $t="#ifndef NO_RC2\n${t}#endif\n"; }
elsif ($_ =~ /bf/) { $t="#ifndef NO_BLOWFISH\n${t}#endif\n"; }
elsif ($_ =~ /cast/) { $t="#ifndef NO_CAST\n${t}#endif\n"; }
elsif ($_ =~ /rc5/) { $t="#ifndef NO_RC5\n${t}#endif\n"; }
print $t;
}
print "\t{0,NULL,NULL}\n\t};\n";
print "#endif\n\n";
open(OUT,">$mkprog") || die "unable to open '$prog':$!\n";
print OUT "#!/bin/sh\nfor i in ";
foreach (@files)
{ print OUT $_." "; }
print OUT <<'EOF';
do
echo making symlink for $i
/bin/rm -f $i
ln -s ssleay $i
done
EOF
close(OUT);
chmod(0755,$mkprog);
open(OUT,">$rmprog") || die "unable to open '$prog':$!\n";
print OUT "#!/bin/sh\nfor i in ";
foreach (@files)
{ print OUT $_." "; }
print OUT <<'EOF';
do
echo removing $i
/bin/rm -f $i
done
EOF
close(OUT);
chmod(0755,$rmprog);

View File

@@ -85,10 +85,11 @@ char **argv;
{
char buffer[200];
DSA *dsa=NULL;
int ret=1,num=DEFBITS;
int ret=1;
char *outfile=NULL;
char *inrand=NULL,*randfile,*dsaparams=NULL;
BIO *out=NULL,*in=NULL;
EVP_CIPHER *enc=NULL;
apps_startup();
@@ -117,6 +118,16 @@ char **argv;
{
dsaparams= *argv;
}
#ifndef NO_DES
else if (strcmp(*argv,"-des") == 0)
enc=EVP_des_cbc();
else if (strcmp(*argv,"-des3") == 0)
enc=EVP_des_ede3_cbc();
#endif
#ifndef NO_IDEA
else if (strcmp(*argv,"-idea") == 0)
enc=EVP_idea_cbc();
#endif
else
goto bad;
argv++;
@@ -126,16 +137,25 @@ char **argv;
if (dsaparams == NULL)
{
bad:
BIO_printf(bio_err,"usage: gendsa [args] [numbits]\n");
BIO_printf(bio_err," -out file - output the key to 'file\n");
BIO_printf(bio_err,"usage: gendsa [args] dsaparam-file\n");
BIO_printf(bio_err," -out file - output the key to 'file'\n");
#ifndef NO_DES
BIO_printf(bio_err," -des - encrypt the generated key with DES in cbc mode\n");
BIO_printf(bio_err," -des3 - encrypt the generated key with DES in ede cbc mode (168 bit key)\n");
#endif
#ifndef NO_IDEA
BIO_printf(bio_err," -idea - encrypt the generated key with IDEA in cbc mode\n");
#endif
BIO_printf(bio_err," -rand file:file:...\n");
BIO_printf(bio_err," - load the file (or the files in the directory) into\n");
BIO_printf(bio_err," the random number generator\n");
BIO_printf(bio_err," dsaparam-file\n");
BIO_printf(bio_err," - a DSA parameter file as generated by the dsaparam command\n");
goto end;
}
in=BIO_new(BIO_s_file());
if (!(BIO_read_filename(in,"dsaparams")))
if (!(BIO_read_filename(in,dsaparams)))
{
perror(dsaparams);
goto end;
@@ -174,8 +194,8 @@ bad:
dsa_load_rand(inrand));
}
BIO_printf(bio_err,"Generating DSA parameters, %d bit long prime\n",num);
BIO_printf(bio_err,"This could take some time\n");
BIO_printf(bio_err,"Generating DSA key, %d bits\n",
BN_num_bits(dsa->p));
if (!DSA_generate_key(dsa)) goto end;
if (randfile == NULL)
@@ -183,7 +203,7 @@ bad:
else
RAND_write_file(randfile);
if (!PEM_write_bio_DSAPrivateKey(out,dsa,EVP_des_ede3_cbc(),NULL,0,NULL))
if (!PEM_write_bio_DSAPrivateKey(out,dsa,enc,NULL,0,NULL))
goto end;
ret=0;
end:

View File

@@ -1,7 +0,0 @@
#!/bin/sh
for i in verify asn1parse req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers md2 md5 sha sha1 mdc2 base64 des des3 desx idea rc4 rc2 bf cast rc5 des-ecb des-ede des-ede3 des-cbc des-ede-cbc des-ede3-cbc des-cfb des-ede-cfb des-ede3-cfb des-ofb des-ede-ofb des-ede3-ofb idea-cbc idea-ecb idea-cfb idea-ofb rc2-cbc rc2-ecb rc2-cfb rc2-ofb bf-cbc bf-ecb bf-cfb bf-ofb cast5-cbc cast5-ecb cast5-cfb cast5-ofb cast-cbc rc5-cbc rc5-ecb rc5-cfb rc5-ofb
do
echo making symlink for $i
/bin/rm -f $i
ln -s ssleay $i
done

182
apps/nseq.c Normal file
View File

@@ -0,0 +1,182 @@
/* nseq.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 "pem.h"
#include "err.h"
#include "apps.h"
#undef PROG
#define PROG nseq_main
#ifdef NOPROTO
static int dump_cert_text(BIO *out, X509 *x);
#else
static int dump_cert_text();
#endif
int MAIN(argc, argv)
int argc;
char **argv;
{
char **args, *infile = NULL, *outfile = NULL;
BIO *in = NULL, *out = NULL;
int toseq = 0;
X509 *x509 = NULL;
NETSCAPE_CERT_SEQUENCE *seq = NULL;
int i, ret = 1;
int badarg = 0;
if (bio_err == NULL) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);
ERR_load_crypto_strings();
SSLeay_add_all_algorithms();
args = argv + 1;
while (!badarg && *args && *args[0] == '-') {
if (!strcmp (*args, "-toseq")) toseq = 1;
else if (!strcmp (*args, "-in")) {
if (args[1]) {
args++;
infile = *args;
} else badarg = 1;
} else if (!strcmp (*args, "-out")) {
if (args[1]) {
args++;
outfile = *args;
} else badarg = 1;
} else badarg = 1;
args++;
}
if (badarg) {
BIO_printf (bio_err, "Netscape certificate sequence utility\n");
BIO_printf (bio_err, "Usage nseq [options]\n");
BIO_printf (bio_err, "where options are\n");
BIO_printf (bio_err, "-in file input file\n");
BIO_printf (bio_err, "-out file output file\n");
BIO_printf (bio_err, "-toseq output NS Sequence file\n");
EXIT(1);
}
if (infile) {
if (!(in = BIO_new_file (infile, "r"))) {
BIO_printf (bio_err,
"Can't open input file %s\n", infile);
goto end;
}
} else in = BIO_new_fp(stdin, BIO_NOCLOSE);
if (outfile) {
if (!(out = BIO_new_file (outfile, "w"))) {
BIO_printf (bio_err,
"Can't open output file %s\n", outfile);
goto end;
}
} else out = BIO_new_fp(stdout, BIO_NOCLOSE);
if (toseq) {
seq = NETSCAPE_CERT_SEQUENCE_new();
seq->certs = sk_new(NULL);
while((x509 = PEM_read_bio_X509(in, NULL, NULL)))
sk_push(seq->certs, (char *)x509);
if(!sk_num(seq->certs))
{
BIO_printf (bio_err, "Error reading certs file %s\n", infile);
ERR_print_errors(bio_err);
goto end;
}
PEM_write_bio_NETSCAPE_CERT_SEQUENCE(out, seq);
ret = 0;
goto end;
}
if (!(seq = PEM_read_bio_NETSCAPE_CERT_SEQUENCE(in, NULL, NULL))) {
BIO_printf (bio_err, "Error reading sequence file %s\n", infile);
ERR_print_errors(bio_err);
goto end;
}
for(i = 0; i < sk_num(seq->certs); i++) {
x509 = (X509 *) sk_value(seq->certs, i);
dump_cert_text(out, x509);
PEM_write_bio_X509(out, x509);
}
ret = 0;
end:
BIO_free(in);
BIO_free(out);
NETSCAPE_CERT_SEQUENCE_free(seq);
EXIT(ret);
}
static int dump_cert_text(out, x)
BIO *out;
X509 *x;
{
char buf[256];
X509_NAME_oneline(X509_get_subject_name(x),buf,256);
BIO_puts(out,"subject=");
BIO_puts(out,buf);
X509_NAME_oneline(X509_get_issuer_name(x),buf,256);
BIO_puts(out,"\nissuer= ");
BIO_puts(out,buf);
BIO_puts(out,"\n");
return 0;
}

6
apps/oid.cnf Normal file
View File

@@ -0,0 +1,6 @@
2.99999.1 SET.ex1 SET x509v3 extension 1
2.99999.2 SET.ex2 SET x509v3 extension 2
2.99999.3 SET.ex3 SET x509v3 extension 3
2.99999.4 SET.ex4 SET x509v3 extension 4
2.99999.5 SET.ex5 SET x509v3 extension 5
2.99999.6 SET.ex6 SET x509v3 extension 6

View File

@@ -1,4 +1,4 @@
/* apps/ssleay.c */
/* apps/openssl.c */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -152,12 +152,14 @@ char *Argv[];
ERR_load_crypto_strings();
/* Lets load up our environment a little */
p=getenv("SSLEAY_CONF");
p=getenv("OPENSSL_CONF");
if (p == NULL)
p=getenv("SSLEAY_CONF");
if (p == NULL)
{
strcpy(config_name,X509_get_default_cert_area());
strcat(config_name,"/lib/");
strcat(config_name,SSLEAY_CONF);
strcat(config_name,OPENSSL_CONF);
p=config_name;
}
@@ -191,7 +193,7 @@ char *Argv[];
goto end;
}
/* ok, lets enter the old 'SSLeay>' mode */
/* ok, lets enter the old 'OpenSSL>' mode */
for (;;)
{
@@ -204,7 +206,7 @@ char *Argv[];
p[0]='\0';
if (i++)
prompt=">";
else prompt="SSLeay>";
else prompt="OpenSSL> ";
fputs(prompt,stdout);
fflush(stdout);
fgets(p,n,stdin);
@@ -241,6 +243,7 @@ end:
ERR_remove_state(0);
EVP_cleanup();
ERR_free_strings();
CRYPTO_mem_leaks(bio_err);
if (bio_err != NULL)
@@ -277,10 +280,10 @@ char *argv[];
}
else
{
BIO_printf(bio_err,"'%s' is a bad command, valid commands are",
BIO_printf(bio_err,"openssl:Error: '%s' is an invalid command.\n",
argv[0]);
BIO_printf(bio_err, "\nStandard commands");
i=0;
fp=functions;
tp=0;
for (fp=functions; fp->name != NULL; fp++)
{
@@ -298,27 +301,43 @@ char *argv[];
{
i=1;
BIO_printf(bio_err,
"Message Digest commands - see the dgst command for more details\n");
"\nMessage Digest commands (see the `dgst' command for more details)\n");
}
else if (tp == FUNC_TYPE_CIPHER)
{
i=1;
BIO_printf(bio_err,"Cipher commands - see the enc command for more details\n");
BIO_printf(bio_err,"\nCipher commands (see the `enc' command for more details)\n");
}
}
BIO_printf(bio_err,"%-15s",fp->name);
}
BIO_printf(bio_err,"\nquit\n");
BIO_printf(bio_err,"\n\n");
ret=0;
}
end:
return(ret);
}
static int SortFnByName(const void *_f1,const void *_f2)
{
const FUNCTION *f1=_f1;
const FUNCTION *f2=_f2;
if(f1->type != f2->type)
return f1->type-f2->type;
return strcmp(f1->name,f2->name);
}
static LHASH *prog_init()
{
LHASH *ret;
FUNCTION *f;
int i;
/* Purely so it looks nice when the user hits ? */
for(i=0,f=functions ; f->name != NULL ; ++f,++i)
;
qsort(functions,i,sizeof *functions,SortFnByName);
if ((ret=lh_new(hash,cmp)) == NULL) return(NULL);

View File

@@ -1,9 +1,19 @@
#
# SSLeay example configuration file.
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#
RANDFILE = $ENV::HOME/.rnd
oid_file = $ENV::HOME/.oid
oid_section = new_oids
[ new_oids ]
# We can add new OIDs in here for use by 'ca' and 'req'.
# Add a simple OID like this:
# testoid1=1.2.3.4
# Or use config file substitution like this:
# testoid2=${testoid1}.5.6
####################################################################
[ ca ]
@@ -24,7 +34,8 @@ crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = x509v3_extensions # The extentions to add to the cert
x509_extensions = usr_cert # The extentions to add to the cert
crl_extensions = crl_ext # Extensions to add to CRL
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = md5 # which md to use.
@@ -62,6 +73,7 @@ default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
x509_extensions = v3_ca # The extentions to add to the self signed cert
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
@@ -79,7 +91,7 @@ localityName = Locality Name (eg, city)
# we can do this but it is not needed normally :-)
#1.organizationName = Second Organization Name (eg, company)
#1.organizationName_default = CryptSoft Pty Ltd
#1.organizationName_default = World Wide Web Pty Ltd
organizationalUnitName = Organizational Unit Name (eg, section)
#organizationalUnitName_default =
@@ -90,6 +102,8 @@ commonName_max = 64
emailAddress = Email Address
emailAddress_max = 40
# SET-ex3 = SET extension number 3
[ req_attributes ]
challengePassword = A challenge password
challengePassword_min = 4
@@ -97,20 +111,89 @@ challengePassword_max = 20
unstructuredName = An optional company name
[ x509v3_extensions ]
[ usr_cert ]
nsCaRevocationUrl = http://www.cryptsoft.com/ca-crl.pem
nsComment = "This is a comment"
# These extensions are added when 'ca' signs a request.
# under ASN.1, the 0 bit would be encoded as 80
nsCertType = 0x40
# This goes against PKIX guidelines but some CAs do it and some software
# requires this to avoid interpreting an end user certificate as a CA.
basicConstraints=CA:FALSE
# Here are some examples of the usage of nsCertType. If it is omitted
# the certificate can be used for anything *except* object signing.
# This is OK for an SSL server.
#nsCertType = server
# For an object signing certificate this would be used.
#nsCertType = objsign
# For normal client use this is typical
#nsCertType = client, email
# This is typical also
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
nsComment = "OpenSSL Generated Certificate"
# PKIX recommendations
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always
# Import the email address.
subjectAltName=email:copy
# Copy subject details
issuerAltName=issuer:copy
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
#nsBaseUrl
#nsRevocationUrl
#nsRenewalUrl
#nsCaPolicyUrl
#nsSslServerName
#nsCertSequence
#nsCertExt
#nsDataType
[ v3_ca]
# Extensions for a typical CA
# It's a CA certificate
basicConstraints = CA:true
# PKIX recommendation.
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
# This is what PKIX recommends but some broken software chokes on critical
# extensions.
#basicConstraints = critical,CA:true
# Key usage: again this should really be critical.
keyUsage = cRLSign, keyCertSign
# Some might want this also
#nsCertType = sslCA, emailCA
# Include email address in subject alt name: another PKIX recommendation
subjectAltName=email:copy
# Copy issuer details
issuerAltName=issuer:copy
# RAW DER hex encoding of an extension: beware experts only!
# 1.2.3.5=RAW:02:03
# You can even override a supported extension:
# basicConstraints= critical, RAW:30:03:01:01:FF
[ crl_ext ]
# CRL extensions.
# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
issuerAltName=issuer:copy
authorityKeyIdentifier=keyid:always,issuer:always

View File

@@ -161,7 +161,7 @@ bad:
BIO_printf(bio_err,"where options are\n");
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
BIO_printf(bio_err," -outform arg output format - one of DER TXT PEM\n");
BIO_printf(bio_err," -in arg inout file\n");
BIO_printf(bio_err," -in arg input file\n");
BIO_printf(bio_err," -out arg output file\n");
BIO_printf(bio_err," -print_certs print any certs or crl in the input\n");
BIO_printf(bio_err," -des encrypt PEM output with cbc des\n");
@@ -277,9 +277,9 @@ bad:
BIO_puts(out,buf);
BIO_puts(out,"\nlast update=");
ASN1_UTCTIME_print(out,crl->crl->lastUpdate);
ASN1_TIME_print(out,crl->crl->lastUpdate);
BIO_puts(out,"\nnext update=");
ASN1_UTCTIME_print(out,crl->crl->nextUpdate);
ASN1_TIME_print(out,crl->crl->nextUpdate);
BIO_puts(out,"\n");
PEM_write_bio_X509_CRL(out,crl);

View File

@@ -1,11 +1,18 @@
-----BEGIN DSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,1BF8E9CE60B9941C
DEK-Info: DES-EDE3-CBC,BA26229A1653B7FF
JuhgIvVRrxCRedTTC9ABlIByMsq6IcpqyDZwOPS4rxTtVWvjj1BMHtoCebK7CKMZ
dLsvztfSkdAYmTGK62C73RwlmnMxB4JXhTLaoAX2eL9iylojTWRg+/0Y4rbIKmUe
hrmwrHld7vnfE9XHL8OoaFp6aJ8BB9B8HIfdJMnrNcTWJSGS6gYPTWPdm7ZCykEV
2fFEX6IqWjBjaRm36Esj5mHLRVhBbi2n/jy5IhZeqjEsQ8adYGUulzPSe5xc2JZa
+OO4ch/RRqWTFP59eNPfdke3UE7uNlUhPnYDAOXhSdMJBzI+T9RQXU2y/tMOrYYK
3+jNQcQ9q1Xy1s5dz/BOvw==
-----END DSA PRIVATE KEY-----
6nhWG8PKhTPO/s3ZvjUa6226NlKdvPDZFsNXOOoSUs9ejxpb/aj5huhs6qRYzsz9
Year47uaAZYhGD0vAagnNiBnYmjWEpN9G/wQxG7pgZThK1ZxDi63qn8aQ8UjuGHo
F6RpnnBQIAnWTWqr/Qsybtc5EoNkrj/Cpx0OfbSr6gZsFBCxwX1R1hT3/mhJ45f3
XMofY32Vdfx9/vtw1O7HmlHXQnXaqnbd9/nn1EpvFJG9+UjPoW7gV4jCOLuR4deE
jS8hm+cpkwXmFtk3VGjT9tQXPpMv3JpYfBqgGQoMAJ5Toq0DWcHi6Wg08PsD8lgy
vmTioPsRg+JGkJkJ8GnusgLpQdlQJbjzd7wGE6ElUFLfOxLo8bLlRHoriHNdWYhh
JjY0LyeTkovcmWxVjImc6ZyBz5Ly4t0BYf1gq3OkjsV91Q1taBxnhiavfizqMCAf
PPB3sLQnlXG77TOXkNxpqbZfEYrVZW2Nsqqdn8s07Uj4IMONZyq2odYKWFPMJBiM
POYwXjMAOcmFMTHYsVlhcUJuV6LOuipw/FEbTtPH/MYMxLe4zx65dYo1rb4iLKLS
gMtB0o/Wl4Xno3ZXh1ucicYnV2J7NpVcjVq+3SFiCRu2SrSkZHZ23EPS13Ec6fcz
8X/YGA2vTJ8MAOozAzQUwHQYvLk7bIoQVekqDq4p0AZQbhdspHpArCk0Ifqqzg/v
Uyky/zZiQYanzDenTSRVI/8wac3olxpU8QvbySxYqmbkgq6bTpXJfYFQfnAttEsC
dA4S5UFgyOPZluxCAM4yaJF3Ft6neutNwftuJQMbgCUi9vYg2tGdSw==
-----END RSA PRIVATE KEY-----

View File

@@ -14,6 +14,7 @@ extern int dsa_main(int argc,char *argv[]);
extern int dsaparam_main(int argc,char *argv[]);
extern int x509_main(int argc,char *argv[]);
extern int genrsa_main(int argc,char *argv[]);
extern int gendsa_main(int argc,char *argv[]);
extern int s_server_main(int argc,char *argv[]);
extern int s_client_main(int argc,char *argv[]);
extern int speed_main(int argc,char *argv[]);
@@ -23,6 +24,7 @@ extern int pkcs7_main(int argc,char *argv[]);
extern int crl2pkcs7_main(int argc,char *argv[]);
extern int sess_id_main(int argc,char *argv[]);
extern int ciphers_main(int argc,char *argv[]);
extern int nseq_main(int argc,char *argv[]);
#else
extern int verify_main();
extern int asn1parse_main();
@@ -39,6 +41,7 @@ extern int dsa_main();
extern int dsaparam_main();
extern int x509_main();
extern int genrsa_main();
extern int gendsa_main();
extern int s_server_main();
extern int s_client_main();
extern int speed_main();
@@ -48,6 +51,7 @@ extern int pkcs7_main();
extern int crl2pkcs7_main();
extern int sess_id_main();
extern int ciphers_main();
extern int nseq_main();
#endif
#ifdef SSLEAY_SRC
@@ -65,9 +69,7 @@ typedef struct {
FUNCTION functions[] = {
{FUNC_TYPE_GENERAL,"verify",verify_main},
{FUNC_TYPE_GENERAL,"asn1parse",asn1parse_main},
#ifndef NO_RSA
{FUNC_TYPE_GENERAL,"req",req_main},
#endif
{FUNC_TYPE_GENERAL,"dgst",dgst_main},
#ifndef NO_DH
{FUNC_TYPE_GENERAL,"dh",dh_main},
@@ -77,9 +79,7 @@ FUNCTION functions[] = {
{FUNC_TYPE_GENERAL,"gendh",gendh_main},
#endif
{FUNC_TYPE_GENERAL,"errstr",errstr_main},
#ifndef NO_RSA
{FUNC_TYPE_GENERAL,"ca",ca_main},
#endif
{FUNC_TYPE_GENERAL,"crl",crl_main},
#ifndef NO_RSA
{FUNC_TYPE_GENERAL,"rsa",rsa_main},
@@ -90,12 +90,13 @@ FUNCTION functions[] = {
#ifndef NO_DSA
{FUNC_TYPE_GENERAL,"dsaparam",dsaparam_main},
#endif
#ifndef NO_RSA
{FUNC_TYPE_GENERAL,"x509",x509_main},
#endif
#ifndef NO_RSA
{FUNC_TYPE_GENERAL,"genrsa",genrsa_main},
#endif
#ifndef NO_DSA
{FUNC_TYPE_GENERAL,"gendsa",gendsa_main},
#endif
#if !defined(NO_SOCK) && !(defined(NO_SSL2) && defined(O_SSL3))
{FUNC_TYPE_GENERAL,"s_server",s_server_main},
#endif
@@ -113,11 +114,13 @@ FUNCTION functions[] = {
#if !defined(NO_SOCK) && !(defined(NO_SSL2) && defined(O_SSL3))
{FUNC_TYPE_GENERAL,"ciphers",ciphers_main},
#endif
{FUNC_TYPE_GENERAL,"nseq",nseq_main},
{FUNC_TYPE_MD,"md2",dgst_main},
{FUNC_TYPE_MD,"md5",dgst_main},
{FUNC_TYPE_MD,"sha",dgst_main},
{FUNC_TYPE_MD,"sha1",dgst_main},
{FUNC_TYPE_MD,"mdc2",dgst_main},
{FUNC_TYPE_MD,"rmd160",dgst_main},
{FUNC_TYPE_CIPHER,"base64",enc_main},
#ifndef NO_DES
{FUNC_TYPE_CIPHER,"des",enc_main},

View File

@@ -1,8 +1,5 @@
#!/usr/local/bin/perl
$mkprog='mklinks';
$rmprog='rmlinks';
print "#ifndef NOPROTO\n";
grep(s/^asn1pars$/asn1parse/,@ARGV);
@@ -38,8 +35,7 @@ foreach (@ARGV)
$str="\t{FUNC_TYPE_GENERAL,\"$_\",${_}_main},\n";
if (($_ =~ /^s_/) || ($_ =~ /^ciphers$/))
{ print "#if !defined(NO_SOCK) && !(defined(NO_SSL2) && defined(O_SSL3))\n${str}#endif\n"; }
elsif ( ($_ =~ /^rsa$/) || ($_ =~ /^genrsa$/) ||
($_ =~ /^req$/) || ($_ =~ /^ca$/) || ($_ =~ /^x509$/))
elsif ( ($_ =~ /^rsa$/) || ($_ =~ /^genrsa$/) )
{ print "#ifndef NO_RSA\n${str}#endif\n"; }
elsif ( ($_ =~ /^dsa$/) || ($_ =~ /^gendsa$/) || ($_ =~ /^dsaparam$/))
{ print "#ifndef NO_DSA\n${str}#endif\n"; }
@@ -49,7 +45,7 @@ foreach (@ARGV)
{ print $str; }
}
foreach ("md2","md5","sha","sha1","mdc2")
foreach ("md2","md5","sha","sha1","mdc2","rmd160")
{
push(@files,$_);
printf "\t{FUNC_TYPE_MD,\"%s\",dgst_main},\n",$_;
@@ -84,31 +80,3 @@ foreach (
print "\t{0,NULL,NULL}\n\t};\n";
print "#endif\n\n";
open(OUT,">$mkprog") || die "unable to open '$prog':$!\n";
print OUT "#!/bin/sh\nfor i in ";
foreach (@files)
{ print OUT $_." "; }
print OUT <<'EOF';
do
echo making symlink for $i
/bin/rm -f $i
ln -s ssleay $i
done
EOF
close(OUT);
chmod(0755,$mkprog);
open(OUT,">$rmprog") || die "unable to open '$prog':$!\n";
print OUT "#!/bin/sh\nfor i in ";
foreach (@files)
{ print OUT $_." "; }
print OUT <<'EOF';
do
echo removing $i
/bin/rm -f $i
done
EOF
close(OUT);
chmod(0755,$rmprog);

View File

@@ -71,6 +71,7 @@
#include "err.h"
#include "asn1.h"
#include "x509.h"
#include "x509v3.h"
#include "objects.h"
#include "pem.h"
@@ -80,6 +81,7 @@
#define KEYFILE "default_keyfile"
#define DISTINGUISHED_NAME "distinguished_name"
#define ATTRIBUTES "attributes"
#define V3_EXTENSIONS "x509_extensions"
#define DEFAULT_KEY_LENGTH 512
#define MIN_KEY_LENGTH 384
@@ -113,12 +115,16 @@ static int add_DN_object(X509_NAME *n, char *text, char *def, char *value,
int nid,int min,int max);
static void MS_CALLBACK req_cb(int p,int n,char *arg);
static int req_fix_data(int nid,int *type,int len,int min,int max);
static int check_end(char *str, char *end);
static int add_oid_section(LHASH *conf);
#else
static int make_REQ();
static int add_attribute_object();
static int add_DN_object();
static void MS_CALLBACK req_cb();
static int req_fix_data();
static int check_end();
static int add_oid_section();
#endif
#ifndef MONOLITH
@@ -147,6 +153,7 @@ char **argv;
int informat,outformat,verify=0,noout=0,text=0,keyform=FORMAT_PEM;
int nodes=0,kludge=0;
char *infile,*outfile,*prog,*keyfile=NULL,*template=NULL,*keyout=NULL;
char *extensions = NULL;
EVP_CIPHER *cipher=NULL;
int modulus=0;
char *p;
@@ -221,13 +228,16 @@ char **argv;
}
else if (strcmp(*argv,"-newkey") == 0)
{
int is_numeric;
if (--argc < 1) goto bad;
p= *(++argv);
if ((strncmp("rsa:",p,4) == 0) ||
((p[0] >= '0') && (p[0] <= '9')))
is_numeric = p[0] >= '0' && p[0] <= '9';
if (strncmp("rsa:",p,4) == 0 || is_numeric)
{
pkey_type=TYPE_RSA;
p+=4;
if(!is_numeric)
p+=4;
newkey= atoi(p);
}
else
@@ -254,11 +264,10 @@ char **argv;
goto end;
}
/* This will 'disapear'
* when we free xtmp */
dtmp=X509_get_pubkey(xtmp);
if (dtmp->type == EVP_PKEY_DSA)
dsa_params=DSAparams_dup(dtmp->pkey.dsa);
EVP_PKEY_free(dtmp);
X509_free(xtmp);
if (dsa_params == NULL)
{
@@ -329,7 +338,7 @@ bad:
BIO_printf(bio_err,"where options are\n");
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
BIO_printf(bio_err," -outform arg output format - one of DER TXT PEM\n");
BIO_printf(bio_err," -in arg inout file\n");
BIO_printf(bio_err," -in arg input file\n");
BIO_printf(bio_err," -out arg output file\n");
BIO_printf(bio_err," -text text form of request\n");
BIO_printf(bio_err," -noout do not output REQ\n");
@@ -343,7 +352,7 @@ bad:
BIO_printf(bio_err," -newkey dsa:file generate a new DSA key, parameters taken from CA in 'file'\n");
BIO_printf(bio_err," -[digest] Digest to sign with (md5, sha1, md2, mdc2)\n");
BIO_printf(bio_err," -config file request templace file.\n");
BIO_printf(bio_err," -config file request template file.\n");
BIO_printf(bio_err," -new new request.\n");
BIO_printf(bio_err," -x509 output a x509 structure instead of a cert. req.\n");
BIO_printf(bio_err," -days number of days a x509 generated by -x509 is valid for.\n");
@@ -354,15 +363,18 @@ bad:
}
ERR_load_crypto_strings();
X509V3_add_standard_extensions();
#ifndef MONOLITH
/* Lets load up our environment a little */
p=getenv("SSLEAY_CONF");
p=getenv("OPENSSL_CONF");
if (p == NULL)
p=getenv("SSLEAY_CONF");
if (p == NULL)
{
strcpy(config_name,X509_get_default_cert_area());
strcat(config_name,"/lib/");
strcat(config_name,SSLEAY_CONF);
strcat(config_name,OPENSSL_CONF);
p=config_name;
}
default_config_file=p;
@@ -392,6 +404,30 @@ bad:
}
}
if (req_conf != NULL)
{
p=CONF_get_string(req_conf,NULL,"oid_file");
if (p != NULL)
{
BIO *oid_bio;
oid_bio=BIO_new_file(p,"r");
if (oid_bio == NULL)
{
/*
BIO_printf(bio_err,"problems opening %s for extra oid's\n",p);
ERR_print_errors(bio_err);
*/
}
else
{
OBJ_create_objects(oid_bio);
BIO_free(oid_bio);
}
}
}
if(!add_oid_section(req_conf)) goto end;
if ((md_alg == NULL) &&
((p=CONF_get_string(req_conf,SECTION,"default_md")) != NULL))
{
@@ -399,6 +435,16 @@ bad:
digest=md_alg;
}
extensions = CONF_get_string(req_conf, SECTION, V3_EXTENSIONS);
if(extensions) {
/* Check syntax of file */
if(!X509V3_EXT_check_conf(req_conf, extensions)) {
BIO_printf(bio_err,
"Error Loading extension section %s\n", extensions);
goto end;
}
}
in=BIO_new(BIO_s_file());
out=BIO_new(BIO_s_file());
if ((in == NULL) || (out == NULL))
@@ -599,12 +645,12 @@ loop:
}
if (x509)
{
EVP_PKEY *tmppkey;
X509V3_CTX ext_ctx;
if ((x509ss=X509_new()) == NULL) goto end;
/* don't set the version number, for starters
* the field is null and second, null is v0
* if (!ASN1_INTEGER_set(ci->version,0L)) goto end;
*/
/* Set version to V3 */
if(!X509_set_version(x509ss, 2)) goto end;
ASN1_INTEGER_set(X509_get_serialNumber(x509ss),0L);
X509_set_issuer_name(x509ss,
@@ -614,7 +660,27 @@ loop:
(long)60*60*24*days);
X509_set_subject_name(x509ss,
X509_REQ_get_subject_name(req));
X509_set_pubkey(x509ss,X509_REQ_get_pubkey(req));
tmppkey = X509_REQ_get_pubkey(req);
X509_set_pubkey(x509ss,tmppkey);
EVP_PKEY_free(tmppkey);
/* Set up V3 context struct */
ext_ctx.issuer_cert = x509ss;
ext_ctx.subject_cert = x509ss;
ext_ctx.subject_req = NULL;
ext_ctx.crl = NULL;
ext_ctx.flags = 0;
/* Add extensions */
if(extensions && !X509V3_EXT_add_conf(req_conf,
&ext_ctx, extensions, x509ss))
{
BIO_printf(bio_err,
"Error Loading extension section %s\n",
extensions);
goto end;
}
if (!(i=X509_sign(x509ss,pkey,digest)))
goto end;
@@ -638,7 +704,10 @@ loop:
}
i=X509_REQ_verify(req,pkey);
if (tmp) pkey=NULL;
if (tmp) {
EVP_PKEY_free(pkey);
pkey=NULL;
}
if (i < 0)
{
@@ -695,9 +764,11 @@ loop:
goto end;
}
fprintf(stdout,"Modulus=");
#ifndef NO_RSA
if (pubkey->type == EVP_PKEY_RSA)
BN_print(out,pubkey->pkey.rsa->n);
else
#endif
fprintf(stdout,"Wrong Algorithm type");
fprintf(stdout,"\n");
}
@@ -741,11 +812,13 @@ end:
ERR_print_errors(bio_err);
}
if ((req_conf != NULL) && (req_conf != config)) CONF_free(req_conf);
if (in != NULL) BIO_free(in);
if (out != NULL) BIO_free(out);
if (pkey != NULL) EVP_PKEY_free(pkey);
if (req != NULL) X509_REQ_free(req);
if (x509ss != NULL) X509_free(x509ss);
BIO_free(in);
BIO_free(out);
EVP_PKEY_free(pkey);
X509_REQ_free(req);
X509_free(x509ss);
X509V3_EXT_cleanup();
OBJ_cleanup();
#ifndef NO_DSA
if (dsa_params != NULL) DSA_free(dsa_params);
#endif
@@ -757,7 +830,7 @@ X509_REQ *req;
EVP_PKEY *pkey;
int attribs;
{
int ret=0,i,j;
int ret=0,i;
unsigned char *p,*q;
X509_REQ_INFO *ri;
char buf[100];
@@ -817,42 +890,21 @@ start: for (;;)
v=(CONF_VALUE *)sk_value(sk,i);
p=q=NULL;
type=v->name;
/* Allow for raw OIDs */
/* [n.mm.ooo.ppp] */
for (j=0; type[j] != '\0'; j++)
{
if ( (type[j] == ':') ||
(type[j] == ',') ||
(type[j] == '.'))
p=(unsigned char *)&(type[j+1]);
if (type[j] == '[')
{
p=(unsigned char *)&(type[j+1]);
for (j++; type[j] != '\0'; j++)
if (type[j] == ']')
{
q=(unsigned char *)&(type[j]);
break;
}
if(!check_end(type,"_min") || !check_end(type,"_max") ||
!check_end(type,"_default") ||
!check_end(type,"_value")) continue;
/* Skip past any leading X. X: X, etc to allow for
* multiple instances
*/
for(p = v->name; *p ; p++)
if ((*p == ':') || (*p == ',') ||
(*p == '.')) {
p++;
if(*p) type = p;
break;
}
}
if (p != NULL)
type=(char *)p;
if ((nid=OBJ_txt2nid(type)) == NID_undef)
{
/* Add a new one if possible */
if ((p != NULL) && (q != NULL) && (*q == ']'))
{
*q='\0';
nid=OBJ_create((char *)p,NULL,NULL);
*q=']';
if (nid == NID_undef) goto start;
}
else
goto start;
}
/* If OBJ not recognised ignore it */
if ((nid=OBJ_txt2nid(type)) == NID_undef) goto start;
sprintf(buf,"%s_default",v->name);
if ((def=CONF_get_string(req_conf,tmp,buf)) == NULL)
def="";
@@ -1135,3 +1187,40 @@ int len,min,max;
}
return(1);
}
/* Check if the end of a string matches 'end' */
static int check_end(str, end)
char *str;
char *end;
{
int elen, slen;
char *tmp;
elen = strlen(end);
slen = strlen(str);
if(elen > slen) return 1;
tmp = str + slen - elen;
return strcmp(tmp, end);
}
static int add_oid_section(conf)
LHASH *conf;
{
char *p;
STACK *sktmp;
CONF_VALUE *cnf;
int i;
if(!(p=CONF_get_string(conf,NULL,"oid_section"))) return 1;
if(!(sktmp = CONF_get_section(conf, p))) {
BIO_printf(bio_err, "problem loading oid section %s\n", p);
return 0;
}
for(i = 0; i < sk_num(sktmp); i++) {
cnf = (CONF_VALUE *)sk_value(sktmp, i);
if(OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) {
BIO_printf(bio_err, "problem creating object %s=%s\n",
cnf->name, cnf->value);
return 0;
}
}
return 1;
}

View File

@@ -1,6 +0,0 @@
#!/bin/sh
for i in verify asn1parse req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers md2 md5 sha sha1 mdc2 base64 des des3 desx idea rc4 rc2 bf cast rc5 des-ecb des-ede des-ede3 des-cbc des-ede-cbc des-ede3-cbc des-cfb des-ede-cfb des-ede3-cfb des-ofb des-ede-ofb des-ede3-ofb idea-cbc idea-ecb idea-cfb idea-ofb rc2-cbc rc2-ecb rc2-cfb rc2-ofb bf-cbc bf-ecb bf-cfb bf-ofb cast5-cbc cast5-ecb cast5-cfb cast5-ofb cast-cbc rc5-cbc rc5-ecb rc5-cfb rc5-ofb
do
echo removing $i
/bin/rm -f $i
done

View File

@@ -154,7 +154,7 @@ bad:
BIO_printf(bio_err,"where options are\n");
BIO_printf(bio_err," -inform arg input format - one of DER NET PEM\n");
BIO_printf(bio_err," -outform arg output format - one of DER NET PEM\n");
BIO_printf(bio_err," -in arg inout file\n");
BIO_printf(bio_err," -in arg input file\n");
BIO_printf(bio_err," -out arg output file\n");
BIO_printf(bio_err," -des encrypt PEM output with cbc des\n");
BIO_printf(bio_err," -des3 encrypt PEM output with ede cbc des using 168 bit key\n");

15
apps/rsa/01.pem Normal file
View File

@@ -0,0 +1,15 @@
-----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-----

50
apps/rsa/1.txt Normal file
View File

@@ -0,0 +1,50 @@
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-----

47
apps/rsa/SecureServer.pem Normal file
View File

@@ -0,0 +1,47 @@
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-----

49
apps/rsa/s.txt Normal file
View File

@@ -0,0 +1,49 @@
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-----

View File

@@ -62,7 +62,7 @@
#ifndef NOPROTO
int do_accept(int acc_sock, int *sock, char **host);
int do_server(int port, int *ret, int (*cb) ());
int do_server(int port, int *ret, int (*cb) (), char *context);
#ifdef HEADER_X509_H
int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx);
#else

View File

@@ -109,13 +109,13 @@ X509_STORE_CTX *ctx;
case X509_V_ERR_CERT_NOT_YET_VALID:
case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:
BIO_printf(bio_err,"notBefore=");
ASN1_UTCTIME_print(bio_err,X509_get_notBefore(ctx->current_cert));
ASN1_TIME_print(bio_err,X509_get_notBefore(ctx->current_cert));
BIO_printf(bio_err,"\n");
break;
case X509_V_ERR_CERT_HAS_EXPIRED:
case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:
BIO_printf(bio_err,"notAfter=");
ASN1_UTCTIME_print(bio_err,X509_get_notAfter(ctx->current_cert));
ASN1_TIME_print(bio_err,X509_get_notAfter(ctx->current_cert));
BIO_printf(bio_err,"\n");
break;
}
@@ -130,8 +130,10 @@ char *key_file;
{
if (cert_file != NULL)
{
/*
SSL *ssl;
X509 *x509;
*/
if (SSL_CTX_use_certificate_file(ctx,cert_file,
SSL_FILETYPE_PEM) <= 0)
@@ -149,13 +151,20 @@ char *key_file;
return(0);
}
/*
In theory this is no longer needed
ssl=SSL_new(ctx);
x509=SSL_get_certificate(ssl);
if (x509 != NULL)
EVP_PKEY_copy_parameters(X509_get_pubkey(x509),
SSL_get_privatekey(ssl));
if (x509 != NULL) {
EVP_PKEY *pktmp;
pktmp = X509_get_pubkey(x509);
EVP_PKEY_copy_parameters(pktmp,
SSL_get_privatekey(ssl));
EVP_PKEY_free(pktmp);
}
SSL_free(ssl);
*/
/* If we are using DSA, we can copy the parameters from
* the private key */

View File

@@ -104,7 +104,7 @@ static int c_quiet=0;
static void sc_usage()
{
BIO_printf(bio_err,"usage: client args\n");
BIO_printf(bio_err,"usage: s_client args\n");
BIO_printf(bio_err,"\n");
BIO_printf(bio_err," -host host - use -connect instead\n");
BIO_printf(bio_err," -port port - use -connect instead\n");
@@ -130,8 +130,8 @@ static void sc_usage()
BIO_printf(bio_err," -tls1 - just use TLSv1\n");
BIO_printf(bio_err," -no_tls1/-no_ssl3/-no_ssl2 - turn off that protocol\n");
BIO_printf(bio_err," -bugs - Switch on all SSL implementation bug workarounds\n");
BIO_printf(bio_err," -cipher - prefered cipher to use, use the 'ssleay ciphers'\n");
BIO_printf(bio_err," command to se what is available\n");
BIO_printf(bio_err," -cipher - prefered cipher to use, use the 'openssl ciphers'\n");
BIO_printf(bio_err," command to see what is available\n");
}
@@ -551,7 +551,15 @@ re_start:
#ifdef RENEG
{ static int iiii; if (++iiii == 52) { SSL_renegotiate(con); iiii=0; } }
#endif
#if 1
k=SSL_read(con,sbuf,1024 /* BUFSIZZ */ );
#else
/* Demo for pending and peek :-) */
k=SSL_read(con,sbuf,16);
{ char zbuf[10240];
printf("read=%d pending=%d peek=%d\n",k,SSL_pending(con),SSL_peek(con,zbuf,10240));
}
#endif
switch (SSL_get_error(con,k))
{
@@ -588,7 +596,7 @@ re_start:
case SSL_ERROR_SSL:
ERR_print_errors(bio_err);
goto shut;
break;
/* break; */
}
}
@@ -658,7 +666,7 @@ int full;
sk=SSL_get_peer_cert_chain(s);
if (sk != NULL)
{
BIO_printf(bio,"---\nCertficate chain\n");
BIO_printf(bio,"---\nCertificate chain\n");
for (i=0; i<sk_num(sk); i++)
{
X509_NAME_oneline(X509_get_subject_name((X509 *)
@@ -735,9 +743,13 @@ int full;
BIO_printf(bio,"%s, Cipher is %s\n",
SSL_CIPHER_get_version(c),
SSL_CIPHER_get_name(c));
if (peer != NULL)
if (peer != NULL) {
EVP_PKEY *pktmp;
pktmp = X509_get_pubkey(peer);
BIO_printf(bio,"Server public key is %d bit\n",
EVP_PKEY_bits(X509_get_pubkey(peer)));
EVP_PKEY_bits(pktmp));
EVP_PKEY_free(pktmp);
}
SSL_SESSION_print(bio,SSL_get_session(s));
BIO_printf(bio,"---\n");
if (peer != NULL)

View File

@@ -75,9 +75,9 @@
#include "s_apps.h"
#ifndef NOPROTO
static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export);
static int sv_body(char *hostname, int s);
static int www_body(char *hostname, int s);
static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export,int keylength);
static int sv_body(char *hostname, int s, char *context);
static int www_body(char *hostname, int s, char *context);
static void close_accept_socket(void );
static void sv_usage(void);
static int init_ssl_connection(SSL *s);
@@ -136,7 +136,8 @@ static DH *get_dh512()
/* static int load_CA(SSL_CTX *ctx, char *file);*/
#undef BUFSIZZ
#define BUFSIZZ 8*1024
#define BUFSIZZ 16*1024
static int bufsize=32;
static int accept_socket= -1;
#define TEST_CERT "server.pem"
@@ -188,13 +189,16 @@ static void sv_usage()
{
BIO_printf(bio_err,"usage: s_server [args ...]\n");
BIO_printf(bio_err,"\n");
BIO_printf(bio_err," -accept arg - port to accept on (default is %d\n",PORT);
BIO_printf(bio_err," -accept arg - port to accept on (default is %d)\n",PORT);
BIO_printf(bio_err," -context arg - set session ID context\n");
BIO_printf(bio_err," -verify arg - turn on peer certificate verification\n");
BIO_printf(bio_err," -Verify arg - turn on peer certificate verification, must have a cert.\n");
BIO_printf(bio_err," -cert arg - certificate file to use, PEM format assumed\n");
BIO_printf(bio_err," (default is %s)\n",TEST_CERT);
BIO_printf(bio_err," -key arg - RSA file to use, PEM format assumed, in cert file if\n");
BIO_printf(bio_err," not specified (default is %s)\n",TEST_CERT);
BIO_printf(bio_err," -dcert arg - second certificate file to use (usually for DSA)\n");
BIO_printf(bio_err," -dkey arg - second private key file to use (usually for DSA)\n");
#ifdef FIONBIO
BIO_printf(bio_err," -nbio - Run with non-blocking IO\n");
#endif
@@ -204,7 +208,7 @@ static void sv_usage()
BIO_printf(bio_err," -CApath arg - PEM format directory of CA's\n");
BIO_printf(bio_err," -CAfile arg - PEM format file of CA's\n");
BIO_printf(bio_err," -nocert - Don't use any certificates (Anon-DH)\n");
BIO_printf(bio_err," -cipher arg - play with 'ssleay ciphers' to see what goes here\n");
BIO_printf(bio_err," -cipher arg - play with 'openssl ciphers' to see what goes here\n");
BIO_printf(bio_err," -quiet - No server output\n");
BIO_printf(bio_err," -no_tmp_rsa - Do not generate a tmp RSA key\n");
BIO_printf(bio_err," -ssl2 - Just talk SSLv2\n");
@@ -215,7 +219,7 @@ static void sv_usage()
BIO_printf(bio_err," -no_tls1 - Just disable TLSv1\n");
BIO_printf(bio_err," -bugs - Turn on SSL bug compatability\n");
BIO_printf(bio_err," -www - Respond to a 'GET /' with a status page\n");
BIO_printf(bio_err," -WWW - Returns requested page from to a 'GET <path> HTTP/1.0'\n");
BIO_printf(bio_err," -WWW - Respond to a 'GET /<path> HTTP/1.0' with file ./<path>\n");
}
static int local_argc=0;
@@ -228,6 +232,7 @@ char *argv[];
{
short port=PORT;
char *CApath=NULL,*CAfile=NULL;
char *context = NULL;
int badop=0,bugs=0;
int ret=1;
int off=0;
@@ -289,6 +294,11 @@ char *argv[];
verify_depth=atoi(*(++argv));
BIO_printf(bio_err,"verify depth is %d, must return a certificate\n",verify_depth);
}
else if (strcmp(*argv,"-context") == 0)
{
if (--argc < 1) goto bad;
context= *(++argv);
}
else if (strcmp(*argv,"-cert") == 0)
{
if (--argc < 1) goto bad;
@@ -504,13 +514,13 @@ bad:
SSL_CTX_set_cipher_list(ctx,cipher);
SSL_CTX_set_verify(ctx,s_server_verify,verify_callback);
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(s_cert_file));
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(CAfile));
BIO_printf(bio_s_out,"ACCEPT\n");
if (www)
do_server(port,&accept_socket,www_body);
do_server(port,&accept_socket,www_body, context);
else
do_server(port,&accept_socket,sv_body);
do_server(port,&accept_socket,sv_body, context);
print_stats(bio_s_out,ctx);
ret=0;
end:
@@ -550,9 +560,10 @@ SSL_CTX *ssl_ctx;
SSL_CTX_sess_get_cache_size(ssl_ctx));
}
static int sv_body(hostname, s)
static int sv_body(hostname, s, context)
char *hostname;
int s;
char *context;
{
char *buf=NULL;
fd_set readfds;
@@ -562,7 +573,7 @@ int s;
SSL *con=NULL;
BIO *sbio;
if ((buf=Malloc(BUFSIZZ)) == NULL)
if ((buf=Malloc(bufsize)) == NULL)
{
BIO_printf(bio_err,"out of memory\n");
goto err;
@@ -579,8 +590,11 @@ int s;
}
#endif
if (con == NULL)
if (con == NULL) {
con=(SSL *)SSL_new(ctx);
if(context)
SSL_set_session_id_context(con, context, strlen(context));
}
SSL_clear(con);
sbio=BIO_new_socket(s,BIO_NOCLOSE);
@@ -614,7 +628,7 @@ int s;
if (i <= 0) continue;
if (FD_ISSET(fileno(stdin),&readfds))
{
i=read(fileno(stdin),buf,128/*BUFSIZZ*/);
i=read(fileno(stdin),buf,bufsize);
if (!s_quiet)
{
if ((i <= 0) || (buf[0] == 'Q'))
@@ -641,10 +655,10 @@ int s;
printf("SSL_do_handshake -> %d\n",i);
i=0; /*13; */
continue;
strcpy(buf,"server side RE-NEGOTIATE\n");
/* strcpy(buf,"server side RE-NEGOTIATE\n"); */
}
if ((buf[0] == 'R') &&
((buf[1] == '\0') || (buf[1] == '\r')))
((buf[1] == '\n') || (buf[1] == '\r')))
{
SSL_set_verify(con,
SSL_VERIFY_PEER|SSL_VERIFY_CLIENT_ONCE,NULL);
@@ -653,7 +667,7 @@ int s;
printf("SSL_do_handshake -> %d\n",i);
i=0; /* 13; */
continue;
strcpy(buf,"server side RE-NEGOTIATE asking for client cert\n");
/* strcpy(buf,"server side RE-NEGOTIATE asking for client cert\n"); */
}
if (buf[0] == 'P')
{
@@ -688,7 +702,7 @@ int s;
ERR_print_errors(bio_err);
ret=1;
goto err;
break;
/* break; */
case SSL_ERROR_ZERO_RETURN:
BIO_printf(bio_s_out,"DONE\n");
ret=1;
@@ -718,12 +732,14 @@ int s;
}
else
{
i=SSL_read(con,(char *)buf,128 /*BUFSIZZ */);
again:
i=SSL_read(con,(char *)buf,bufsize);
switch (SSL_get_error(con,i))
{
case SSL_ERROR_NONE:
write(fileno(stdout),buf,
(unsigned int)i);
if (SSL_pending(con)) goto again;
break;
case SSL_ERROR_WANT_WRITE:
case SSL_ERROR_WANT_READ:
@@ -755,7 +771,7 @@ err:
BIO_printf(bio_s_out,"CONNECTION CLOSED\n");
if (buf != NULL)
{
memset(buf,0,BUFSIZZ);
memset(buf,0,bufsize);
Free(buf);
}
if (ret >= 0)
@@ -820,6 +836,10 @@ SSL *con;
str=SSL_CIPHER_get_name(SSL_get_current_cipher(con));
BIO_printf(bio_s_out,"CIPHER is %s\n",(str != NULL)?str:"(NONE)");
if (con->hit) BIO_printf(bio_s_out,"Reused session-id\n");
if (SSL_ctrl(con,SSL_CTRL_GET_FLAGS,0,NULL) &
TLS1_FLAGS_TLS_PADDING_BUG)
BIO_printf(bio_s_out,"Peer has incorrect TLSv1 block padding\n");
return(1);
}
@@ -861,11 +881,12 @@ char *file;
}
#endif
static int www_body(hostname, s)
static int www_body(hostname, s, context)
char *hostname;
int s;
char *context;
{
char buf[1024];
char *buf=NULL;
int ret=1;
int i,j,k,blank,dot;
struct stat st_buf;
@@ -874,6 +895,8 @@ int s;
BIO *io,*ssl_bio,*sbio;
long total_bytes;
buf=Malloc(bufsize);
if (buf == NULL) return(0);
io=BIO_new(BIO_f_buffer());
ssl_bio=BIO_new(BIO_f_ssl());
if ((io == NULL) || (ssl_bio == NULL)) goto err;
@@ -891,9 +914,10 @@ int s;
#endif
/* lets make the output buffer a reasonable size */
if (!BIO_set_write_buffer_size(io,253 /*16*1024*/)) goto err;
if (!BIO_set_write_buffer_size(io,bufsize)) goto err;
if ((con=(SSL *)SSL_new(ctx)) == NULL) goto err;
if(context) SSL_set_session_id_context(con, context, strlen(context));
sbio=BIO_new_socket(s,BIO_NOCLOSE);
if (s_nbio_test)
@@ -937,14 +961,14 @@ int s;
case SSL_ERROR_ZERO_RETURN:
ret=1;
goto err;
break;
/* break; */
}
SSL_renegotiate(con);
SSL_write(con,NULL,0);
}
i=BIO_gets(io,buf,sizeof(buf)-1);
i=BIO_gets(io,buf,bufsize-1);
if (i < 0) /* error */
{
if (!BIO_should_retry(io))
@@ -1004,7 +1028,7 @@ int s;
BIO_puts(io,"\n");
}
BIO_puts(io,"\n");
p=SSL_get_shared_ciphers(con,buf,sizeof(buf));
p=SSL_get_shared_ciphers(con,buf,bufsize);
if (p != NULL)
{
BIO_printf(io,"---\nCiphers common between both SSL end points:\n");
@@ -1129,9 +1153,10 @@ int s;
total_bytes=0;
for (;;)
{
i=BIO_read(file,buf,1024);
i=BIO_read(file,buf,bufsize);
if (i <= 0) break;
#ifdef RENEG
total_bytes+=i;
fprintf(stderr,"%d\n",i);
if (total_bytes > 3*1024)
@@ -1140,6 +1165,7 @@ int s;
fprintf(stderr,"RENEGOTIATE\n");
SSL_renegotiate(con);
}
#endif
for (j=0; j<i; )
{
@@ -1194,14 +1220,16 @@ err:
if (ret >= 0)
BIO_printf(bio_s_out,"ACCEPT\n");
if (buf != NULL) Free(buf);
if (io != NULL) BIO_free_all(io);
/* if (ssl_bio != NULL) BIO_free(ssl_bio);*/
return(ret);
}
static RSA MS_CALLBACK *tmp_rsa_cb(s,export)
static RSA MS_CALLBACK *tmp_rsa_cb(s,export,keylength)
SSL *s;
int export;
int keylength;
{
static RSA *rsa_tmp=NULL;
@@ -1209,11 +1237,11 @@ int export;
{
if (!s_quiet)
{
BIO_printf(bio_err,"Generating temp (512 bit) RSA key...");
BIO_printf(bio_err,"Generating temp (%d bit) RSA key...",keylength);
BIO_flush(bio_err);
}
#ifndef NO_RSA
rsa_tmp=RSA_generate_key(512,RSA_F4,NULL,NULL);
rsa_tmp=RSA_generate_key(keylength,RSA_F4,NULL,NULL);
#endif
if (!s_quiet)
{

View File

@@ -280,10 +280,11 @@ int port;
return(1);
}
int do_server(port, ret, cb)
int do_server(port, ret, cb, context)
int port;
int *ret;
int (*cb)();
char *context;
{
int sock;
char *name;
@@ -304,7 +305,7 @@ int (*cb)();
SHUTDOWN(accept_socket);
return(0);
}
i=(*cb)(name,sock);
i=(*cb)(name,sock, context);
if (name != NULL) Free(name);
SHUTDOWN2(sock);
if (i < 0)
@@ -332,7 +333,12 @@ char *ip;
if (ip == NULL)
server.sin_addr.s_addr=INADDR_ANY;
else
/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
#ifndef BIT_FIELD_LIMITS
memcpy(&server.sin_addr.s_addr,ip,4);
#else
memcpy(&server.sin_addr,ip,4);
#endif
s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL);
if (s == INVALID_SOCKET) goto err;

View File

@@ -59,7 +59,7 @@
#define NO_SHUTDOWN
/*-----------------------------------------
cntime - SSL client connection timer program
s_time - SSL client connection timer program
Written and donated by Larry Streepy <streepy@healthcare.com>
-----------------------------------------*/
@@ -111,7 +111,8 @@ struct tms {
#include <sys/select.h>
#endif
#ifdef sun
#if defined(sun) || defined(__ultrix)
#define _POSIX_SOURCE
#include <limits.h>
#include <sys/param.h>
#endif
@@ -223,13 +224,13 @@ static void s_time_usage()
-time arg - max number of seconds to collect data, default %d\n\
-verify arg - turn on peer certificate verification, arg == depth\n\
-cert arg - certificate file to use, PEM format assumed\n\
-key arg - RSA file to use, PEM format assumed, in cert file if\n\
not specified but cert fill is.\n\
-key arg - RSA file to use, PEM format assumed, key is in cert file\n\
file if not specified by this option\n\
-CApath arg - PEM format directory of CA's\n\
-CAfile arg - PEM format file of CA's\n\
-cipher - prefered cipher to use, play with 'ssleay ciphers'\n\n";
-cipher - prefered cipher to use, play with 'openssl ciphers'\n\n";
printf( "usage: client <args>\n\n" );
printf( "usage: s_time <args>\n\n" );
printf("-connect host:port - host:port to connect to (default is %s)\n",SSL_CONNECT_NAME);
#ifdef FIONBIO

784
apps/sc.c Normal file
View File

@@ -0,0 +1,784 @@
/* apps/s_client.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 USE_SOCKETS
#ifdef NO_STDIO
#define APPS_WIN16
#endif
#include "apps.h"
#include "x509.h"
#include "ssl.h"
#include "err.h"
#include "pem.h"
#include "s_apps.h"
#ifdef WINDOWS
/* Most of the #if(n)def WINDOWS put in by Gerrit van Niekerk
<gerritvn@osi.co.za> to support the keyboard under Windows.
Tested using Win95, *should* work with NT and Win3.x
*/
#include <conio.h>
#endif
#undef PROG
#define PROG s_client_main
/*#define SSL_HOST_NAME "www.netscape.com" */
/*#define SSL_HOST_NAME "193.118.187.102" */
#define SSL_HOST_NAME "localhost"
/*#define TEST_CERT "client.pem" */ /* no default cert. */
#undef BUFSIZZ
#define BUFSIZZ 1024*8
extern int verify_depth;
extern int verify_error;
#ifdef FIONBIO
static int c_nbio=0;
#endif
static int c_Pause=0;
static int c_debug=0;
#ifndef NOPROTO
static void sc_usage(void);
static void print_stuff(BIO *berr,SSL *con,int full);
#else
static void sc_usage();
static void print_stuff();
#endif
static BIO *bio_c_out=NULL;
static int c_quiet=0;
static void sc_usage()
{
BIO_printf(bio_err,"usage: client args\n");
BIO_printf(bio_err,"\n");
BIO_printf(bio_err," -host host - use -connect instead\n");
BIO_printf(bio_err," -port port - use -connect instead\n");
BIO_printf(bio_err," -connect host:port - who to connect to (default is %s:%s)\n",SSL_HOST_NAME,PORT_STR);
BIO_printf(bio_err," -verify arg - turn on peer certificate verification\n");
BIO_printf(bio_err," -cert arg - certificate file to use, PEM format assumed\n");
BIO_printf(bio_err," -key arg - Private key file to use, PEM format assumed, in cert file if\n");
BIO_printf(bio_err," not specified but cert file is.\n");
BIO_printf(bio_err," -CApath arg - PEM format directory of CA's\n");
BIO_printf(bio_err," -CAfile arg - PEM format file of CA's\n");
BIO_printf(bio_err," -reconnect - Drop and re-make the connection with the same Session-ID\n");
BIO_printf(bio_err," -pause - sleep(1) after each read(2) and write(2) system call\n");
BIO_printf(bio_err," -debug - extra output\n");
BIO_printf(bio_err," -nbio_test - more ssl protocol testing\n");
BIO_printf(bio_err," -state - print the 'ssl' states\n");
#ifdef FIONBIO
BIO_printf(bio_err," -nbio - Run with non-blocking IO\n");
#endif
BIO_printf(bio_err," -quiet - no s_client output\n");
BIO_printf(bio_err," -ssl2 - just use SSLv2\n");
BIO_printf(bio_err," -ssl3 - just use SSLv3\n");
BIO_printf(bio_err," -tls1 - just use TLSv1\n");
BIO_printf(bio_err," -no_tls1/-no_ssl3/-no_ssl2 - turn off that protocol\n");
BIO_printf(bio_err," -bugs - Switch on all SSL implementation bug workarounds\n");
BIO_printf(bio_err," -cipher - prefered cipher to use, use the 'openssl ciphers'\n");
BIO_printf(bio_err," command to see what is available\n");
}
int MAIN(argc, argv)
int argc;
char **argv;
{
int off=0;
SSL *con=NULL,*con2=NULL;
int s,k,width,state=0;
char *cbuf=NULL,*sbuf=NULL;
int cbuf_len,cbuf_off;
int sbuf_len,sbuf_off;
fd_set readfds,writefds;
short port=PORT;
int full_log=1;
char *host=SSL_HOST_NAME;
char *cert_file=NULL,*key_file=NULL;
char *CApath=NULL,*CAfile=NULL,*cipher=NULL;
int reconnect=0,badop=0,verify=SSL_VERIFY_NONE,bugs=0;
int write_tty,read_tty,write_ssl,read_ssl,tty_on;
SSL_CTX *ctx=NULL;
int ret=1,in_init=1,i,nbio_test=0;
SSL_METHOD *meth=NULL;
BIO *sbio;
/*static struct timeval timeout={10,0};*/
#if !defined(NO_SSL2) && !defined(NO_SSL3)
meth=SSLv23_client_method();
#elif !defined(NO_SSL3)
meth=SSLv3_client_method();
#elif !defined(NO_SSL2)
meth=SSLv2_client_method();
#endif
apps_startup();
c_Pause=0;
c_quiet=0;
c_debug=0;
if (bio_err == NULL)
bio_err=BIO_new_fp(stderr,BIO_NOCLOSE);
if ( ((cbuf=Malloc(BUFSIZZ)) == NULL) ||
((sbuf=Malloc(BUFSIZZ)) == NULL))
{
BIO_printf(bio_err,"out of memory\n");
goto end;
}
verify_depth=0;
verify_error=X509_V_OK;
#ifdef FIONBIO
c_nbio=0;
#endif
#ifdef WINDOWS
c_nbio = 1;
#endif
argc--;
argv++;
while (argc >= 1)
{
if (strcmp(*argv,"-host") == 0)
{
if (--argc < 1) goto bad;
host= *(++argv);
}
else if (strcmp(*argv,"-port") == 0)
{
if (--argc < 1) goto bad;
port=atoi(*(++argv));
if (port == 0) goto bad;
}
else if (strcmp(*argv,"-connect") == 0)
{
if (--argc < 1) goto bad;
if (!extract_host_port(*(++argv),&host,NULL,&port))
goto bad;
}
else if (strcmp(*argv,"-verify") == 0)
{
verify=SSL_VERIFY_PEER;
if (--argc < 1) goto bad;
verify_depth=atoi(*(++argv));
BIO_printf(bio_err,"verify depth is %d\n",verify_depth);
}
else if (strcmp(*argv,"-cert") == 0)
{
if (--argc < 1) goto bad;
cert_file= *(++argv);
}
else if (strcmp(*argv,"-quiet") == 0)
c_quiet=1;
else if (strcmp(*argv,"-pause") == 0)
c_Pause=1;
else if (strcmp(*argv,"-debug") == 0)
c_debug=1;
else if (strcmp(*argv,"-nbio_test") == 0)
nbio_test=1;
else if (strcmp(*argv,"-state") == 0)
state=1;
#ifndef NO_SSL2
else if (strcmp(*argv,"-ssl2") == 0)
meth=SSLv2_client_method();
#endif
#ifndef NO_SSL3
else if (strcmp(*argv,"-ssl3") == 0)
meth=SSLv3_client_method();
#endif
#ifndef NO_TLS1
else if (strcmp(*argv,"-tls1") == 0)
meth=TLSv1_client_method();
#endif
else if (strcmp(*argv,"-bugs") == 0)
bugs=1;
else if (strcmp(*argv,"-key") == 0)
{
if (--argc < 1) goto bad;
key_file= *(++argv);
}
else if (strcmp(*argv,"-reconnect") == 0)
{
reconnect=5;
}
else if (strcmp(*argv,"-CApath") == 0)
{
if (--argc < 1) goto bad;
CApath= *(++argv);
}
else if (strcmp(*argv,"-CAfile") == 0)
{
if (--argc < 1) goto bad;
CAfile= *(++argv);
}
else if (strcmp(*argv,"-no_tls1") == 0)
off|=SSL_OP_NO_TLSv1;
else if (strcmp(*argv,"-no_ssl3") == 0)
off|=SSL_OP_NO_SSLv3;
else if (strcmp(*argv,"-no_ssl2") == 0)
off|=SSL_OP_NO_SSLv2;
else if (strcmp(*argv,"-cipher") == 0)
{
if (--argc < 1) goto bad;
cipher= *(++argv);
}
#ifdef FIONBIO
else if (strcmp(*argv,"-nbio") == 0)
{ c_nbio=1; }
#endif
else
{
BIO_printf(bio_err,"unknown option %s\n",*argv);
badop=1;
break;
}
argc--;
argv++;
}
if (badop)
{
bad:
sc_usage();
goto end;
}
if (bio_c_out == NULL)
{
if (c_quiet)
{
bio_c_out=BIO_new(BIO_s_null());
}
else
{
if (bio_c_out == NULL)
bio_c_out=BIO_new_fp(stdout,BIO_NOCLOSE);
}
}
SSLeay_add_ssl_algorithms();
ctx=SSL_CTX_new(meth);
if (ctx == NULL)
{
ERR_print_errors(bio_err);
goto end;
}
if (bugs)
SSL_CTX_set_options(ctx,SSL_OP_ALL|off);
else
SSL_CTX_set_options(ctx,off);
if (state) SSL_CTX_set_info_callback(ctx,apps_ssl_info_callback);
if (cipher != NULL)
SSL_CTX_set_cipher_list(ctx,cipher);
#if 0
else
SSL_CTX_set_cipher_list(ctx,getenv("SSL_CIPHER"));
#endif
SSL_CTX_set_verify(ctx,verify,verify_callback);
if (!set_cert_stuff(ctx,cert_file,key_file))
goto end;
if ((!SSL_CTX_load_verify_locations(ctx,CAfile,CApath)) ||
(!SSL_CTX_set_default_verify_paths(ctx)))
{
/* BIO_printf(bio_err,"error seting default verify locations\n"); */
ERR_print_errors(bio_err);
/* goto end; */
}
SSL_load_error_strings();
con=(SSL *)SSL_new(ctx);
/* SSL_set_cipher_list(con,"RC4-MD5"); */
re_start:
if (init_client(&s,host,port) == 0)
{
BIO_printf(bio_err,"connect:errno=%d\n",get_last_socket_error());
SHUTDOWN(s);
goto end;
}
BIO_printf(bio_c_out,"CONNECTED(%08X)\n",s);
#ifdef FIONBIO
if (c_nbio)
{
unsigned long l=1;
BIO_printf(bio_c_out,"turning on non blocking io\n");
if (BIO_socket_ioctl(s,FIONBIO,&l) < 0)
{
ERR_print_errors(bio_err);
goto end;
}
}
#endif
if (c_Pause & 0x01) con->debug=1;
sbio=BIO_new_socket(s,BIO_NOCLOSE);
if (nbio_test)
{
BIO *test;
test=BIO_new(BIO_f_nbio_test());
sbio=BIO_push(test,sbio);
}
if (c_debug)
{
con->debug=1;
BIO_set_callback(sbio,bio_dump_cb);
BIO_set_callback_arg(sbio,bio_c_out);
}
SSL_set_bio(con,sbio,sbio);
SSL_set_connect_state(con);
/* ok, lets connect */
width=SSL_get_fd(con)+1;
read_tty=1;
write_tty=0;
tty_on=0;
read_ssl=1;
write_ssl=1;
cbuf_len=0;
cbuf_off=0;
sbuf_len=0;
sbuf_off=0;
for (;;)
{
FD_ZERO(&readfds);
FD_ZERO(&writefds);
if (SSL_in_init(con) && !SSL_total_renegotiations(con))
{
in_init=1;
tty_on=0;
}
else
{
tty_on=1;
if (in_init)
{
in_init=0;
print_stuff(bio_c_out,con,full_log);
if (full_log > 0) full_log--;
if (reconnect)
{
reconnect--;
BIO_printf(bio_c_out,"drop connection and then reconnect\n");
SSL_shutdown(con);
SSL_set_connect_state(con);
SHUTDOWN(SSL_get_fd(con));
goto re_start;
}
}
}
#ifndef WINDOWS
if (tty_on)
{
if (read_tty) FD_SET(fileno(stdin),&readfds);
if (write_tty) FD_SET(fileno(stdout),&writefds);
}
#endif
if (read_ssl)
FD_SET(SSL_get_fd(con),&readfds);
if (write_ssl)
FD_SET(SSL_get_fd(con),&writefds);
/* printf("mode tty(%d %d%d) ssl(%d%d)\n",
tty_on,read_tty,write_tty,read_ssl,write_ssl);*/
#ifndef WINDOWS
i=select(width,&readfds,&writefds,NULL,NULL);
if ( i < 0)
{
BIO_printf(bio_err,"bad select %d\n",
get_last_socket_error());
goto shut;
/* goto end; */
}
if (FD_ISSET(SSL_get_fd(con),&writefds))
#else
if (write_ssl)
#endif
{
k=SSL_write(con,&(cbuf[cbuf_off]),
(unsigned int)cbuf_len);
switch (SSL_get_error(con,k))
{
case SSL_ERROR_NONE:
cbuf_off+=k;
cbuf_len-=k;
if (k <= 0) goto end;
/* we have done a write(con,NULL,0); */
if (cbuf_len <= 0)
{
read_tty=1;
write_ssl=0;
}
else /* if (cbuf_len > 0) */
{
read_tty=0;
write_ssl=1;
}
break;
case SSL_ERROR_WANT_WRITE:
#ifndef WINDOWS
BIO_printf(bio_c_out,"write W BLOCK\n");
#endif
write_ssl=1;
read_tty=0;
break;
case SSL_ERROR_WANT_READ:
#ifndef WINDOWS
BIO_printf(bio_c_out,"write R BLOCK\n");
#endif
write_tty=0;
read_ssl=1;
write_ssl=0;
break;
case SSL_ERROR_WANT_X509_LOOKUP:
BIO_printf(bio_c_out,"write X BLOCK\n");
break;
case SSL_ERROR_ZERO_RETURN:
if (cbuf_len != 0)
{
BIO_printf(bio_c_out,"shutdown\n");
goto shut;
}
else
{
read_tty=1;
write_ssl=0;
break;
}
case SSL_ERROR_SYSCALL:
if ((k != 0) || (cbuf_len != 0))
{
BIO_printf(bio_err,"write:errno=%d\n",
get_last_socket_error());
goto shut;
}
else
{
read_tty=1;
write_ssl=0;
}
break;
case SSL_ERROR_SSL:
ERR_print_errors(bio_err);
goto shut;
}
}
#ifndef WINDOWS
else if (FD_ISSET(fileno(stdout),&writefds))
#else
else if (tty_on && write_tty)
#endif
{
i=write(fileno(stdout),&(sbuf[sbuf_off]),sbuf_len);
if (i <= 0)
{
BIO_printf(bio_c_out,"DONE\n");
goto shut;
/* goto end; */
}
sbuf_len-=i;;
sbuf_off+=i;
if (sbuf_len <= 0)
{
read_ssl=1;
write_tty=0;
}
}
#ifndef WINDOWS
else if (FD_ISSET(SSL_get_fd(con),&readfds))
#else
if (read_ssl)
#endif
{
#ifdef RENEG
{ static int iiii; if (++iiii == 52) { SSL_renegotiate(con); iiii=0; } }
#endif
k=SSL_read(con,sbuf,1024 /* BUFSIZZ */ );
switch (SSL_get_error(con,k))
{
case SSL_ERROR_NONE:
if (k <= 0)
goto end;
sbuf_off=0;
sbuf_len=k;
read_ssl=0;
write_tty=1;
break;
case SSL_ERROR_WANT_WRITE:
#ifndef WINDOWS
BIO_printf(bio_c_out,"read W BLOCK\n");
#endif
write_ssl=1;
read_tty=0;
break;
case SSL_ERROR_WANT_READ:
#ifndef WINDOWS
BIO_printf(bio_c_out,"read R BLOCK\n");
#endif
write_tty=0;
read_ssl=1;
if ((read_tty == 0) && (write_ssl == 0))
write_ssl=1;
break;
case SSL_ERROR_WANT_X509_LOOKUP:
BIO_printf(bio_c_out,"read X BLOCK\n");
break;
case SSL_ERROR_SYSCALL:
BIO_printf(bio_err,"read:errno=%d\n",get_last_socket_error());
goto shut;
case SSL_ERROR_ZERO_RETURN:
BIO_printf(bio_c_out,"closed\n");
goto shut;
case SSL_ERROR_SSL:
ERR_print_errors(bio_err);
goto shut;
break;
}
}
#ifndef WINDOWS
else if (FD_ISSET(fileno(stdin),&readfds))
{
i=read(fileno(stdin),cbuf,BUFSIZZ);
#else
if (tty_on && read_tty && _kbhit())
{
i = 1;
cbuf[0] = _getch();
#endif
if ((!c_quiet) && ((i <= 0) || (cbuf[0] == 'Q')))
{
BIO_printf(bio_err,"DONE\n");
goto shut;
}
if ((!c_quiet) && (cbuf[0] == 'R'))
{
SSL_renegotiate(con);
read_tty=0;
write_ssl=1;
}
else
{
cbuf_len=i;
cbuf_off=0;
}
read_tty=0;
write_ssl=1;
}
}
shut:
SSL_shutdown(con);
SHUTDOWN(SSL_get_fd(con));
ret=0;
end:
if (con != NULL) SSL_free(con);
if (con2 != NULL) SSL_free(con2);
if (ctx != NULL) SSL_CTX_free(ctx);
if (cbuf != NULL) { memset(cbuf,0,BUFSIZZ); Free(cbuf); }
if (sbuf != NULL) { memset(sbuf,0,BUFSIZZ); Free(sbuf); }
if (bio_c_out != NULL)
{
BIO_free(bio_c_out);
bio_c_out=NULL;
}
EXIT(ret);
}
static void print_stuff(bio,s,full)
BIO *bio;
SSL *s;
int full;
{
X509 *peer=NULL;
char *p;
static char *space=" ";
char buf[BUFSIZ];
STACK *sk;
SSL_CIPHER *c;
X509_NAME *xn;
int j,i;
if (full)
{
sk=SSL_get_peer_cert_chain(s);
if (sk != NULL)
{
BIO_printf(bio,"---\nCertificate chain\n");
for (i=0; i<sk_num(sk); i++)
{
X509_NAME_oneline(X509_get_subject_name((X509 *)
sk_value(sk,i)),buf,BUFSIZ);
BIO_printf(bio,"%2d s:%s\n",i,buf);
X509_NAME_oneline(X509_get_issuer_name((X509 *)
sk_value(sk,i)),buf,BUFSIZ);
BIO_printf(bio," i:%s\n",buf);
}
}
BIO_printf(bio,"---\n");
peer=SSL_get_peer_certificate(s);
if (peer != NULL)
{
BIO_printf(bio,"Server certificate\n");
PEM_write_bio_X509(bio,peer);
X509_NAME_oneline(X509_get_subject_name(peer),
buf,BUFSIZ);
BIO_printf(bio,"subject=%s\n",buf);
X509_NAME_oneline(X509_get_issuer_name(peer),
buf,BUFSIZ);
BIO_printf(bio,"issuer=%s\n",buf);
}
else
BIO_printf(bio,"no peer certificate available\n");
sk=SSL_get_client_CA_list(s);
if ((sk != NULL) && (sk_num(sk) > 0))
{
BIO_printf(bio,"---\nAcceptable client certificate CA names\n");
for (i=0; i<sk_num(sk); i++)
{
xn=(X509_NAME *)sk_value(sk,i);
X509_NAME_oneline(xn,buf,sizeof(buf));
BIO_write(bio,buf,strlen(buf));
BIO_write(bio,"\n",1);
}
}
else
{
BIO_printf(bio,"---\nNo client certificate CA names sent\n");
}
p=SSL_get_shared_ciphers(s,buf,BUFSIZ);
if (p != NULL)
{
BIO_printf(bio,"---\nCiphers common between both SSL endpoints:\n");
j=i=0;
while (*p)
{
if (*p == ':')
{
BIO_write(bio,space,15-j%25);
i++;
j=0;
BIO_write(bio,((i%3)?" ":"\n"),1);
}
else
{
BIO_write(bio,p,1);
j++;
}
p++;
}
BIO_write(bio,"\n",1);
}
BIO_printf(bio,"---\nSSL handshake has read %ld bytes and written %ld bytes\n",
BIO_number_read(SSL_get_rbio(s)),
BIO_number_written(SSL_get_wbio(s)));
}
BIO_printf(bio,((s->hit)?"---\nReused, ":"---\nNew, "));
c=SSL_get_current_cipher(s);
BIO_printf(bio,"%s, Cipher is %s\n",
SSL_CIPHER_get_version(c),
SSL_CIPHER_get_name(c));
if (peer != NULL)
{
EVP_PKEY *pktmp;
BIO_printf(bio,"Server public key is %d bit\n",
EVP_PKEY_bits(pktmp));
EVP_PKEY_free(pktmp);
}
SSL_SESSION_print(bio,SSL_get_session(s));
BIO_printf(bio,"---\n");
if (peer != NULL)
X509_free(peer);
}

View File

@@ -1,17 +1,17 @@
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit)
subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Server test cert (512 bit)
-----BEGIN CERTIFICATE-----
MIIB6TCCAVICAQAwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV
MIIB6TCCAVICAQQwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD
VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNOTcwNjA5MTM1NzQ2WhcNOTgwNjA5
MTM1NzQ2WjBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNOTgwNjI5MjM1MjQwWhcNMDAwNjI4
MjM1MjQwWjBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGlNlcnZlciB0ZXN0IGNl
cnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ+zw4Qnlf8SMVIP
Fe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVDTGiXav6ooKXfX3j/7tdkuD8Ey2//
Kv7+ue0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB4TMR2CvacKE9wAsu9jyCX8YiW
mgCM+YoP6kt4Zkj2z5IRfm7WrycKsnpnOR+tGeqAjkCeZ6/36o9l91RvPnN1VJ/i
xQv2df0KFeMr00IkDdTNAdIWqFkSsZTAY2QAdgenb7MB1joejquYzO2DQIO7+wpH
irObpESxAZLySCmPPg==
Kv7+ue0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCVvvfkGSe2GHgDFfmOua4Isjb9
JVhImWMASiOClkZlMESDJjsszg/6+d/W+8TrbObhazpl95FivXBVucbj9dudh7AO
IZu1h1MAPlyknc9Ud816vz3FejB4qqUoaXjnlkrIgEbr/un7jSS86WOe0hRhwHkJ
FUGcPZf9ND22Etc+AQ==
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIBPAIBAAJBAJ+zw4Qnlf8SMVIPFe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVD

View File

@@ -69,21 +69,17 @@
#undef PROG
#define PROG sess_id_main
#define FORMAT_UNDEF 0
#define FORMAT_ASN1 1
#define FORMAT_TEXT 2
#define FORMAT_PEM 3
static char *sess_id_usage[]={
"usage: crl args\n",
"usage: sess_id args\n",
"\n",
" -inform arg - input format - default PEM (one of DER, TXT or PEM)\n",
" -outform arg - output format - default PEM\n",
" -in arg - input file - default stdin\n",
" -out arg - output file - default stdout\n",
" -text - print ssl session id details\n",
" -cert - output certificaet \n",
" -cert - output certificate \n",
" -noout - no CRL output\n",
" -context arg - set the session ID context\n",
NULL
};
@@ -101,7 +97,7 @@ char **argv;
int ret=1,i,num,badops=0;
BIO *out=NULL;
int informat,outformat;
char *infile=NULL,*outfile=NULL;
char *infile=NULL,*outfile=NULL,*context=NULL;
int cert=0,noout=0,text=0;
char **pp;
@@ -145,6 +141,11 @@ char **argv;
cert= ++num;
else if (strcmp(*argv,"-noout") == 0)
noout= ++num;
else if (strcmp(*argv,"-context") == 0)
{
if(--argc < 1) goto bad;
context=*++argv;
}
else
{
BIO_printf(bio_err,"unknown option %s\n",*argv);
@@ -167,6 +168,17 @@ bad:
x=load_sess_id(infile,informat);
if (x == NULL) { goto end; }
if(context)
{
x->sid_ctx_length=strlen(context);
if(x->sid_ctx_length > SSL_MAX_SID_CTX_LENGTH)
{
BIO_printf(bio_err,"Context too long\n");
goto end;
}
memcpy(x->sid_ctx,context,x->sid_ctx_length);
}
#ifdef undef
/* just testing for memory leaks :-) */
{

View File

@@ -60,8 +60,8 @@
#undef SECONDS
#define SECONDS 3
#define RSA_SECONDS 10
#define DSA_SECONDS 10
#define RSA_SECONDS 10
#define DSA_SECONDS 10
/* 11-Sep-92 Andrew Daviel Support for Silicon Graphics IRIX added */
/* 06-Apr-92 Luke Brennan Support for VMS and add extra signal calls */
@@ -107,7 +107,8 @@ struct tms {
#include <sys/timeb.h>
#endif
#ifdef sun
#if defined(sun) || defined(__ultrix)
#define _POSIX_SOURCE
#include <limits.h>
#include <sys/param.h>
#endif
@@ -361,13 +362,19 @@ char **argv;
int pr_header=0;
apps_startup();
#ifdef NO_DSA
memset(dsa_key,0,sizeof(dsa_key));
#endif
if (bio_err == NULL)
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
#ifndef NO_RSA
memset(rsa_key,0,sizeof(rsa_key));
for (i=0; i<RSA_NUM; i++)
rsa_key[i]=NULL;
#endif
if ((buf=(unsigned char *)Malloc((int)BUFSIZE)) == NULL)
{
@@ -443,7 +450,7 @@ char **argv;
}
else
#endif
if (strcmp(*argv,"ssleay") == 0)
if (strcmp(*argv,"openssl") == 0)
{
RSA_set_default_method(RSA_PKCS1_SSLeay());
j--;
@@ -594,9 +601,9 @@ char **argv;
#endif
#ifndef NO_DES
des_set_key((C_Block *)key,sch);
des_set_key((C_Block *)key2,sch2);
des_set_key((C_Block *)key3,sch3);
des_set_key(key,sch);
des_set_key(key2,sch2);
des_set_key(key3,sch3);
#endif
#ifndef NO_IDEA
idea_set_encrypt_key(key16,&idea_ks);
@@ -626,8 +633,7 @@ char **argv;
count*=2;
Time_F(START);
for (i=count; i; i--)
des_ecb_encrypt((C_Block *)buf,(C_Block *)buf,
&(sch[0]),DES_ENCRYPT);
des_ecb_encrypt(buf,buf, &(sch[0]),DES_ENCRYPT);
d=Time_F(STOP);
} while (d <3);
c[D_MD2][0]=count/10;
@@ -679,7 +685,7 @@ char **argv;
rsa_doit[i]=0;
else
{
if (rsa_c[i] == 0)
if (rsa_c[i][0] == 0)
{
rsa_c[i][0]=1;
rsa_c[i][1]=20;
@@ -844,10 +850,8 @@ char **argv;
print_message(names[D_CBC_DES],c[D_CBC_DES][j],lengths[j]);
Time_F(START);
for (count=0,run=1; COND(c[D_CBC_DES][j]); count++)
des_ncbc_encrypt((C_Block *)buf,
(C_Block *)buf,
(long)lengths[j],sch,
(C_Block *)&(iv[0]),DES_ENCRYPT);
des_ncbc_encrypt(buf,buf,lengths[j],sch,
&(iv[0]),DES_ENCRYPT);
d=Time_F(STOP);
BIO_printf(bio_err,"%ld %s's in %.2fs\n",
count,names[D_CBC_DES],d);
@@ -862,10 +866,9 @@ char **argv;
print_message(names[D_EDE3_DES],c[D_EDE3_DES][j],lengths[j]);
Time_F(START);
for (count=0,run=1; COND(c[D_EDE3_DES][j]); count++)
des_ede3_cbc_encrypt((C_Block *)buf,
(C_Block *)buf,
(long)lengths[j],sch,sch2,sch3,
(C_Block *)&(iv[0]),DES_ENCRYPT);
des_ede3_cbc_encrypt(buf,buf,lengths[j],
sch,sch2,sch3,
&(iv[0]),DES_ENCRYPT);
d=Time_F(STOP);
BIO_printf(bio_err,"%ld %s's in %.2fs\n",
count,names[D_EDE3_DES],d);
@@ -969,6 +972,8 @@ char **argv;
for (j=0; j<RSA_NUM; j++)
{
if (!rsa_doit[j]) continue;
rsa_num=RSA_private_encrypt(30,buf,buf2,rsa_key[j],
RSA_PKCS1_PADDING);
pkey_print_message("private","rsa",rsa_c[j][0],rsa_bits[j],
RSA_SECONDS);
/* RSA_blinding_on(rsa_key[j],NULL); */
@@ -992,6 +997,8 @@ char **argv;
rsa_count=count;
#if 1
rsa_num2=RSA_public_decrypt(rsa_num,buf2,buf,rsa_key[j],
RSA_PKCS1_PADDING);
pkey_print_message("public","rsa",rsa_c[j][1],rsa_bits[j],
RSA_SECONDS);
Time_F(START);
@@ -1031,6 +1038,8 @@ char **argv;
if (!dsa_doit[j]) continue;
DSA_generate_key(dsa_key[j]);
/* DSA_sign_setup(dsa_key[j],NULL); */
rsa_num=DSA_sign(EVP_PKEY_DSA,buf,20,buf2,
&kk,dsa_key[j]);
pkey_print_message("sign","dsa",dsa_c[j][0],dsa_bits[j],
DSA_SECONDS);
Time_F(START);
@@ -1052,6 +1061,8 @@ char **argv;
dsa_results[j][0]=d/(double)count;
rsa_count=count;
rsa_num2=DSA_verify(EVP_PKEY_DSA,buf,20,buf2,
kk,dsa_key[j]);
pkey_print_message("verify","dsa",dsa_c[j][1],dsa_bits[j],
DSA_SECONDS);
Time_F(START);

View File

@@ -1,342 +0,0 @@
/* apps/ssleay.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 DEBUG
#undef DEBUG
#endif
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "bio.h"
#include "crypto.h"
#include "lhash.h"
#include "conf.h"
#include "x509.h"
#include "pem.h"
#include "ssl.h"
#define SSLEAY /* turn off a few special case MONOLITH macros */
#define USE_SOCKETS /* needed for the _O_BINARY defs in the MS world */
#define SSLEAY_SRC
#include "apps.h"
#include "s_apps.h"
#include "err.h"
/*
#ifdef WINDOWS
#include "bss_file.c"
#endif
*/
#ifndef NOPROTO
static unsigned long MS_CALLBACK hash(FUNCTION *a);
static int MS_CALLBACK cmp(FUNCTION *a,FUNCTION *b);
static LHASH *prog_init(void );
static int do_cmd(LHASH *prog,int argc,char *argv[]);
#else
static unsigned long MS_CALLBACK hash();
static int MS_CALLBACK cmp();
static LHASH *prog_init();
static int do_cmd();
#endif
LHASH *config=NULL;
char *default_config_file=NULL;
#ifdef DEBUG
static void sig_stop(i)
int i;
{
char *a=NULL;
*a='\0';
}
#endif
/* Make sure there is only one when MONOLITH is defined */
#ifdef MONOLITH
BIO *bio_err=NULL;
#endif
int main(Argc,Argv)
int Argc;
char *Argv[];
{
ARGS arg;
#define PROG_NAME_SIZE 16
char pname[PROG_NAME_SIZE];
FUNCTION f,*fp;
MS_STATIC char *prompt,buf[1024],config_name[256];
int n,i,ret=0;
int argc;
char **argv,*p;
LHASH *prog=NULL;
long errline;
arg.data=NULL;
arg.count=0;
/* SSLeay_add_ssl_algorithms(); is called in apps_startup() */
apps_startup();
#if defined(DEBUG) && !defined(WINDOWS) && !defined(MSDOS)
#ifdef SIGBUS
signal(SIGBUS,sig_stop);
#endif
#ifdef SIGSEGV
signal(SIGSEGV,sig_stop);
#endif
#endif
if (bio_err == NULL)
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
ERR_load_crypto_strings();
/* Lets load up our environment a little */
p=getenv("SSLEAY_CONF");
if (p == NULL)
{
strcpy(config_name,X509_get_default_cert_area());
strcat(config_name,"/lib/");
strcat(config_name,SSLEAY_CONF);
p=config_name;
}
default_config_file=p;
config=CONF_load(config,p,&errline);
if (config == NULL) ERR_clear_error();
prog=prog_init();
/* first check the program name */
program_name(Argv[0],pname,PROG_NAME_SIZE);
f.name=pname;
fp=(FUNCTION *)lh_retrieve(prog,(char *)&f);
if (fp != NULL)
{
Argv[0]=pname;
ret=fp->func(Argc,Argv);
goto end;
}
/* ok, now check that there are not arguments, if there are,
* run with them, shifting the ssleay off the front */
if (Argc != 1)
{
Argc--;
Argv++;
ret=do_cmd(prog,Argc,Argv);
if (ret < 0) ret=0;
goto end;
}
/* ok, lets enter the old 'SSLeay>' mode */
for (;;)
{
ret=0;
p=buf;
n=1024;
i=0;
for (;;)
{
p[0]='\0';
if (i++)
prompt=">";
else prompt="SSLeay>";
fputs(prompt,stdout);
fflush(stdout);
fgets(p,n,stdin);
if (p[0] == '\0') goto end;
i=strlen(p);
if (i <= 1) break;
if (p[i-2] != '\\') break;
i-=2;
p+=i;
n-=i;
}
if (!chopup_args(&arg,buf,&argc,&argv)) break;
ret=do_cmd(prog,argc,argv);
if (ret < 0)
{
ret=0;
goto end;
}
if (ret != 0)
BIO_printf(bio_err,"error in %s\n",argv[0]);
BIO_flush(bio_err);
}
BIO_printf(bio_err,"bad exit\n");
ret=1;
end:
if (config != NULL)
{
CONF_free(config);
config=NULL;
}
if (prog != NULL) lh_free(prog);
if (arg.data != NULL) Free(arg.data);
ERR_remove_state(0);
EVP_cleanup();
CRYPTO_mem_leaks(bio_err);
if (bio_err != NULL)
{
BIO_free(bio_err);
bio_err=NULL;
}
EXIT(ret);
}
static int do_cmd(prog,argc,argv)
LHASH *prog;
int argc;
char *argv[];
{
FUNCTION f,*fp;
int i,ret=1,tp,nl;
if ((argc <= 0) || (argv[0] == NULL))
{ ret=0; goto end; }
f.name=argv[0];
fp=(FUNCTION *)lh_retrieve(prog,(char *)&f);
if (fp != NULL)
{
ret=fp->func(argc,argv);
}
else if ((strcmp(argv[0],"quit") == 0) ||
(strcmp(argv[0],"q") == 0) ||
(strcmp(argv[0],"exit") == 0) ||
(strcmp(argv[0],"bye") == 0))
{
ret= -1;
goto end;
}
else
{
BIO_printf(bio_err,"'%s' is a bad command, valid commands are",
argv[0]);
i=0;
fp=functions;
tp=0;
for (fp=functions; fp->name != NULL; fp++)
{
nl=0;
if (((i++) % 5) == 0)
{
BIO_printf(bio_err,"\n");
nl=1;
}
if (fp->type != tp)
{
tp=fp->type;
if (!nl) BIO_printf(bio_err,"\n");
if (tp == FUNC_TYPE_MD)
{
i=1;
BIO_printf(bio_err,
"Message Digest commands - see the dgst command for more details\n");
}
else if (tp == FUNC_TYPE_CIPHER)
{
i=1;
BIO_printf(bio_err,"Cipher commands - see the enc command for more details\n");
}
}
BIO_printf(bio_err,"%-15s",fp->name);
}
BIO_printf(bio_err,"\nquit\n");
ret=0;
}
end:
return(ret);
}
static LHASH *prog_init()
{
LHASH *ret;
FUNCTION *f;
if ((ret=lh_new(hash,cmp)) == NULL) return(NULL);
for (f=functions; f->name != NULL; f++)
lh_insert(ret,(char *)f);
return(ret);
}
static int MS_CALLBACK cmp(a,b)
FUNCTION *a,*b;
{
return(strncmp(a->name,b->name,8));
}
static unsigned long MS_CALLBACK hash(a)
FUNCTION *a;
{
return(lh_strhash(a->name));
}
#undef SSLEAY

View File

@@ -1,116 +0,0 @@
#
# SSLeay example configuration file.
# This is mostly being used for generation of certificate requests.
#
RANDFILE = $ENV::HOME/.rnd
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
####################################################################
[ CA_default ]
dir = ./demoCA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = x509v3_extensions # The extentions to add to the cert
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = md5 # which md to use.
preserve = no # keep passed DN ordering
# A few difference way of specifying how similar the request should look
# For type CA, the listed attributes must be the same, and the optional
# and supplied fields are just that :-)
policy = policy_match
# For the CA policy
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
# For the 'anything' policy
# At this point in time, you must list all acceptable 'object'
# types.
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
####################################################################
[ req ]
default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = AU
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = Some-State
localityName = Locality Name (eg, city)
0.organizationName = Organization Name (eg, company)
0.organizationName_default = Internet Widgits Pty Ltd
# we can do this but it is not needed normally :-)
#1.organizationName = Second Organization Name (eg, company)
#1.organizationName_default = CryptSoft Pty Ltd
organizationalUnitName = Organizational Unit Name (eg, section)
#organizationalUnitName_default =
commonName = Common Name (eg, YOUR name)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 40
[ req_attributes ]
challengePassword = A challenge password
challengePassword_min = 4
challengePassword_max = 20
unstructuredName = An optional company name
[ x509v3_extensions ]
nsCaRevocationUrl = http://www.cryptsoft.com/ca-crl.pem
nsComment = "This is a comment"
# under ASN.1, the 0 bit would be encoded as 80
nsCertType = 0x40
#nsBaseUrl
#nsRevocationUrl
#nsRenewalUrl
#nsCaPolicyUrl
#nsSslServerName
#nsCertSequence
#nsCertExt
#nsDataType

25
apps/stuff/pkcs7.ex1 Normal file
View File

@@ -0,0 +1,25 @@
-----BEGIN xxx-----
MIAGCSqGSIb3DQEHAqCAMIACAQExADCABgkqhkiG9w0BBwEAAKCAMIIB
rTCCAUkCAgC2MA0GCSqGSIb3DQEBAgUAME0xCzAJBgNVBAYTAlVTMSAw
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEcMBoGA1UECxMT
UGVyc29uYSBDZXJ0aWZpY2F0ZTAeFw05NDA0MDkwMDUwMzdaFw05NDA4
MDIxODM4NTdaMGcxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0
YSBTZWN1cml0eSwgSW5jLjEcMBoGA1UECxMTUGVyc29uYSBDZXJ0aWZp
Y2F0ZTEYMBYGA1UEAxMPU2V0ZWMgQXN0cm9ub215MFwwDQYJKoZIhvcN
AQEBBQADSwAwSAJBAMy8QcW7RMrB4sTdQ8Nmb2DFmJmkWn+el+NdeamI
DElX/qw9mIQu4xNj1FfepfJNxzPvA0OtMKhy6+bkrlyMEU8CAwEAATAN
BgkqhkiG9w0BAQIFAANPAAYn7jDgirhiIL4wnP8nGzUisGSpsFsF4/7z
2P2wqne6Qk8Cg/Dstu3RyaN78vAMGP8d82H5+Ndfhi2mRp4YHiGHz0Hl
K6VbPfnyvS2wdjCCAccwggFRAgUCQAAAFDANBgkqhkiG9w0BAQIFADBf
MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2VjdXJpdHks
IEluYy4xLjAsBgNVBAsTJUxvdyBBc3N1cmFuY2UgQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkwHhcNOTQwMTA3MDAwMDAwWhcNOTYwMTA3MjM1OTU5
WjBNMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2VjdXJp
dHksIEluYy4xHDAaBgNVBAsTE1BlcnNvbmEgQ2VydGlmaWNhdGUwaTAN
BgkqhkiG9w0BAQEFAANYADBVAk4GqghQDa9Xi/2zAdYEqJVIcYhlLN1F
pI9tXQ1m6zZ39PYXK8Uhoj0Es7kWRv8hC04vqkOKwndWbzVtvoHQOmP8
nOkkuBi+AQvgFoRcgOUCAwEAATANBgkqhkiG9w0BAQIFAANhAD/5Uo7x
Ddp49oZm9GoNcPhZcW1e+nojLvHXWAU/CBkwfcR+FSf4hQ5eFu1AjYv6
Wqf430Xe9Et5+jgnMTiq4LnwgTdA8xQX4elJz9QzQobkE3XVOjVAtCFc
miin80RB8AAAMYAAAAAAAAAAAA==
-----END xxx-----

11
apps/stuff/pkcs7.ex2 Normal file
View File

@@ -0,0 +1,11 @@
-----BEGIN PRIVACY-ENHANCED MESSAGE-----
MIAGCSqGSIb3DQEHBqCAMIACAQAwgAYJKoZIhvcNAQcBMBEGBSsOAwIHBAifqtdy
x6uIMYCCARgvFzJtOZBn773DtmXlx037ck3giqnV0WC0QAx5f+fesAiGaxMqWcir
r9XvT0nT0LgSQ/8tiLCDBEKdyCNgdcJAduy3D0r2sb5sNTT0TyL9uydG3w55vTnW
aPbCPCWLudArI1UHDZbnoJICrVehxG/sYX069M8v6VO8PsJS7//hh1yM+0nekzQ5
l1p0j7uWKu4W0csrlGqhLvEJanj6dQAGSTNCOoH3jzEXGQXntgesk8poFPfHdtj0
5RH4MuJRajDmoEjlrNcnGl/BdHAd2JaCo6uZWGcnGAgVJ/TVfSVSwN5nlCK87tXl
nL7DJwaPRYwxb3mnPKNq7ATiJPf5u162MbwxrddmiE7e3sST7naSN+GS0ateY5X7
AAAAAAAAAAA=
-----END PRIVACY-ENHANCED MESSAGE-----

12
apps/stuff/pkcs7.ex3 Normal file
View File

@@ -0,0 +1,12 @@
-----BEGIN PRIVACY-ENHANCED MESSAGE-----
MIAGCSqGSIb3DQEHA6CAMIACAQAxgDCBqQIBADBTME0xCzAJBgNVBAYTAlVTMSAw
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEcMBoGA1UECxMTUGVyc29u
YSBDZXJ0aWZpY2F0ZQICALYwDQYJKoZIhvcNAQEBBQAEQCU/R+YCJSUsV6XLilHG
cNVzwqKcWzmT/rZ+duOv8Ggb7oO/d8H3xUVGQ2LsX4kYGq2szwj8Q6eWhsmhf4oz
lvMAADCABgkqhkiG9w0BBwEwEQYFKw4DAgcECFif7BadXlw3oIAEgZBNcMexKe16
+mNxx8YQPukBCL0bWqS86lvws/AgRkKPELmysBi5lco8MBCsWK/fCyrnxIRHs1oK
BXBVlsAhKkkusk1kCf/GbXSAphdSgG+d6LxrNZwHbBFOX6A2hYS63Iczd5bOVDDW
Op2gcgUtMJq6k2LFrs4L7HHqRPPlqNJ6j5mFP4xkzOCNIQynpD1rV6EECMIk/T7k
1JLSAAAAAAAAAAAAAA==
-----END PRIVACY-ENHANCED MESSAGE-----

46
apps/stuff/pkcs7.pem Normal file
View File

@@ -0,0 +1,46 @@
-----BEGIN PKCS7-----
MIIIEgYJKoZIhvcNAQcCMIIIAwIBATEAMAsGCSqGSIb3DQEHAaCCBDUwggIhMIIB
jgIFAnIAAGcwDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMxIDAeBgNVBAoT
F1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVy
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk1MDUxNzAwMDAwMFoXDTk1MTEx
NjIzNTk1OVowdzELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5h
MRIwEAYDVQQHEwlDaGFybG90dGUxIzAhBgNVBAoTGlZuZXQgSW50ZXJuZXQgQWNj
ZXNzLCBJbmMuMRYwFAYDVQQDFA13d3cqLnZuZXQubmV0MHwwDQYJKoZIhvcNAQEB
BQADawAwaAJhAOngW+io4W1lAp1b2k4+KqICaLHatp6AWkPLpa3Li2mwmggSGeRD
AmTI4FQB0EFrDMfKLOteHgGoDJ0vifmV5cKvevRt5Gn+xPn54Halu7i145iUldyv
oViUNpWmLJhKTQIDAQABMA0GCSqGSIb3DQEBAgUAA34AQkyfJje6H8fxtN68TvXV
RibnPpQol2jMbh0VnK9cP9ePvsXy+7JoGuWxj6zlgjZGwia49xITggZ+0b+wP51l
5e8xEEc2K7eC5QVD0qh/NSqdPcVP+UG6UK/LT25w/yLuZgqJ3g87kGbOo9myLhkZ
3jr3kXnsriBmwmqcjgUwggIMMIIBlgIFAkAAAEUwDQYJKoZIhvcNAQECBQAwXzEL
MAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4w
LAYDVQQLEyVMb3cgQXNzdXJhbmNlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
DTk0MTEwOTIzMTk0NFoXDTk5MTIzMTIzMTk0NFowXzELMAkGA1UEBhMCVVMxIDAe
BgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUg
U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUA
A4GJADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwji
ioII0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJ
VphIuR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJ
KoZIhvcNAQECBQADYQAjOCnuhWTdRq+8PhUBSzKbOhmafQQPQ8Ltw+49U8N1zgq9
1ROaW46znUQykAPUdaAIflEfV2e0ULuyOWCwDJ2ME7NUmWL86SLkk6QLC9iItjva
h+tdpLV/+TerjmrxCWChggOyMIICjTCCAfowDQYJKoZIhvcNAQECBQAwXzELMAkG
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5Fw05NTA1
MDIwMjEyMjZaFw05NTA2MDEwMDAxNDlaMIIBaDAWAgUCQQAABBcNOTUwMjAxMTcy
NDI2WjAWAgUCQQAACRcNOTUwMjEwMDIxNjM5WjAWAgUCQQAADxcNOTUwMjI0MDAx
MjQ5WjAWAgUCQQAADBcNOTUwMjI1MDA0NjQ0WjAWAgUCQQAAGxcNOTUwMzEzMTg0
MDQ5WjAWAgUCQQAAFhcNOTUwMzE1MTkxNjU0WjAWAgUCQQAAGhcNOTUwMzE1MTk0
MDQxWjAWAgUCQQAAHxcNOTUwMzI0MTk0NDMzWjAWAgUCcgAABRcNOTUwMzI5MjAw
NzExWjAWAgUCcgAAERcNOTUwMzMwMDIzNDI2WjAWAgUCQQAAIBcNOTUwNDA3MDEx
MzIxWjAWAgUCcgAAHhcNOTUwNDA4MDAwMjU5WjAWAgUCcgAAQRcNOTUwNDI4MTcx
NzI0WjAWAgUCcgAAOBcNOTUwNDI4MTcyNzIxWjAWAgUCcgAATBcNOTUwNTAyMDIx
MjI2WjANBgkqhkiG9w0BAQIFAAN+AHqOEJXSDejYy0UwxxrH/9+N2z5xu/if0J6q
QmK92W0hW158wpJg+ovV3+wQwvIEPRL2rocL0tKfAsVq1IawSJzSNgxG0lrcla3M
rJBnZ4GaZDu4FutZh72MR3GtJaAL3iTJHJD55kK2D/VoyY1djlsPuNh6AEgdVwFA
yp0vMIIBHTCBqDANBgkqhkiG9w0BAQIFADBfMQswCQYDVQQGEwJVUzEgMB4GA1UE
ChMXUlNBIERhdGEgU2VjdXJpdHksIEluYy4xLjAsBgNVBAsTJUxvdyBBc3N1cmFu
Y2UgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkXDTk1MDUwMTE5MjcyOVoXDTk1MDYw
MTA4MDAwMFowGDAWAgUCQAAAXhcNOTUwMjA4MDE0NjIyWjANBgkqhkiG9w0BAQIF
AANhAF70VxEAKgGlS2otYkWSqYJ286MMDbdAIoEGCDTtVuLCOP3YKHOSTjFhbIhL
5mBd+Q/W+lKSqdoyYhdObaBk4I4Wk+/BE2QK1x4QhtYG144spESXIRIKAbhffg1g
rRe/ETEA
-----END PKCS7-----

16
apps/test.ssl Normal file
View File

@@ -0,0 +1,16 @@
www.microsoft.com:443
sectest.microsoft.com:443
https://sectest.microsoft.com/ClientAuth/test.asp
ssl3.netscape.com:443
ssl3.netscape.com:444
www.openmarket.com:443 - no session ID caching. - no swap
Servers
bad www.openmarket.com Open-Market-Secure-WebServer/V2.1
bad www.microsoft.com Server: Microsoft-IIS/3.0
good transact.netscape.com Netscape-Enterprise/2.01
clients
good netscape
hmm MSIE

View File

@@ -141,6 +141,7 @@ char **argv;
X509_LOOKUP_add_dir(lookup,NULL,X509_FILETYPE_DEFAULT);
ERR_clear_error();
if (argc < 1) check(cert_ctx,NULL);
else
for (i=0; i<argc; i++)

View File

@@ -71,7 +71,7 @@ int argc;
char **argv;
{
int i,ret=0;
int cflags=0,version=0,date=0,options=0;
int cflags=0,version=0,date=0,options=0,platform=0;
apps_startup();
@@ -90,11 +90,13 @@ char **argv;
cflags=1;
else if (strcmp(argv[i],"-o") == 0)
options=1;
else if (strcmp(argv[i],"-p") == 0)
platform=1;
else if (strcmp(argv[i],"-a") == 0)
date=version=cflags=options=1;
date=version=cflags=options=platform=1;
else
{
BIO_printf(bio_err,"usage:version [-a] [-v] [-b] [-o] [-f]\n");
BIO_printf(bio_err,"usage:version -[avbofp]\n");
ret=1;
goto end;
}
@@ -102,9 +104,10 @@ char **argv;
if (version) printf("%s\n",SSLeay_version(SSLEAY_VERSION));
if (date) printf("%s\n",SSLeay_version(SSLEAY_BUILT_ON));
if (platform) printf("%s\n",SSLeay_version(SSLEAY_PLATFORM));
if (options)
{
printf("options:");
printf("options: ");
printf("%s ",BN_options());
#ifndef NO_MD2
printf("%s ",MD2_options());

View File

@@ -69,6 +69,7 @@
#include "bn.h"
#include "evp.h"
#include "x509.h"
#include "x509v3.h"
#include "objects.h"
#include "pem.h"
@@ -79,11 +80,6 @@
#define POSTFIX ".srl"
#define DEF_DAYS 30
#define FORMAT_UNDEF 0
#define FORMAT_ASN1 1
#define FORMAT_TEXT 2
#define FORMAT_PEM 3
#define CERT_HDR "certificate"
static char *x509_usage[]={
@@ -115,7 +111,7 @@ static char *x509_usage[]={
" missing, it is asssumed to be in the CA file.\n",
" -CAcreateserial - create serial number file if it does not exist\n",
" -CAserial - serial file\n",
" -text - print the certitificate in text form\n",
" -text - print the certificate in text form\n",
" -C - print out C code forms\n",
" -md2/-md5/-sha1/-mdc2 - digest to do an RSA sign with\n",
NULL
@@ -219,7 +215,7 @@ char **argv;
days=atoi(*(++argv));
if (days == 0)
{
BIO_printf(bio_err,"bad number of days\n");
BIO_printf(STDout,"bad number of days\n");
goto bad;
}
}
@@ -310,6 +306,7 @@ bad:
}
ERR_load_crypto_strings();
X509V3_add_standard_extensions();
if (!X509_STORE_set_default_paths(ctx))
{
@@ -373,6 +370,7 @@ bad:
goto end;
}
i=X509_REQ_verify(req,pkey);
EVP_PKEY_free(pkey);
if (i < 0)
{
BIO_printf(bio_err,"Signature verification error\n");
@@ -400,9 +398,15 @@ bad:
X509_gmtime_adj(X509_get_notBefore(x),0);
X509_gmtime_adj(X509_get_notAfter(x),(long)60*60*24*days);
#if 0
X509_PUBKEY_free(ci->key);
ci->key=req->req_info->pubkey;
req->req_info->pubkey=NULL;
#else
pkey = X509_REQ_get_pubkey(req);
X509_set_pubkey(x,pkey);
EVP_PKEY_free(pkey);
#endif
}
else
x=load_cert(infile,informat);
@@ -445,27 +449,25 @@ bad:
{
X509_NAME_oneline(X509_get_issuer_name(x),
buf,256);
fprintf(stdout,"issuer= %s\n",buf);
BIO_printf(STDout,"issuer= %s\n",buf);
}
else if (subject == i)
{
X509_NAME_oneline(X509_get_subject_name(x),
buf,256);
fprintf(stdout,"subject=%s\n",buf);
BIO_printf(STDout,"subject=%s\n",buf);
}
else if (serial == i)
{
fprintf(stdout,"serial=");
BIO_printf(STDout,"serial=");
i2a_ASN1_INTEGER(STDout,x->cert_info->serialNumber);
fprintf(stdout,"\n");
BIO_printf(STDout,"\n");
}
else if (hash == i)
{
fprintf(stdout,"%08lx\n",
X509_subject_name_hash(x));
BIO_printf(STDout,"%08lx\n",X509_subject_name_hash(x));
}
else
#ifndef NO_RSA
if (modulus == i)
{
EVP_PKEY *pkey;
@@ -473,19 +475,26 @@ bad:
pkey=X509_get_pubkey(x);
if (pkey == NULL)
{
fprintf(stdout,"Modulus=unavailable\n");
BIO_printf(bio_err,"Modulus=unavailable\n");
ERR_print_errors(bio_err);
goto end;
}
fprintf(stdout,"Modulus=");
BIO_printf(STDout,"Modulus=");
#ifndef NO_RSA
if (pkey->type == EVP_PKEY_RSA)
BN_print(STDout,pkey->pkey.rsa->n);
else
fprintf(stdout,"Wrong Algorithm type");
fprintf(stdout,"\n");
#endif
#ifndef NO_DSA
if (pkey->type == EVP_PKEY_DSA)
BN_print(STDout,pkey->pkey.dsa->pub_key);
else
#endif
BIO_printf(STDout,"Wrong Algorithm type");
BIO_printf(STDout,"\n");
EVP_PKEY_free(pkey);
}
else
#endif
if (C == i)
{
unsigned char *d;
@@ -494,47 +503,49 @@ bad:
X509_NAME_oneline(X509_get_subject_name(x),
buf,256);
printf("/* subject:%s */\n",buf);
BIO_printf(STDout,"/* subject:%s */\n",buf);
m=X509_NAME_oneline(
X509_get_issuer_name(x),buf,256);
printf("/* issuer :%s */\n",buf);
BIO_printf(STDout,"/* issuer :%s */\n",buf);
z=i2d_X509(x,NULL);
m=Malloc(z);
d=(unsigned char *)m;
z=i2d_X509_NAME(X509_get_subject_name(x),&d);
printf("unsigned char XXX_subject_name[%d]={\n",z);
BIO_printf(STDout,"unsigned char XXX_subject_name[%d]={\n",z);
d=(unsigned char *)m;
for (y=0; y<z; y++)
{
printf("0x%02X,",d[y]);
if ((y & 0x0f) == 0x0f) printf("\n");
BIO_printf(STDout,"0x%02X,",d[y]);
if ((y & 0x0f) == 0x0f) BIO_printf(STDout,"\n");
}
if (y%16 != 0) printf("\n");
printf("};\n");
if (y%16 != 0) BIO_printf(STDout,"\n");
BIO_printf(STDout,"};\n");
z=i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x),&d);
printf("unsigned char XXX_public_key[%d]={\n",z);
BIO_printf(STDout,"unsigned char XXX_public_key[%d]={\n",z);
d=(unsigned char *)m;
for (y=0; y<z; y++)
{
printf("0x%02X,",d[y]);
if ((y & 0x0f) == 0x0f) printf("\n");
BIO_printf(STDout,"0x%02X,",d[y]);
if ((y & 0x0f) == 0x0f)
BIO_printf(STDout,"\n");
}
if (y%16 != 0) printf("\n");
printf("};\n");
if (y%16 != 0) BIO_printf(STDout,"\n");
BIO_printf(STDout,"};\n");
z=i2d_X509(x,&d);
printf("unsigned char XXX_certificate[%d]={\n",z);
BIO_printf(STDout,"unsigned char XXX_certificate[%d]={\n",z);
d=(unsigned char *)m;
for (y=0; y<z; y++)
{
printf("0x%02X,",d[y]);
if ((y & 0x0f) == 0x0f) printf("\n");
BIO_printf(STDout,"0x%02X,",d[y]);
if ((y & 0x0f) == 0x0f)
BIO_printf(STDout,"\n");
}
if (y%16 != 0) printf("\n");
printf("};\n");
if (y%16 != 0) BIO_printf(STDout,"\n");
BIO_printf(STDout,"};\n");
Free(m);
}
@@ -545,13 +556,13 @@ bad:
else if (startdate == i)
{
BIO_puts(STDout,"notBefore=");
ASN1_UTCTIME_print(STDout,X509_get_notBefore(x));
ASN1_TIME_print(STDout,X509_get_notBefore(x));
BIO_puts(STDout,"\n");
}
else if (enddate == i)
{
BIO_puts(STDout,"notAfter=");
ASN1_UTCTIME_print(STDout,X509_get_notAfter(x));
ASN1_TIME_print(STDout,X509_get_notAfter(x));
BIO_puts(STDout,"\n");
}
else if (fingerprint == i)
@@ -565,10 +576,10 @@ bad:
BIO_printf(bio_err,"out of memory\n");
goto end;
}
fprintf(stdout,"MD5 Fingerprint=");
BIO_printf(STDout,"MD5 Fingerprint=");
for (j=0; j<(int)n; j++)
{
fprintf(stdout,"%02X%c",md[j],
BIO_printf(STDout,"%02X%c",md[j],
(j+1 == (int)n)
?'\n':':');
}
@@ -602,6 +613,7 @@ bad:
if (CApkey->type == EVP_PKEY_DSA)
digest=EVP_dss1();
#endif
if (!x509_certify(ctx,CAfile,digest,x,xca,
CApkey,
CAserial,CA_createserial,days))
@@ -687,6 +699,7 @@ end:
if (Upkey != NULL) EVP_PKEY_free(Upkey);
if (CApkey != NULL) EVP_PKEY_free(CApkey);
if (rq != NULL) X509_REQ_free(rq);
X509V3_EXT_cleanup();
EXIT(ret);
}
@@ -710,7 +723,9 @@ int days;
X509_STORE_CTX xsc;
EVP_PKEY *upkey;
EVP_PKEY_copy_parameters(X509_get_pubkey(xca),pkey);
upkey = X509_get_pubkey(xca);
EVP_PKEY_copy_parameters(upkey,pkey);
EVP_PKEY_free(upkey);
X509_STORE_CTX_init(&xsc,ctx,x,NULL);
buf=(char *)Malloc(EVP_PKEY_size(pkey)*2+
@@ -802,6 +817,12 @@ int days;
if (!reqfile && !X509_verify_cert(&xsc))
goto end;
if (!X509_check_private_key(xca,pkey))
{
BIO_printf(bio_err,"CA certificate and CA private key do not match\n");
goto end;
}
if (!X509_set_issuer_name(x,X509_get_subject_name(xca))) goto end;
if (!X509_set_serialNumber(x,bs)) goto end;
@@ -822,6 +843,7 @@ int days;
/* Force a re-write */
X509_set_pubkey(x,upkey);
}
EVP_PKEY_free(upkey);
if (!X509_sign(x,pkey,digest)) goto end;
ret=1;
@@ -856,15 +878,15 @@ X509_STORE_CTX *ctx;
* DEPTH_ZERO_SELF_.... */
if (ok)
{
printf("error with certificate to be certified - should be self signed\n");
BIO_printf(bio_err,"error with certificate to be certified - should be self signed\n");
return(0);
}
else
{
err_cert=X509_STORE_CTX_get_current_cert(ctx);
X509_NAME_oneline(X509_get_subject_name(err_cert),buf,256);
printf("%s\n",buf);
printf("error with certificate - error %d at depth %d\n%s\n",
BIO_printf(bio_err,"%s\n",buf);
BIO_printf(bio_err,"error with certificate - error %d at depth %d\n%s\n",
err,X509_STORE_CTX_get_error_depth(ctx),
X509_verify_cert_error_string(err));
return(1);
@@ -1022,8 +1044,12 @@ int days;
EVP_MD *digest;
{
EVP_PKEY_copy_parameters(X509_get_pubkey(x),pkey);
EVP_PKEY_save_parameters(X509_get_pubkey(x),1);
EVP_PKEY *pktmp;
pktmp = X509_get_pubkey(x);
EVP_PKEY_copy_parameters(pktmp,pkey);
EVP_PKEY_save_parameters(pktmp,1);
EVP_PKEY_free(pktmp);
if (!X509_set_issuer_name(x,X509_get_subject_name(x))) goto err;
if (X509_gmtime_adj(X509_get_notBefore(x),0) == NULL) goto err;

View File

@@ -7,6 +7,8 @@
/* This compiler bug it present on IRIX 5.3, 5.1 and 4.0.5 (these are
* the only versions of IRIX I have access to.
* defining FIXBUG removes the bug.
* (bug is still present in IRIX 6.3 according to
* Gage <agage@forgetmenot.Mines.EDU>
*/
/* Compare the output from

45
bugs/ultrixcc.c Normal file
View File

@@ -0,0 +1,45 @@
#include <stdio.h>
/* This is a cc optimiser bug for ultrix 4.3, mips CPU.
* What happens is that the compiler, due to the (a)&7,
* does
* i=a&7;
* i--;
* i*=4;
* Then uses i as the offset into a jump table.
* The problem is that a value of 0 generates an offset of
* 0xfffffffc.
*/
main()
{
f(5);
f(0);
}
int f(a)
int a;
{
switch(a&7)
{
case 7:
printf("7\n");
case 6:
printf("6\n");
case 5:
printf("5\n");
case 4:
printf("4\n");
case 3:
printf("3\n");
case 2:
printf("2\n");
case 1:
printf("1\n");
#ifdef FIX_BUG
case 0:
;
#endif
}
}

59
certs/expired/ICE-CA.pem Normal file
View File

@@ -0,0 +1,59 @@
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: md5WithRSAEncryption
Issuer: O=European ICE-TEL project, OU=V3-Certification Authority
Validity
Not Before: Apr 2 17:35:53 1997 GMT
Not After : Apr 2 17:35:53 1998 GMT
Subject: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt
Subject Public Key Info:
Public Key Algorithm: rsa
RSA Public Key: (512 bit)
Modulus (512 bit):
00:82:75:ba:f6:d1:60:b5:f9:15:b3:6a:dd:29:8f:
8b:a4:6f:1a:88:e0:50:43:40:0b:79:41:d5:d3:16:
44:7d:74:65:17:42:06:52:0b:e9:50:c8:10:cd:24:
e2:ae:8d:22:30:73:e6:b4:b7:93:1f:e5:6e:a2:ae:
49:11:a5:c9:45
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Authority Key Identifier:
0.........z.."p......e..
X509v3 Subject Key Identifier:
..~r..:..B.44fu......3
X509v3 Key Usage: critical
....
X509v3 Certificate Policies: critical
0.0...*...
X509v3 Subject Alternative Name:
0!..secude-support@darmstadt.gmd.de
X509v3 Issuer Alternative Name:
0I..ice-tel-ca@darmstadt.gmd.de.*http://www.darmstadt.gmd.de/ice-tel/euroca
X509v3 Basic Constraints: critical
0....
X509v3 CRL Distribution Points:
0200...,.*http://www.darmstadt.gmd.de/ice-tel/euroca
Signature Algorithm: md5WithRSAEncryption
17:a2:88:b7:99:5a:05:41:e4:13:34:67:e6:1f:3e:26:ec:4b:
69:f9:3e:28:22:be:9d:1c:ab:41:6f:0c:00:85:fe:45:74:f6:
98:f0:ce:9b:65:53:4a:50:42:c7:d4:92:bd:d7:a2:a8:3d:98:
88:73:cd:60:28:79:a3:fc:48:7a
-----BEGIN CERTIFICATE-----
MIICzDCCAnagAwIBAgIBATANBgkqhkiG9w0BAQQFADBIMSEwHwYDVQQKExhFdXJv
cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
QXV0aG9yaXR5MB4XDTk3MDQwMjE3MzU1M1oXDTk4MDQwMjE3MzU1M1owXDEhMB8G
A1UEChMYRXVyb3BlYW4gSUNFLVRFTCBwcm9qZWN0MSMwIQYDVQQLExpWMy1DZXJ0
aWZpY2F0aW9uIEF1dGhvcml0eTESMBAGA1UEBxMJRGFybXN0YWR0MFkwCgYEVQgB
AQICAgADSwAwSAJBAIJ1uvbRYLX5FbNq3SmPi6RvGojgUENAC3lB1dMWRH10ZRdC
BlIL6VDIEM0k4q6NIjBz5rS3kx/lbqKuSRGlyUUCAwEAAaOCATgwggE0MB8GA1Ud
IwQYMBaAFIr3yNUOx3ro1yJw4AuJ1bbsZbzPMB0GA1UdDgQWBBR+cvL4OoacQog0
NGZ1w9T80aIRMzAOBgNVHQ8BAf8EBAMCAfYwFAYDVR0gAQH/BAowCDAGBgQqAwQF
MCoGA1UdEQQjMCGBH3NlY3VkZS1zdXBwb3J0QGRhcm1zdGFkdC5nbWQuZGUwUgYD
VR0SBEswSYEbaWNlLXRlbC1jYUBkYXJtc3RhZHQuZ21kLmRlhipodHRwOi8vd3d3
LmRhcm1zdGFkdC5nbWQuZGUvaWNlLXRlbC9ldXJvY2EwDwYDVR0TAQH/BAUwAwEB
/zA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vd3d3LmRhcm1zdGFkdC5nbWQuZGUv
aWNlLXRlbC9ldXJvY2EwDQYJKoZIhvcNAQEEBQADQQAXooi3mVoFQeQTNGfmHz4m
7Etp+T4oIr6dHKtBbwwAhf5FdPaY8M6bZVNKUELH1JK916KoPZiIc81gKHmj/Eh6
-----END CERTIFICATE-----

View File

@@ -0,0 +1,48 @@
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 0 (0x0)
Signature Algorithm: md5WithRSAEncryption
Issuer: O=European ICE-TEL project, OU=V3-Certification Authority
Validity
Not Before: Apr 2 17:33:36 1997 GMT
Not After : Apr 2 17:33:36 1998 GMT
Subject: O=European ICE-TEL project, OU=V3-Certification Authority
Subject Public Key Info:
Public Key Algorithm: rsa
RSA Public Key: (512 bit)
Modulus (512 bit):
00:80:3e:eb:ae:47:a9:fe:10:54:0b:81:8b:9c:2b:
82:ab:3a:61:36:65:8b:f3:73:9f:ac:ac:7a:15:a7:
13:8f:b4:c4:ba:a3:0f:bc:a5:58:8d:cc:b1:93:31:
9e:81:9e:8c:19:61:86:fa:52:73:54:d1:97:76:22:
e7:c7:9f:41:cd
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
........z.."p......e..
X509v3 Key Usage: critical
....
X509v3 Subject Alternative Name:
0I.*http://www.darmstadt.gmd.de/ice-tel/euroca..ice-tel-ca@darmstadt.gmd.de
X509v3 Basic Constraints: critical
0....
Signature Algorithm: md5WithRSAEncryption
76:69:61:db:b7:cf:8b:06:9e:d8:8c:96:53:d2:4d:a8:23:a6:
03:44:e8:8f:24:a5:c0:84:a8:4b:77:d4:2d:2b:7d:37:91:67:
f2:2c:ce:02:31:4c:6b:cc:ce:f2:68:a6:11:11:ab:7d:88:b8:
7e:22:9f:25:06:60:bd:79:30:3d
-----BEGIN CERTIFICATE-----
MIICFjCCAcCgAwIBAgIBADANBgkqhkiG9w0BAQQFADBIMSEwHwYDVQQKExhFdXJv
cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
QXV0aG9yaXR5MB4XDTk3MDQwMjE3MzMzNloXDTk4MDQwMjE3MzMzNlowSDEhMB8G
A1UEChMYRXVyb3BlYW4gSUNFLVRFTCBwcm9qZWN0MSMwIQYDVQQLExpWMy1DZXJ0
aWZpY2F0aW9uIEF1dGhvcml0eTBZMAoGBFUIAQECAgIAA0sAMEgCQQCAPuuuR6n+
EFQLgYucK4KrOmE2ZYvzc5+srHoVpxOPtMS6ow+8pViNzLGTMZ6BnowZYYb6UnNU
0Zd2IufHn0HNAgMBAAGjgZcwgZQwHQYDVR0OBBYEFIr3yNUOx3ro1yJw4AuJ1bbs
ZbzPMA4GA1UdDwEB/wQEAwIB9jBSBgNVHREESzBJhipodHRwOi8vd3d3LmRhcm1z
dGFkdC5nbWQuZGUvaWNlLXRlbC9ldXJvY2GBG2ljZS10ZWwtY2FAZGFybXN0YWR0
LmdtZC5kZTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBAUAA0EAdmlh27fP
iwae2IyWU9JNqCOmA0TojySlwISoS3fULSt9N5Fn8izOAjFMa8zO8mimERGrfYi4
fiKfJQZgvXkwPQ==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,63 @@
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: md5WithRSAEncryption
Issuer: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt
Validity
Not Before: Apr 2 17:35:59 1997 GMT
Not After : Apr 2 17:35:59 1998 GMT
Subject: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt, CN=USER
Subject Public Key Info:
Public Key Algorithm: rsa
RSA Public Key: (512 bit)
Modulus (512 bit):
00:a8:a8:53:63:49:1b:93:c3:c3:0b:6c:88:11:55:
de:7e:6a:e2:f9:52:a0:dc:69:25:c4:c8:bf:55:e1:
31:a8:ce:e4:a9:29:85:99:8a:15:9a:de:f6:2f:e1:
b4:50:5f:5e:04:75:a6:f4:76:dc:3c:0e:39:dc:3a:
be:3e:a4:61:8b
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Authority Key Identifier:
0...~r..:..B.44fu......3
X509v3 Subject Key Identifier:
...... .*...1.*.......
X509v3 Key Usage: critical
....
X509v3 Certificate Policies: critical
0.0...*...0.......
X509v3 Subject Alternative Name:
0:..user@darmstadt.gmd.de.!http://www.darmstadt.gmd.de/~user
X509v3 Issuer Alternative Name:
0....gmdca@gmd.de..http://www.gmd.de..saturn.darmstadt.gmd.de.\1!0...U.
..European ICE-TEL project1#0!..U....V3-Certification Authority1.0...U....Darmstadt..141.12.62.26
X509v3 Basic Constraints: critical
0.
X509v3 CRL Distribution Points:
0.0.......gmdca@gmd.de
Signature Algorithm: md5WithRSAEncryption
69:0c:e1:b7:a7:f2:d8:fb:e8:69:c0:13:cd:37:ad:21:06:22:
4d:e8:c6:db:f1:04:0b:b7:e0:b3:d6:0c:81:03:ce:c3:6a:3e:
c7:e7:24:24:a4:92:64:c2:83:83:06:42:53:0e:6f:09:1e:84:
9a:f7:6f:63:9b:94:99:83:d6:a4
-----BEGIN CERTIFICATE-----
MIIDTzCCAvmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBcMSEwHwYDVQQKExhFdXJv
cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
QXV0aG9yaXR5MRIwEAYDVQQHEwlEYXJtc3RhZHQwHhcNOTcwNDAyMTczNTU5WhcN
OTgwNDAyMTczNTU5WjBrMSEwHwYDVQQKExhFdXJvcGVhbiBJQ0UtVEVMIHByb2pl
Y3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24gQXV0aG9yaXR5MRIwEAYDVQQH
EwlEYXJtc3RhZHQxDTALBgNVBAMTBFVTRVIwWTAKBgRVCAEBAgICAANLADBIAkEA
qKhTY0kbk8PDC2yIEVXefmri+VKg3GklxMi/VeExqM7kqSmFmYoVmt72L+G0UF9e
BHWm9HbcPA453Dq+PqRhiwIDAQABo4IBmDCCAZQwHwYDVR0jBBgwFoAUfnLy+DqG
nEKINDRmdcPU/NGiETMwHQYDVR0OBBYEFJfc4B8gjSoRmLUx4Sq/ucIYiMrPMA4G
A1UdDwEB/wQEAwIB8DAcBgNVHSABAf8EEjAQMAYGBCoDBAUwBgYECQgHBjBDBgNV
HREEPDA6gRV1c2VyQGRhcm1zdGFkdC5nbWQuZGWGIWh0dHA6Ly93d3cuZGFybXN0
YWR0LmdtZC5kZS9+dXNlcjCBsQYDVR0SBIGpMIGmgQxnbWRjYUBnbWQuZGWGEWh0
dHA6Ly93d3cuZ21kLmRlghdzYXR1cm4uZGFybXN0YWR0LmdtZC5kZaRcMSEwHwYD
VQQKExhFdXJvcGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRp
ZmljYXRpb24gQXV0aG9yaXR5MRIwEAYDVQQHEwlEYXJtc3RhZHSHDDE0MS4xMi42
Mi4yNjAMBgNVHRMBAf8EAjAAMB0GA1UdHwQWMBQwEqAQoA6BDGdtZGNhQGdtZC5k
ZTANBgkqhkiG9w0BAQQFAANBAGkM4ben8tj76GnAE803rSEGIk3oxtvxBAu34LPW
DIEDzsNqPsfnJCSkkmTCg4MGQlMObwkehJr3b2OblJmD1qQ=
-----END CERTIFICATE-----

9
certs/expired/ICE.crl Normal file
View File

@@ -0,0 +1,9 @@
-----BEGIN X509 CRL-----
MIIBNDCBnjANBgkqhkiG9w0BAQIFADBFMSEwHwYDVQQKExhFdXJvcGVhbiBJQ0Ut
VEVMIFByb2plY3QxIDAeBgNVBAsTF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5Fw05
NzA2MDkxNDQyNDNaFw05NzA3MDkxNDQyNDNaMCgwEgIBChcNOTcwMzAzMTQ0MjU0
WjASAgEJFw05NjEwMDIxMjI5MjdaMA0GCSqGSIb3DQEBAgUAA4GBAH4vgWo2Tej/
i7kbiw4Imd30If91iosjClNpBFwvwUDBclPEeMuYimHbLOk4H8Nofc0fw11+U/IO
KSNouUDcqG7B64oY7c4SXKn+i1MWOb5OJiWeodX3TehHjBlyWzoNMWCnYA8XqFP1
mOKp8Jla1BibEZf14+/HqCi2hnZUiEXh
-----END X509 CRL-----

View File

@@ -1,15 +1,17 @@
subject=/C=US/O=VeriSign, Inc./OU=Class 1 Public Primary Certification Authority
notBefore=Jan 29 00:00:00 1996 GMT
notAfter=Jan 7 23:59:59 2020 GMT
-----BEGIN CERTIFICATE-----
MIAwgKADAgECAgEAMA0GCSqGSIb3DQEBBAUAMGIxETAPBgNVBAcTCEludGVybmV0
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVyaVNpZ24gQ2xh
c3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjAeFw05NjA0MDgxMDIwMjda
Fw05NzA0MDgxMDIwMjdaMGIxETAPBgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5W
ZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVyaVNpZ24gQ2xhc3MgMSBDQSAtIElu
ZGl2aWR1YWwgU3Vic2NyaWJlcjCAMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2
FKbPTdAFDdjKI9BvqrQpkmOOLPhvltcunXZLEbE2jVfJw/0cxrr+Hgi6M8qV6r7j
W80GqLd5HUQq7XPysVKDaBBwZJHXPmv5912dFEObbpdFmIFH0S3L3bty10w/cari
QPJUObwW7s987LrbP2wqsxaxhhKdrpM01bjV0Pc+qQIDAQABAAAAADANBgkqhkiG
9w0BAQQFAAOBgQA+1nJryNt8VBRjRr07ArDAV/3jAH7GjDc9jsrxZS68ost9v06C
TvTNKGL+LISNmFLXl+JXhgGB0JZ9fvyYzNgHQ46HBUng1H6voalfJgS2KdEo50wW
8EFZYMDkT1k4uynwJqkVN2QJK/2q4/A/VCov5h6SlM8Affg2W+1TLqvqkwAA
MIICPDCCAaUCEDJQM89Q0VbzXIGtZVxPyCUwDQYJKoZIhvcNAQECBQAwXzELMAkG
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
cyAxIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
MDEyOTAwMDAwMFoXDTIwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmlt
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0f
zGVuDLDQVoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHi
TkVWaR94AoDa3EeRKbs2yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0G
CSqGSIb3DQEBAgUAA4GBAEtEZmBoZOSYG/OwcuaViXzde7OVwB0u2NgZ0C00PcZQ
mhCGjKo/O6gE/DdSlcPZydvN8oYGxLEb8IKIMEKOF1AcZHq4PplJdJf8rAJD+5YM
VgQlDHx8h50kp9jwMim1pN9dokzFFjKoQvZFprY2ueC/ZTaTwtLXa9zeWdaiNfhF
-----END CERTIFICATE-----

View File

@@ -1,31 +1,18 @@
subject=/L=Internet/O=VeriSign, Inc./OU=VeriSign Class 2 CA - Individual Subscriber
issuer= /L=Internet/O=VeriSign, Inc./OU=VeriSign Class 2 CA - Individual Subscriber
subject=/C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority
notBefore=Jan 29 00:00:00 1996 GMT
notAfter=Jan 7 23:59:59 2004 GMT
-----BEGIN CERTIFICATE-----
MIIEkzCCA/ygAwIBAgIRANDTUpSRL3nTFeMrMayFSPAwDQYJKoZIhvcNAQECBQAw
YjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTQw
MgYDVQQLEytWZXJpU2lnbiBDbGFzcyAyIENBIC0gSW5kaXZpZHVhbCBTdWJzY3Jp
YmVyMB4XDTk2MDYwNDAwMDAwMFoXDTk4MDYwNDIzNTk1OVowYjERMA8GA1UEBxMI
SW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJp
U2lnbiBDbGFzcyAyIENBIC0gSW5kaXZpZHVhbCBTdWJzY3JpYmVyMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQC6A+2czKGRcYMfm8gdnk+0de99TDDzsqo0v5nb
RsbUmMcdRQ7nsMbRWe0SAb/9QoLTZ/cJ0iOBqdrkz7UpqqKarVoTSdlSMVM92tWp
3bJncZHQD1t4xd6lQVdI1/T6R+5J0T1ukOdsI9Jmf+F28S6g3R3L1SFwiHKeZKZv
z+793wIDAQABo4ICRzCCAkMwggIpBgNVHQMBAf8EggIdMIICGTCCAhUwggIRBgtg
hkgBhvhFAQcBATCCAgAWggGrVGhpcyBjZXJ0aWZpY2F0ZSBpbmNvcnBvcmF0ZXMg
YnkgcmVmZXJlbmNlLCBhbmQgaXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0IHRv
LCB0aGUgVmVyaVNpZ24gQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1lbnQg
KENQUyksIGF2YWlsYWJsZSBhdDogaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL0NQ
Uy0xLjA7IGJ5IEUtbWFpbCBhdCBDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBv
ciBieSBtYWlsIGF0IFZlcmlTaWduLCBJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1v
dW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBUZWwuICsxICg0MTUpIDk2MS04ODMw
IENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5jLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQgYW5kIExJQUJJ
TElUWSBMSU1JVEVELqAOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQECMC8w
LRYraHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTLTEuMDAU
BglghkgBhvhCAQEBAf8EBAMCAgQwDQYJKoZIhvcNAQECBQADgYEApRJRkNBqLLgs
53IR/d18ODdLOWMTZ+QOOxBrq460iBEdUwgF8vmPRX1ku7UiDeNzaLlurE6eFqHq
2zPyK5j60zfTLVJMWKcQWwTJLjHtXrW8pxhNtFc6Fdvy5ZkHnC/9NIl7/t4U6WqB
p4y+p7SdMIkEwIZfds0VbnQyX5MRUJY=
MIICPTCCAaYCEQC6WslMBTuS1qe2307QU5INMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
c3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
NjAxMjkwMDAwMDBaFw0wNDAxMDcyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMiBQdWJsaWMgUHJp
bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
jQAwgYkCgYEAtlqLow1qI4OAa885h/QhEzMGTCWi7VUSl8WngLn6g8EgoPovFQ18
oWBrfnks+gYPOq72G2+x0v8vKFJfg31LxHq3+GYfgFT8t8KOWUoUV0bRmpO+QZED
uxWAk1zr58wIbD8+s0r8/0tsI9VQgiZEGY4jw3HqGSRHBJ51v8imAB8CAwEAATAN
BgkqhkiG9w0BAQIFAAOBgQC2AB+TV6QHp0DOZUA/VV7t7/pUSaUw1iF8YYfug5ML
v7Qz8pisnwa/TqjOFIFMywROWMPPX+5815pvy0GKt3+BuP+EYcYnQ2UdDOyxAArd
G6S7x3ggKLKi3TaVLuFUT79guXdoEZkj6OpS6KoATmdOu5C1RZtG644W78QzWzM9
1Q==
-----END CERTIFICATE-----

View File

@@ -1,16 +1,18 @@
subject=/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
subject=/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
notBefore=Jan 29 00:00:00 1996 GMT
notAfter=Jan 7 23:59:59 2004 GMT
-----BEGIN CERTIFICATE-----
MIICMTCCAZoCBQKhAAABMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcw
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMg
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBa
Fw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2ln
biwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyVxZ
nvIbigEUtBDfBEDb41evakVAj4QMC9Ez2dkRz+4CWB8l9yqoRAWq7AMfeH+ek7ma
AKojfdashaJjRcdyJ8z0TMZ1cdI5709C8HXfCpDGjiBvmA/4rCNfcCk2pMmG57Ga
IMtTpYXnPb59mv4kRTPcdhXtD6JxZExlLoFoRacCAwEAATANBgkqhkiG9w0BAQIF
AAOBgQB1Zmw+0c2B27X4LzZRtvdCvM1Cr9wO+hVs+GeTVzrrtpLotgHKjLeOQ7RJ
Zfk+7r11Ri7J/CVdqMcvi5uPaM+0nJcYwE3vH9mvgrPmZLiEXIqaB1JDYft0nls6
NvxMsvwaPxUupVs8G5DsiCnkWRb5zget7Ond2tIxik/W2O8XjQ==
MIICPTCCAaYCEQDknv3zOugOz6URPhmkJAIyMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
NjAxMjkwMDAwMDBaFw0wNDAxMDcyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJp
bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
jQAwgYkCgYEAyVxZnvIbigEUtBDfBEDb41evakVAj4QMC9Ez2dkRz+4CWB8l9yqo
RAWq7AMfeH+ek7maAKojfdashaJjRcdyJ8z0TMZ1cdI5709C8HXfCpDGjiBvmA/4
rCNfcCk2pMmG57GaIMtTpYXnPb59mv4kRTPcdhXtD6JxZExlLoFoRacCAwEAATAN
BgkqhkiG9w0BAQIFAAOBgQBhcOwvP579K+ZoVCGwZ3kIDCCWMYoNer62Jt95LCJp
STbjl3diYaIy13pUITa6Ask05yXaRDWw0lyAXbOU+Pms7qRgdSoflUkjsUp89LNH
ciFbfperVKxi513srpvSybIk+4Kt6WcVS7qqpvCXoPawl1cAyAw8CaCCBLpB2veZ
pA==
-----END CERTIFICATE-----

17
certs/vsignss.pem Normal file
View File

@@ -0,0 +1,17 @@
subject=/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
notBefore=Nov 9 00:00:00 1994 GMT
notAfter=Jan 7 23:59:59 2010 GMT
-----BEGIN CERTIFICATE-----
MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkG
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0
MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxIDAeBgNV
BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2Vy
dmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUAA4GJ
ADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII
0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphI
uR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZI
hvcNAQECBQADfgBl3X7hsuyw4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3
YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc
1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
-----END CERTIFICATE-----

18
certs/vsigntca.pem Normal file
View File

@@ -0,0 +1,18 @@
subject=/O=VeriSign, Inc/OU=www.verisign.com/repository/TestCPS Incorp. By Ref. Liab. LTD./OU=For VeriSign authorized testing only. No assurances (C)VS1997
notBefore=Mar 4 00:00:00 1997 GMT
notAfter=Mar 4 23:59:59 2025 GMT
-----BEGIN CERTIFICATE-----
MIICTTCCAfcCEEdoCqpuXxnoK27q7d58Qc4wDQYJKoZIhvcNAQEEBQAwgakxFjAU
BgNVBAoTDVZlcmlTaWduLCBJbmMxRzBFBgNVBAsTPnd3dy52ZXJpc2lnbi5jb20v
cmVwb3NpdG9yeS9UZXN0Q1BTIEluY29ycC4gQnkgUmVmLiBMaWFiLiBMVEQuMUYw
RAYDVQQLEz1Gb3IgVmVyaVNpZ24gYXV0aG9yaXplZCB0ZXN0aW5nIG9ubHkuIE5v
IGFzc3VyYW5jZXMgKEMpVlMxOTk3MB4XDTk3MDMwNDAwMDAwMFoXDTI1MDMwNDIz
NTk1OVowgakxFjAUBgNVBAoTDVZlcmlTaWduLCBJbmMxRzBFBgNVBAsTPnd3dy52
ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9UZXN0Q1BTIEluY29ycC4gQnkgUmVmLiBM
aWFiLiBMVEQuMUYwRAYDVQQLEz1Gb3IgVmVyaVNpZ24gYXV0aG9yaXplZCB0ZXN0
aW5nIG9ubHkuIE5vIGFzc3VyYW5jZXMgKEMpVlMxOTk3MFwwDQYJKoZIhvcNAQEB
BQADSwAwSAJBAMak6xImJx44jMKcbkACy5/CyMA2fqXK4PlzTtCxRq5tFkDzne7s
cI8oFK/J+gFZNE3bjidDxf07O3JOYG9RGx8CAwEAATANBgkqhkiG9w0BAQQFAANB
ADT523tENOKrEheZFpsJx1UUjPrG7TwYc/C4NBHrZI4gZJcKVFIfNulftVS6UMYW
ToLEMaUojc3DuNXHG21PDG8=
-----END CERTIFICATE-----

48
config
View File

@@ -4,6 +4,9 @@
# which then automatically runs Configure from SSLeay after
# mapping the Apache names for OSs into SSLeay names
#
# 29-May-97 eay Added no-asm option
# 27-May-97 eay Alpha linux mods
# ??-May-97 eay IRIX mods
# 16-Sep-97 tjh first cut of merged version
#
# Tim Hudson
@@ -30,7 +33,6 @@ RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
SYSTEM=`(uname -s) 2>/dev/null` || SYSTEM="unknown"
VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"
# Now test for ISC and SCO, since it is has a braindamaged uname.
#
# We need to work around FreeBSD 1.1.5.1
@@ -123,6 +125,10 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
echo "${MACHINE}-whatever-bsdi"; exit 0
;;
FreeBSD:3*:*:*)
echo "${MACHINE}-whatever-freebsd3"; exit 0
;;
FreeBSD:*:*:*486*)
echo "i486-whatever-freebsd"; exit 0
;;
@@ -252,7 +258,27 @@ do
case "$i" in
-d*) PREFIX="debug-";;
-v*) VERBOSE="true";;
-n*|-t*) TEST="true";;
-t*) TEST="true";;
-h*) cat <<EOF
usage: config [options]
-d Add a debug- prefix to machine choice.
-v Verbose mode.
-t Test mode, do not run the Configure perl script.
-h This help.
Any other text will be passed to ther Configure perl script.
Usefull options include
no-asm Build with no assember code.
-Dxxx Add xxx define to compilation.
-Lxxx Add xxx library include path to build.
-lxxx Add xxx library to build.
eg, to build using RSAref, without assember, building to allow anon-DH
ciphers and null encryption ciphers,
config no-asm -DRSAref -DSSL_ALLOW_ADH -DSSL_ALLOW_ENULL -lrsaref
EOF
;;
*) options=$options" $i" ;;
esac
done
@@ -276,20 +302,26 @@ fi
# script above so we end up with values in vars but that would take
# more time that I want to waste at the moment
case "$GUESSOS" in
alpha-*-linux2) OUT="alpha-gcc" ;;
*-*-linux2) OUT="linux-elf" ;;
*-*-linux) OUT="linux-aout" ;;
*-*-linux1) OUT="linux-aout" ;;
sun4*-sun-solaris2) OUT="solaris-sparc-$CC" ;;
*86*-sun-solaris2) OUT="solaris-x86-$CC" ;;
*-*-sunos4) OUT="sunos-$CC" ;;
*-freebsd3) OUT="FreeBSD-elf" ;;
*-freebsd) OUT="FreeBSD" ;;
*86*-*-netbsd) OUT="NetBSD-x86" ;;
sun3*-*-netbsd) OUT="NetBSD-m68" ;;
*-*-netbsd) OUT="NetBSD-sparc" ;;
*-*-osf) OUT="alpha-$CC" ;;
*86*-*-openbsd) OUT="OpenBSD-x86" ;;
alpha*-*-openbsd) OUT="OpenBSD-alpha" ;;
pmax*-*-openbsd) OUT="OpenBSD-mips" ;;
*-*-openbsd) OUT="OpenBSD" ;;
*-*-osf) OUT="alpha-cc" ;;
*-*-unixware*) OUT="unixware-2.0" ;;
*-sni-sysv4) OUT="SINIX" ;;
*-hpux*) OUT="hpux-$CC" ;;
# these are all covered by the catchall below
# *-hpux) OUT="hpux-$CC" ;;
# *-aix) OUT="aix-$CC" ;;
# *-dgux) OUT="dgux" ;;
*) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
@@ -302,7 +334,7 @@ fi
# run Configure to check to see if we need to specify the
# compiler for the platform ... in which case we add it on
# the end ... otherwise we leave it off
./Configure 2>&1 | grep '$OUT-$CC' > /dev/null
perl ./Configure 2>&1 | grep "$OUT-$CC" > /dev/null
if [ $? = "0" ]; then
OUT="$OUT-$CC"
fi
@@ -315,9 +347,9 @@ OUT="$PREFIX$OUT"
echo Configuring for $OUT
if [ "$TEST" = "true" ]; then
echo ./Configure $OUT
echo ./Configure $OUT $options
else
./Configure $OUT
perl ./Configure $OUT $options
fi
)

2
crypto/.cvsignore Normal file
View File

@@ -0,0 +1,2 @@
lib
date.h

View File

@@ -10,19 +10,15 @@ INCLUDES= -I.. -I../../include
CFLAG= -g
INSTALLTOP= /usr/local/ssl
MAKE= make -f Makefile.ssl
MAKEDEPEND= makedepend -f Makefile.ssl
MAKEDEPEND= $(TOP)/util/domd $(TOP)
MAKEFILE= Makefile.ssl
RM= /bin/rm -f
RM= rm -f
AR= ar r
MAKE= make -f Makefile.ssl
MAKEDEPEND= makedepend -f Makefile.ssl
MAKEFILE= Makefile.ssl
PEX_LIBS=
EX_LIBS=
CFLAGS= $(INCLUDE) $(CFLAG) -DCFLAGS=" \"$(CC) $(CFLAG)\" "
CFLAGS= $(INCLUDE) $(CFLAG) -DCFLAGS="\"$(CC) $(CFLAG)\"" -DPLATFORM="\"$(PLATFORM)\""
ERR=crypto
ERRC=cpt_err
@@ -33,18 +29,17 @@ SDIRS= md2 md5 sha mdc2 hmac ripemd \
des rc2 rc4 rc5 idea bf cast \
bn rsa dsa dh \
buffer bio stack lhash rand err objects \
evp pem x509 \
asn1 conf txt_db pkcs7
evp asn1 pem x509 x509v3 conf txt_db pkcs7 comp
GENERAL=Makefile README
LIB= $(TOP)/libcrypto.a
LIBSRC= cryptlib.c mem.c cversion.c ex_data.c $(ERRC).c
LIBOBJ= cryptlib.o mem.o cversion.o ex_data.o $(ERRC).o
LIBSRC= cryptlib.c mem.c cversion.c ex_data.c tmdiff.c $(ERRC).c
LIBOBJ= cryptlib.o mem.o cversion.o ex_data.o tmdiff.o $(ERRC).o
SRC= $(LIBSRC)
EXHEADER= crypto.h cryptall.h
EXHEADER= crypto.h cryptall.h tmdiff.h opensslv.h
HEADER= cryptlib.h date.h $(EXHEADER)
ALL= $(GENERAL) $(SRC) $(HEADER)
@@ -54,35 +49,33 @@ top:
all: date.h lib subdirs
date.h: ../Makefile.ssl ../VERSION
echo "#define DATE \"`date`\"" >date.h
date.h: ../Makefile.ssl
echo "#define DATE \"`date`\"" >date.h
subdirs:
@for i in $(SDIRS) ;\
do \
(cd $$i; echo "making all in $$i..."; \
$(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' 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}' all ); \
(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}' 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 $$i..."; \
(cd $$i; echo "making 'files' in crypto/$$i..."; \
$(MAKE) files ); \
done;
links:
/bin/rm -f Makefile
$(TOP)/util/point.sh Makefile.ssl Makefile ;
$(TOP)/util/mklink.sh ../include $(HEADER) ;
$(TOP)/util/mklink.sh ../test $(TEST) ;
$(TOP)/util/mklink.sh ../apps $(APPS) ;
$(TOP)/util/point.sh Makefile.ssl Makefile;
@for i in $(SDIRS) ;\
do \
(cd $$i; echo "making links in $$i..."; \
$(MAKE) links ); \
@$(TOP)/util/point.sh Makefile.ssl Makefile
@$(TOP)/util/mklink.sh ../include $(HEADER)
@$(TOP)/util/mklink.sh ../test $(TEST)
@$(TOP)/util/mklink.sh ../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}' links ); \
done;
lib: $(LIBOBJ)
@@ -93,14 +86,14 @@ lib: $(LIBOBJ)
libs:
@for i in $(SDIRS) ;\
do \
(cd $$i; echo "making libs in $$i..."; \
(cd $$i; echo "making libs in crypto/$$i..."; \
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' 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 $$i..."; \
(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;
@@ -112,14 +105,14 @@ install:
done;
@for i in $(SDIRS) ;\
do \
(cd $$i; echo "making install in $$i..."; \
(cd $$i; echo "making install in crypto/$$i..."; \
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' install ); \
done;
lint:
@for i in $(SDIRS) ;\
do \
(cd $$i; echo "making lint in $$i..."; \
(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;
@@ -127,15 +120,15 @@ depend:
$(MAKEDEPEND) $(INCLUDE) $(PROGS) $(LIBSRC)
@for i in $(SDIRS) ;\
do \
(cd $$i; echo "making depend in $$i..."; \
$(MAKE) MAKEFILE='${MAKEFILE}' INCLUDES='${INCLUDES}' MAKEDEPEND='${MAKEDEPEND}' depend ); \
(cd $$i; echo "making depend in crypto/$$i..."; \
$(MAKE) MAKEFILE='${MAKEFILE}' INCLUDES='${INCLUDES}' depend ); \
done;
clean:
/bin/rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
@for i in $(SDIRS) ;\
do \
(cd $$i; echo "making clean in $$i..."; \
(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;
@@ -144,18 +137,39 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
@for i in $(SDIRS) ;\
do \
(cd $$i; echo "making dclean in $$i..."; \
(cd $$i; echo "making dclean in crypto/$$i..."; \
$(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' dclean ); \
done;
errors:
perl ./err/err_code.pl -conf err/ssleay.ec *.c */*.c ../ssl/*.c ../rsaref/*.c
errors: errgen $(ERRC).c
$(ERRC).c: $(ERR).err
perl $(TOP)/util/err-ins.pl $(ERR).err $(ERR).h
perl err/err_genc.pl -s $(ERR).h $(ERRC).c
errgen:
perl ./err/err_code.pl -conf err/ssleay.ec *.c */*.c ../ssl/*.c ../rsaref/*.c
@for i in $(SDIRS) ;\
do \
(cd $$i; echo "making errors in $$i..."; \
(cd $$i; echo "making errors in crypto/$$i..."; \
$(MAKE) errors ); \
done;
# DO NOT DELETE THIS LINE -- make depend depends on it.
cpt_err.o: ../include/err.h ../include/stack.h crypto.h opensslv.h
cryptlib.o: ../include/bio.h ../include/buffer.h ../include/e_os.h
cryptlib.o: ../include/err.h ../include/stack.h cryptlib.h crypto.h date.h
cryptlib.o: opensslv.h
cversion.o: ../include/bio.h ../include/buffer.h ../include/e_os.h
cversion.o: ../include/err.h ../include/stack.h cryptlib.h crypto.h date.h
cversion.o: opensslv.h
ex_data.o: ../include/bio.h ../include/buffer.h ../include/e_os.h
ex_data.o: ../include/err.h ../include/lhash.h ../include/stack.h cryptlib.h
ex_data.o: crypto.h opensslv.h
mem.o: ../include/bio.h ../include/buffer.h ../include/e_os.h ../include/err.h
mem.o: ../include/lhash.h ../include/stack.h cryptlib.h crypto.h opensslv.h
tmdiff.o: ../include/bio.h ../include/buffer.h ../include/e_os.h
tmdiff.o: ../include/err.h ../include/stack.h cryptlib.h crypto.h opensslv.h
tmdiff.o: tmdiff.h

1
crypto/asn1/.cvsignore Normal file
View File

@@ -0,0 +1 @@
lib

View File

@@ -9,7 +9,7 @@ INCLUDES= -I.. -I../../include
CFLAG=-g
INSTALLTOP=/usr/local/ssl
MAKE= make -f Makefile.ssl
MAKEDEPEND= makedepend -f Makefile.ssl
MAKEDEPEND= $(TOP)/util/domd $(TOP)
MAKEFILE= Makefile.ssl
AR= ar r
@@ -22,34 +22,34 @@ TEST=
APPS=
LIB=$(TOP)/libcrypto.a
LIBSRC= a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c \
a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c \
a_sign.c a_digest.c a_verify.c \
LIBSRC= a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c \
a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_bmp.c \
a_enum.c a_sign.c a_digest.c a_verify.c \
x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c \
x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c \
x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c nsseq.c \
d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c \
d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c \
d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c\
t_req.c t_x509.c t_pkey.c \
t_req.c t_x509.c t_crl.c t_pkey.c \
p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c \
p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c \
f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c \
a_hdr.c x_pkey.c a_bool.c x_exten.c \
f_enum.c a_hdr.c x_pkey.c a_bool.c x_exten.c \
asn1_par.c asn1_lib.c $(ERRC).c a_meth.c a_bytes.c \
evp_asn1.c
LIBOBJ= a_object.o a_bitstr.o a_utctm.o a_int.o a_octet.o a_print.o \
a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o \
a_sign.o a_digest.o a_verify.o \
LIBOBJ= a_object.o a_bitstr.o a_utctm.o a_gentm.o a_time.o a_int.o a_octet.o \
a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o a_bmp.o \
a_enum.o a_sign.o a_digest.o a_verify.o \
x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o \
x_name.o x_cinf.o x_x509.o x_crl.o x_info.o x_spki.o \
x_name.o x_cinf.o x_x509.o x_crl.o x_info.o x_spki.o nsseq.o \
d2i_r_pr.o i2d_r_pr.o d2i_r_pu.o i2d_r_pu.o \
d2i_s_pr.o i2d_s_pr.o d2i_s_pu.o i2d_s_pu.o \
d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o \
t_req.o t_x509.o t_pkey.o \
t_req.o t_x509.o t_crl.o t_pkey.o \
p7_i_s.o p7_signi.o p7_signd.o p7_recip.o p7_enc_c.o p7_evp.o \
p7_dgst.o p7_s_e.o p7_enc.o p7_lib.o \
f_int.o f_string.o i2d_dhp.o i2d_dsap.o d2i_dhp.o d2i_dsap.o n_pkey.o \
a_hdr.o x_pkey.o a_bool.o x_exten.o \
f_enum.o a_hdr.o x_pkey.o a_bool.o x_exten.o \
asn1_par.o asn1_lib.o $(ERRC).o a_meth.o a_bytes.o \
evp_asn1.o
@@ -82,11 +82,10 @@ files:
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
links:
/bin/rm -f Makefile
$(TOP)/util/point.sh Makefile.ssl Makefile ;
$(TOP)/util/mklink.sh ../../include $(EXHEADER)
$(TOP)/util/mklink.sh ../../test $(TEST)
$(TOP)/util/mklink.sh ../../apps $(APPS)
@$(TOP)/util/point.sh Makefile.ssl Makefile
@$(TOP)/util/mklink.sh ../../include $(EXHEADER)
@$(TOP)/util/mklink.sh ../../test $(TEST)
@$(TOP)/util/mklink.sh ../../apps $(APPS)
install:
@for i in $(EXHEADER) ; \
@@ -111,10 +110,669 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
/bin/rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
errors:
errors: $(ERRC).c
$(ERRC).c: $(ERR).err
perl $(TOP)/util/err-ins.pl $(ERR).err $(ERR).h
perl ../err/err_genc.pl -s $(ERR).h $(ERRC).c
# DO NOT DELETE THIS LINE -- make depend depends on it.
a_bitstr.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_bitstr.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
a_bitstr.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
a_bmp.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_bmp.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
a_bmp.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
a_bool.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_bool.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
a_bool.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
a_bytes.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_bytes.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_bytes.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_bytes.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_bytes.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_bytes.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_bytes.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_bytes.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_bytes.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_bytes.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
a_d2i_fp.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_d2i_fp.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_d2i_fp.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_d2i_fp.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_d2i_fp.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_d2i_fp.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_d2i_fp.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_d2i_fp.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_d2i_fp.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_d2i_fp.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
a_digest.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_digest.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_digest.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_digest.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_digest.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_digest.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_digest.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_digest.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_digest.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_digest.o: ../crypto.h ../opensslv.h asn1.h
a_dup.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_dup.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_dup.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_dup.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_dup.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_dup.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_dup.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_dup.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_dup.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_dup.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
a_enum.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_enum.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
a_enum.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
a_gentm.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_gentm.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
a_gentm.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
a_hdr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_hdr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_hdr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_hdr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_hdr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_hdr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_hdr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_hdr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_hdr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_hdr.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
a_i2d_fp.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_i2d_fp.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_i2d_fp.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_i2d_fp.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_i2d_fp.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_i2d_fp.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_i2d_fp.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_i2d_fp.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_i2d_fp.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_i2d_fp.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
a_int.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_int.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
a_int.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
a_meth.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_meth.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_meth.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_meth.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_meth.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_meth.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_meth.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_meth.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_meth.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_meth.o: ../crypto.h ../opensslv.h asn1.h
a_object.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_object.o: ../../include/e_os.h ../../include/err.h ../../include/objects.h
a_object.o: ../../include/stack.h ../cryptlib.h ../crypto.h ../opensslv.h
a_object.o: asn1.h
a_octet.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_octet.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
a_octet.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
a_print.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_print.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
a_print.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
a_set.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_set.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_set.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_set.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_set.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_set.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_set.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_set.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_set.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_set.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
a_sign.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_sign.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_sign.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_sign.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_sign.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_sign.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_sign.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_sign.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_sign.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_sign.o: ../crypto.h ../opensslv.h asn1.h
a_time.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_time.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
a_time.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
a_type.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_type.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_type.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_type.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_type.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_type.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_type.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_type.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_type.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_type.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
a_utctm.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
a_utctm.o: ../../include/e_os.h ../../include/err.h ../../include/stack.h
a_utctm.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
a_verify.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
a_verify.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
a_verify.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
a_verify.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
a_verify.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
a_verify.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
a_verify.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
a_verify.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
a_verify.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
a_verify.o: ../crypto.h ../opensslv.h asn1.h
asn1_err.o: ../../include/bn.h ../../include/err.h ../../include/stack.h asn1.h
asn1_lib.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
asn1_lib.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
asn1_lib.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
asn1_lib.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
asn1_lib.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
asn1_lib.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
asn1_lib.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
asn1_lib.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
asn1_lib.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
asn1_lib.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
asn1_par.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
asn1_par.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
asn1_par.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
asn1_par.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
asn1_par.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
asn1_par.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
asn1_par.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
asn1_par.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
asn1_par.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
asn1_par.o: ../crypto.h ../opensslv.h asn1.h
d2i_dhp.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
d2i_dhp.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
d2i_dhp.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
d2i_dhp.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
d2i_dhp.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
d2i_dhp.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
d2i_dhp.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
d2i_dhp.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
d2i_dhp.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
d2i_dhp.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
d2i_dsap.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
d2i_dsap.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
d2i_dsap.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
d2i_dsap.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
d2i_dsap.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
d2i_dsap.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
d2i_dsap.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
d2i_dsap.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
d2i_dsap.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
d2i_dsap.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
d2i_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
d2i_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
d2i_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
d2i_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
d2i_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
d2i_pr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
d2i_pr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
d2i_pr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
d2i_pr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
d2i_pr.o: ../crypto.h ../opensslv.h asn1.h
d2i_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
d2i_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
d2i_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
d2i_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
d2i_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
d2i_pu.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
d2i_pu.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
d2i_pu.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
d2i_pu.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
d2i_pu.o: ../crypto.h ../opensslv.h asn1.h
d2i_r_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
d2i_r_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
d2i_r_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
d2i_r_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
d2i_r_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
d2i_r_pr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
d2i_r_pr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
d2i_r_pr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
d2i_r_pr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
d2i_r_pr.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
d2i_r_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
d2i_r_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
d2i_r_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
d2i_r_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
d2i_r_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
d2i_r_pu.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
d2i_r_pu.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
d2i_r_pu.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
d2i_r_pu.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
d2i_r_pu.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
d2i_s_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
d2i_s_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
d2i_s_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
d2i_s_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
d2i_s_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
d2i_s_pr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
d2i_s_pr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
d2i_s_pr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
d2i_s_pr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
d2i_s_pr.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
d2i_s_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
d2i_s_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
d2i_s_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
d2i_s_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
d2i_s_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
d2i_s_pu.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
d2i_s_pu.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
d2i_s_pu.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
d2i_s_pu.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
d2i_s_pu.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
evp_asn1.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
evp_asn1.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
evp_asn1.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
evp_asn1.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
evp_asn1.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
evp_asn1.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
evp_asn1.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
evp_asn1.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
evp_asn1.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
evp_asn1.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
f_enum.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
f_enum.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
f_enum.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
f_enum.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
f_enum.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
f_enum.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
f_enum.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
f_enum.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
f_enum.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
f_enum.o: ../crypto.h ../opensslv.h asn1.h
f_int.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
f_int.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
f_int.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
f_int.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
f_int.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
f_int.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
f_int.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
f_int.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
f_int.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
f_int.o: ../crypto.h ../opensslv.h asn1.h
f_string.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
f_string.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
f_string.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
f_string.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
f_string.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
f_string.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
f_string.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
f_string.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
f_string.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
f_string.o: ../crypto.h ../opensslv.h asn1.h
i2d_dhp.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
i2d_dhp.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
i2d_dhp.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
i2d_dhp.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
i2d_dhp.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
i2d_dhp.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
i2d_dhp.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
i2d_dhp.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
i2d_dhp.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
i2d_dhp.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
i2d_dsap.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
i2d_dsap.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
i2d_dsap.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
i2d_dsap.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
i2d_dsap.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
i2d_dsap.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
i2d_dsap.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
i2d_dsap.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
i2d_dsap.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
i2d_dsap.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
i2d_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
i2d_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
i2d_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
i2d_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
i2d_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
i2d_pr.o: ../../include/objects.h ../../include/rc2.h ../../include/rc4.h
i2d_pr.o: ../../include/rc5.h ../../include/ripemd.h ../../include/rsa.h
i2d_pr.o: ../../include/sha.h ../../include/stack.h ../cryptlib.h ../crypto.h
i2d_pr.o: ../opensslv.h asn1.h
i2d_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
i2d_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
i2d_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
i2d_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
i2d_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
i2d_pu.o: ../../include/objects.h ../../include/rc2.h ../../include/rc4.h
i2d_pu.o: ../../include/rc5.h ../../include/ripemd.h ../../include/rsa.h
i2d_pu.o: ../../include/sha.h ../../include/stack.h ../cryptlib.h ../crypto.h
i2d_pu.o: ../opensslv.h asn1.h
i2d_r_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
i2d_r_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
i2d_r_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
i2d_r_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
i2d_r_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
i2d_r_pr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
i2d_r_pr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
i2d_r_pr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
i2d_r_pr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
i2d_r_pr.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
i2d_r_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
i2d_r_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
i2d_r_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
i2d_r_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
i2d_r_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
i2d_r_pu.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
i2d_r_pu.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
i2d_r_pu.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
i2d_r_pu.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
i2d_r_pu.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
i2d_s_pr.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
i2d_s_pr.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
i2d_s_pr.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
i2d_s_pr.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
i2d_s_pr.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
i2d_s_pr.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
i2d_s_pr.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
i2d_s_pr.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
i2d_s_pr.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
i2d_s_pr.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
i2d_s_pu.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
i2d_s_pu.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
i2d_s_pu.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
i2d_s_pu.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
i2d_s_pu.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
i2d_s_pu.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
i2d_s_pu.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
i2d_s_pu.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
i2d_s_pu.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
i2d_s_pu.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
n_pkey.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
n_pkey.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
n_pkey.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
n_pkey.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
n_pkey.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
n_pkey.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
n_pkey.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
n_pkey.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
n_pkey.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
n_pkey.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
nsseq.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
nsseq.o: ../../include/cast.h ../../include/des.h ../../include/dh.h
nsseq.o: ../../include/dsa.h ../../include/err.h ../../include/evp.h
nsseq.o: ../../include/idea.h ../../include/md2.h ../../include/md5.h
nsseq.o: ../../include/mdc2.h ../../include/objects.h ../../include/pkcs7.h
nsseq.o: ../../include/rc2.h ../../include/rc4.h ../../include/rc5.h
nsseq.o: ../../include/ripemd.h ../../include/rsa.h ../../include/sha.h
nsseq.o: ../../include/stack.h ../../include/x509.h ../../include/x509_vfy.h
nsseq.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
p7_dgst.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
p7_dgst.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
p7_dgst.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
p7_dgst.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
p7_dgst.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
p7_dgst.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
p7_dgst.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
p7_dgst.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
p7_dgst.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
p7_dgst.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
p7_enc.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
p7_enc.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
p7_enc.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
p7_enc.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
p7_enc.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
p7_enc.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
p7_enc.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
p7_enc.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
p7_enc.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
p7_enc.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
p7_enc_c.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
p7_enc_c.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
p7_enc_c.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
p7_enc_c.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
p7_enc_c.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
p7_enc_c.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
p7_enc_c.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
p7_enc_c.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
p7_enc_c.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
p7_enc_c.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
p7_evp.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
p7_evp.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
p7_evp.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
p7_evp.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
p7_evp.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
p7_evp.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
p7_evp.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
p7_evp.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
p7_evp.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
p7_evp.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
p7_i_s.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
p7_i_s.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
p7_i_s.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
p7_i_s.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
p7_i_s.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
p7_i_s.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
p7_i_s.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
p7_i_s.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
p7_i_s.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
p7_i_s.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
p7_lib.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
p7_lib.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
p7_lib.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
p7_lib.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
p7_lib.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
p7_lib.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
p7_lib.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
p7_lib.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
p7_lib.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
p7_lib.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
p7_recip.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
p7_recip.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
p7_recip.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
p7_recip.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
p7_recip.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
p7_recip.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
p7_recip.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
p7_recip.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
p7_recip.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
p7_recip.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
p7_s_e.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
p7_s_e.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
p7_s_e.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
p7_s_e.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
p7_s_e.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
p7_s_e.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
p7_s_e.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
p7_s_e.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
p7_s_e.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
p7_s_e.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
p7_signd.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
p7_signd.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
p7_signd.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
p7_signd.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
p7_signd.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
p7_signd.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
p7_signd.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
p7_signd.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
p7_signd.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
p7_signd.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
p7_signi.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
p7_signi.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
p7_signi.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
p7_signi.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
p7_signi.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
p7_signi.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
p7_signi.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
p7_signi.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
p7_signi.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
p7_signi.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
t_crl.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
t_crl.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
t_crl.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
t_crl.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
t_crl.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
t_crl.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
t_crl.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
t_crl.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
t_crl.o: ../../include/x509.h ../../include/x509_vfy.h ../../include/x509v3.h
t_crl.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
t_pkey.o: ../../include/bio.h ../../include/bn.h ../../include/buffer.h
t_pkey.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
t_pkey.o: ../../include/err.h ../../include/rsa.h ../../include/stack.h
t_pkey.o: ../cryptlib.h ../crypto.h ../opensslv.h
t_req.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
t_req.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
t_req.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
t_req.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
t_req.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
t_req.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
t_req.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
t_req.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
t_req.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
t_req.o: ../crypto.h ../opensslv.h asn1.h
t_x509.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
t_x509.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
t_x509.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
t_x509.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
t_x509.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
t_x509.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
t_x509.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
t_x509.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
t_x509.o: ../../include/x509.h ../../include/x509_vfy.h ../../include/x509v3.h
t_x509.o: ../cryptlib.h ../crypto.h ../opensslv.h asn1.h
x_algor.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_algor.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_algor.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_algor.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_algor.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_algor.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_algor.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_algor.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_algor.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_algor.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_attrib.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_attrib.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_attrib.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_attrib.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_attrib.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_attrib.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_attrib.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_attrib.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_attrib.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_attrib.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_cinf.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_cinf.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_cinf.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_cinf.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_cinf.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_cinf.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_cinf.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_cinf.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_cinf.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_cinf.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_crl.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_crl.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_crl.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_crl.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_crl.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_crl.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_crl.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_crl.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_crl.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_crl.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_exten.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_exten.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_exten.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_exten.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_exten.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_exten.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_exten.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_exten.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_exten.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_exten.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_info.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_info.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_info.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_info.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_info.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_info.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_info.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_info.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_info.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_info.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_name.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_name.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_name.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_name.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_name.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_name.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_name.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_name.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_name.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_name.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_pkey.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_pkey.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_pkey.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_pkey.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_pkey.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_pkey.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_pkey.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_pkey.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_pkey.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_pkey.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_pubkey.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_pubkey.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_pubkey.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_pubkey.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_pubkey.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_pubkey.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_pubkey.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_pubkey.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_pubkey.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_pubkey.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_req.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_req.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_req.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_req.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_req.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_req.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_req.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_req.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_req.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_req.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_sig.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_sig.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_sig.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_sig.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_sig.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_sig.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_sig.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_sig.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_sig.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_sig.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_spki.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_spki.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_spki.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_spki.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_spki.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_spki.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_spki.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_spki.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_spki.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_spki.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_val.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_val.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_val.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_val.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_val.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_val.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_val.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_val.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_val.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_val.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h
x_x509.o: ../../include/bio.h ../../include/blowfish.h ../../include/bn.h
x_x509.o: ../../include/buffer.h ../../include/cast.h ../../include/des.h
x_x509.o: ../../include/dh.h ../../include/dsa.h ../../include/e_os.h
x_x509.o: ../../include/err.h ../../include/evp.h ../../include/idea.h
x_x509.o: ../../include/md2.h ../../include/md5.h ../../include/mdc2.h
x_x509.o: ../../include/objects.h ../../include/pkcs7.h ../../include/rc2.h
x_x509.o: ../../include/rc4.h ../../include/rc5.h ../../include/ripemd.h
x_x509.o: ../../include/rsa.h ../../include/sha.h ../../include/stack.h
x_x509.o: ../../include/x509.h ../../include/x509_vfy.h ../cryptlib.h
x_x509.o: ../crypto.h ../opensslv.h asn1.h asn1_mac.h

View File

@@ -68,27 +68,50 @@ int i2d_ASN1_BIT_STRING(a,pp)
ASN1_BIT_STRING *a;
unsigned char **pp;
{
int ret,j,r,bits;
int ret,j,r,bits,len;
unsigned char *p,*d;
if (a == NULL) return(0);
/* our bit strings are always a multiple of 8 :-) */
bits=0;
ret=1+a->length;
len=a->length;
if (len > 0)
{
if (a->flags & ASN1_STRING_FLAG_BITS_LEFT)
{
bits=(int)a->flags&0x07;
}
else
{
for ( ; len > 0; len--)
{
if (a->data[len-1]) break;
}
j=a->data[len-1];
if (j & 0x01) bits=0;
else if (j & 0x02) bits=1;
else if (j & 0x04) bits=2;
else if (j & 0x08) bits=3;
else if (j & 0x10) bits=4;
else if (j & 0x20) bits=5;
else if (j & 0x40) bits=6;
else if (j & 0x80) bits=7;
else bits=0; /* should not happen */
}
}
else
bits=0;
ret=1+len;
r=ASN1_object_size(0,ret,V_ASN1_BIT_STRING);
if (pp == NULL) return(r);
p= *pp;
ASN1_put_object(&p,0,ret,V_ASN1_BIT_STRING,V_ASN1_UNIVERSAL);
if (bits == 0)
j=0;
else j=8-bits;
*(p++)=(unsigned char)j;
*(p++)=(unsigned char)bits;
d=a->data;
memcpy(p,d,a->length);
p+=a->length;
if (a->length > 0) p[-1]&=(0xff<<j);
memcpy(p,d,len);
p+=len;
if (len > 0) p[-1]&=(0xff<<bits);
*pp=p;
return(r);
}
@@ -127,6 +150,12 @@ long length;
if (len < 1) { i=ASN1_R_STRING_TOO_SHORT; goto err; }
i= *(p++);
/* We do this to preserve the settings. If we modify
* the settings, via the _set_bit function, we will recalculate
* on output */
ret->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07); /* clear */
ret->flags|=(ASN1_STRING_FLAG_BITS_LEFT|(i&0x07)); /* set */
if (len-- > 1) /* using one because of the bits left byte */
{
s=(unsigned char *)Malloc((int)len);
@@ -170,6 +199,8 @@ int value;
v=1<<(7-(n&0x07));
iv= ~v;
a->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07); /* clear, set on write */
if (a == NULL) return(0);
if ((a->length < (w+1)) || (a->data == NULL))
{

View File

@@ -79,10 +79,10 @@ long length;
ASN1_BMPSTRING *ret=NULL;
ret=(ASN1_BMPSTRING *)d2i_ASN1_bytes((ASN1_STRING **)a,
pp,length,V_ASN1_BMPSTRING,V_ASN1_UNIVERSAL);
pp,length,V_ASN1_BMPSTRING,V_ASN1_UNIVERSAL);
if (ret == NULL)
{
ASN1err(ASN1_F_D2I_ASN1_BMPSTRING,ASN1_R_ERROR_STACK);
ASN1err(ASN1_F_D2I_ASN1_BMPSTRING,ERR_R_NESTED_ASN1_ERROR);
return(NULL);
}
return(ret);

View File

@@ -60,9 +60,7 @@
#include "cryptlib.h"
#include "asn1_mac.h"
/* ASN1err(ASN1_F_ASN1_TYPE_NEW,ASN1_R_ERROR_STACK);
* ASN1err(ASN1_F_D2I_ASN1_TYPE_BYTES,ASN1_R_ERROR_STACK);
* ASN1err(ASN1_F_D2I_ASN1_TYPE_BYTES,ASN1_R_WRONG_TYPE);
/* ASN1err(ASN1_F_D2I_ASN1_TYPE_BYTES,ASN1_R_WRONG_TYPE);
* ASN1err(ASN1_F_ASN1_COLLATE_PRIMATIVE,ASN1_R_WRONG_TAG);
*/

Some files were not shown because too many files have changed in this diff Show More