openssl_sys/
ec.rs

1use libc::*;
2use std::ptr;
3
4use super::*;
5
6pub const OPENSSL_EC_NAMED_CURVE: c_int = 1;
7
8cfg_if! {
9    if #[cfg(not(ossl300))] {
10        pub unsafe fn EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx: *mut EVP_PKEY_CTX, nid: c_int) -> c_int {
11            EVP_PKEY_CTX_ctrl(
12                ctx,
13                EVP_PKEY_EC,
14                EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN,
15                EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID,
16                nid,
17                ptr::null_mut(),
18            )
19        }
20    }
21}
22#[cfg(ossl300)]
23pub unsafe fn EVP_EC_gen(curve: *const c_char) -> *mut EVP_PKEY {
24    EVP_PKEY_Q_keygen(
25        ptr::null_mut(),
26        ptr::null_mut(),
27        "EC\0".as_ptr().cast(),
28        curve,
29    )
30}
31
32pub const EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID: c_int = EVP_PKEY_ALG_CTRL + 1;