
Macros
======

ngtcp2 crypto library error codes
---------------------------------

.. macro:: NGTCP2_CRYPTO_ERR_INTERNAL

    
    :macro:`NGTCP2_CRYPTO_ERR_INTERNAL` indicates an internal error.
.. macro:: NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN

    
    :macro:`NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN` indicates that a token
    is unreadable because it is not correctly formatted; or verifying
    the integrity protection failed.
.. macro:: NGTCP2_CRYPTO_ERR_VERIFY_TOKEN

    
    :macro:`NGTCP2_CRYPTO_ERR_VERIFY_TOKEN` indicates that a token does
    not probe the client address; or the token validity has expired; or
    it contains invalid Connection ID.
.. macro:: NGTCP2_CRYPTO_ERR_NOMEM

    
    :macro:`NGTCP2_CRYPTO_ERR_NOMEM` indicates out of memory.
.. macro:: NGTCP2_CRYPTO_TOKEN_RAND_DATALEN

    
    :macro:`NGTCP2_CRYPTO_TOKEN_RAND_DATALEN` is the length of random
    data added to a token generated by
    `ngtcp2_crypto_generate_retry_token` or
    `ngtcp2_crypto_generate_regular_token`.
.. macro:: NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY

    
    :macro:`NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY` is the magic byte for
    Retry token generated by `ngtcp2_crypto_generate_retry_token`.
.. macro:: NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY2

    
    :macro:`NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY2` is the magic byte for
    Retry token generated by `ngtcp2_crypto_generate_retry_token2`.
.. macro:: NGTCP2_CRYPTO_TOKEN_MAGIC_REGULAR

    
    :macro:`NGTCP2_CRYPTO_TOKEN_MAGIC_REGULAR` is the magic byte for a
    token generated by `ngtcp2_crypto_generate_regular_token`.
.. macro:: NGTCP2_CRYPTO_MAX_RETRY_TOKENLEN

    
    :macro:`NGTCP2_CRYPTO_MAX_RETRY_TOKENLEN` is the maximum length of
    a token generated by `ngtcp2_crypto_generate_retry_token`.
.. macro:: NGTCP2_CRYPTO_MAX_RETRY_TOKENLEN2

    
    :macro:`NGTCP2_CRYPTO_MAX_RETRY_TOKENLEN2` is the maximum length of
    a token generated by `ngtcp2_crypto_generate_retry_token2`.
.. macro:: NGTCP2_CRYPTO_MAX_REGULAR_TOKENLEN

    
    :macro:`NGTCP2_CRYPTO_MAX_REGULAR_TOKENLEN` is the maximum length
    of a token generated by `ngtcp2_crypto_generate_regular_token`.
    `ngtcp2_crypto_generate_regular_token2` generates a token of length
    at most :macro:`NGTCP2_CRYPTO_MAX_REGULAR_TOKENLEN` bytes + the
    length of the provided opaque data.

quictls specific error codes
----------------------------

.. macro:: NGTCP2_CRYPTO_QUICTLS_ERR_TLS_WANT_X509_LOOKUP

    
    :macro:`NGTCP2_CRYPTO_QUICTLS_ERR_TLS_WANT_X509_LOOKUP` is the
    error code which indicates that TLS handshake routine is
    interrupted by X509 certificate lookup.  See
    :macro:`SSL_ERROR_WANT_X509_LOOKUP` error description from
    `SSL_do_handshake`.
.. macro:: NGTCP2_CRYPTO_QUICTLS_ERR_TLS_WANT_CLIENT_HELLO_CB

    
    :macro:`NGTCP2_CRYPTO_QUICTLS_ERR_TLS_WANT_CLIENT_HELLO_CB` is the
    error code which indicates that TLS handshake routine is
    interrupted by client hello callback.  See
    :macro:`SSL_ERROR_WANT_CLIENT_HELLO_CB` error description from
    `SSL_do_handshake`.

ossl specific error codes
-------------------------

.. macro:: NGTCP2_CRYPTO_OSSL_ERR_TLS_WANT_X509_LOOKUP

    
    :macro:`NGTCP2_CRYPTO_OSSL_ERR_TLS_WANT_X509_LOOKUP` is the error
    code which indicates that TLS handshake routine is interrupted by
    X509 certificate lookup.  See :macro:`SSL_ERROR_WANT_X509_LOOKUP`
    error description from `SSL_do_handshake`.
.. macro:: NGTCP2_CRYPTO_OSSL_ERR_TLS_WANT_CLIENT_HELLO_CB

    
    :macro:`NGTCP2_CRYPTO_OSSL_ERR_TLS_WANT_CLIENT_HELLO_CB` is the
    error code which indicates that TLS handshake routine is
    interrupted by client hello callback.  See
    :macro:`SSL_ERROR_WANT_CLIENT_HELLO_CB` error description from
    `SSL_do_handshake`.
