Botan 3.6.1
Crypto and TLS for C&
|
Classes | |
struct | botan_struct |
struct | botan_view_bounce_struct |
class | FFI_Error |
Functions | |
template<typename T , uint32_t M, typename F > | |
int | botan_ffi_visit (botan_struct< T, M > *o, F func, const char *func_name) |
int | botan_view_bin_bounce_fn (botan_view_ctx vctx, const uint8_t *buf, size_t len) |
int | botan_view_str_bounce_fn (botan_view_ctx vctx, const char *str, size_t len) |
template<typename Fn , typename... Args> | |
int | copy_view_bin (uint8_t out[], size_t *out_len, Fn fn, Args... args) |
template<typename Fn , typename... Args> | |
int | copy_view_str (uint8_t out[], size_t *out_len, Fn fn, Args... args) |
template<typename T , uint32_t M> | |
int | ffi_delete_object (botan_struct< T, M > *obj, const char *func_name) |
int | ffi_error_exception_thrown (const char *func_name, const char *exn, int rc) |
int | ffi_guard_thunk (const char *func_name, const std::function< int()> &thunk) |
template<typename Alloc > | |
int | invoke_view_callback (botan_view_bin_fn view, botan_view_ctx ctx, const std::vector< uint8_t, Alloc > &buf) |
int | invoke_view_callback (botan_view_str_fn view, botan_view_ctx ctx, std::string_view str) |
template<typename T , uint32_t M> | |
T & | safe_get (botan_struct< T, M > *p) |
int | write_output (uint8_t out[], size_t *out_len, const uint8_t buf[], size_t buf_len) |
int | write_str_output (char out[], size_t *out_len, const std::vector< uint8_t > &str_vec) |
int | write_str_output (char out[], size_t *out_len, std::string_view str) |
int | write_str_output (uint8_t out[], size_t *out_len, std::string_view str) |
template<typename Alloc > | |
int | write_vec_output (uint8_t out[], size_t *out_len, const std::vector< uint8_t, Alloc > &buf) |
Variables | |
thread_local std::string | g_last_exception_what |
int Botan_FFI::botan_ffi_visit | ( | botan_struct< T, M > * | o, |
F | func, | ||
const char * | func_name ) |
Definition at line 81 of file ffi_util.h.
References BOTAN_FFI_ERROR_INVALID_OBJECT, BOTAN_FFI_ERROR_NULL_POINTER, BOTAN_FFI_SUCCESS, ffi_guard_thunk(), Botan_FFI::botan_struct< T, MAGIC >::magic_ok(), T, and Botan_FFI::botan_struct< T, MAGIC >::unsafe_get().
int Botan_FFI::botan_view_bin_bounce_fn | ( | botan_view_ctx | vctx, |
const uint8_t * | buf, | ||
size_t | len ) |
Definition at line 38 of file ffi.cpp.
References BOTAN_FFI_ERROR_INSUFFICIENT_BUFFER_SPACE, BOTAN_FFI_ERROR_NULL_POINTER, BOTAN_FFI_SUCCESS, Botan::clear_mem(), Botan::copy_mem(), Botan_FFI::botan_view_bounce_struct::out_len, and Botan_FFI::botan_view_bounce_struct::out_ptr.
Referenced by botan_view_str_bounce_fn(), and copy_view_bin().
int Botan_FFI::botan_view_str_bounce_fn | ( | botan_view_ctx | vctx, |
const char * | str, | ||
size_t | len ) |
Definition at line 34 of file ffi.cpp.
References botan_view_bin_bounce_fn().
Referenced by copy_view_str().
int Botan_FFI::copy_view_bin | ( | uint8_t | out[], |
size_t * | out_len, | ||
Fn | fn, | ||
Args... | args ) |
Definition at line 163 of file ffi_util.h.
References botan_view_bin_bounce_fn(), Botan_FFI::botan_view_bounce_struct::out_len, and Botan_FFI::botan_view_bounce_struct::out_ptr.
Referenced by botan_pk_op_key_agreement_export_public(), botan_privkey_export(), botan_privkey_export_encrypted_pbkdf_iter(), botan_privkey_export_encrypted_pbkdf_msec(), botan_pubkey_export(), and botan_x509_cert_get_public_key_bits().
int Botan_FFI::copy_view_str | ( | uint8_t | out[], |
size_t * | out_len, | ||
Fn | fn, | ||
Args... | args ) |
Definition at line 171 of file ffi_util.h.
References BOTAN_FFI_ERROR_NULL_POINTER, botan_view_str_bounce_fn(), Botan_FFI::botan_view_bounce_struct::out_len, and Botan_FFI::botan_view_bounce_struct::out_ptr.
Referenced by botan_privkey_export(), botan_privkey_export_encrypted_pbkdf_iter(), botan_privkey_export_encrypted_pbkdf_msec(), botan_pubkey_export(), and botan_x509_cert_to_string().
int Botan_FFI::ffi_delete_object | ( | botan_struct< T, M > * | obj, |
const char * | func_name ) |
Definition at line 127 of file ffi_util.h.
References BOTAN_FFI_ERROR_INVALID_OBJECT, BOTAN_FFI_SUCCESS, ffi_guard_thunk(), and Botan_FFI::botan_struct< T, MAGIC >::magic_ok().
int Botan_FFI::ffi_error_exception_thrown | ( | const char * | func_name, |
const char * | exn, | ||
int | rc ) |
Definition at line 24 of file ffi.cpp.
References g_last_exception_what, and Botan::OS::read_env_variable().
Referenced by ffi_guard_thunk().
int Botan_FFI::ffi_guard_thunk | ( | const char * | func_name, |
const std::function< int()> & | thunk ) |
Definition at line 118 of file ffi.cpp.
References BOTAN_FFI_ERROR_OUT_OF_MEMORY, Botan_FFI::FFI_Error::error_code(), Botan_FFI::FFI_Error::error_type(), ffi_error_exception_thrown(), g_last_exception_what, and Botan::Exception::what().
Referenced by botan_base64_decode(), botan_base64_encode(), botan_bcrypt_generate(), botan_bcrypt_is_valid(), botan_block_cipher_init(), botan_cipher_init(), botan_cipher_start(), botan_cipher_update(), botan_ffi_visit(), botan_fpe_decrypt(), botan_fpe_encrypt(), botan_fpe_fe1_init(), botan_hash_init(), botan_hex_decode(), botan_hex_encode(), botan_hotp_init(), botan_kdf(), botan_mac_init(), botan_mp_init(), botan_nist_kw_dec(), botan_nist_kw_enc(), botan_pk_op_decrypt_create(), botan_pk_op_encrypt_create(), botan_pk_op_kem_decrypt_create(), botan_pk_op_kem_encrypt_create(), botan_pk_op_key_agreement_create(), botan_pk_op_sign_create(), botan_pk_op_verify_create(), botan_pkcs_hash_id(), botan_privkey_create(), botan_privkey_create_dsa(), botan_privkey_create_elgamal(), botan_privkey_export_pubkey(), botan_privkey_load(), botan_privkey_load_dh(), botan_privkey_load_dsa(), botan_privkey_load_ecdh(), botan_privkey_load_ecdsa(), botan_privkey_load_ed25519(), botan_privkey_load_ed448(), botan_privkey_load_elgamal(), botan_privkey_load_frodokem(), botan_privkey_load_kyber(), botan_privkey_load_ml_dsa(), botan_privkey_load_ml_kem(), botan_privkey_load_rsa(), botan_privkey_load_rsa_pkcs1(), botan_privkey_load_slh_dsa(), botan_privkey_load_sm2(), botan_privkey_load_x25519(), botan_privkey_load_x448(), botan_pubkey_ecc_key_used_explicit_encoding(), botan_pubkey_load(), botan_pubkey_load_dh(), botan_pubkey_load_dsa(), botan_pubkey_load_ecdh(), botan_pubkey_load_ecdsa(), botan_pubkey_load_ed25519(), botan_pubkey_load_ed448(), botan_pubkey_load_elgamal(), botan_pubkey_load_frodokem(), botan_pubkey_load_kyber(), botan_pubkey_load_ml_dsa(), botan_pubkey_load_ml_kem(), botan_pubkey_load_rsa(), botan_pubkey_load_slh_dsa(), botan_pubkey_load_sm2(), botan_pubkey_load_x25519(), botan_pubkey_load_x448(), botan_pubkey_sm2_compute_za(), botan_pwdhash(), botan_pwdhash_timed(), botan_rng_init(), botan_rng_init_custom(), botan_srp6_client_agree(), botan_srp6_generate_verifier(), botan_srp6_group_size(), botan_srp6_server_session_init(), botan_system_rng_get(), botan_totp_init(), botan_tpm2_ctx_init(), botan_tpm2_ctx_init_ex(), botan_x509_cert_dup(), botan_x509_cert_get_public_key(), botan_x509_cert_load(), botan_x509_cert_load_file(), botan_x509_cert_verify(), botan_x509_cert_verify_with_crl(), botan_x509_crl_load(), botan_x509_crl_load_file(), botan_zfec_decode(), botan_zfec_encode(), and ffi_delete_object().
|
inline |
Definition at line 146 of file ffi_util.h.
Referenced by botan_pk_op_key_agreement_view_public(), botan_privkey_view_der(), botan_privkey_view_encrypted_der(), botan_privkey_view_encrypted_der_timed(), botan_privkey_view_encrypted_pem(), botan_privkey_view_encrypted_pem_timed(), botan_privkey_view_kyber_raw_key(), botan_privkey_view_pem(), botan_privkey_view_raw(), botan_pubkey_view_der(), botan_pubkey_view_ec_public_point(), botan_pubkey_view_kyber_raw_key(), botan_pubkey_view_pem(), botan_pubkey_view_raw(), botan_x509_cert_view_as_string(), and botan_x509_cert_view_public_key_bits().
|
inline |
Definition at line 150 of file ffi_util.h.
T & Botan_FFI::safe_get | ( | botan_struct< T, M > * | p | ) |
Definition at line 63 of file ffi_util.h.
References BOTAN_FFI_ERROR_INVALID_OBJECT, BOTAN_FFI_ERROR_NULL_POINTER, Botan_FFI::botan_struct< T, MAGIC >::magic_ok(), T, and Botan_FFI::botan_struct< T, MAGIC >::unsafe_get().
Referenced by botan_bcrypt_generate(), botan_cipher_start(), botan_cipher_update(), botan_fpe_decrypt(), botan_fpe_encrypt(), botan_fpe_fe1_init(), botan_mp_add(), botan_mp_add_u32(), botan_mp_cmp(), botan_mp_div(), botan_mp_equal(), botan_mp_gcd(), botan_mp_is_prime(), botan_mp_lshift(), botan_mp_mod_inverse(), botan_mp_mod_mul(), botan_mp_mul(), botan_mp_powmod(), botan_mp_rand_bits(), botan_mp_rand_range(), botan_mp_rshift(), botan_mp_set_from_mp(), botan_mp_sub(), botan_mp_sub_u32(), botan_mp_swap(), botan_pk_op_decrypt_create(), botan_pk_op_encrypt(), botan_pk_op_encrypt_create(), botan_pk_op_kem_decrypt_create(), botan_pk_op_kem_encrypt_create(), botan_pk_op_kem_encrypt_create_shared_key(), botan_pk_op_key_agreement_create(), botan_pk_op_sign_create(), botan_pk_op_sign_finish(), botan_pk_op_verify_create(), botan_privkey_check_key(), botan_privkey_create(), botan_privkey_create_dsa(), botan_privkey_create_elgamal(), botan_privkey_export_pubkey(), botan_privkey_get_field(), botan_privkey_load_dh(), botan_privkey_load_dsa(), botan_privkey_load_ecdh(), botan_privkey_load_ecdsa(), botan_privkey_load_elgamal(), botan_privkey_load_rsa(), botan_privkey_load_sm2(), botan_privkey_view_encrypted_der(), botan_privkey_view_encrypted_der_timed(), botan_privkey_view_encrypted_pem(), botan_privkey_view_encrypted_pem_timed(), botan_pubkey_check_key(), botan_pubkey_ecc_key_used_explicit_encoding(), botan_pubkey_get_field(), botan_pubkey_load_dh(), botan_pubkey_load_dsa(), botan_pubkey_load_ecdh(), botan_pubkey_load_ecdsa(), botan_pubkey_load_elgamal(), botan_pubkey_load_rsa(), botan_pubkey_load_sm2(), botan_pubkey_sm2_compute_za(), botan_rng_reseed_from_rng(), botan_srp6_client_agree(), botan_srp6_server_session_step1(), botan_tpm2_ctx_enable_crypto_backend(), botan_x509_cert_dup(), botan_x509_cert_get_public_key(), botan_x509_cert_verify(), botan_x509_cert_verify_with_crl(), and botan_x509_is_revoked().
|
inline |
Definition at line 181 of file ffi_util.h.
References BOTAN_FFI_ERROR_INSUFFICIENT_BUFFER_SPACE, BOTAN_FFI_ERROR_NULL_POINTER, BOTAN_FFI_SUCCESS, Botan::clear_mem(), and Botan::copy_mem().
Referenced by botan_pkcs_hash_id(), write_str_output(), write_str_output(), and write_vec_output().
|
inline |
Definition at line 213 of file ffi_util.h.
References Botan::cast_char_ptr_to_uint8(), and write_output().
|
inline |
Definition at line 209 of file ffi_util.h.
References Botan::cast_char_ptr_to_uint8(), and write_str_output().
|
inline |
Definition at line 205 of file ffi_util.h.
References Botan::cast_char_ptr_to_uint8(), and write_output().
Referenced by botan_base64_encode(), botan_bcrypt_generate(), botan_block_cipher_name(), botan_cipher_name(), botan_hash_name(), botan_mac_name(), botan_mp_to_str(), botan_privkey_algo_name(), botan_privkey_rsa_get_privkey(), botan_pubkey_algo_name(), botan_x509_cert_get_fingerprint(), botan_x509_cert_get_issuer_dn(), botan_x509_cert_get_subject_dn(), botan_x509_cert_get_time_expires(), botan_x509_cert_get_time_starts(), and write_str_output().
int Botan_FFI::write_vec_output | ( | uint8_t | out[], |
size_t * | out_len, | ||
const std::vector< uint8_t, Alloc > & | buf ) |
Definition at line 201 of file ffi_util.h.
References write_output().
Referenced by botan_hex_decode(), botan_nist_kw_dec(), botan_nist_kw_enc(), botan_pk_op_decrypt(), botan_pk_op_encrypt(), botan_pk_op_kem_decrypt_shared_key(), botan_pk_op_kem_encrypt_create_shared_key(), botan_pk_op_key_agreement(), botan_pk_op_sign_finish(), botan_privkey_rsa_get_privkey(), botan_pubkey_fingerprint(), botan_pubkey_sm2_compute_za(), botan_srp6_client_agree(), botan_srp6_generate_verifier(), botan_srp6_server_session_step1(), botan_srp6_server_session_step2(), botan_x509_cert_get_authority_key_id(), botan_x509_cert_get_serial_number(), and botan_x509_cert_get_subject_key_id().
thread_local std::string Botan_FFI::g_last_exception_what |
Definition at line 22 of file ffi.cpp.
Referenced by botan_error_last_exception_message(), ffi_error_exception_thrown(), and ffi_guard_thunk().