1 /* A cut down set of hcrypto EVP ciphers for kernel use */
5 #include <evp-hcrypto.h>
10 aes_init(EVP_CIPHER_CTX
*ctx
,
11 const unsigned char * key
,
12 const unsigned char * iv
,
15 AES_KEY
*k
= ctx
->cipher_data
;
17 AES_set_encrypt_key(key
, ctx
->cipher
->key_len
* 8, k
);
19 AES_set_decrypt_key(key
, ctx
->cipher
->key_len
* 8, k
);
24 aes_do_cipher(EVP_CIPHER_CTX
*ctx
,
26 const unsigned char *in
,
29 AES_KEY
*k
= ctx
->cipher_data
;
30 if (ctx
->flags
& EVP_CIPH_CFB8_MODE
)
31 AES_cfb8_encrypt(in
, out
, size
, k
, ctx
->iv
, ctx
->encrypt
);
33 AES_cbc_encrypt(in
, out
, size
, k
, ctx
->iv
, ctx
->encrypt
);
38 EVP_hckernel_aes_128_cbc(void)
40 static const EVP_CIPHER aes_128_cbc
= {
60 EVP_hckernel_aes_256_cbc(void)
62 static const EVP_CIPHER aes_256_cbc
= {
81 EVP_hckernel_sha1(void)
83 static const struct hc_evp_md sha1
= {
87 (hc_evp_md_init
)SHA1_Init
,
88 (hc_evp_md_update
)SHA1_Update
,
89 (hc_evp_md_final
)SHA1_Final
,
96 EVP_hckernel_sha256(void) {
101 EVP_hckernel_sha384(void) {
106 EVP_hckernel_sha512(void) {
111 EVP_hckernel_md5(void) {
116 EVP_hckernel_md4(void) {
121 EVP_hckernel_md2(void) {
126 EVP_hckernel_rc2_cbc(void) {
131 EVP_hckernel_rc2_40_cbc(void) {
136 EVP_hckernel_rc2_64_cbc(void) {
141 EVP_hckernel_rc4(void) {
146 EVP_hckernel_rc4_40(void) {
151 EVP_hckernel_des_cbc(void) {
156 EVP_hckernel_des_ede3_cbc(void) {
161 EVP_hckernel_aes_192_cbc(void) {
166 EVP_hckernel_aes_128_cfb8(void) {
171 EVP_hckernel_aes_192_cfb8(void) {
176 EVP_hckernel_aes_256_cfb8(void) {
181 EVP_hckernel_camellia_128_cbc(void) {
186 EVP_hckernel_camellia_192_cbc(void) {
191 EVP_hckernel_camellia_256_cbc(void) {
196 hcrypto_validate(void) {