Openssl in Windows Kernel Mode

Is there a way I can use the OpenSSL library in windows kernel mode? I want to make a windows filter driver that intercepts the read and write operations and encrypts and decrypts the buffers. I already made a driver that can replace the buffers with some arbitrary content but now I need to encrypt the original content. I tried to include the OpenSSL dll-s in the project and i can compile and install the driver but when I try to start it I get this error System error 2 has occurred. The system cannot find the file specified.

This is the code that does the encryption. I know its not safe to use a static key but its just for testing.

void encrypt_aes_ctr(unsigned char* key, unsigned char* iv, unsigned char* data, unsigned char* out_data,int in_len,int*out_len)
{
   int  len;
   EVP_CIPHER_CTX* ctx = EVP_CIPHER_CTX_new();;
   EVP_EncryptInit_ex(ctx, EVP_aes_256_ctr(), NULL, key, iv);
   EVP_EncryptUpdate(ctx, out_data, out_len, data, in_len);
   EVP_EncryptFinal_ex(ctx, out_data + *out_len, &len);
   *out_len += len;
}

And this is the call I make in the SwapPreWriteBuffers function

unsigned char key[32] = { 1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8 };
unsigned char iv[16] = { 1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4 };
int len;
encrypt_aes_ctr(key, iv, origBuf, newBuf, writeLen, &len);

You should use CNG API which is Microsoft Standard API For Crypto.

for example for Encrypt

Here is Code Example that use BCrypt in Kernel (Random)