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) {