If "make" fails, please report the problem to <openssl-bugs@openssl.org>
(note that your message will be forwarded to a public mailing list).
- Include the output of "./config -t" and the OpenSSL version
- number in your message.
+ Include the output of "make report" in your message.
[If you encounter assembler error messages, try the "no-asm"
configuration option as an immediate fix.]
If a test fails, try removing any compiler optimization flags from
the CFLAGS line in Makefile.ssl and run "make clean; make". Please
send a bug report to <openssl-bugs@openssl.org>, including the
- output of "openssl version -a" and of the failed test.
+ output of "make report".
4. If everything tests ok, install OpenSSL with
o Memory leak detection now allows applications to add extra information
via a per-thread stack
o PRNG robustness improved
+ o EGD support
o BIGNUM library bug fixes
- o faster DSA parameter generation
+ o Faster DSA parameter generation
o Enhanced support for Alpha Linux
o Experimental MacOS support
=head1 NAME
-version - print version information
+version - print OpenSSL version information
=head1 SYNOPSIS
=head1 NAME
BN_add, BN_sub, BN_mul, BN_div, BN_sqr, BN_mod, BN_mod_mul, BN_exp,
-BN_mod_exp, BN_gcd - Arithmetic operations on BIGNUMs
+BN_mod_exp, BN_gcd - arithmetic operations on BIGNUMs
=head1 SYNOPSIS
=head1 NAME
-BN_add_word, BN_sub_word, BN_mul_word, BN_div_word, BN_mod_word - Arithmetic
+BN_add_word, BN_sub_word, BN_mul_word, BN_div_word, BN_mod_word - arithmetic
functions on BIGNUMs with integers
=head1 SYNOPSIS
=head1 NAME
BN_bn2bin, BN_bin2bn, BN_bn2hex, BN_bn2dec, BN_hex2bn, BN_dec2bn,
-BN_print, BN_print_fp, BN_bn2mpi, BN_mpi2bn - Format conversions
+BN_print, BN_print_fp, BN_bn2mpi, BN_mpi2bn - format conversions
=head1 SYNOPSIS
=head1 NAME
-BN_generate_prime, BN_is_prime, BN_is_prime_fasttest - Generate primes and test for primality
+BN_generate_prime, BN_is_prime, BN_is_prime_fasttest - generate primes and test for primality
=head1 SYNOPSIS
=head1 NAME
-BN_mod_inverse - Compute inverse modulo n
+BN_mod_inverse - compute inverse modulo n
=head1 SYNOPSIS
#include <openssl/bn.h>
- BIGNUM *BN_mod_inverse(BIGNUM *r, BIGNUM *a, const BIGNUM *n, BN_CTX *ctx);
+ BIGNUM *BN_mod_inverse(BIGNUM *r, BIGNUM *a, const BIGNUM *n,
+ BN_CTX *ctx);
=head1 DESCRIPTION
=head1 NAME
BN_mod_mul_reciprocal, BN_RECP_CTX_new, BN_RECP_CTX_init,
-BN_RECP_CTX_free, BN_RECP_CTX_set - Modular multiplication using
+BN_RECP_CTX_free, BN_RECP_CTX_set - modular multiplication using
reciprocal
=head1 SYNOPSIS
=head1 NAME
-BN_num_bits, BN_num_bytes, BN_num_bits_word - Get BIGNUM size
+BN_num_bits, BN_num_bytes, BN_num_bits_word - get BIGNUM size
=head1 SYNOPSIS
=head1 NAME
-BN_rand, BN_pseudo_rand - Generate pseudo-random number
+BN_rand, BN_pseudo_rand - generate pseudo-random number
=head1 SYNOPSIS
int BN_rand(BIGNUM *rnd, int bits, int top, int bottom);
- int BN_pseudo_rand(BIGNUM *rnd, int bits, int top,int bottom);
+ int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom);
=head1 DESCRIPTION
=head1 NAME
BN_set_bit, BN_clear_bit, BN_is_bit_set, BN_mask_bits, BN_lshift,
-BN_lshift1, BN_rshift, BN_rshift1 - Bit operations on BIGNUMs
+BN_lshift1, BN_rshift, BN_rshift1 - bit operations on BIGNUMs
=head1 SYNOPSIS
=head1 NAME
-DH_generate_key, DH_compute_key - Perform Diffie-Hellman key exchange
+DH_generate_key, DH_compute_key - perform Diffie-Hellman key exchange
=head1 SYNOPSIS
=head1 NAME
-DH_generate_parameters, DH_check - Generate and check Diffie-Hellman parameters
+DH_generate_parameters, DH_check - generate and check Diffie-Hellman parameters
=head1 SYNOPSIS
=head1 NAME
DH_set_default_method, DH_get_default_method, DH_set_method,
-DH_new_method, DH_OpenSSL - Select RSA method
+DH_new_method, DH_OpenSSL - select DH method
=head1 SYNOPSIS
=head1 NAME
-DH_size - Get Diffie-Hellman prime size
+DH_size - get Diffie-Hellman prime size
=head1 SYNOPSIS
=head1 NAME
-DSA_do_sign, DSA_do_verify - Raw DSA signature operations
+DSA_do_sign, DSA_do_verify - raw DSA signature operations
=head1 SYNOPSIS
=head1 NAME
-DSA_dup_DH - Create a DH structure out of DSA structure
+DSA_dup_DH - create a DH structure out of DSA structure
=head1 SYNOPSIS
=head1 NAME
-DSA_generate_key - Generate DSA key pair
+DSA_generate_key - generate DSA key pair
=head1 SYNOPSIS
=head1 NAME
-DSA_generate_parameters - Generate DSA parameters
+DSA_generate_parameters - generate DSA parameters
=head1 SYNOPSIS
=head1 NAME
DSA_set_default_method, DSA_get_default_method, DSA_set_method,
-DSA_new_method, DSA_OpenSSL - Select RSA method
+DSA_new_method, DSA_OpenSSL - select RSA method
=head1 SYNOPSIS
=head1 NAME
-DSA_size - Get DSA signature size
+DSA_size - get DSA signature size
=head1 SYNOPSIS
=head1 NAME
-ERR_get_error, ERR_peek_error - Obtain error code
+ERR_get_error, ERR_peek_error - obtain error code
=head1 SYNOPSIS
=head1 NAME
ERR_load_crypto_strings, SSL_load_error_strings, ERR_free_strings -
-Load and free error strings
+load and free error strings
=head1 SYNOPSIS
=head1 NAME
-ERR_load_strings, ERR_PACK, ERR_get_next_error_library - Load
+ERR_load_strings, ERR_PACK, ERR_get_next_error_library - load
arbitrary error strings
=head1 SYNOPSIS
=head1 NAME
-ERR_put_error, ERR_add_error_data - Record an error
+ERR_put_error, ERR_add_error_data - record an error
=head1 SYNOPSIS
=head1 NAME
-ERR_remove_state - Free a thread's error queue
+ERR_remove_state - free a thread's error queue
=head1 SYNOPSIS
#include <openssl/evp.h>
void EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
- void EVP_DigestUpdate(EVP_MD_CTX *ctx,const void *d, unsigned int cnt);
- void EVP_DigestFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
+ void EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, unsigned int cnt);
+ void EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md,
+ unsigned int *s);
#define EVP_MAX_MD_SIZE (16+20) /* The SSLv3 md5+sha1 type */
#include <openssl/evp.h>
- void EVP_EncryptInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *type, unsigned char *key, unsigned char *iv);
- void EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, unsigned char *in, int inl);
- void EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
-
- void EVP_DecryptInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *type, unsigned char *key, unsigned char *iv);
- void EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, unsigned char *in, int inl);
- int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
-
- void EVP_CipherInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *type, unsigned char *key,unsigned char *iv,int enc);
- void EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, unsigned char *in, int inl);
- int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
+ void EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
+ unsigned char *key, unsigned char *iv);
+ void EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
+ int *outl, unsigned char *in, int inl);
+ void EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out,
+ int *outl);
+
+ void EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
+ unsigned char *key, unsigned char *iv);
+ void EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
+ int *outl, unsigned char *in, int inl);
+ int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm,
+ int *outl);
+
+ void EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
+ unsigned char *key, unsigned char *iv, int enc);
+ void EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
+ int *outl, unsigned char *in, int inl);
+ int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm,
+ int *outl);
void EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a);
=head1 NAME
-OPENSSL_VERSION_NUMBER, SSLeay - Get OpenSSL version number
+OPENSSL_VERSION_NUMBER, SSLeay - get OpenSSL version number
=head1 SYNOPSIS
=head1 NAME
-RAND_add, RAND_seed, RAND_screen - Add entropy to the PRNG
+RAND_add, RAND_seed, RAND_screen - add entropy to the PRNG
=head1 SYNOPSIS
=head1 NAME
-RAND_bytes, RAND_pseudo_bytes - Generate random data
+RAND_bytes, RAND_pseudo_bytes - generate random data
=head1 SYNOPSIS
=head1 NAME
-RAND_egd - Query entropy gathering daemon
+RAND_egd - query entropy gathering daemon
=head1 SYNOPSIS
=head1 NAME
-RAND_set_rand_method, RAND_get_rand_method, RAND_SSLeay - Select RAND method
+RAND_set_rand_method, RAND_get_rand_method, RAND_SSLeay - select RAND method
=head1 SYNOPSIS
=head1 NAME
-RSA_blinding_on, RSA_blinding_off - Protect the RSA operation from timing attacks
+RSA_blinding_on, RSA_blinding_off - protect the RSA operation from timing attacks
=head1 SYNOPSIS
=head1 NAME
-RSA_check_key - Validate RSA keys
+RSA_check_key - validate private RSA keys
=head1 SYNOPSIS
=head1 NAME
-RSA_generate_key - Generate RSA key pair
+RSA_generate_key - generate RSA key pair
=head1 SYNOPSIS
RSA_padding_add_PKCS1_type_2, RSA_padding_check_PKCS1_type_2,
RSA_padding_add_PKCS1_OAEP, RSA_padding_check_PKCS1_OAEP,
RSA_padding_add_SSLv23, RSA_padding_check_SSLv23,
-RSA_padding_add_none, RSA_padding_check_none - Asymmetric encryption
+RSA_padding_add_none, RSA_padding_check_none - asymmetric encryption
padding
=head1 SYNOPSIS
=head1 NAME
-RSA_print, RSA_print_fp, DHparams_print, DHparams_print_fp - Print
+RSA_print, RSA_print_fp, DHparams_print, DHparams_print_fp - print
cryptographic parameters
=head1 SYNOPSIS
=head1 NAME
-RSA_private_encrypt, RSA_public_decrypt - Low level signature operations
+RSA_private_encrypt, RSA_public_decrypt - low level signature operations
=head1 SYNOPSIS
#include <openssl/rsa.h>
int RSA_private_encrypt(int flen, unsigned char *from,
- unsigned char *to, RSA *rsa,int padding);
+ unsigned char *to, RSA *rsa, int padding);
int RSA_public_decrypt(int flen, unsigned char *from,
- unsigned char *to, RSA *rsa,int padding);
+ unsigned char *to, RSA *rsa, int padding);
=head1 DESCRIPTION
RSA_set_default_method, RSA_get_default_method, RSA_set_method,
RSA_get_method, RSA_PKCS1_SSLeay, RSA_PKCS1_RSAref,
-RSA_PKCS1_null_method, RSA_flags, RSA_new_method - Select RSA method
+RSA_PKCS1_null_method, RSA_flags, RSA_new_method - select RSA method
=head1 SYNOPSIS
=head1 NAME
-RSA_size - Get RSA modulus size
+RSA_size - get RSA modulus size
=head1 SYNOPSIS
void BF_encrypt(BF_LONG *data,const BF_KEY *key);
void BF_decrypt(BF_LONG *data,const BF_KEY *key);
- void BF_ecb_encrypt(const unsigned char *in,unsigned char *out,BF_KEY *key,
- int enc);
- void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
- BF_KEY *schedule, unsigned char *ivec, int enc);
- void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length,
- BF_KEY *schedule, unsigned char *ivec, int *num, int enc);
- void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length,
- BF_KEY *schedule, unsigned char *ivec, int *num);
+ void BF_ecb_encrypt(const unsigned char *in, unsigned char *out,
+ BF_KEY *key, int enc);
+ void BF_cbc_encrypt(const unsigned char *in, unsigned char *out,
+ long length, BF_KEY *schedule, unsigned char *ivec, int enc);
+ void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out,
+ long length, BF_KEY *schedule, unsigned char *ivec, int *num,
+ int enc);
+ void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out,
+ long length, BF_KEY *schedule, unsigned char *ivec, int *num);
const char *BF_options(void);
=head1 DESCRIPTION
=head1 NOTE
-Applications should use the higher level functions EVP_DigestInit(3) etc.
+Applications should use the higher level functions EVP_EncryptInit(3) etc.
instead of calling the blowfish functions directly.
=head1 SEE ALSO
=head1 NAME
-bn - Multiprecision integer arithmetics
+bn - multiprecision integer arithmetics
=head1 SYNOPSIS
int BN_set_word(BIGNUM *a, unsigned long w);
unsigned long BN_get_word(BIGNUM *a);
- int BN_rand(BIGNUM *rnd, int bits, int top,int bottom);
- int BN_pseudo_rand(BIGNUM *rnd, int bits, int top,int bottom);
+ int BN_rand(BIGNUM *rnd, int bits, int top, int bottom);
+ int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom);
- BIGNUM *BN_generate_prime(BIGNUM *ret,int bits,int safe,BIGNUM *add,
- BIGNUM *rem,void (*callback)(int,int,void *),void *cb_arg);
- int BN_is_prime(const BIGNUM *p,int nchecks,void (*callback)(int,int,void *),
- BN_CTX *ctx,void *cb_arg);
+ BIGNUM *BN_generate_prime(BIGNUM *ret, int bits,int safe, BIGNUM *add,
+ BIGNUM *rem, void (*callback)(int, int, void *), void *cb_arg);
+ int BN_is_prime(const BIGNUM *p, int nchecks,
+ void (*callback)(int, int, void *), BN_CTX *ctx, void *cb_arg);
int BN_set_bit(BIGNUM *a, int n);
int BN_clear_bit(BIGNUM *a, int n);
=head1 NAME
-BUF_MEM_new, BUF_MEM_free, BUF_MEM_grow, BUF_strdup - Simple
+BUF_MEM_new, BUF_MEM_free, BUF_MEM_grow, BUF_strdup - simple
character arrays structure
=head1 SYNOPSIS
=head1 NAME
-Modes of DES - The variants of DES and other crypto algorithms of OpenSSL
+Modes of DES - the variants of DES and other crypto algorithms of OpenSSL
=head1 DESCRIPTION
=head1 NAME
-err - Error codes
+err - error codes
=head1 SYNOPSIS
=head1 NAME
lh_new, lh_free, lh_insert, lh_delete, lh_retrieve, lh_doall,
-lh_doall_arg, lh_error - Dynamic hash table
+lh_doall_arg, lh_error - dynamic hash table
=head1 SYNOPSIS
MD5_Init(), MD5_Update() and MD5_Final() are analogous using an
B<MD5_CTX> structure.
-Applications should use the higher level functions EVP_DigestInit(3) etc.
-instead of calling the hash functions directly.
+Applications should use the higher level functions EVP_DigestInit(3)
+etc. instead of calling the hash functions directly.
=head1 NOTE
=head1 NAME
-rand - Pseudo-random number generator
+rand - pseudo-random number generator
=head1 SYNOPSIS
key stream to produce the output), decryption uses the same function
calls as encryption.
+Applications should use the higher level functions EVP_EncryptInit(3)
+etc. instead of calling the RC4 functions directly.
+
=head1 RETURN VALUES
RC4_set_key() and RC4() do not return values.
unsigned char *md);
void RIPEMD160_Init(RIPEMD160_CTX *c);
- void RIPEMD160_Update(RIPEMD_CTX *c, const unsigned char *data,
+ void RIPEMD160_Update(RIPEMD_CTX *c, const void *data,
unsigned long len);
void RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c);
SHA1_Final() places the message digest in B<md>, which must have space
for SHA_DIGEST_LENGTH == 20 bytes of output, and erases the B<SHA_CTX>.
-Applications should use the higher level functions EVP_DigestInit(3) etc.
-instead of calling the hash functions directly.
+Applications should use the higher level functions EVP_DigestInit(3)
+etc. instead of calling the hash functions directly.
The predecessor of SHA-1, SHA, is also implemented, but it should be
used only when backward compatibility is required.
OpenSSL can safely be used in multi-threaded applications provided
that two callback functions are set.
-locking_function(int mode, int type, const char *file, int line) is
+locking_function(int mode, int n, const char *file, int line) is
needed to perform locking on shared data stuctures. Multi-threaded
applications will crash at random if it is not set.
locking_function() must be able to handle up to CRYPTO_num_locks()
-different mutex locks. It sets the B<n>th lock if B<mode> &
+different mutex locks. It sets the B<n>-th lock if B<mode> &
B<CRYPTO_LOCK>, and releases it otherwise.
B<file> and B<line> are the file number of the function setting the
};
#endif
+#ifndef NO_DH
union dh_fn_to_char_u
{
char *char_p;
DH *(*fn_p)(SSL *, int, int);
};
+#endif
int SSL_clear(SSL *s)
{