diff options
Diffstat (limited to 'src/lib/libcrypto/doc')
| -rw-r--r-- | src/lib/libcrypto/doc/DSA_get_ex_new_index.pod | 2 | ||||
| -rw-r--r-- | src/lib/libcrypto/doc/EVP_DigestInit.pod | 23 | ||||
| -rw-r--r-- | src/lib/libcrypto/doc/EVP_SignInit.pod | 9 | ||||
| -rw-r--r-- | src/lib/libcrypto/doc/EVP_VerifyInit.pod | 9 | ||||
| -rw-r--r-- | src/lib/libcrypto/doc/d2i_RSAPublicKey.pod | 8 | ||||
| -rw-r--r-- | src/lib/libcrypto/doc/evp.pod | 22 |
6 files changed, 52 insertions, 21 deletions
diff --git a/src/lib/libcrypto/doc/DSA_get_ex_new_index.pod b/src/lib/libcrypto/doc/DSA_get_ex_new_index.pod index 4612e708ec..fb6efc1182 100644 --- a/src/lib/libcrypto/doc/DSA_get_ex_new_index.pod +++ b/src/lib/libcrypto/doc/DSA_get_ex_new_index.pod | |||
| @@ -6,7 +6,7 @@ DSA_get_ex_new_index, DSA_set_ex_data, DSA_get_ex_data - add application specifi | |||
| 6 | 6 | ||
| 7 | =head1 SYNOPSIS | 7 | =head1 SYNOPSIS |
| 8 | 8 | ||
| 9 | #include <openssl/DSA.h> | 9 | #include <openssl/dsa.h> |
| 10 | 10 | ||
| 11 | int DSA_get_ex_new_index(long argl, void *argp, | 11 | int DSA_get_ex_new_index(long argl, void *argp, |
| 12 | CRYPTO_EX_new *new_func, | 12 | CRYPTO_EX_new *new_func, |
diff --git a/src/lib/libcrypto/doc/EVP_DigestInit.pod b/src/lib/libcrypto/doc/EVP_DigestInit.pod index 236e2fa8d1..37a751b1c5 100644 --- a/src/lib/libcrypto/doc/EVP_DigestInit.pod +++ b/src/lib/libcrypto/doc/EVP_DigestInit.pod | |||
| @@ -64,9 +64,9 @@ EVP digest routines | |||
| 64 | 64 | ||
| 65 | The EVP digest routines are a high level interface to message digests. | 65 | The EVP digest routines are a high level interface to message digests. |
| 66 | 66 | ||
| 67 | EVP_MD_CTX_init() initializes digest contet B<ctx>. | 67 | EVP_MD_CTX_init() initializes digest context B<ctx>. |
| 68 | 68 | ||
| 69 | EVP_MD_CTX_create() allocates, initializes and returns a digest contet. | 69 | EVP_MD_CTX_create() allocates, initializes and returns a digest context. |
| 70 | 70 | ||
| 71 | EVP_DigestInit_ex() sets up digest context B<ctx> to use a digest | 71 | EVP_DigestInit_ex() sets up digest context B<ctx> to use a digest |
| 72 | B<type> from ENGINE B<impl>. B<ctx> must be initialized before calling this | 72 | B<type> from ENGINE B<impl>. B<ctx> must be initialized before calling this |
| @@ -102,7 +102,7 @@ the passed context B<ctx> does not have to be initialized, and it always | |||
| 102 | uses the default digest implementation. | 102 | uses the default digest implementation. |
| 103 | 103 | ||
| 104 | EVP_DigestFinal() is similar to EVP_DigestFinal_ex() except the digest | 104 | EVP_DigestFinal() is similar to EVP_DigestFinal_ex() except the digest |
| 105 | contet B<ctx> is automatically cleaned up. | 105 | context B<ctx> is automatically cleaned up. |
| 106 | 106 | ||
| 107 | EVP_MD_CTX_copy() is similar to EVP_MD_CTX_copy_ex() except the destination | 107 | EVP_MD_CTX_copy() is similar to EVP_MD_CTX_copy_ex() except the destination |
| 108 | B<out> does not have to be initialized. | 108 | B<out> does not have to be initialized. |
| @@ -132,7 +132,9 @@ return B<EVP_MD> structures for the MD2, MD5, SHA, SHA1, MDC2 and RIPEMD160 dige | |||
| 132 | algorithms respectively. The associated signature algorithm is RSA in each case. | 132 | algorithms respectively. The associated signature algorithm is RSA in each case. |
| 133 | 133 | ||
| 134 | EVP_dss() and EVP_dss1() return B<EVP_MD> structures for SHA and SHA1 digest | 134 | EVP_dss() and EVP_dss1() return B<EVP_MD> structures for SHA and SHA1 digest |
| 135 | algorithms but using DSS (DSA) for the signature algorithm. | 135 | algorithms but using DSS (DSA) for the signature algorithm. Note: there is |
| 136 | no need to use these pseudo-digests in OpenSSL 1.0.0 and later, they are | ||
| 137 | however retained for compatibility. | ||
| 136 | 138 | ||
| 137 | EVP_md_null() is a "null" message digest that does nothing: i.e. the hash it | 139 | EVP_md_null() is a "null" message digest that does nothing: i.e. the hash it |
| 138 | returns is of zero length. | 140 | returns is of zero length. |
| @@ -228,12 +230,6 @@ digest name passed on the command line. | |||
| 228 | printf("\n"); | 230 | printf("\n"); |
| 229 | } | 231 | } |
| 230 | 232 | ||
| 231 | =head1 BUGS | ||
| 232 | |||
| 233 | The link between digests and signing algorithms results in a situation where | ||
| 234 | EVP_sha1() must be used with RSA and EVP_dss1() must be used with DSS | ||
| 235 | even though they are identical digests. | ||
| 236 | |||
| 237 | =head1 SEE ALSO | 233 | =head1 SEE ALSO |
| 238 | 234 | ||
| 239 | L<evp(3)|evp(3)>, L<HMAC(3)|HMAC(3)>, L<MD2(3)|MD2(3)>, | 235 | L<evp(3)|evp(3)>, L<HMAC(3)|HMAC(3)>, L<MD2(3)|MD2(3)>, |
| @@ -253,4 +249,11 @@ EVP_md_null(), EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), | |||
| 253 | EVP_dss(), EVP_dss1(), EVP_mdc2() and EVP_ripemd160() were | 249 | EVP_dss(), EVP_dss1(), EVP_mdc2() and EVP_ripemd160() were |
| 254 | changed to return truely const EVP_MD * in OpenSSL 0.9.7. | 250 | changed to return truely const EVP_MD * in OpenSSL 0.9.7. |
| 255 | 251 | ||
| 252 | The link between digests and signing algorithms was fixed in OpenSSL 1.0 and | ||
| 253 | later, so now EVP_sha1() can be used with RSA and DSA, there is no need to | ||
| 254 | use EVP_dss1() any more. | ||
| 255 | |||
| 256 | OpenSSL 1.0 and later does not include the MD2 digest algorithm in the | ||
| 257 | default configuration due to its security weaknesses. | ||
| 258 | |||
| 256 | =cut | 259 | =cut |
diff --git a/src/lib/libcrypto/doc/EVP_SignInit.pod b/src/lib/libcrypto/doc/EVP_SignInit.pod index 0bace24938..781d43e401 100644 --- a/src/lib/libcrypto/doc/EVP_SignInit.pod +++ b/src/lib/libcrypto/doc/EVP_SignInit.pod | |||
| @@ -77,6 +77,15 @@ will occur. | |||
| 77 | Older versions of this documentation wrongly stated that calls to | 77 | Older versions of this documentation wrongly stated that calls to |
| 78 | EVP_SignUpdate() could not be made after calling EVP_SignFinal(). | 78 | EVP_SignUpdate() could not be made after calling EVP_SignFinal(). |
| 79 | 79 | ||
| 80 | Since the private key is passed in the call to EVP_SignFinal() any error | ||
| 81 | relating to the private key (for example an unsuitable key and digest | ||
| 82 | combination) will not be indicated until after potentially large amounts of | ||
| 83 | data have been passed through EVP_SignUpdate(). | ||
| 84 | |||
| 85 | It is not possible to change the signing parameters using these function. | ||
| 86 | |||
| 87 | The previous two bugs are fixed in the newer EVP_SignDigest*() function. | ||
| 88 | |||
| 80 | =head1 SEE ALSO | 89 | =head1 SEE ALSO |
| 81 | 90 | ||
| 82 | L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>, | 91 | L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>, |
diff --git a/src/lib/libcrypto/doc/EVP_VerifyInit.pod b/src/lib/libcrypto/doc/EVP_VerifyInit.pod index b6afaedee5..9097f09410 100644 --- a/src/lib/libcrypto/doc/EVP_VerifyInit.pod +++ b/src/lib/libcrypto/doc/EVP_VerifyInit.pod | |||
| @@ -67,6 +67,15 @@ will occur. | |||
| 67 | Older versions of this documentation wrongly stated that calls to | 67 | Older versions of this documentation wrongly stated that calls to |
| 68 | EVP_VerifyUpdate() could not be made after calling EVP_VerifyFinal(). | 68 | EVP_VerifyUpdate() could not be made after calling EVP_VerifyFinal(). |
| 69 | 69 | ||
| 70 | Since the public key is passed in the call to EVP_SignFinal() any error | ||
| 71 | relating to the private key (for example an unsuitable key and digest | ||
| 72 | combination) will not be indicated until after potentially large amounts of | ||
| 73 | data have been passed through EVP_SignUpdate(). | ||
| 74 | |||
| 75 | It is not possible to change the signing parameters using these function. | ||
| 76 | |||
| 77 | The previous two bugs are fixed in the newer EVP_VerifyDigest*() function. | ||
| 78 | |||
| 70 | =head1 SEE ALSO | 79 | =head1 SEE ALSO |
| 71 | 80 | ||
| 72 | L<evp(3)|evp(3)>, | 81 | L<evp(3)|evp(3)>, |
diff --git a/src/lib/libcrypto/doc/d2i_RSAPublicKey.pod b/src/lib/libcrypto/doc/d2i_RSAPublicKey.pod index 279b29c873..aa6078bcf6 100644 --- a/src/lib/libcrypto/doc/d2i_RSAPublicKey.pod +++ b/src/lib/libcrypto/doc/d2i_RSAPublicKey.pod | |||
| @@ -11,21 +11,21 @@ d2i_Netscape_RSA - RSA public and private key encoding functions. | |||
| 11 | #include <openssl/rsa.h> | 11 | #include <openssl/rsa.h> |
| 12 | #include <openssl/x509.h> | 12 | #include <openssl/x509.h> |
| 13 | 13 | ||
| 14 | RSA * d2i_RSAPublicKey(RSA **a, unsigned char **pp, long length); | 14 | RSA * d2i_RSAPublicKey(RSA **a, const unsigned char **pp, long length); |
| 15 | 15 | ||
| 16 | int i2d_RSAPublicKey(RSA *a, unsigned char **pp); | 16 | int i2d_RSAPublicKey(RSA *a, unsigned char **pp); |
| 17 | 17 | ||
| 18 | RSA * d2i_RSA_PUBKEY(RSA **a, unsigned char **pp, long length); | 18 | RSA * d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); |
| 19 | 19 | ||
| 20 | int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); | 20 | int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); |
| 21 | 21 | ||
| 22 | RSA * d2i_RSAPrivateKey(RSA **a, unsigned char **pp, long length); | 22 | RSA * d2i_RSAPrivateKey(RSA **a, const unsigned char **pp, long length); |
| 23 | 23 | ||
| 24 | int i2d_RSAPrivateKey(RSA *a, unsigned char **pp); | 24 | int i2d_RSAPrivateKey(RSA *a, unsigned char **pp); |
| 25 | 25 | ||
| 26 | int i2d_Netscape_RSA(RSA *a, unsigned char **pp, int (*cb)()); | 26 | int i2d_Netscape_RSA(RSA *a, unsigned char **pp, int (*cb)()); |
| 27 | 27 | ||
| 28 | RSA * d2i_Netscape_RSA(RSA **a, unsigned char **pp, long length, int (*cb)()); | 28 | RSA * d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, int (*cb)()); |
| 29 | 29 | ||
| 30 | =head1 DESCRIPTION | 30 | =head1 DESCRIPTION |
| 31 | 31 | ||
diff --git a/src/lib/libcrypto/doc/evp.pod b/src/lib/libcrypto/doc/evp.pod index b3ca14314f..9faa349243 100644 --- a/src/lib/libcrypto/doc/evp.pod +++ b/src/lib/libcrypto/doc/evp.pod | |||
| @@ -22,14 +22,24 @@ digital signatures. | |||
| 22 | Symmetric encryption is available with the B<EVP_Encrypt>I<...> | 22 | Symmetric encryption is available with the B<EVP_Encrypt>I<...> |
| 23 | functions. The B<EVP_Digest>I<...> functions provide message digests. | 23 | functions. The B<EVP_Digest>I<...> functions provide message digests. |
| 24 | 24 | ||
| 25 | The B<EVP_PKEY>I<...> functions provide a high level interface to | ||
| 26 | asymmetric algorithms. | ||
| 27 | |||
| 25 | Algorithms are loaded with OpenSSL_add_all_algorithms(3). | 28 | Algorithms are loaded with OpenSSL_add_all_algorithms(3). |
| 26 | 29 | ||
| 27 | All the symmetric algorithms (ciphers) and digests can be replaced by ENGINE | 30 | All the symmetric algorithms (ciphers), digests and asymmetric algorithms |
| 28 | modules providing alternative implementations. If ENGINE implementations of | 31 | (public key algorithms) can be replaced by ENGINE modules providing alternative |
| 29 | ciphers or digests are registered as defaults, then the various EVP functions | 32 | implementations. If ENGINE implementations of ciphers or digests are registered |
| 30 | will automatically use those implementations automatically in preference to | 33 | as defaults, then the various EVP functions will automatically use those |
| 31 | built in software implementations. For more information, consult the engine(3) | 34 | implementations automatically in preference to built in software |
| 32 | man page. | 35 | implementations. For more information, consult the engine(3) man page. |
| 36 | |||
| 37 | Although low level algorithm specific functions exist for many algorithms | ||
| 38 | their use is discouraged. They cannot be used with an ENGINE and ENGINE | ||
| 39 | versions of new algorithms cannot be accessed using the low level functions. | ||
| 40 | Also makes code harder to adapt to new algorithms and some options are not | ||
| 41 | cleanly supported at the low level and some operations are more efficient | ||
| 42 | using the high level interface. | ||
| 33 | 43 | ||
| 34 | =head1 SEE ALSO | 44 | =head1 SEE ALSO |
| 35 | 45 | ||
