Richard Levitte [Sat, 23 Jun 2001 16:25:56 +0000 (16:25 +0000)]
Do not loop i the OpenSSL UI method any more. Instead, letthe
application do that.
NOTE: there's no requirement for other UI_METHODs to avoid this kind
of loop. For example, a GUI UI_METHOD would probably check the
lengths of the answers from within instead of being constantly
redisplayed for everything that is wrong.
Richard Levitte [Sat, 23 Jun 2001 16:22:48 +0000 (16:22 +0000)]
Implement boolean (yes/no or OK/Cancel, ...) input.
Implement UI controls. Current controls are the possibility to output
the OpenSSL error stack on the same channel from within UI_process()
and to check if the same user interface can be redone without being
rebuilt (this is often more a question of philosophy than
technicalities).
Richard Levitte [Sat, 23 Jun 2001 14:51:53 +0000 (14:51 +0000)]
For the UI functions that return an int, 0 or any positive number is a
success return, any negative number is a failure. Make sure we check
the return value with that in mind.
Andy Polyakov [Fri, 22 Jun 2001 19:17:42 +0000 (19:17 +0000)]
This fixes "Spurious test failures on IRIX?" reported in April. Apparently
I was wrong in conclusions about when addition starts overflowing in combaX
routines.
Change all calls to low level digest routines in the library and
applications to use EVP. Add missing calls to HMAC_cleanup() and
don't assume HMAC_CTX can be copied using memcpy().
Note: this is almost identical to the patch submitted to openssl-dev
by Verdon Walker <VWalker@novell.com> except some redundant
EVP_add_digest_()/EVP_cleanup() calls were removed and some changes
made to avoid compiler warnings.
Richard Levitte [Tue, 19 Jun 2001 16:12:18 +0000 (16:12 +0000)]
- Add the possibility to control engines through control names but
with arbitrary arguments instead of just a string.
- Change the key loaders to take a UI_METHOD instead of a callback
function pointer. NOTE: this breaks binary compatibility with
earlier versions of OpenSSL [engine].
- Addapt the nCipher code for these new conditions and add a card
insertion callback.
Richard Levitte [Tue, 19 Jun 2001 15:52:00 +0000 (15:52 +0000)]
Enhance the user interface with better support for dialog box
prompting, application-defined prompts, the possibility to use
defaults (for example default passwords from somewhere else) and
interrupts/cancelations.
Bodo Möller [Mon, 11 Jun 2001 09:54:28 +0000 (09:54 +0000)]
Earlier OpenSSL versions printed prompts to stderr.
In the new crypto/ui/, this was changed into tty (which is usually
/dev/tty), i.e. the FILE * used for reading passwords from the user.
However stdio buffering for read/write streams is not without pitfalls
(passwords would be echoed on some systems).
To avoid problems, split tty into tty_in and tty_out (which are
opened separately).
Richard Levitte [Tue, 5 Jun 2001 19:05:52 +0000 (19:05 +0000)]
A good use of the UI interface is as a password callback replacement
(for new functions...). One might still want to be able to pass down
a user-data pointer to be used by the UI. However, ex_data doesn't
quite cut it, since that means the appropriate index to it might need
to be shared between parts that aren't really related in that sense,
and would require the currently hidden (static) index holders to be
uncovered. Not a good thing. Therefore, add the possibility to add a
user-data pointer to a UI.
Bodo Möller [Fri, 1 Jun 2001 09:41:25 +0000 (09:41 +0000)]
Fix Bleichenbacher PKCS #1 1.5 countermeasure.
(The attack against SSL 3.1 and TLS 1.0 is impractical anyway,
otherwise this would be a security relevant patch.)
Richard Levitte [Wed, 30 May 2001 15:29:28 +0000 (15:29 +0000)]
Extend all the loading functions to take an engine pointer, a pass
string (some engines may have certificates protected by a PIN!) and
a description to put into error messages.
Also, have our own password callback that we can send both a password
and some prompt info to. The default password callback in EVP assumes
that the passed parameter is a password, which isn't always the right
thing, and the ENGINE code (at least the nCipher one) makes other
assumptions...
Also, in spite of having the functions to load keys, some utilities
did the loading all by themselves... That's changed too.
Andy Polyakov [Mon, 28 May 2001 20:02:51 +0000 (20:02 +0000)]
Assembler support for IA-64. See the source code commentary for further
details (performance numbers and accompanying discussions:-). Note that
the code is not engaged in ./Configure yet. I'll add it later this week
along with updates for .spec file.
Richard Levitte [Fri, 25 May 2001 21:08:56 +0000 (21:08 +0000)]
We had the password callback for ENGINEs pretty much wrong. And
passwords that were given to the key loading functions were completely
ignored, at least in the ncipher code, and then we made the assumption
that the callback wanted a prompt as user argument.
All that is now changed, and the application author is forced to give
a callback function of type pem_callback_cb and possibly an argument
for it, just as for all other functions that want to generate password
prompting.
NOTE: this change creates binary and source incompatibilities with
previous versions of OpenSSL [engine]. It's worth it this time, to
get it right (or at least better and with a chance that it'll work).
Add missing variable length cipher flag for Blowfish.
Only use trust settings if either trust or reject settings
are present, otherwise use compatibility mode. This stops
root CAs being rejected if they have alias of keyid set.
For some unknown reason fopen("con", "w") is the
only way to make this work. Using "r+" and "w+"
causes the fopen call to fail and the fallback
(using stdin) doesn't work because writing to stdin
fails.
Richard Levitte [Thu, 17 May 2001 04:16:19 +0000 (04:16 +0000)]
Add a few more details on what one might need. make and a development
environment were a part of a Unix operating systems, but these days
you see an increasing number of installations that do not necessarely
have these crucial parts by default, so it's needs mentioning.
Richard Levitte [Tue, 15 May 2001 05:15:47 +0000 (05:15 +0000)]
Low-case the names of the system routines, since some versions of
DEC C only have them declared that way (it doesn't really matter,
since the linker is case-insensitive by default)