致命错误:openssl / aes.h:没有这样的文件或目录

时间:2014-09-27 18:39:38

标签: c encryption

我已将文件aes.h包含在程序所在的文件夹中,但仍然不知道还有什么需要做这个,任何建议。提前致谢

  root@ubuntu:/home/giri/openssl-1.0.1g1/crypto/aes# gcc -Wall aes1.c -lcrypto
  aes1.c:4:25: fatal error: openssl/aes.h: No such file or directory
  compilation terminated.

  here is the code and ls 
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  #include <openssl/aes.h>

  int main(int argc, char **argv)
  {
   int i;
   int keylength;
   printf("Give a key length [only 128 or 192 or 256!]:\n");
   scanf("%d", &keylength);

   /* generate a key with a given length */
   unsigned char aes_key[keylength];
   memset(aes_key, 0, sizeof(aes_key));
   if (!RAND_bytes(aes_key, keylength))
  {
    exit(-1);
   }
   aes_key[keylength-1] = '\0';

   int inputslength;
   printf("Give an input's length:\n");
   scanf("%d", &inputslength);

   /* generate input with a given length */
   unsigned char aes_input[inputslength+1];
   memset(aes_input, '0', sizeof(aes_input));
   aes_input[inputslength] = '\0';


  root@ubuntu:/home/giri/openssl-1.0.1g1/crypto/aes# ls
  aes1.c     aes_core.c  aes.h       aes_misc.c  aes_x86core.c  Makefile.save
  aes_cbc.c  aes_ctr.c   aes_ige.c   aes_ofb.c   asm            README
  aes_cfb.c  aes_ecb.c   aes_locl.h  aes_wrap.c  Makefile       securiti.c

2 个答案:

答案 0 :(得分:11)

您需要安装openssl开发库。

$ sudo apt-get install libssl-dev

答案 1 :(得分:1)

对于那些仍然被阻止的人,您可以将这一行:'#include ' 替换为:'#include "aes.h"'(之前,您必须添加 'aes.h'在程序所在的文件夹中)

(用“aes.h”替换