-
Notifications
You must be signed in to change notification settings - Fork 0
/
openssl_aes.h
41 lines (32 loc) · 1.05 KB
/
openssl_aes.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Most of this code is borrowed from Saju Pillai. Do not assert copyright.
#ifndef OPENSSL_AES_H_
#define OPENSSL_AES_H_
/**
AES encryption/decryption demo program using OpenSSL EVP apis
gcc -Wall openssl_aes.c -lcrypto
this is public domain code.
Saju Pillai ([email protected])
**/
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <openssl/evp.h>
#include <openssl/aes.h>
/**
* Create an 256 bit key and IV using the supplied key_data. salt can be added for taste.
* Fills in the encryption and decryption ctx objects and returns 0 on success
**/
int aes_init(unsigned char *key_data, int key_data_len,
unsigned char *salt, EVP_CIPHER_CTX *e_ctx, EVP_CIPHER_CTX *d_ctx);
/*
* Encrypt *len bytes of data
* All data going in & out is considered binary (unsigned char[])
*/
unsigned char *aes_encrypt(
EVP_CIPHER_CTX *e, unsigned char *plaintext, int *len);
/*
* Decrypt *len bytes of ciphertext
*/
unsigned char *aes_decrypt(
EVP_CIPHER_CTX *e, unsigned char *ciphertext, int *len);
#endif // #ifndef OPENSSL_AES_H_