10#include <botan/pk_keys.h>
11#include <botan/internal/ffi_oid.h>
12#include <botan/internal/ffi_pkey.h>
13#include <botan/internal/ffi_util.h>
25 if(oid_obj ==
nullptr || oid_str ==
nullptr) {
36 auto oid_ptr = std::make_unique<Botan::OID>(std::move(oid));
37 *oid_obj =
new botan_asn1_oid_struct(std::move(oid_ptr));
58 oid, [=](
const auto& o) ->
int {
return invoke_view_callback(view, ctx, o.to_formatted_string()); });
67 if(result ==
nullptr) {
static void register_oid(const OID &oid, std::string_view name)
static OID from_string(std::string_view str)
struct botan_asn1_oid_struct * botan_asn1_oid_t
@ BOTAN_FFI_ERROR_NULL_POINTER
@ BOTAN_FFI_ERROR_BAD_PARAMETER
int(* botan_view_str_fn)(botan_view_ctx view_ctx, const char *str, size_t len)
int botan_oid_equal(botan_asn1_oid_t a_w, botan_asn1_oid_t b_w)
int botan_oid_register(botan_asn1_oid_t oid, const char *name)
int botan_oid_view_string(botan_asn1_oid_t oid, botan_view_ctx ctx, botan_view_str_fn view)
int botan_oid_cmp(int *result, botan_asn1_oid_t a_w, botan_asn1_oid_t b_w)
int botan_oid_view_name(botan_asn1_oid_t oid, botan_view_ctx ctx, botan_view_str_fn view)
int botan_oid_from_string(botan_asn1_oid_t *oid_obj, const char *oid_str)
int botan_oid_destroy(botan_asn1_oid_t oid)
#define BOTAN_FFI_VISIT(obj, lambda)
#define BOTAN_FFI_CHECKED_DELETE(o)
int invoke_view_callback(botan_view_bin_fn view, botan_view_ctx ctx, std::span< const uint8_t > buf)
T & safe_get(botan_struct< T, M > *p)
int ffi_guard_thunk(const char *func_name, T thunk)