Files
wolfssl/doc/dox_comments/header_files-ja/quic.h

604 lines
22 KiB
C
Raw Normal View History

2022-12-20 12:28:04 +09:00
/*!
\ingroup QUIC
\brief
QUIC /
Early_data/handshake/application
\return 1 0
\param ssl - wolfSSL_new() 使 WOLFSSL
\param level -
\param read_secret - 使NULL
\param write_secret - 使NULL
\param secret_len -
\sa wolfSSL_set_quic_method
*/
int (*set_encryption_secrets)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL ,
const uint8_t *read_secret,
const uint8_t *write_secret, size_t secret_len);
/*!
\ingroup QUIC
\brief CRYPTO
QUICの仕事です
使
CRYPTO
使
\return 1 0
\param ssl - wolfSSL_new() 使 WOLFSSL
\param level - 使
\param data -
\param len -
\sa wolfSSL_set_quic_method
*/
int (*add_handshake_data)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL ,
const uint8_t *data, size_t len);
/*!
\ingroup QUIC
\brief
\return 1 0
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_set_quic_method
*/
int (*flush_flight)(WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief SSL
\return 1 0
\param ssl - wolfSSL_new() 使 WOLFSSL
\param level -
\param alert -
\sa wolfSSL_set_quic_method
*/
int (*send_alert)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL , uint8_t );
/*!
\ingroup QUIC
\brief WOLFSSL_CTX WOLFSSL QUIC
4 CTX TLSv1.3
quic_method SSL 寿
\return WOLFSSL_SUCCESS
\param ctx - wolfSSL_CTX_new() 使 WOLFSSL_CTX
\param quic_method -
\sa wolfSSL_is_quic
\sa wolfSSL_set_quic_method
*/
int wolfSSL_CTX_set_quic_method(WOLFSSL_CTX *ctx, const WOLFSSL_QUIC_METHOD *quic_method);
/*!
\ingroup QUIC
\brief WOLFSSL QUIC
4 WOLFSSL TLSv1.3
quic_method SSL 寿
\return WOLFSSL_SUCCESS
\param ssl - wolfSSL_new() 使 WOLFSSL
\param quic_method -
\sa wolfSSL_is_quic
\sa wolfSSL_CTX_set_quic_method
*/
int wolfSSL_set_quic_method(WOLFSSL *ssl, const WOLFSSL_QUIC_METHOD *quic_method);
/*!
\ingroup QUIC
\brief QUIC WOLFSSL
\return WOLFSSL QUIC 使 1
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_CTX_quic_method
\sa wolfSSL_CTX_set_quic_method
*/
int wolfSSL_is_quic(WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief 使
WOLFSSL QUIC 使
\return
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_quic_write_level
*/
WOLFSSL_ENCRYPTION_LEVEL wolfSSL_quic_read_level(const WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief 使
WOLFSSL QUIC 使
\return
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_quic_read_level
*/
WOLFSSL_ENCRYPTION_LEVEL wolfSSL_quic_write_level(const WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief QUIC 使
WOLFSSL (draft-27 v1)
\return WOLFSSL_SUCCESS
\param ssl - wolfSSL_new() 使 WOLFSSL
\param use_legacy - 27 使 trueQUICv1 使 0
\sa wolfSSL_set_quic_transport_version
*/
void wolfSSL_set_quic_use_legacy_codepoint(WOLFSSL *ssl, int use_legacy);
/*!
\ingroup QUIC
\brief QUIC 使
\return WOLFSSL_SUCCESS
\param ssl - wolfSSL_new() 使 WOLFSSL
\param version - QUIC TLS
\sa wolfSSL_set_quic_use_legacy_codepoint
*/
void wolfSSL_set_quic_transport_version(WOLFSSL *ssl, int );
/*!
\ingroup QUIC
\brief QUIC
\return TLS
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_set_quic_use_legacy_codepoint
\sa wolfSSL_set_quic_transport_version
*/
int wolfSSL_get_quic_transport_version(const WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief 使 QUIC
\return WOLFSSL_SUCCESS
\param ssl - wolfSSL_new() 使 WOLFSSL
\param params - 使
·param params_len -
\sa wolfSSL_set_quic_use_legacy_codepoint
\sa wolfSSL_set_quic_transport_version
*/
int wolfSSL_set_quic_transport_params(WOLFSSL *ssl, const uint8_t *params, size_t params_len);
/*!
\ingroup QUIC
\brief QUIC
TLS
\return -1
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_set_quic_use_legacy_codepoint
\sa wolfSSL_set_quic_transport_version
*/
int wolfSSL_get_peer_quic_transport_version(const WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief QUIC
TLS
\param ssl - wolfSSL_new() 使 WOLFSSL
\param out_params - NULL
\param out_params_len - 0
\sa wolfSSL_get_peer_quic_transport_version
*/
void wolfSSL_get_peer_quic_transport_params(const WOLFSSL *ssl, const uint8_t **out_params, size_t *out_params_len);
/*!
\ingroup QUIC
\brief
\param ssl - wolfSSL_new() 使 WOLFSSL
\param enabled - != 0
*/
void wolfSSL_set_quic_early_data_enabled(WOLFSSL *ssl, int enabled);
/*!
\ingroup QUIC
\brief
WOLFSSLインスタンスのデータ量です
\return
\param ssl - wolfSSL_new() 使 WOLFSSL
\param level -
*/
size_t wolfSSL_quic_max_handshake_flight_len(const WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL );
/*!
\ingroup QUIC
\brief CRYPTO WOLFSSL
\return WOLFSSL_SUCCESS
\param ssl - wolfSSL_new() 使 WOLFSSL
\param level -
\param data -
\param len -
\sa wolfSSL_process_quic_post_handshake
*/
int wolfSSL_provide_quic_data(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL , const uint8_t *data, size_t len);
/*!
\ingroup QUIC
\brief CRYPTO
\return WOLFSSL_SUCCESS
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_provide_quic_data
\sa wolfSSL_quic_read_write
\sa wolfSSL_accept
\sa wolfSSL_connect
*/
WOLFSSL_API int wolfSSL_process_quic_post_handshake(WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief CRYPTO
wolfSSL_process_quic_post_handshake()
\return WOLFSSL_SUCCESS
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_provide_quic_data
\sa wolfSSL_quic_read_write
\sa wolfSSL_accept
\sa wolfSSL_connect
*/
int wolfSSL_quic_read_write(WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief TLS AEAD
\return NULL
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_quic_aad_is_gcm
\sa wolfSSL_quic_aad_is_ccm
\sa wolfSSL_quic_aad_is_chacha20
\sa wolfSSL_quic_get_aad_tag_len
\sa wolfSSL_quic_get_md
\sa wolfSSL_quic_get_hp
\sa wolfSSL_quic_crypt_new
\sa wolfSSL_quic_aad_encrypt
\sa wolfSSL_quic_aad_decrypt
*/
const WOLFSSL_EVP_CIPHER *wolfSSL_quic_get_aad(WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief AEAD GCM
\return != 0 (AEAD GCM )
\param cipher -
\sa wolfSSL_quic_get_aad
\sa wolfSSL_quic_aad_is_ccm
\sa wolfSSL_quic_aad_is_chacha20
\sa wolfSSL_quic_get_aad_tag_len
\sa wolfSSL_quic_get_md
\sa wolfSSL_quic_get_hp
\sa wolfSSL_quic_crypt_new
\sa wolfSSL_quic_aad_encrypt
\sa wolfSSL_quic_aad_decrypt
*/
int wolfSSL_quic_aead_is_gcm(const WOLFSSL_EVP_CIPHER *aead_cipher);
/*!
\ingroup QUIC
\brief AEAD CCM
\return != 0 AEAD CCM
\param cipher -
\sa wolfSSL_quic_get_aad
\sa wolfSSL_quic_aad_is_gcm
\sa wolfSSL_quic_aad_is_chacha20
\sa wolfSSL_quic_get_aad_tag_len
\sa wolfSSL_quic_get_md
\sa wolfSSL_quic_get_hp
\sa wolfSSL_quic_crypt_new
\sa wolfSSL_quic_aad_encrypt
\sa wolfSSL_quic_aad_decrypt
*/
int wolfSSL_quic_aead_is_ccm(const WOLFSSL_EVP_CIPHER *aead_cipher);
/*!
\ingroup QUIC
\brief AEAD CHACHA20
\return != 0 AEAD CHACHA20
\param cipher -
\sa wolfSSL_quic_get_aad
\sa wolfSSL_quic_aad_is_ccm
\sa wolfSSL_quic_aad_is_gcm
\sa wolfSSL_quic_get_aad_tag_len
\sa wolfSSL_quic_get_md
\sa wolfSSL_quic_get_hp
\sa wolfSSL_quic_crypt_new
\sa wolfSSL_quic_aad_encrypt
\sa wolfSSL_quic_aad_decrypt
*/
int wolfSSL_quic_aead_is_chacha20(const WOLFSSL_EVP_CIPHER *aead_cipher);
/*!
\ingroup QUIC
\brief AEAD
\return AEAD
\param cipher -
\sa wolfSSL_quic_get_aad
*/
WOLFSSL_API size_t wolfSSL_quic_get_aead_tag_len(const WOLFSSL_EVP_CIPHER *aead_cipher);
/*!
\ingroup QUIC
\brief TLS
\return TLS
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_quic_get_aad
\sa wolfSSL_quic_get_hp
*/
WOLFSSL_API const WOLFSSL_EVP_MD *wolfSSL_quic_get_md(WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief TLS
\return TLS
\param ssl - wolfSSL_new() 使 WOLFSSL
\sa wolfSSL_quic_get_aad
\sa wolfSSL_quic_get_md
*/
const WOLFSSL_EVP_CIPHER *wolfSSL_quic_get_hp(WOLFSSL *ssl);
/*!
\ingroup QUIC
\brief /
\return NULL
\param cipher - 使
\param key - 使
\param iv - 使 iv
\param encrypt - != 0
\sa wolfSSL_quic_get_aad
\sa wolfSSL_quic_get_hp
\sa wolfSSL_quic_aad_encrypt
\sa wolfSSL_quic_aad_decrypt
*/
WOLFSSL_EVP_CIPHER_CTX *wolfSSL_quic_crypt_new(const WOLFSSL_EVP_CIPHER *cipher,
const uint8_t *key, const uint8_t *iv, int encrypt);
/*!
\ingroup QUIC
\brief
\return WOLFSSL_SUCCESS
\param dest -
\param aead_ctx - 使
\param plain -
\param plainlen -
\param iv - 使 iv
\param aad - 使
\param aadlen - aad
\sa wolfSSL_quic_get_aad
\sa wolfSSL_quic_get_hp
\sa wolfSSL_quic_crypt_new
\sa wolfSSL_quic_aad_decrypt
*/
int wolfSSL_quic_aead_encrypt(uint8_t *dest, WOLFSSL_EVP_CIPHER_CTX *aead_ctx,
const uint8_t *plain, size_t plainlen,
const uint8_t *iv, const uint8_t *aad, size_t aadlen);
/*!
\ingroup QUIC
\brief
\return WOLFSSL_SUCCESS
\param dest -
\param ctx - 使
\param enc -
\param envlen -
\param iv - 使 iv
\param aad - 使
\param aadlen - aad
\sa wolfSSL_quic_get_aad
\sa wolfSSL_quic_get_hp
\sa wolfSSL_quic_crypt_new
\sa wolfSSL_quic_aad_encrypt
*/
int wolfSSL_quic_aad_decrypt(uint8_t *dest, WOLFSSL_EVP_CIPHER_CTX *ctx,
const uint8_t *enc, size_t enclen,
const uint8_t *iv, const uint8_t *aad, size_t aadlen);
/*!
\ingroup QUIC
\brief
\return WOLFSSL_SUCCESS
\param dest -
\param md - 使
\param secret - 使
\param secretlen -
\param salt - 使
\param saltlen -
\sa wolfSSL_quic_hkdf_expand
\sa wolfSSL_quic_hkdf
*/
int wolfSSL_quic_hkdf_extract(uint8_t *dest, const WOLFSSL_EVP_MD *md,
const uint8_t *secret, size_t secretlen,
const uint8_t *salt, size_t saltlen);
/*!
\ingroup QUIC
\brief
\return WOLFSSL_SUCCESS
\param dest -
\param destlen -
\param md - 使
\param secret - 使
\param secretlen -
\param info - 使
\param infolen -
\sa wolfSSL_quic_hkdf_extract
\sa wolfSSL_quic_hkdf
*/
int wolfSSL_quic_hkdf_expand(uint8_t *dest, size_t destlen,
const WOLFSSL_EVP_MD *md,
const uint8_t *secret, size_t secretlen,
const uint8_t *info, size_t infolen);
/*!
\ingroup QUIC
\brief
\return WOLFSSL_SUCCESS
\param dest -
\param destlen -
\param md - 使
\param secret - 使
\param secretlen -
\param salt - 使
\param saltlen -
\param info - 使
\param infolen -
\sa wolfSSL_quic_hkdf_extract
\sa wolfSSL_quic_hkdf_expand
*/
int wolfSSL_quic_hkdf(uint8_t *dest, size_t destlen,
const WOLFSSL_EVP_MD *md,
const uint8_t *secret, size_t secretlen,
const uint8_t *salt, size_t saltlen,
const uint8_t *info, size_t infolen);