Correct EVP_SealInit() documentation, iv is an output

parameter.
This commit is contained in:
Dr. Stephen Henson 2003-01-26 13:39:24 +00:00
parent 30e3c99d9f
commit 7e4e392b07

View File

@ -18,22 +18,28 @@ EVP_SealInit, EVP_SealUpdate, EVP_SealFinal - EVP envelope encryption
=head1 DESCRIPTION =head1 DESCRIPTION
The EVP envelope routines are a high level interface to envelope The EVP envelope routines are a high level interface to envelope
encryption. They generate a random key and then "envelope" it by encryption. They generate a random key and IV (if required) then
using public key encryption. Data can then be encrypted using this "envelope" it by using public key encryption. Data can then be
key. encrypted using this key.
EVP_SealInit() initializes a cipher context B<ctx> for encryption EVP_SealInit() initializes a cipher context B<ctx> for encryption
with cipher B<type> using a random secret key and IV supplied in with cipher B<type> using a random secret key and IV. B<type> is normally
the B<iv> parameter. B<type> is normally supplied by a function such supplied by a function such as EVP_des_cbc(). The secret key is encrypted
as EVP_des_cbc(). The secret key is encrypted using one or more public using one or more public keys, this allows the same encrypted data to be
keys, this allows the same encrypted data to be decrypted using any decrypted using any of the corresponding private keys. B<ek> is an array of
of the corresponding private keys. B<ek> is an array of buffers where buffers where the public key encrypted secret key will be written, each buffer
the public key encrypted secret key will be written, each buffer must must contain enough room for the corresponding encrypted key: that is
contain enough room for the corresponding encrypted key: that is
B<ek[i]> must have room for B<EVP_PKEY_size(pubk[i])> bytes. The actual B<ek[i]> must have room for B<EVP_PKEY_size(pubk[i])> bytes. The actual
size of each encrypted secret key is written to the array B<ekl>. B<pubk> is size of each encrypted secret key is written to the array B<ekl>. B<pubk> is
an array of B<npubk> public keys. an array of B<npubk> public keys.
The B<iv> parameter is a buffer where the generated IV is written to. It must
contain enough room for the corresponding cipher's IV, as determined by (for
example) EVP_CIPHER_iv_length(type).
If the cipher does not require an IV then the B<iv> parameter is ignored
and can be B<NULL>.
EVP_SealUpdate() and EVP_SealFinal() have exactly the same properties EVP_SealUpdate() and EVP_SealFinal() have exactly the same properties
as the EVP_EncryptUpdate() and EVP_EncryptFinal() routines, as as the EVP_EncryptUpdate() and EVP_EncryptFinal() routines, as
documented on the L<EVP_EncryptInit(3)|EVP_EncryptInit(3)> manual documented on the L<EVP_EncryptInit(3)|EVP_EncryptInit(3)> manual