PR: 1894
Submitted by: Ger Hobbelt <ger@hobbelt.com> Approved by: steve@openssl.org Fix various typos and stuff.
This commit is contained in:
parent
a5cc69c7ae
commit
9990cb75c1
@ -148,7 +148,7 @@ eric (about to go bushwalking for the 4 day easter break :-)
|
|||||||
This would tend to cause memory overwrites since SSLv3 has
|
This would tend to cause memory overwrites since SSLv3 has
|
||||||
a maximum packet size of 16k. If your program uses
|
a maximum packet size of 16k. If your program uses
|
||||||
buffers <= 16k, you would probably never see this problem.
|
buffers <= 16k, you would probably never see this problem.
|
||||||
- Fixed a new errors that were cause by malloc() not returning
|
- Fixed a few errors that were cause by malloc() not returning
|
||||||
0 initialised memory..
|
0 initialised memory..
|
||||||
- SSL_OP_NETSCAPE_CA_DN_BUG was being switched on when using
|
- 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
|
SSL_CTX_set_options(ssl_ctx,SSL_OP_ALL); which was a bad thing
|
||||||
|
@ -704,7 +704,7 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
if (secret_key && !secret_keyid)
|
if (secret_key && !secret_keyid)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "No sectre key id\n");
|
BIO_printf(bio_err, "No secret key id\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -671,7 +671,7 @@ static int MS_CALLBACK ssl_servername_cb(SSL *s, int *ad, void *arg)
|
|||||||
return p->extension_error;
|
return p->extension_error;
|
||||||
if (ctx2)
|
if (ctx2)
|
||||||
{
|
{
|
||||||
BIO_printf(p->biodebug,"Swiching server context.\n");
|
BIO_printf(p->biodebug,"Switching server context.\n");
|
||||||
SSL_set_SSL_CTX(s,ctx2);
|
SSL_set_SSL_CTX(s,ctx2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -205,7 +205,7 @@ int CRYPTO_get_new_lockid(char *name)
|
|||||||
#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN16)
|
#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN16)
|
||||||
/* A hack to make Visual C++ 5.0 work correctly when linking as
|
/* A hack to make Visual C++ 5.0 work correctly when linking as
|
||||||
* a DLL using /MT. Without this, the application cannot use
|
* a DLL using /MT. Without this, the application cannot use
|
||||||
* and floating point printf's.
|
* any floating point printf's.
|
||||||
* It also seems to be needed for Visual C 1.5 (win16) */
|
* It also seems to be needed for Visual C 1.5 (win16) */
|
||||||
SSLeay_MSVC5_hack=(double)name[0]*(double)name[1];
|
SSLeay_MSVC5_hack=(double)name[0]*(double)name[1];
|
||||||
#endif
|
#endif
|
||||||
|
@ -787,7 +787,7 @@ void CRYPTO_mem_leaks(BIO *b)
|
|||||||
* XXX This should be in CRYPTO_mem_leaks_cb,
|
* XXX This should be in CRYPTO_mem_leaks_cb,
|
||||||
* and CRYPTO_mem_leaks should be implemented by
|
* and CRYPTO_mem_leaks should be implemented by
|
||||||
* using CRYPTO_mem_leaks_cb.
|
* using CRYPTO_mem_leaks_cb.
|
||||||
* (Also their should be a variant of lh_doall_arg
|
* (Also there should be a variant of lh_doall_arg
|
||||||
* that takes a function pointer instead of a void *;
|
* that takes a function pointer instead of a void *;
|
||||||
* this would obviate the ugly and illegal
|
* this would obviate the ugly and illegal
|
||||||
* void_fn_to_char kludge in CRYPTO_mem_leaks_cb.
|
* void_fn_to_char kludge in CRYPTO_mem_leaks_cb.
|
||||||
|
@ -382,7 +382,7 @@
|
|||||||
#endif /* defined OPENSSL_SYS_VMS */
|
#endif /* defined OPENSSL_SYS_VMS */
|
||||||
|
|
||||||
|
|
||||||
/* Case insensiteve linking causes problems.... */
|
/* Case insensitive linking causes problems.... */
|
||||||
#if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2)
|
#if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2)
|
||||||
#undef ERR_load_CRYPTO_strings
|
#undef ERR_load_CRYPTO_strings
|
||||||
#define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings
|
#define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings
|
||||||
|
@ -152,7 +152,7 @@ static int set_dist_point_name(DIST_POINT_NAME **pdp, X509V3_CTX *ctx,
|
|||||||
sk_X509_NAME_ENTRY_num(rnm) - 1)->set)
|
sk_X509_NAME_ENTRY_num(rnm) - 1)->set)
|
||||||
{
|
{
|
||||||
X509V3err(X509V3_F_SET_DIST_POINT_NAME,
|
X509V3err(X509V3_F_SET_DIST_POINT_NAME,
|
||||||
X509V3_R_INVAID_MULTIPLE_RDNS);
|
X509V3_R_INVALID_MULTIPLE_RDNS);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ static int process_pci_value(CONF_VALUE *val,
|
|||||||
{
|
{
|
||||||
if (*language)
|
if (*language)
|
||||||
{
|
{
|
||||||
X509V3err(X509V3_F_PROCESS_PCI_VALUE,X509V3_R_POLICY_LANGUAGE_ALREADTY_DEFINED);
|
X509V3err(X509V3_F_PROCESS_PCI_VALUE,X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED);
|
||||||
X509V3_conf_err(val);
|
X509V3_conf_err(val);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -97,7 +97,7 @@ static int process_pci_value(CONF_VALUE *val,
|
|||||||
{
|
{
|
||||||
if (*pathlen)
|
if (*pathlen)
|
||||||
{
|
{
|
||||||
X509V3err(X509V3_F_PROCESS_PCI_VALUE,X509V3_R_POLICY_PATH_LENGTH_ALREADTY_DEFINED);
|
X509V3err(X509V3_F_PROCESS_PCI_VALUE,X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED);
|
||||||
X509V3_conf_err(val);
|
X509V3_conf_err(val);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ Writes to memory BIOs will always succeed if memory is available: that is
|
|||||||
their size can grow indefinitely.
|
their size can grow indefinitely.
|
||||||
|
|
||||||
Every read from a read write memory BIO will remove the data just read with
|
Every read from a read write memory BIO will remove the data just read with
|
||||||
an internal copy operation, if a BIO contains a lots of data and it is
|
an internal copy operation, if a BIO contains a lot of data and it is
|
||||||
read in small chunks the operation can be very slow. The use of a read only
|
read in small chunks the operation can be very slow. The use of a read only
|
||||||
memory BIO avoids this problem. If the BIO must be read write then adding
|
memory BIO avoids this problem. If the BIO must be read write then adding
|
||||||
a buffering BIO to the chain will speed up the process.
|
a buffering BIO to the chain will speed up the process.
|
||||||
|
@ -20,7 +20,7 @@ don't do that.
|
|||||||
==== readme ========================================================
|
==== readme ========================================================
|
||||||
|
|
||||||
This is the old 0.6.6 docuementation. Most of the cipher stuff is still
|
This is the old 0.6.6 docuementation. Most of the cipher stuff is still
|
||||||
relevent but I'm working (very slowly) on new docuemtation.
|
relevent but I'm working (very slowly) on new documentation.
|
||||||
The current version can be found online at
|
The current version can be found online at
|
||||||
|
|
||||||
http://www.cryptsoft.com/ssleay/doc
|
http://www.cryptsoft.com/ssleay/doc
|
||||||
@ -548,8 +548,8 @@ application, ssleay. This one program is composed of many programs that
|
|||||||
can all be compiled independantly.
|
can all be compiled independantly.
|
||||||
|
|
||||||
ssleay has 3 modes of operation.
|
ssleay has 3 modes of operation.
|
||||||
1) If the ssleay binaray has the name of one of its component programs, it
|
1) If the ssleay binary has the name of one of its component programs, it
|
||||||
executes that program and then exits. This can be achieve by using hard or
|
executes that program and then exits. This can be achieved by using hard or
|
||||||
symbolic links, or failing that, just renaming the binary.
|
symbolic links, or failing that, just renaming the binary.
|
||||||
2) If the first argument to ssleay is the name of one of the component
|
2) If the first argument to ssleay is the name of one of the component
|
||||||
programs, that program runs that program and then exits.
|
programs, that program runs that program and then exits.
|
||||||
@ -1185,7 +1185,7 @@ typedef struct bio_st
|
|||||||
example is for BIO_s_sock(). A socket needs to be
|
example is for BIO_s_sock(). A socket needs to be
|
||||||
assigned to the BIO before it can be used.
|
assigned to the BIO before it can be used.
|
||||||
- 'shutdown', this flag indicates if the underlying
|
- 'shutdown', this flag indicates if the underlying
|
||||||
comunication primative being used should be closed/freed
|
communication primitive being used should be closed/freed
|
||||||
when the BIO is closed.
|
when the BIO is closed.
|
||||||
- 'flags' is used to hold extra state. It is primarily used
|
- 'flags' is used to hold extra state. It is primarily used
|
||||||
to hold information about why a non-blocking operation
|
to hold information about why a non-blocking operation
|
||||||
@ -1799,7 +1799,7 @@ int BN_set_word(BIGNUM *a, unsigned long w);
|
|||||||
|
|
||||||
unsigned long BN_get_word(BIGNUM *a);
|
unsigned long BN_get_word(BIGNUM *a);
|
||||||
Returns 'a' in an unsigned long. Not remarkably, often 'a' will
|
Returns 'a' in an unsigned long. Not remarkably, often 'a' will
|
||||||
be biger than a word, in which case 0xffffffffL is returned.
|
be bigger than a word, in which case 0xffffffffL is returned.
|
||||||
|
|
||||||
Word Operations
|
Word Operations
|
||||||
These functions are much more efficient that the normal bignum arithmetic
|
These functions are much more efficient that the normal bignum arithmetic
|
||||||
@ -2058,7 +2058,7 @@ Now you will notice that macros like
|
|||||||
PEM_ASN1_write((int (*)())i2d_X509,PEM_STRING_X509,fp, \
|
PEM_ASN1_write((int (*)())i2d_X509,PEM_STRING_X509,fp, \
|
||||||
(char *)x, NULL,NULL,0,NULL)
|
(char *)x, NULL,NULL,0,NULL)
|
||||||
Don't do encryption normally. If you want to PEM encrypt your X509 structure,
|
Don't do encryption normally. If you want to PEM encrypt your X509 structure,
|
||||||
either just call PEM_ASN1_write directly or just define you own
|
either just call PEM_ASN1_write directly or just define your own
|
||||||
macro variant. As you can see, this macro just sets all encryption related
|
macro variant. As you can see, this macro just sets all encryption related
|
||||||
parameters to NULL.
|
parameters to NULL.
|
||||||
|
|
||||||
@ -5566,7 +5566,7 @@ These 2 functions create and destroy SSL_CTX structures
|
|||||||
|
|
||||||
The SSL_CTX has a session_cache_mode which is by default,
|
The SSL_CTX has a session_cache_mode which is by default,
|
||||||
in SSL_SESS_CACHE_SERVER mode. What this means is that the library
|
in SSL_SESS_CACHE_SERVER mode. What this means is that the library
|
||||||
will automatically add new session-id's to the cache apon sucsessful
|
will automatically add new session-id's to the cache upon successful
|
||||||
SSL_accept() calls.
|
SSL_accept() calls.
|
||||||
If SSL_SESS_CACHE_CLIENT is set, then client certificates are also added
|
If SSL_SESS_CACHE_CLIENT is set, then client certificates are also added
|
||||||
to the cache.
|
to the cache.
|
||||||
@ -5580,12 +5580,12 @@ SSL_SESS_NO_CACHE_BOTH - Either SSL_accept() or SSL_connect().
|
|||||||
If SSL_SESS_CACHE_NO_AUTO_CLEAR is set, old timed out sessions are
|
If SSL_SESS_CACHE_NO_AUTO_CLEAR is set, old timed out sessions are
|
||||||
not automatically removed each 255, SSL_connect()s or SSL_accept()s.
|
not automatically removed each 255, SSL_connect()s or SSL_accept()s.
|
||||||
|
|
||||||
By default, apon every 255 successful SSL_connect() or SSL_accept()s,
|
By default, upon every 255 successful SSL_connect() or SSL_accept()s,
|
||||||
the cache is flush. Please note that this could be expensive on
|
the cache is flush. Please note that this could be expensive on
|
||||||
a heavily loaded SSL server, in which case, turn this off and
|
a heavily loaded SSL server, in which case, turn this off and
|
||||||
clear the cache of old entries 'manually' (with one of the functions
|
clear the cache of old entries 'manually' (with one of the functions
|
||||||
listed below) every few hours. Perhaps I should up this number, it is hard
|
listed below) every few hours. Perhaps I should up this number, it is hard
|
||||||
to say. Remember, the '255' new calls is just a mechanims to get called
|
to say. Remember, the '255' new calls is just a mechanism to get called
|
||||||
every now and then, in theory at most 255 new session-id's will have been
|
every now and then, in theory at most 255 new session-id's will have been
|
||||||
added but if 100 are added every minute, you would still have
|
added but if 100 are added every minute, you would still have
|
||||||
500 in the cache before any would start being flushed (assuming a 3 minute
|
500 in the cache before any would start being flushed (assuming a 3 minute
|
||||||
@ -5628,10 +5628,10 @@ if copy is 1. Otherwise, the reference count is not modified.
|
|||||||
void SSL_CTX_sess_set_get_cb(ctx,cb) sets the callback and
|
void SSL_CTX_sess_set_get_cb(ctx,cb) sets the callback and
|
||||||
int (*cb)()SSL_CTX_sess_get_get_cb(ctx) returns the callback.
|
int (*cb)()SSL_CTX_sess_get_get_cb(ctx) returns the callback.
|
||||||
|
|
||||||
These callbacks are basically indended to be used by processes to
|
These callbacks are basically intended to be used by processes to
|
||||||
send their session-id's to other processes. I currently have not implemented
|
send their session-id's to other processes. I currently have not implemented
|
||||||
non-blocking semantics for these callbacks, it is upto the appication
|
non-blocking semantics for these callbacks, it is upto the application
|
||||||
to make the callbacks effiecent if they require blocking (perhaps
|
to make the callbacks efficient if they require blocking (perhaps
|
||||||
by 'saving' them and then 'posting them' when control returns from
|
by 'saving' them and then 'posting them' when control returns from
|
||||||
the SSL_accept().
|
the SSL_accept().
|
||||||
|
|
||||||
@ -6589,7 +6589,7 @@ This information can be used to recall the functions when the 'error'
|
|||||||
condition has dissapeared.
|
condition has dissapeared.
|
||||||
|
|
||||||
After the connection has been made, information can be retrived about the
|
After the connection has been made, information can be retrived about the
|
||||||
SSL session and the session-id values that have been decided apon.
|
SSL session and the session-id values that have been decided upon.
|
||||||
The 'peer' certificate can be retrieved.
|
The 'peer' certificate can be retrieved.
|
||||||
|
|
||||||
The session-id values include
|
The session-id values include
|
||||||
|
8
e_os.h
8
e_os.h
@ -112,7 +112,7 @@ extern "C" {
|
|||||||
/********************************************************************
|
/********************************************************************
|
||||||
The Microsoft section
|
The Microsoft section
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
/* The following is used becaue of the small stack in some
|
/* The following is used because of the small stack in some
|
||||||
* Microsoft operating systems */
|
* Microsoft operating systems */
|
||||||
#if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYSNAME_WIN32)
|
#if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYSNAME_WIN32)
|
||||||
# define MS_STATIC static
|
# define MS_STATIC static
|
||||||
@ -275,14 +275,14 @@ extern "C" {
|
|||||||
# if !defined(OPENSSL_NO_SOCK) && defined(_WIN32_WINNT)
|
# if !defined(OPENSSL_NO_SOCK) && defined(_WIN32_WINNT)
|
||||||
/*
|
/*
|
||||||
* Just like defining _WIN32_WINNT including winsock2.h implies
|
* Just like defining _WIN32_WINNT including winsock2.h implies
|
||||||
* certain "discipline" for maintaing [broad] binary compatibility.
|
* certain "discipline" for maintaining [broad] binary compatibility.
|
||||||
* As long as structures are invariant among Winsock versions,
|
* As long as structures are invariant among Winsock versions,
|
||||||
* it's sufficient to check for specific Winsock2 API availability
|
* it's sufficient to check for specific Winsock2 API availability
|
||||||
* at run-time [DSO_global_lookup is recommended]...
|
* at run-time [DSO_global_lookup is recommended]...
|
||||||
*/
|
*/
|
||||||
# include <winsock2.h>
|
# include <winsock2.h>
|
||||||
# include <ws2tcpip.h>
|
# include <ws2tcpip.h>
|
||||||
/* yes, they have to be #included prior <windows.h> */
|
/* yes, they have to be #included prior to <windows.h> */
|
||||||
# endif
|
# endif
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
@ -372,7 +372,7 @@ static unsigned int _strlen31(const char *str)
|
|||||||
# define DEFAULT_HOME "C:"
|
# define DEFAULT_HOME "C:"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#else /* The non-microsoft world world */
|
#else /* The non-microsoft world */
|
||||||
|
|
||||||
# ifdef OPENSSL_SYS_VMS
|
# ifdef OPENSSL_SYS_VMS
|
||||||
# define VMS 1
|
# define VMS 1
|
||||||
|
2
e_os2.h
2
e_os2.h
@ -262,7 +262,7 @@ extern "C" {
|
|||||||
#define OPENSSL_EXTERN OPENSSL_IMPORT
|
#define OPENSSL_EXTERN OPENSSL_IMPORT
|
||||||
|
|
||||||
/* Macros to allow global variables to be reached through function calls when
|
/* Macros to allow global variables to be reached through function calls when
|
||||||
required (if a shared library version requvres it, for example.
|
required (if a shared library version requires it, for example.
|
||||||
The way it's done allows definitions like this:
|
The way it's done allows definitions like this:
|
||||||
|
|
||||||
// in foobar.c
|
// in foobar.c
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
/* Computes Diffie-Hellman key and stores it into buffer in
|
/* Computes Diffie-Hellman key and stores it into buffer in
|
||||||
* little-endian byte order as expected by both versions of GOST 94
|
* little-endian byte order as expected by both versions of GOST 94
|
||||||
* algorigthm
|
* algorithm
|
||||||
*/
|
*/
|
||||||
static int compute_pair_key_le(unsigned char *pair_key,BIGNUM *pub_key,DH *dh)
|
static int compute_pair_key_le(unsigned char *pair_key,BIGNUM *pub_key,DH *dh)
|
||||||
{
|
{
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* Copyright (c) 2005-2006 Cryptocom LTD *
|
* Copyright (c) 2005-2006 Cryptocom LTD *
|
||||||
* This file is distributed under the same license as OpenSSL *
|
* This file is distributed under the same license as OpenSSL *
|
||||||
* *
|
* *
|
||||||
* Implementation of GOST R 34.10-94 signature algoritgthm *
|
* Implementation of GOST R 34.10-94 signature algorithm *
|
||||||
* for OpenSSL *
|
* for OpenSSL *
|
||||||
* Requires OpenSSL 0.9.9 for compilation *
|
* Requires OpenSSL 0.9.9 for compilation *
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
@ -4,7 +4,7 @@ to build with visual C++ 4.[01].
|
|||||||
|
|
||||||
The results will be in the out directory.
|
The results will be in the out directory.
|
||||||
|
|
||||||
These makefiles and def files were generated my typing
|
These makefiles and def files were generated by typing
|
||||||
|
|
||||||
perl util\mk1mf.pl VC-NT >ms/nt.mak
|
perl util\mk1mf.pl VC-NT >ms/nt.mak
|
||||||
perl util\mk1mf.pl VC-NT dll >ms/ntdll.mak
|
perl util\mk1mf.pl VC-NT dll >ms/ntdll.mak
|
||||||
|
@ -655,7 +655,7 @@ static int ssl3_handshake_mac(SSL *s, int md_nid,
|
|||||||
if (!ssl3_digest_cached_records(s))
|
if (!ssl3_digest_cached_records(s))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Search for djgest of specified type in the handshake_dgst
|
/* Search for digest of specified type in the handshake_dgst
|
||||||
* array*/
|
* array*/
|
||||||
for (i=0;i<SSL_MAX_DIGEST;i++)
|
for (i=0;i<SSL_MAX_DIGEST;i++)
|
||||||
{
|
{
|
||||||
|
@ -837,8 +837,7 @@ int ssl3_write_pending(SSL *s, int type, const unsigned char *buf,
|
|||||||
}
|
}
|
||||||
else if (i <= 0) {
|
else if (i <= 0) {
|
||||||
if (s->version == DTLS1_VERSION) {
|
if (s->version == DTLS1_VERSION) {
|
||||||
/* For DTLS, just drop it. That's kind of the wh
|
/* For DTLS, just drop it. That's kind of the whole
|
||||||
ole
|
|
||||||
point in using a datagram service */
|
point in using a datagram service */
|
||||||
wb->left = 0;
|
wb->left = 0;
|
||||||
}
|
}
|
||||||
|
16
test/times
16
test/times
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
More number for the questions about SSL overheads....
|
More number for the questions about SSL overheads....
|
||||||
|
|
||||||
The following numbers were generated on a pentium pro 200, running linux.
|
The following numbers were generated on a Pentium pro 200, running Linux.
|
||||||
They give an indication of the SSL protocol and encryption overheads.
|
They give an indication of the SSL protocol and encryption overheads.
|
||||||
|
|
||||||
The program that generated them is an unreleased version of ssl/ssltest.c
|
The program that generated them is an unreleased version of ssl/ssltest.c
|
||||||
@ -11,7 +11,7 @@ interface.
|
|||||||
|
|
||||||
How do I read this? The protocol and cipher are reasonable obvious.
|
How do I read this? The protocol and cipher are reasonable obvious.
|
||||||
The next number is the number of connections being made. The next is the
|
The next number is the number of connections being made. The next is the
|
||||||
number of bytes exchanged bewteen the client and server side of the protocol.
|
number of bytes exchanged between the client and server side of the protocol.
|
||||||
This is the number of bytes that the client sends to the server, and then
|
This is the number of bytes that the client sends to the server, and then
|
||||||
the server sends back. Because this is all happening in one process,
|
the server sends back. Because this is all happening in one process,
|
||||||
the data is being encrypted, decrypted, encrypted and then decrypted again.
|
the data is being encrypted, decrypted, encrypted and then decrypted again.
|
||||||
@ -55,10 +55,10 @@ SSLv3 DES-CBC3-SHA 1000 x 102400 336.61s 323.82s
|
|||||||
|
|
||||||
What does this all mean? Well for a server, with no session-id reuse, with
|
What does this all mean? Well for a server, with no session-id reuse, with
|
||||||
a transfer size of 10240 bytes, using RC4-MD5 and a 512bit server key,
|
a transfer size of 10240 bytes, using RC4-MD5 and a 512bit server key,
|
||||||
a pentium pro 200 running linux can handle the SSLv3 protocol overheads of
|
a Pentium pro 200 running Linux can handle the SSLv3 protocol overheads of
|
||||||
about 49 connections a second. Reality will be quite different :-).
|
about 49 connections a second. Reality will be quite different :-).
|
||||||
|
|
||||||
Remeber the first number is 1000 full ssl handshakes, the second is
|
Remember the first number is 1000 full ssl handshakes, the second is
|
||||||
1 full and 999 with session-id reuse. The RSA overheads for each exchange
|
1 full and 999 with session-id reuse. The RSA overheads for each exchange
|
||||||
would be one public and one private operation, but the protocol/MAC/cipher
|
would be one public and one private operation, but the protocol/MAC/cipher
|
||||||
cost would be quite similar in both the client and server.
|
cost would be quite similar in both the client and server.
|
||||||
@ -72,21 +72,21 @@ eric (adding numbers to speculation)
|
|||||||
killer in SSL. Often delays in the TCP protocol will make session-id
|
killer in SSL. Often delays in the TCP protocol will make session-id
|
||||||
reuse look slower that new sessions, but this would not be the case on
|
reuse look slower that new sessions, but this would not be the case on
|
||||||
a loaded server.
|
a loaded server.
|
||||||
- The TCP round trip latencies, while slowing indervidual connections,
|
- The TCP round trip latencies, while slowing individual connections,
|
||||||
would have minimal impact on throughput.
|
would have minimal impact on throughput.
|
||||||
- Instead of sending one 102400 byte buffer, one 8k buffer is sent until
|
- Instead of sending one 102400 byte buffer, one 8k buffer is sent until
|
||||||
- the required number of bytes are processed.
|
- the required number of bytes are processed.
|
||||||
- The SSLv3 connections were actually SSLv2 compatable SSLv3 headers.
|
- The SSLv3 connections were actually SSLv2 compatible SSLv3 headers.
|
||||||
- A 512bit server key was being used except where noted.
|
- A 512bit server key was being used except where noted.
|
||||||
- No server key verification was being performed on the client side of the
|
- No server key verification was being performed on the client side of the
|
||||||
protocol. This would slow things down very little.
|
protocol. This would slow things down very little.
|
||||||
- The library being used is SSLeay 0.8.x.
|
- The library being used is SSLeay 0.8.x.
|
||||||
- The normal mesauring system was commands of the form
|
- The normal measuring system was commands of the form
|
||||||
time ./ssltest -num 1000 -bytes 102400 -cipher DES-CBC-SHA -reuse
|
time ./ssltest -num 1000 -bytes 102400 -cipher DES-CBC-SHA -reuse
|
||||||
This modified version of ssltest should be in the next public release of
|
This modified version of ssltest should be in the next public release of
|
||||||
SSLeay.
|
SSLeay.
|
||||||
|
|
||||||
The general cipher performace number for this platform are
|
The general cipher performance number for this platform are
|
||||||
|
|
||||||
SSLeay 0.8.2a 04-Sep-1997
|
SSLeay 0.8.2a 04-Sep-1997
|
||||||
built on Fri Sep 5 17:37:05 EST 1997
|
built on Fri Sep 5 17:37:05 EST 1997
|
||||||
|
@ -60,7 +60,7 @@ void main(int argc,char *argv[])
|
|||||||
des_encrypt3(&data[0],key1,key2,key3);
|
des_encrypt3(&data[0],key1,key2,key3);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("des %d %d (%d)\n",
|
printf("des3 %d %d (%d)\n",
|
||||||
e1-s1,e2-s2,((e2-s2)-(e1-s1)));
|
e1-s1,e2-s2,((e2-s2)-(e1-s1)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user