Ben Laurie
2bfb4dbce4
Use up-to-date functions.
2000-07-01 16:25:20 +00:00
Richard Levitte
4e74239cca
Give the user the option to measure real time instead of user CPU time.
2000-06-30 17:16:46 +00:00
Richard Levitte
f365611ca3
Undo the changes I just made. I'm not sure what I was thinking of.
...
The message to everyone is "Do not hack OpenSSL when stressed"...
2000-06-28 16:47:45 +00:00
Richard Levitte
20d242b0de
Make it possible for users of the openssl applications to specify the
...
EGD should be used as seeding input, and where the named socket is.
2000-06-28 16:10:56 +00:00
Bodo Möller
1f4643a2f4
BSD-style MD5-based password algorithm in 'openssl passwd'.
...
(Still needs to be tested against the original using sample passwords
of different length.)
2000-06-23 18:00:16 +00:00
Richard Levitte
431b0cce7d
Move add_oid_section to apps.c, so it can be shared by several
...
applications. Also, have it and the certificate and key loading
functions take a BIO argument for error output.
2000-06-22 22:07:27 +00:00
Richard Levitte
ff4e9d91d9
Change req so the new parameter '-rand file' uses the given file in
...
addition to the file given through the RANDFILE option or environment
variable.
2000-06-22 21:16:01 +00:00
Richard Levitte
90ae4673a5
Move the certificate and key loading functions to apps.c, so they can
...
be shared by several applications.
2000-06-22 17:42:50 +00:00
Richard Levitte
2a98f41708
Forgot the self-documentation within req.
2000-06-22 09:59:21 +00:00
Richard Levitte
ac57d15b75
Small change to accept the command line parameter '-rand file'. This
...
parameter takes precedence over the RANDFILE option in the
configuration file.
2000-06-22 09:13:43 +00:00
Bodo Möller
0f4805f515
Avoid unnecessary links and incomplete program file in apps/.
2000-06-19 17:38:22 +00:00
Dr. Stephen Henson
d3ed8ceb3d
Add support for the modified SGC key format used in IIS.
2000-06-15 23:48:05 +00:00
Geoff Thorpe
1c4f90a05d
Enable DSO support on alpha (OSF1), cc and gcc.
...
Also, "make update" has added some missing functions to libeay.num,
updated the TABLE for the alpha changes, and updated thousands of
dependancies that have changed from recent commits.
2000-06-13 12:59:38 +00:00
Dr. Stephen Henson
a91dedca48
Document EVP routines. Change EVP_SealInit() and EVP_OpenInit()
...
to support multiple calls.
New function to retrieve email address from certificates and
requests.
2000-06-11 12:18:15 +00:00
Bodo Möller
f1d92d941e
Accept -F4 option in lower case, which is what the usage information
...
says one should use.
2000-06-08 22:40:09 +00:00
Bodo Möller
208f3688e0
No need to abort if c_rehash fails here (e.g. because Perl is not where
...
it is expected).
2000-06-07 21:28:15 +00:00
Bodo Möller
b598ea93e7
use consistent indentation
2000-06-07 19:43:44 +00:00
Richard Levitte
26a3a48d65
There have been a number of complaints from a number of sources that names
...
like Malloc, Realloc and especially Free conflict with already existing names
on some operating systems or other packages. That is reason enough to change
the names of the OpenSSL memory allocation macros to something that has a
better chance of being unique, like prepending them with OPENSSL_.
This change includes all the name changes needed throughout all C files.
2000-06-01 22:19:21 +00:00
Richard Levitte
a9ef75c50d
Small fix to enable reading from stdin as well.
...
Contributed by Yoichiro Okabe <okabe@wizsoft.co.jp>
2000-06-01 11:23:20 +00:00
Bodo Möller
d9586857d6
Add required cast.
2000-05-19 12:02:49 +00:00
Dr. Stephen Henson
439df5087f
Fix c_rehash script, add -fingerprint option to crl.
2000-05-18 00:33:00 +00:00
Ben Laurie
5de603abc8
Typesafety Thought Police part 3.
2000-05-16 21:22:45 +00:00
Ben Laurie
f2716dada0
Typesafety Thought Police Part 2.
2000-05-16 19:53:50 +00:00
Ben Laurie
b4604683fa
Typesafety thought police.
2000-05-16 14:38:29 +00:00
Ulf Möller
0e1c06128a
Get rid of more non-ANSI declarations.
2000-05-15 22:54:43 +00:00
Ben Laurie
fd73a2121c
Allow UTCTIME objects to be retrieved. Check for imminent cert expiry.
2000-05-14 12:39:53 +00:00
Dr. Stephen Henson
a331a305e9
Make PKCS#12 code handle missing passwords.
...
Add a couple of FAQs.
2000-05-04 00:08:35 +00:00
Bodo Möller
c4d0df0c4f
Fix a memory leak, and don't generate inappropriate error message
...
when PEM_read_bio_X509_REQ fails.
2000-05-02 20:18:48 +00:00
Bodo Möller
7fc840cc85
Stylistic changes: Don't use a macro for the malloc'ed length since it
...
is not constant.
2000-04-27 09:11:28 +00:00
Bodo Möller
4adcfa052f
Warn about truncation also in the case when a single password is read using
...
the password prompt.
2000-04-27 06:47:23 +00:00
Bodo Möller
e5c84d5152
New function ERR_error_string_n.
2000-04-14 23:36:15 +00:00
Richard Levitte
7a807ad8a7
"make update"
2000-04-09 12:52:40 +00:00
Bodo Möller
1d90f28029
In theory, TLS v1 ciphersuites are not the same as SSL v3 ciphersuites
2000-04-06 22:33:14 +00:00
Bodo Möller
3bc90f2373
Fix typo in -clrext option, but add a compatibility hack because
...
0.9.5a should not break anything that works in 0.9.5.
2000-03-27 18:10:08 +00:00
Ulf Möller
a1a96e54a4
Sample application using RAND_event() to collect entropy from mouse
...
movements, keyboard etc. and write it to a seed file.
2000-03-19 22:58:12 +00:00
Bodo Möller
6e22639f46
Eliminate memory leaks in mem_dbg.c.
2000-03-18 15:18:27 +00:00
Richard Levitte
1f515cfe09
e_os.h: don't do double work with status codes.
...
openssl.c: make damn sure e_os.h knows about OPENSSL_C
2000-03-18 09:09:31 +00:00
Bodo Möller
fb51beb591
Remove CRYPTO_push/pop_info invocations to improve code readability --
...
I hope all memory leaks that may occur here have already been tracked down.
2000-03-14 21:25:39 +00:00
Bodo Möller
cc497fb04a
Avoid a warning.
2000-03-14 16:35:36 +00:00
Richard Levitte
1fff621bd7
Typo corrected
2000-03-14 04:32:24 +00:00
Richard Levitte
8824ec7cd5
Make sure strcmp() gets declared.
2000-03-14 04:09:48 +00:00
Bodo Möller
46c4647e3c
"openssl no-..." commands for avoiding the need to grep
...
"openssl list-standard-commands".
2000-03-13 20:31:46 +00:00
Bodo Möller
863fe2ecac
cleaning up a little
2000-03-12 23:27:14 +00:00
Ulf Möller
cee814f9d5
make update
2000-03-12 12:49:45 +00:00
Richard Levitte
ce301b6b0b
Add the possibility (with -ign_eof) to ignore end of file on input but
...
still not be quiet. Also make it clear that -quiet implicitely means
-ign_eof as well.
2000-03-10 12:18:28 +00:00
Bodo Möller
0dd3989868
Change to code generated by 'dhparam -C':
...
- Move DH parameter components inside the function.
- Automatically #include the required header file if it
has not already been #included.
2000-03-10 12:17:37 +00:00
Bodo Möller
a10c512afa
another typo
2000-03-10 11:47:58 +00:00
Bodo Möller
9f5d2069a4
typo
2000-03-10 11:43:45 +00:00
Dr. Stephen Henson
e743a5134e
Don't Free() password if it was read from config file.
2000-03-09 01:03:44 +00:00
Dr. Stephen Henson
c61252001b
Fix typo and make ca get the CA and request fields correct.
2000-03-08 12:44:10 +00:00
Bodo Möller
de83c12253
Add missing include (only MONOLITH builds were possible without it).
...
Submitted by: Andrew W. Gray
2000-03-05 01:11:44 +00:00
Bodo Möller
cf7fa82897
Read complete seed files given in -rand options.
2000-03-04 17:44:07 +00:00
Bodo Möller
0a150c5c9f
Generate correct error reasons strings for SYSerr.
2000-03-04 01:36:53 +00:00
Bodo Möller
37634c8bc9
Add an #include.
2000-03-03 23:27:56 +00:00
Bodo Möller
bb2276abf7
Avoid potential memory leak in code generated by 'openssl dhparam -C'.
2000-03-03 22:24:43 +00:00
Bodo Möller
41918458c0
New '-dsaparam' option for 'openssl dhparam', and related fixes.
2000-03-03 22:18:19 +00:00
Richard Levitte
a8883854a3
Synchronise
2000-03-02 23:32:47 +00:00
Ulf Möller
99a97051d4
pseudo-seed for the PRNG before testing DSA
2000-03-01 17:42:06 +00:00
Bodo Möller
afbd0746cf
'rand'/'-rand' documentation.
2000-03-01 11:45:53 +00:00
Bodo Möller
55f7d65db0
Document the 'rand' application.
2000-03-01 07:57:25 +00:00
Bodo Möller
27b782732f
'rand' application for creating pseudo-random files.
2000-02-29 23:47:01 +00:00
Ulf Möller
c9e1fe33be
Fix for non-monolithic build.
...
Submitted by: Andrew Gray <agray@iconsinc.com>
2000-02-28 20:16:06 +00:00
Richard Levitte
cde28e18bf
New logical names to skip algorithms are now supported.
2000-02-27 10:41:31 +00:00
Bodo Möller
6d0d5431d4
More get0 et al. changes. Also provide fgrep targets in CHANGES
...
where the new functions are mentioned.
2000-02-26 08:36:46 +00:00
Richard Levitte
cb464c38b2
The OpenVMS library is most definitely not built for anything but
...
files, unless it's all in unixly syntax. We can't guarantee that
right now, so let's skip the whole test suit. There are other places
(like the open()) where errors are detected anyway.
2000-02-26 03:53:58 +00:00
Dr. Stephen Henson
c7cb16a8ff
Rename functions for new convention.
2000-02-26 01:55:33 +00:00
Richard Levitte
1b8b0a8294
Correct small typo
2000-02-26 00:18:48 +00:00
Richard Levitte
3e0f27f3c9
Changes to synchronise with Unix.
...
(actually, much more is needed, like a real config script)
2000-02-25 20:37:46 +00:00
Ulf Möller
fea217f96f
EGD bugfix.
...
Submitted by: Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE>
2000-02-25 14:16:43 +00:00
Ralf S. Engelschall
07fb39c32e
Make gcc 2.95.2 happy here, too.
2000-02-24 10:37:58 +00:00
Ulf Möller
4ec2d4d2b3
Support EGD.
2000-02-24 02:51:47 +00:00
Dr. Stephen Henson
4b42658082
Make pkcs8 work again.
...
Make EVP_CIPHER_type() return NID_undef if the cipher has no
ASN1 OID, modify code to handle this.
2000-02-22 18:45:11 +00:00
Bodo Möller
a2a0158959
Fix some bugs and document others
2000-02-21 17:09:54 +00:00
Ulf Möller
4ec19e203c
Fix gcc warnings.
2000-02-20 20:59:21 +00:00
Dr. Stephen Henson
ae1bb4e572
Add -clrext option to 'x509'
2000-02-19 00:46:02 +00:00
Bodo Möller
a91451ef13
add missing 'static'
2000-02-18 10:39:40 +00:00
Dr. Stephen Henson
8a208cba97
New functions and option to use NEW in certificate requests.
2000-02-18 00:54:21 +00:00
Bodo Möller
73c5591944
Casts now unnecessary because of changed prototype.
2000-02-17 18:36:21 +00:00
Dr. Stephen Henson
cd3c54e50f
Add -pass argument to 'enc'.
...
Fix to make Win32 compile work again.
2000-02-17 00:41:43 +00:00
Dr. Stephen Henson
a3fe382e2d
Pass phrase reorganisation.
2000-02-16 23:16:01 +00:00
Ben Laurie
bd44570322
Fix signed/unsigned warnings.
2000-02-16 12:09:17 +00:00
Richard Levitte
207c7df746
Remove the access() call altogether for VMS, since it doesn't quite
...
work for directory specifications (this will be reported as a bug to
DEC^H^H^HCompaq). It could as well be removed for all others as well,
since stat() and open() will return appropriate errors as well, but I
leave that to someone else to decide.
2000-02-15 09:44:54 +00:00
Dr. Stephen Henson
d13e4eb0b5
Make pkcs12 and smime applications seed random number
...
generator (otherwise they don't work) and add -rand
option. Update docs.
2000-02-12 03:03:04 +00:00
Richard Levitte
07fc35519e
A hack to make sure access() will give us the correct answer about the
...
accessability of an "empty" directory. Thsi *is* weird, and a better
solution will be provided in apps/ca.c, when I get time to hack at it.
2000-02-11 18:12:47 +00:00
Bodo Möller
3ebf0be142
Corrections.
2000-02-11 17:18:50 +00:00
Bodo Möller
cbcc5c01f9
Update.
2000-02-11 16:31:04 +00:00
Bodo Möller
e6e7b5f3df
Implement MD5-based "apr1" password hash.
2000-02-11 16:25:44 +00:00
Ben Laurie
efb416299f
Fix shadow.
2000-02-11 13:11:18 +00:00
Richard Levitte
f6814ea43a
Add compilation of the new passwd utility.
2000-02-11 11:21:50 +00:00
Ralf S. Engelschall
667ac4ec6a
Make gcc 2.95.2 happy again, even under ``-Wall -Wshadow -Wpointer-arith -Wcast-align
...
-Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline''.
2000-02-11 09:47:18 +00:00
Bodo Möller
bb325c7d6a
'passwd' tool.
2000-02-10 21:50:52 +00:00
Dr. Stephen Henson
f07fb9b24b
Add command line password options to the reamining utilities,
...
amend docs.
2000-02-08 01:34:59 +00:00
Bodo Möller
8652d1c22e
Memory leak.
2000-02-06 02:48:53 +00:00
Bodo Möller
e290c7d4e0
Correction: openssl.c must get the long version of the apps_startup()
...
macro
2000-02-05 21:39:20 +00:00
Bodo Möller
29a28ee503
Cosmetic changes.
2000-02-05 21:28:09 +00:00
Dr. Stephen Henson
66430207a4
Add support for some broken PKCS#8 formats.
2000-02-05 21:07:56 +00:00
Dr. Stephen Henson
af57d84312
Rename SSLeay_add_all_algorithms() et al to
...
OpenSSL_add_all_algorithms(). Move these into
separate files so they work properly.
2000-02-04 14:01:38 +00:00
Ulf Möller
657e60fa00
ispell (and minor modifications)
2000-02-03 23:23:24 +00:00
Dr. Stephen Henson
82fc1d9c28
Add new -notext option to 'ca', -pubkey option to spkac.
...
Remove some "WTF??" casts from applications.
Fixes to keep VC++ happy and avoid warnings.
Docs tidy.
2000-02-03 02:56:48 +00:00
Ulf Möller
51ca375e7e
Seek out and destroy another evil cast.
2000-01-30 23:33:40 +00:00
Ulf Möller
9d1a01be8f
Source code cleanups: Use void * rather than char * in lhash,
...
eliminate some of the -Wcast-qual warnings (debug-ben-strict target)
2000-01-30 22:20:28 +00:00
Richard Levitte
1f36fe2835
Synchronise with Unix code
2000-01-28 12:15:20 +00:00
Dr. Stephen Henson
90644dd74d
New -pkcs12 option to CA.pl.
...
Document CA.pl script.
Initialise and free up the extra DH fields
(nothing uses them yet though).
2000-01-28 01:35:31 +00:00
Bodo Möller
05ccd698b9
RAND_load_file(..., -1) now means "read the complete file";
...
this is what we now use to read $RANDFILE / $HOME/.rnd.
(Previously, after 'cat'ting lots of stuff into .rnd
only the first MB would be looked at.)
Bugfix for apps/enc.c: Continue if RAND_pseudo_bytes returns 0
(only -1 is an error).
2000-01-24 10:03:24 +00:00
Bodo Möller
f13b93d3b4
RAND_pseudo_bytes is good enough for encryption IVs,
...
we should not need RAND_bytes (and we cannot use the latter
unless we load a seed file)
2000-01-24 09:32:20 +00:00
Dr. Stephen Henson
fabce04122
Make s_server, s_client check cipher list return codes.
...
Update docs.
2000-01-23 02:28:08 +00:00
Ulf Möller
2a99e8b9df
dh renamed to dhparam
2000-01-22 21:26:52 +00:00
Dr. Stephen Henson
09483c58e3
Add new program dhparam and update docs.
2000-01-22 13:58:29 +00:00
Dr. Stephen Henson
018e57c74d
Apply Lutz Behnke's 56 bit cipher patch with a few
...
minor changes.
Docs haven't been added at this stage. They are probably
best included in the 'ciphers' program docs.
2000-01-22 03:17:06 +00:00
Bodo Möller
033db22d57
add ERR_print_errors after "end" label.
2000-01-21 11:30:52 +00:00
Dr. Stephen Henson
8100490a72
Make -CAcreateserial start from 1 instead of 0 for
...
serial numbers.
2000-01-21 02:42:14 +00:00
Ulf Möller
e7f97e2d22
Check RAND_bytes() return value or use RAND_pseudo_bytes().
2000-01-21 01:15:56 +00:00
Dr. Stephen Henson
6e6bc352b1
Finish off the X509_ATTRIBUTE string stuff.
2000-01-20 01:37:17 +00:00
Richard Levitte
b058a08085
It doesn't make sense to try see if these variables are negative, since they're unsigned.
2000-01-17 00:49:52 +00:00
Ulf Möller
aa82db4fb4
Add missing #ifndefs that caused missing symbols when building libssl
...
as a shared library without RSA. Use #ifndef NO_SSL2 instead of
NO_RSA in ssl/s2*.c.
Submitted by: Kris Kennaway <kris@hub.freebsd.org>
Modified by Ulf Möller
2000-01-16 21:10:00 +00:00
Ulf Möller
373b575f5a
New function RAND_pseudo_bytes() generated pseudorandom numbers that
...
are not guaranteed to be unpredictable.
2000-01-16 15:58:17 +00:00
Bodo Möller
4fd2ead09d
Enable memory checking earlier (we correctly free everything
...
except for the BIO through which we print the memory leak list,
and the leak printing function ignores this one block).
2000-01-15 03:08:52 +00:00
Bodo Möller
11afb40c01
Use CRYPTO_push_info to track down memory leak
...
(only the CRYPTO_push_info's in the apps/ directory
are included in the CVS commit, not all those I used
in crypto/)
2000-01-13 22:52:52 +00:00
Bodo Möller
2c736d077b
slightly change usage information
2000-01-13 21:36:06 +00:00
Bodo Möller
a873356c00
Use CRYPTO_push_info to find a memory leak in pkcs12.c.
2000-01-13 21:10:43 +00:00
Dr. Stephen Henson
25f923ddd1
New function X509_CTX_rget_chain(), make SSL_SESSION_print() display return code.
...
Remove references to 'TXT' in -inform and -outform switches.
2000-01-09 14:21:40 +00:00
Ben Laurie
752d706aaf
Make NO_RSA compile with pedantic.
2000-01-08 21:06:24 +00:00
Dr. Stephen Henson
c3ed3b6eab
Add -prexit command to s_client and patch some BIO
...
functions so it doesn't crash. Document s_client.
2000-01-08 19:05:47 +00:00
Dr. Stephen Henson
ef7eaa4cb0
Manpages for the DH utils and fix for a memory leak in dh program
2000-01-08 13:36:17 +00:00
Dr. Stephen Henson
dad666fbbe
Add PKCS#12 manpage and use MAC iteration counts by default.
2000-01-08 03:16:04 +00:00
Bodo Möller
918a8a16fa
CA.pl is now generated automatically (using CA.pl.in as input)
2000-01-07 13:06:28 +00:00
Bodo Möller
d2b6c3f31f
apps/openssl.cnf and the documentation say it's "nombstr",
...
but crypto/asn1/a_strnid.c had "nombchar".
2000-01-07 13:05:41 +00:00
Bodo Möller
63da21c01b
make no-des and no-rc2 work.
2000-01-07 12:15:54 +00:00
Dr. Stephen Henson
35f4850ae0
More X509_ATTRIBUTE changes.
2000-01-07 00:55:54 +00:00
Dr. Stephen Henson
b38f9f66c3
Initial automation changes to 'req' and X509_ATTRIBUTE functions.
2000-01-06 01:26:48 +00:00
Bodo Möller
3a4f14f3d1
Rename CA.pl to CA.pl.in (no actual changes), and let Configure
...
set the #! line with the path to Perl.
Submitted by: Peter Jones
2000-01-05 01:31:22 +00:00
Dr. Stephen Henson
20432eae41
Fix some of the command line password stuff. New function
...
that can automatically determine the type of a DER encoded
"traditional" format private key and change some of the
d2i functions to use it instead of requiring the application
to work out the key type.
2000-01-01 16:42:49 +00:00
Dr. Stephen Henson
6447cce372
Simplify the trust structure: basically zap the bit strings and
...
represent everything by OIDs.
1999-12-29 00:40:28 +00:00
Dr. Stephen Henson
36217a9424
Allow passwords to be included on command line for a few
...
more utilities.
1999-12-24 23:53:57 +00:00
Dr. Stephen Henson
12aefe78f0
Fixes so NO_RSA works again.
1999-12-24 17:26:33 +00:00
Dr. Stephen Henson
525f51f6c9
Add PKCS#8 utility functions and add PBE options.
1999-12-23 02:02:42 +00:00
Bodo Möller
2b6313d0da
Rename
...
CRYPTO_add_info => CRYPTO_push_info
CRYPTO_remove_info => CRYPTO_pop_info
in the hope that these names are more descriptive;
and "make update".
1999-12-18 13:51:47 +00:00
Bodo Möller
75acc288ca
fix typos and other little errors ...
1999-12-18 13:25:45 +00:00
Bodo Möller
03c48fa07b
Avoid shadowing p to make the compiler happy.
1999-12-18 05:16:30 +00:00
Bodo Möller
3db1f2d5be
Add a comment.
1999-12-18 00:30:32 +00:00
Bodo Möller
e8f48dbacc
Add missing semicolon to make compiler happy, and switch back
...
from MemCheck_start() to CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON)
because that is what applications should use
(MemCheck_start/stop never really worked for applications
unless CRYPTO_MDEBUG was defined both when compiling the library
and when compiling the application, so probably we should
get rid of it).
1999-12-18 00:28:21 +00:00
Richard Levitte
1ad9bdf253
Use MemCheck_start() instead of CRYPTO_mem_ctrl(), and generate a small leak to test (conditional)
1999-12-17 12:50:06 +00:00
Richard Levitte
8a1580096b
Synchronise VMS scripts with Unix Makefiles
1999-12-16 19:57:50 +00:00
Dr. Stephen Henson
55f30198ad
Various S/MIME fixes. Fix for memory leak, recipient list bug
...
and not excluding parameters with DSA keys.
1999-12-14 02:44:27 +00:00
Dr. Stephen Henson
e3775a33c1
Make the PKCS#7 S/MIME functions check for passed NULL pointers.
...
Fix the usage message of smime utility and sanitise the return
codes.
Add some documentation.
1999-12-09 01:31:32 +00:00
Dr. Stephen Henson
a2121e0aee
Add i2d_ASN1_PRINTABLESTRING() function, and do 'make update'
1999-12-08 00:56:15 +00:00
Dr. Stephen Henson
55ec5861c8
Modify S/MIME application so the -signer option writes the signer(s)
...
to a file if we are verifying.
1999-12-07 02:35:52 +00:00
Dr. Stephen Henson
5a9a4b299c
Merge in my S/MIME library and utility.
1999-12-05 00:40:59 +00:00
Bodo Möller
cddfe788fb
Add functions des_set_key_checked, des_set_key_unchecked.
...
Never use des_set_key (it depends on the global variable des_check_key),
but usually des_set_key_unchecked.
Only destest.c bothered to look at the return values of des_set_key,
but it did not set des_check_key -- if it had done so,
most checks would have failed because of wrong parity and
because of weak keys.
1999-12-03 20:24:21 +00:00
Dr. Stephen Henson
dd4134101f
Change the trust and purpose code so it doesn't need init
...
either and has a static and dynamic mix.
1999-12-02 02:33:56 +00:00