EVP_SignInit, EVP_SignUpdate, EVP_SignFinal - EVP signing
functions
#include <openssl/evp.h>
void EVP_SignInit(
EVP_MD_CTX *ctx, const EVP_MD *type ); void
EVP_SignUpdate(
EVP_MD_CTX *ctx, const void *d, unsigned int cnt
); int EVP_SignFinal(
EVP_MD_CTX *ctx,unsigned char *sig,unsigned int
*s, EVP_PKEY *pkey ); int EVP_PKEY_size(
EVP_PKEY *pkey );
The EVP signature routines are a high level interface to
digital signatures.
The EVP_SignInit() function initializes a signing context
ctx to using digest type. This typically will be supplied
by a function such as EVP_sha1().
The EVP_SignUpdate() function hashes cnt bytes of data at
d into the signature context ctx. This function can be
called several times on the same ctx to include additional
data.
The EVP_SignFinal() function signs the data in ctx using
the private key pkey and places the signature in sig. If
the s parameter is not NULL then the number of bytes of
data written (i.e. the length of the signature) will be
written to the integer at s, at most EVP_PKEY_size(pkey)
bytes will be written. After calling EVP_SignFinal(), no
additional calls to EVP_SignUpdate() can be made, but the
EVP_SignInit() function can be called to initialize a new
signature operation.
The EVP_PKEY_size() function returns the maximum size of a
signature in bytes. The actual signature returned by the
EVP_SignFinal() function may be smaller.
The EVP interface to digital signatures should be used in
preference to the low level interfaces. This is because
the code then becomes transparent to the algorithm used
and much more flexible.
Due to the link between message digests and public key
algorithms the correct digest algorithm must be used with
the correct public key type. A list of algorithms and
associated public key algorithms appears in EVP_DigestInit(3).
When signing with DSA private keys the random number generator
must be seeded or the operation will fail. The random
number generator does not need to be seeded for RSA
signatures.
Several of the functions do not return values. Although
the internal digest operations will never fail some future
hardware based operations might.
The EVP_SignInit() and EVP_SignUpdate() functions do not
return values.
The EVP_SignFinal() function returns 1 for success and 0
for failure.
The EVP_PKEY_size() function returns the maximum size of a
signature in bytes.
The error codes can be obtained by using ERR_get_error().
The EVP_SignInit(), EVP_SignUpdate(), and EVP_SignFinal()
functions are available in all versions of SSLeay and
OpenSSL.
Commands: dgst(1)
Functions: EVP_VerifyInit(3), EVP_DigestInit(3), err(3),
evp(3), hmac(3), md2(3), md5(3), mdc2(3), ripemd(3),
sha(3),
EVP_SignInit(3)
[ Back ] |