a 在树莓派终端中直接输入 openss version, 查看版本,可以判断是否存在,如果存在可以使用openssl命令行方式;
例如:
写一个简单的AES 调用,测试环境是否OK,测试代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <openssl/aes.h>
void hal_aes_encrypto(void)
{
char userkey[AES_BLOCK_SIZE];
unsigned char *date = malloc(AES_BLOCK_SIZE*3);
unsigned char *encrypt = malloc(AES_BLOCK_SIZE*3 + 4);
unsigned char *plain = malloc(AES_BLOCK_SIZE*3);
AES_KEY key;
memset((void*)userkey, 'k', AES_BLOCK_SIZE);
memset((void*)date, 'p', AES_BLOCK_SIZE*3);
memset((void*)encrypt, 0, AES_BLOCK_SIZE*6);
memset((void*)plain, 0, AES_BLOCK_SIZE*3);
/*设置加密key及密钥长度*/
AES_set_encrypt_key(userkey, AES_BLOCK_SIZE*8, &key);
}
make之后,出现 fatal error: openssl/aes.h: No such file or directory
解决方法:
原因是libssl-dev~没有安装
libssl-dev包含libraries, header files and manpages,是openssl的一部分
使用sudo apt-get install libssl-dev来安装libssl-dev
安装之后,编译不再报错,但是出现 “undefined reference to `AES_set_encrypt_key'“
应该是没有指定连接的库, 在makefile中增加 -lssl -lcrypto,
连接也OK 拉
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。