Skip to main content

variant_ssl_sys/handwritten/
aes.rs

1use super::super::*;
2use libc::size_t;
3use std::ffi::{c_int, c_uchar, c_uint};
4
5#[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))]
6#[repr(C)]
7pub struct AES_KEY {
8    // There is some business with AES_LONG which is there to ensure the values here are 32 bits
9    rd_key: [u32; 4 * (AES_MAXNR as usize + 1)],
10    rounds: c_int,
11}
12
13#[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))]
14extern "C" {
15    pub fn AES_set_encrypt_key(userKey: *const c_uchar, bits: c_int, key: *mut AES_KEY) -> c_int;
16    pub fn AES_set_decrypt_key(userKey: *const c_uchar, bits: c_int, key: *mut AES_KEY) -> c_int;
17
18    #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))]
19    pub fn AES_ige_encrypt(
20        in_: *const c_uchar,
21        out: *mut c_uchar,
22        length: size_t,
23        key: *const AES_KEY,
24        ivec: *mut c_uchar,
25        enc: c_int,
26    );
27
28    pub fn AES_wrap_key(
29        key: *mut AES_KEY,
30        iv: *const c_uchar,
31        out: *mut c_uchar,
32        in_: *const c_uchar,
33        inlen: c_uint,
34    ) -> c_int;
35
36    pub fn AES_unwrap_key(
37        key: *mut AES_KEY,
38        iv: *const c_uchar,
39        out: *mut c_uchar,
40        in_: *const c_uchar,
41        inlen: c_uint,
42    ) -> c_int;
43}