Add some EVP_PKEY_METHOD docs.
This commit is contained in:
parent
8d970ca70b
commit
5165148f72
4 changed files with 192 additions and 6 deletions
52
doc/crypto/EVP_PKEY_CTX_new.pod
Normal file
52
doc/crypto/EVP_PKEY_CTX_new.pod
Normal file
|
@ -0,0 +1,52 @@
|
|||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
EVP_PKEY_CTX_new, EVP_PKEY_CTX_new_id, EVP_PKEY_CTX_dup, EVP_PKEY_CTX_free - public key algorithm context functions.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/evp.h>
|
||||
|
||||
EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e);
|
||||
EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e);
|
||||
EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx);
|
||||
void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The EVP_PKEY_CTX_new() function allocates public key algorithm context using
|
||||
the algorithm specified in B<pkey> and ENGINE B<e>.
|
||||
|
||||
The EVP_PKEY_CTX_new_id() function allocates public key algorithm context
|
||||
using the algorithm specified by B<id> and ENGINE B<e>. It is normally used
|
||||
when no B<EVP_PKEY> structure is associated with the operations, for example
|
||||
during parameter generation of key genration for some algorithms.
|
||||
|
||||
EVP_PKEY_CTX_dup() duplicates the context B<ctx>.
|
||||
|
||||
EVP_PKEY_CTX_free() frees up the context B<ctx>.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
The B<EVP_PKEY_CTX> structure is an opaque public key algorithm context used
|
||||
by the OpenSSL high level public key API. Contexts B<MUST NOT> be shared between
|
||||
threads: that is it is not permissible to use the same context simultaneously
|
||||
in two threads.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
EVP_PKEY_CTX_new(), EVP_PKEY_CTX_new_id(), EVP_PKEY_CTX_dup() returns either
|
||||
the newly allocated B<EVP_PKEY_CTX> structure of B<NULL> if an error occurred.
|
||||
|
||||
EVP_PKEY_CTX_free() does not return a value.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<EVP_PKEY_new(3)|EVP_PKEY_new(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
These functions were first added to OpenSSL 0.9.9.
|
||||
|
||||
=cut
|
62
doc/crypto/EVP_PKEY_decrypt.pod
Normal file
62
doc/crypto/EVP_PKEY_decrypt.pod
Normal file
|
@ -0,0 +1,62 @@
|
|||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
EVP_PKEY_decrypt_init, EVP_PKEY_decrypt - decrypt using a public key algorithm
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/evp.h>
|
||||
|
||||
int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx);
|
||||
int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,
|
||||
unsigned char *out, size_t *outlen,
|
||||
const unsigned char *in, size_t inlen);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The EVP_PKEY_decrypt_init() function initializes a public key algorithm
|
||||
context using key B<pkey> for a decryption operation.
|
||||
|
||||
The EVP_PKEY_decrypt() function performs a public key decryption operation
|
||||
using B<ctx>. The data to be decrypted is specified using the B<in> and
|
||||
B<inlen> parameters. If B<out> is B<NULL> then the maximum size of the output
|
||||
buffer is written to the B<outlen> parameter. If B<out> is not B<NULL> then
|
||||
before the call the B<outlen> parameter should contain the length of the
|
||||
B<out> buffer, if the call is successful the decrypted data is written to
|
||||
B<out> and the amount of data written to B<outlen>.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
After the call to EVP_PKEY_decrypt_init() algorithm specific control
|
||||
operations can be performed to set any appropriate parameters for the
|
||||
operation.
|
||||
|
||||
The function EVP_PKEY_decrypt() can be called more than once on the same
|
||||
context if several operations are performed using the same parameters.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
EVP_PKEY_decrypt_init() and EVP_PKEY_decrypt() return 1 for success and 0
|
||||
or a negative value for failure.
|
||||
|
||||
=head1 EXAMPLE
|
||||
|
||||
Decrypt data using OAEP (for RSA keys):
|
||||
|
||||
[to be added]
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>,
|
||||
L<EVP_PKEY_encrypt(3)|EVP_PKEY_encrypt(3)>,
|
||||
L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>,
|
||||
L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>,
|
||||
L<EVP_PKEY_verifyrecover(3)|EVP_PKEY_verifyrecover(3)>,
|
||||
L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
These functions were first added to OpenSSL 0.9.9.
|
||||
|
||||
=cut
|
62
doc/crypto/EVP_PKEY_encrypt.pod
Normal file
62
doc/crypto/EVP_PKEY_encrypt.pod
Normal file
|
@ -0,0 +1,62 @@
|
|||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
EVP_PKEY_encrypt_init, EVP_PKEY_encrypt - encrypt using a public key algorithm
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/evp.h>
|
||||
|
||||
int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx);
|
||||
int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,
|
||||
unsigned char *out, size_t *outlen,
|
||||
const unsigned char *in, size_t inlen);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The EVP_PKEY_encrypt_init() function initializes a public key algorithm
|
||||
context using key B<pkey> for an encryption operation.
|
||||
|
||||
The EVP_PKEY_encrypt() function performs a public key encryption operation
|
||||
using B<ctx>. The data to be encrypted is specified using the B<in> and
|
||||
B<inlen> parameters. If B<out> is B<NULL> then the maximum size of the output
|
||||
buffer is written to the B<outlen> parameter. If B<out> is not B<NULL> then
|
||||
before the call the B<outlen> parameter should contain the length of the
|
||||
B<out> buffer, if the call is successful the encrypted data is written to
|
||||
B<out> and the amount of data written to B<outlen>.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
After the call to EVP_PKEY_encrypt_init() algorithm specific control
|
||||
operations can be performed to set any appropriate parameters for the
|
||||
operation.
|
||||
|
||||
The function EVP_PKEY_encrypt() can be called more than once on the same
|
||||
context if several operations are performed using the same parameters.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
EVP_PKEY_encrypt_init() and EVP_PKEY_encrypt() return 1 for success and 0
|
||||
or a negative value for failure.
|
||||
|
||||
=head1 EXAMPLE
|
||||
|
||||
Encrypt data using OAEP (for RSA keys):
|
||||
|
||||
[to be added]
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>,
|
||||
L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>,
|
||||
L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>,
|
||||
L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>,
|
||||
L<EVP_PKEY_verifyrecover(3)|EVP_PKEY_verifyrecover(3)>,
|
||||
L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
These functions were first added to OpenSSL 0.9.9.
|
||||
|
||||
=cut
|
|
@ -22,14 +22,24 @@ digital signatures.
|
|||
Symmetric encryption is available with the B<EVP_Encrypt>I<...>
|
||||
functions. The B<EVP_Digest>I<...> functions provide message digests.
|
||||
|
||||
The B<EVP_PKEY>I<...> functions provide a high level interface to
|
||||
asymmetric algorithms.
|
||||
|
||||
Algorithms are loaded with OpenSSL_add_all_algorithms(3).
|
||||
|
||||
All the symmetric algorithms (ciphers) and digests can be replaced by ENGINE
|
||||
modules providing alternative implementations. If ENGINE implementations of
|
||||
ciphers or digests are registered as defaults, then the various EVP functions
|
||||
will automatically use those implementations automatically in preference to
|
||||
built in software implementations. For more information, consult the engine(3)
|
||||
man page.
|
||||
All the symmetric algorithms (ciphers), digests and asymmetric algorithms
|
||||
(public key algorithms) can be replaced by ENGINE modules providing alternative
|
||||
implementations. If ENGINE implementations of ciphers or digests are registered
|
||||
as defaults, then the various EVP functions will automatically use those
|
||||
implementations automatically in preference to built in software
|
||||
implementations. For more information, consult the engine(3) man page.
|
||||
|
||||
Although low level algorithm specific functions exist for many algorithms
|
||||
their use is discouraged. They cannot be used with an ENGINE and ENGINE
|
||||
versions of new algorithms cannot be accessed using the low level functions.
|
||||
Also makes code harder to adapt to new algorithms and some options are not
|
||||
cleanly supported at the low level and some operations are more efficient
|
||||
using the high level interface.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
|
|
Loading…
Reference in a new issue