botan_sys/
ec_group.rs

1#[cfg(botan_ffi_20250506)]
2use crate::ffi_types::{botan_view_bin_fn, botan_view_ctx, botan_view_str_fn, c_char, c_int};
3#[cfg(botan_ffi_20250506)]
4use crate::{botan_asn1_oid_t, botan_mp_t};
5
6#[cfg(botan_ffi_20250506)]
7pub enum botan_ec_group_struct {}
8
9#[cfg(botan_ffi_20250506)]
10pub type botan_ec_group_t = *mut botan_ec_group_struct;
11
12#[cfg(botan_ffi_20250506)]
13extern "C" {
14    pub fn botan_ec_group_destroy(bc: botan_ec_group_t) -> c_int;
15
16    pub fn botan_ec_group_supports_application_specific_group(res: *mut c_int) -> c_int;
17
18    pub fn botan_ec_group_supports_named_group(name: *const c_char, res: *mut c_int) -> c_int;
19
20    pub fn botan_ec_group_from_params(
21        group: *mut botan_ec_group_t,
22        oid: botan_asn1_oid_t,
23        p: botan_mp_t,
24        a: botan_mp_t,
25        b: botan_mp_t,
26        g_x: botan_mp_t,
27        g_y: botan_mp_t,
28        order: botan_mp_t,
29    ) -> c_int;
30
31    pub fn botan_ec_group_from_ber(
32        group: *mut botan_ec_group_t,
33        ber: *const u8,
34        ber_len: usize,
35    ) -> c_int;
36    pub fn botan_ec_group_from_pem(group: *mut botan_ec_group_t, pem: *const c_char) -> c_int;
37    pub fn botan_ec_group_from_oid(group: *mut botan_ec_group_t, oid: botan_asn1_oid_t) -> c_int;
38    pub fn botan_ec_group_from_name(group: *mut botan_ec_group_t, name: *const c_char) -> c_int;
39
40    pub fn botan_ec_group_view_der(
41        group: botan_ec_group_t,
42        ctx: botan_view_ctx,
43        view: botan_view_bin_fn,
44    ) -> c_int;
45    pub fn botan_ec_group_view_pem(
46        group: botan_ec_group_t,
47        ctx: botan_view_ctx,
48        view: botan_view_str_fn,
49    ) -> c_int;
50    pub fn botan_ec_group_get_curve_oid(
51        oid: *mut botan_asn1_oid_t,
52        group: botan_ec_group_t,
53    ) -> c_int;
54    pub fn botan_ec_group_get_p(p: *mut botan_mp_t, group: botan_ec_group_t) -> c_int;
55
56    pub fn botan_ec_group_get_a(a: *mut botan_mp_t, group: botan_ec_group_t) -> c_int;
57
58    pub fn botan_ec_group_get_b(b: *mut botan_mp_t, group: botan_ec_group_t) -> c_int;
59
60    pub fn botan_ec_group_get_g_x(g_x: *mut botan_mp_t, group: botan_ec_group_t) -> c_int;
61
62    pub fn botan_ec_group_get_g_y(g_y: *mut botan_mp_t, group: botan_ec_group_t) -> c_int;
63
64    pub fn botan_ec_group_get_order(order: *mut botan_mp_t, group: botan_ec_group_t) -> c_int;
65
66    pub fn botan_ec_group_equal(group1: botan_ec_group_t, group2: botan_ec_group_t) -> c_int;
67}