Sortix nightly manual
This manual documents Sortix nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.
| X509_NEW(3) | Library Functions Manual | X509_NEW(3) | 
NAME
X509_new,
    X509_dup, X509_REQ_to_X509,
    X509_free, X509_up_ref,
    X509_chain_up_ref — X.509
    certificate object
SYNOPSIS
#include
    <openssl/x509.h>
X509 *
  
  X509_new(void);
X509 *
  
  X509_dup(X509 *a);
X509 *
  
  X509_REQ_to_X509(X509_REQ *req,
    int days, EVP_PKEY *pkey);
void
  
  X509_free(X509 *a);
int
  
  X509_up_ref(X509 *a);
STACK_OF(X509) *
  
  X509_chain_up_ref(STACK_OF(X509)
    *chain);
DESCRIPTION
X509_new()
    allocates and initializes an empty X509 object with
    reference count 1. It represents an ASN.1 Certificate
    structure defined in RFC 5280 section 4.1. It can hold a public key together
    with information about the person, organization, device, or function the
    associated private key belongs to.
X509_dup()
    creates a deep copy of a using
    ASN1_item_dup(3),
    setting the reference count of the copy to 1.
X509_REQ_to_X509()
    allocates a new certificate object, copies the public key from
    req into it, copies the subject name of
    req to both the subject and issuer names of the new
    certificate, sets the notBefore field to the current
    time and the notAfter field to the given number of
    days in the future, and signs the new certificate with
    X509_sign(3) using
    pkey and the MD5 algorithm. If
    req contains at least one attribute, the version of
    the new certificate is set to 2.
X509_free()
    decrements the reference count of the X509 structure
    a and frees it up if the reference count reaches 0. If
    a is a NULL pointer, no action
    occurs.
X509_up_ref()
    increments the reference count of a by 1. This
    function is useful if a certificate structure is being used by several
    different operations each of which will free it up after use: this avoids
    the need to duplicate the entire certificate structure.
X509_chain_up_ref()
    performs a shallow copy of the given chain using
    sk_X509_dup()
    and increments the reference count of each contained certificate by 1. Its
    purpose is similar to X509_up_ref(): The returned
    chain persists after the original is freed.
RETURN VALUES
X509_new(),
    X509_dup(), and
    X509_REQ_to_X509() return a pointer to the newly
    allocated object or NULL if an error occurs; an
    error code can be obtained by
    ERR_get_error(3).
X509_up_ref() returns 1 for success or 0
    for failure.
X509_chain_up_ref() returns the copy of
    the chain or NULL if an error
    occurs.
SEE ALSO
ASIdentifiers_new(3), ASRange_new(3), AUTHORITY_KEYID_new(3), BASIC_CONSTRAINTS_new(3), crypto(3), d2i_X509(3), IPAddressRange_new(3), PKCS8_PRIV_KEY_INFO_new(3), X509_ALGOR_new(3), X509_ATTRIBUTE_new(3), X509_check_ca(3), X509_check_host(3), X509_check_issued(3), X509_check_private_key(3), X509_check_purpose(3), X509_CINF_new(3), X509_cmp(3), X509_CRL_new(3), X509_digest(3), X509_EXTENSION_new(3), X509_find_by_subject(3), X509_get0_notBefore(3), X509_get0_signature(3), X509_get1_email(3), X509_get_ex_new_index(3), X509_get_extension_flags(3), X509_get_pubkey(3), X509_get_pubkey_parameters(3), X509_get_serialNumber(3), X509_get_subject_name(3), X509_get_version(3), X509_INFO_new(3), X509_load_cert_file(3), X509_LOOKUP_hash_dir(3), X509_LOOKUP_new(3), X509_NAME_new(3), X509_OBJECT_new(3), X509_PKEY_new(3), X509_print_ex(3), X509_PUBKEY_new(3), X509_PURPOSE_set(3), X509_REQ_new(3), X509_SIG_new(3), X509_sign(3), X509_STORE_CTX_new(3), X509_STORE_get_by_subject(3), X509_STORE_new(3), X509v3_addr_add_inherit(3), X509v3_addr_get_range(3), X509v3_addr_inherits(3), X509v3_addr_subset(3), X509v3_addr_validate_path(3), X509v3_asid_add_id_or_range(3)
STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
HISTORY
X509_new() and
    X509_free() appeared in SSLeay 0.4 or earlier,
    X509_dup() in SSLeay 0.4.4, and
    X509_REQ_to_X509() in SSLeay 0.6.0 . These functions
    have been available since OpenBSD 2.4.
X509_up_ref() first appeared in OpenSSL
    1.1.0 and has been available since OpenBSD 6.1.
X509_chain_up_ref() first appeared in
    OpenSSL 1.0.2 and has been available since OpenBSD
    6.3.
BUGS
The X.509 public key infrastructure and its data types contain too many design bugs to list them. For lots of examples, see the classic X.509 Style Guide that Peter Gutmann published in 2000.
| Sepember 2, 2024 | Sortix 1.1.0-dev | 
