Sortix 1.1dev nightly manual
This manual documents Sortix 1.1dev nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.
X509_SIGN(3) | Library Functions Manual | X509_SIGN(3) |
NAME
X509_sign
,
X509_sign_ctx
,
X509_verify
,
X509_REQ_sign
,
X509_REQ_sign_ctx
,
X509_REQ_verify
,
X509_CRL_sign
,
X509_CRL_sign_ctx
,
X509_CRL_verify
—
sign or verify certificate, certificate request, or
CRL signature
SYNOPSIS
#include
<openssl/x509.h>
int
X509_sign
(X509
*x, EVP_PKEY *pkey,
const EVP_MD *md);
int
X509_sign_ctx
(X509
*x, EVP_MD_CTX *ctx);
int
X509_verify
(X509
*a, EVP_PKEY *r);
int
X509_REQ_sign
(X509_REQ
*x, EVP_PKEY *pkey,
const EVP_MD *md);
int
X509_REQ_sign_ctx
(X509_REQ
*x, EVP_MD_CTX *ctx);
int
X509_REQ_verify
(X509_REQ
*a, EVP_PKEY *r);
int
X509_CRL_sign
(X509_CRL
*x, EVP_PKEY *pkey,
const EVP_MD *md);
int
X509_CRL_sign_ctx
(X509_CRL
*x, EVP_MD_CTX *ctx);
int
X509_CRL_verify
(X509_CRL
*a, EVP_PKEY *r);
DESCRIPTION
X509_sign
() signs the certificate
x using the private key
pkey and the message digest
md and sets the signature in
x.
X509_sign_ctx
() also signs the certificate
x but uses the parameters contained in digest
context ctx.
X509_verify
() verifies the signature of
certificate x using the public key
pkey. Only the signature is checked: no other
checks (such as certificate chain validity) are performed.
X509_REQ_sign
(),
X509_REQ_sign_ctx
(),
X509_REQ_verify
(),
X509_CRL_sign
(),
X509_CRL_sign_ctx
(), and
X509_CRL_verify
() sign and verify
certificate requests and CRLs, respectively.
X509_sign_ctx
() is used where the default
parameters for the corresponding public key and digest are not suitable. It
can be used to sign keys using RSA-PSS for example.
For efficiency reasons and to work around ASN.1 encoding issues, the encoding of
the signed portion of a certificate, certificate request, and CRL is cached
internally. If the signed portion of the structure is modified, the encoding
is not always updated, meaning a stale version is sometimes used. This is not
normally a problem because modifying the signed portion will invalidate the
signature and signing will always update the encoding.
RETURN VALUES
X509_sign
(),
X509_sign_ctx
(),
X509_REQ_sign
(),
X509_REQ_sign_ctx
(),
X509_CRL_sign
(), and
X509_CRL_sign_ctx
() return the size of the
signature in bytes for success or 0 for failure.
X509_verify
(),
X509_REQ_verify
(), and
X509_CRL_verify
() return 1 if the signature
is valid or 0 if the signature check fails. If the signature could not be
checked at all because it was invalid or some other error occurred, then -1 is
returned.
In some cases of failure, the reason can be determined with
ERR_get_error(3).
SEE ALSO
d2i_X509(3), EVP_DigestInit(3), X509_CRL_get0_by_serial(3), X509_CRL_new(3), X509_get_pubkey(3), X509_get_subject_name(3), X509_get_version(3), X509_NAME_add_entry_by_txt(3), X509_NAME_ENTRY_get_object(3), X509_NAME_get_index_by_NID(3), X509_NAME_print_ex(3), X509_new(3), X509_REQ_new(3), X509_verify_cert(3), X509V3_get_d2i(3)HISTORY
X509_verify
() appeared in SSLeay 0.4 or
earlier. X509_sign
() and
X509_REQ_sign
() first appeared in SSLeay
0.4.4. X509_REQ_verify
() and
X509_CRL_verify
() first appeared in SSLeay
0.4.5b. X509_CRL_sign
() first appeared in
SSLeay 0.5.1. These functions have been available since
OpenBSD 2.4.
X509_sign_ctx
(),
X509_REQ_sign_ctx
(), and
X509_CRL_sign_ctx
() first appeared in
OpenSSL 1.0.1 and have been available since OpenBSD
5.3.June 14, 2019 | Debian |