Botan 2.13.0 Crypto and TLS for C++11

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

Classes | Namespaces | Macros | Functions
ffi_util.h File Reference
`#include <cstdint>`
`#include <memory>`
`#include <stdexcept>`
`#include <functional>`
`#include <botan/exceptn.h>`
`#include <botan/mem_ops.h>`

Go to the source code of this file.

## Classes
struct | Botan_FFI::botan_struct< T, MAGIC >
class | Botan_FFI::FFI_Error

## Namespaces
| Botan_FFI

## Macros
#define | BOTAN_FFI_CHECKED_DELETE(o) ffi_delete_object(o, __func__)
#define | BOTAN_FFI_DECLARE_STRUCT(NAME, TYPE, MAGIC) struct NAME final : public Botan_FFI::botan_struct<TYPE, MAGIC> { explicit NAME(TYPE* x) : botan_struct(x) {} }
#define | BOTAN_FFI_DO(T, obj, param, block)
#define | BOTAN_FFI_RETURNING(T, obj, param, block)

## Functions
template<typename T , uint32_t M, typename F >
int | Botan_FFI::apply_fn (botan_struct< T, M > *o, const char *func_name, F func)
template<typename T , uint32_t M>
int | Botan_FFI::ffi_delete_object (botan_struct< T, M > *obj, const char *func_name)
int | Botan_FFI::ffi_error_exception_thrown (const char *func_name, const char *exn, int rc)
int | Botan_FFI::ffi_guard_thunk (const char *func_name, std::function< int()> thunk)
template<typename T , uint32_t M>
T & | Botan_FFI::safe_get (botan_struct< T, M > *p)
int | Botan_FFI::write_output (uint8_t out[], size_t *out_len, const uint8_t buf[], size_t buf_len)
int | Botan_FFI::write_str_output (uint8_t out[], size_t *out_len, const std::string &str)
int | Botan_FFI::write_str_output (char out[], size_t *out_len, const std::string &str)
int | Botan_FFI::write_str_output (char out[], size_t *out_len, const std::vector< uint8_t > &str_vec)
template<typename Alloc >
int | Botan_FFI::write_vec_output (uint8_t out[], size_t *out_len, const std::vector< uint8_t, Alloc > &buf)

## Macro Definition Documentation

#define BOTAN_FFI_CHECKED_DELETE | ( |  | o | ) | ffi_delete_object(o, __func__)

Definition at line 129 of file ffi_util.h.

Referenced by botan_block_cipher_destroy(), botan_cipher_destroy(), botan_fpe_destroy(), botan_hash_destroy(), botan_hotp_destroy(), botan_mac_destroy(), botan_mp_destroy(), botan_pk_op_decrypt_destroy(), botan_pk_op_encrypt_destroy(), botan_pk_op_key_agreement_destroy(), botan_pk_op_sign_destroy(), botan_pk_op_verify_destroy(), botan_privkey_destroy(), botan_pubkey_destroy(), botan_rng_destroy(), botan_totp_destroy(), botan_x509_cert_destroy(), and botan_x509_crl_destroy().

#define BOTAN_FFI_DECLARE_STRUCT | ( |  | NAME,
|  |  | TYPE,
|  |  | MAGIC
| ) |  | struct NAME final : public Botan_FFI::botan_struct<TYPE, MAGIC> { explicit NAME(TYPE* x) : botan_struct(x) {} }

Definition at line 53 of file ffi_util.h.

#define BOTAN_FFI_DO | ( |  | T,
|  |  | obj,
|  |  | param,
|  |  | block
| ) |  |

Value:
apply_fn(obj, __func__, \
[=](T& param) -> int { do { block } while(0); return BOTAN_FFI_SUCCESS; })
Botan_FFI::apply_fn
int apply_fn(botan_struct< T, M > *o, const char *func_name, F func)
Definition: ffi_util.h:77
T
fe T
Definition: ge.cpp:37
BOTAN_FFI_SUCCESS
Definition: ffi.h:62

Definition at line 92 of file ffi_util.h.

Referenced by botan_block_cipher_clear(), botan_block_cipher_decrypt_blocks(), botan_block_cipher_encrypt_blocks(), botan_block_cipher_get_keyspec(), botan_block_cipher_name(), botan_block_cipher_set_key(), botan_cipher_clear(), botan_cipher_get_default_nonce_length(), botan_cipher_get_keyspec(), botan_cipher_get_tag_length(), botan_cipher_get_update_granularity(), botan_cipher_name(), botan_cipher_output_length(), botan_cipher_query_keylen(), botan_cipher_reset(), botan_cipher_set_key(), botan_hash_block_size(), botan_hash_clear(), botan_hash_copy_state(), botan_hash_final(), botan_hash_name(), botan_hash_output_length(), botan_hash_update(), botan_hotp_generate(), botan_mac_clear(), botan_mac_final(), botan_mac_get_keyspec(), botan_mac_name(), botan_mac_output_length(), botan_mac_set_key(), botan_mac_update(), botan_mp_add(), botan_mp_add_u32(), botan_mp_clear(), botan_mp_clear_bit(), botan_mp_cmp(), botan_mp_div(), botan_mp_flip_sign(), botan_mp_from_bin(), botan_mp_gcd(), botan_mp_is_negative(), botan_mp_is_positive(), botan_mp_lshift(), botan_mp_mod_inverse(), botan_mp_mod_mul(), botan_mp_mul(), botan_mp_num_bits(), botan_mp_num_bytes(), botan_mp_powmod(), botan_mp_rand_bits(), botan_mp_rand_range(), botan_mp_rshift(), botan_mp_set_bit(), botan_mp_set_from_int(), botan_mp_set_from_mp(), botan_mp_set_from_radix_str(), botan_mp_set_from_str(), botan_mp_sub(), botan_mp_sub_u32(), botan_mp_swap(), botan_mp_to_bin(), botan_mp_to_hex(), botan_mp_to_uint32(), botan_pk_op_decrypt(), botan_pk_op_decrypt_output_length(), botan_pk_op_encrypt(), botan_pk_op_encrypt_output_length(), botan_pk_op_key_agreement(), botan_pk_op_key_agreement_export_public(), botan_pk_op_key_agreement_size(), botan_pk_op_sign_finish(), botan_pk_op_sign_output_length(), botan_pk_op_sign_update(), botan_pk_op_verify_update(), botan_privkey_algo_name(), botan_privkey_ed25519_get_privkey(), botan_privkey_export(), botan_privkey_export_encrypted_pbkdf_iter(), botan_privkey_export_encrypted_pbkdf_msec(), botan_privkey_get_field(), botan_privkey_rsa_get_privkey(), botan_privkey_x25519_get_privkey(), botan_pubkey_algo_name(), botan_pubkey_ed25519_get_pubkey(), botan_pubkey_estimated_strength(), botan_pubkey_export(), botan_pubkey_fingerprint(), botan_pubkey_get_field(), botan_pubkey_x25519_get_pubkey(), botan_rng_add_entropy(), botan_rng_get(), botan_rng_reseed(), botan_rng_reseed_from_rng(), botan_totp_generate(), botan_x509_cert_get_authority_key_id(), botan_x509_cert_get_fingerprint(), botan_x509_cert_get_issuer_dn(), botan_x509_cert_get_public_key_bits(), botan_x509_cert_get_serial_number(), botan_x509_cert_get_subject_dn(), botan_x509_cert_get_subject_key_id(), botan_x509_cert_get_time_expires(), botan_x509_cert_get_time_starts(), botan_x509_cert_hostname_match(), botan_x509_cert_not_after(), botan_x509_cert_not_before(), and botan_x509_cert_to_string().

#define BOTAN_FFI_RETURNING | ( |  | T,
|  |  | obj,
|  |  | param,
|  |  | block
| ) |  |

Value:
apply_fn(obj, __func__, \
[=](T& param) -> int { do { block } while(0); })
Botan_FFI::apply_fn
int apply_fn(botan_struct< T, M > *o, const char *func_name, F func)
Definition: ffi_util.h:77
T
fe T
Definition: ge.cpp:37

Definition at line 101 of file ffi_util.h.

Referenced by botan_block_cipher_block_size(), botan_cipher_set_associated_data(), botan_cipher_valid_nonce_length(), botan_hotp_check(), botan_mp_equal(), botan_mp_get_bit(), botan_mp_is_even(), botan_mp_is_odd(), botan_mp_is_prime(), botan_mp_is_zero(), botan_mp_to_str(), botan_pk_op_verify_finish(), botan_privkey_check_key(), botan_pubkey_check_key(), botan_totp_check(), botan_x509_cert_allowed_usage(), and botan_x509_is_revoked().