intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题

这篇具有很好参考价值的文章主要介绍了intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面

我在初学SGX项目中,在安全区和非安全区下载和引入openssl库的时候会遇到各种各样的问题,稀奇古怪的,尤其是openssl的路径问题和make指令编译出现的问题,自己也做了几天的尝试解决,下面是我做出的一些解决方法,最终还是解决问题了,不对的地方请大家指点!!!

问题一 终端输入openssl verison出现openssl: error while loading shared libraries: libssl.so.x.x.x: cannot open shared object file: No such file or directory

master@master:~$ openssl version
openssl: error while loading shared libraries: libssl.so.x.x.x: cannot open shared object file: No such file or directory

解决方法:

1、升级你的openssl库
2、去找你的libssl.so.x.x.x文件
3、做一个软链接,将原本的地址连接到全局环境变量能访问到的位置

sudo ln -s /usr/local/lib64/libssl.so.x.x.x /usr/lib64/libssl.so.x.x.x
sudo ln -s /usr/local/lib64/libssl.so.x.x.x /usr/lib64/libssl.so.x.x.x

问题二 #include<opensslconf.h>找不到

解决方法:在你的opensslssl安装目录中搜索opensslconf.h,并复制到报错的路径,因为报错提示就是在你的openssl安装路径缺少这个文件,这其实是因为文件不在那里,你得手动复制过去,网上还有其他方法,在makefile文件中修改它的编译位置,我是试过了,不行

intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl

问题三 在代码的头文件#include<openssl/xxx>文件找不到

但是你发现你在报错的路径下,可以找到这个文件,或者在你的openssl路径下也能找到这个openssl的库的头文件
intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl

解决方法1:openssl的头文件路径有问题,按照上面的方法解决,找到你自己openssl头文件和库文件的准确路径

(1)终端输入命令查看你库文件路径

openssl version -a | grep "OPENSSLDIR" | awk -F': ' '{print $2}'

intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl
(2)终端输入命令查看你的头文件路径

dpkg -L libssl-dev | grep "/usr/include/openssl"

intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl

你也可以自己去查,一般默认的安装路径在/usr/include/或者/usr/local/路径下

解决方法2:在makefile的配置出现路径的上下级错误,比如你在makefile中添加的配置路径到/user/local/include/openssl,那么你在你的文件中就不能写#include<openssl/xxx>而是直接写#include<xxx>这个函数文件名字即可,要不然你就在makefile文件中添加路径到上一级/user/local/include/

intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl
intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl

问题四 使用SGX的时候,make编译出现#include<openssl/xxx>文件找不到,添加#include头文件等问题

intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl
intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl

解决方法:对非安全区和安全区同时设置openssl库的编译配置

1、升级openssl库的版本为3.1.4
在我之前的文章中重新安装openssl3.1.4版本,注意你下载的版本号在官网要找对
链接:intel SGX学习笔记(4)

2、设置软连接

sudo ln -s /usr/local/lib64/libssl.so.3 /usr/lib64/libssl.so.3
sudo ln -s /usr/local/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3

做到这步之前一定要保证你输入的openssl version能输出你的openssl版本,而且库函数的路径和头文件的路径一定要准确,否则前功尽弃,后面也没用
intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl

3、makefile文件配置,这里会对非安全区App.cpp文件和安全区Enclave.cpp文件进行单独配置
(1)终端输入命令查看你库文件路径

openssl version -a | grep "OPENSSLDIR" | awk -F': ' '{print $2}'

intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl
(2)终端输入命令查看你的头文件路径

dpkg -L libssl-dev | grep "/usr/include/openssl"

intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl

3、SGX项目的makefile文件进行修改

这里注意,在SGX的项目的编译配置中,非安全区的App.cpp和安全区的Enclave.cpp是要分开配置的你打开makefile文件也可以看见,你要用到哪个配置你就在哪个地方配置

这里就是配置非安全区的App.cpp的地方,
intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl
这里就是配置安全区的Enclave.cpp的地方
intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl
(1)App.cpp配置
在我前面的文章里也说明了这个如何配置,链接:intel SGX学习笔记(4)

在这里去添加你的openssl的头文件路径
intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl
在这里用+=的方式给App_Link_Flags追加你的openssl库文件的路径
intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl
(2)Enclave.cpp配置
这里配置openssl的头文件路径
intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl
这里配置openssl的库文件路径(这里按照格式进行添加,用+=追加的方式不太行)intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题,学习,笔记,intel SGX,openssl文章来源地址https://www.toymoban.com/news/detail-819418.html

到了这里,关于intel SGX学习笔记(10):SGX项目openssl在App和Encalve中使用的配置问题和openssl库的路径配置问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)

      Django是目前比较火爆的框架,之前有在知乎刷到,很多毕业生进入大厂实习后因为不会git和Django框架3天就被踢掉了,因为他们很难把自己的工作融入到整个组的工作中。因此,我尝试自学Django并整理出如下笔记。   在这部分,我将从Django的安装讲起,从创建项目到制

    2024年02月09日
    浏览(69)
  • 学习笔记:CentOS 7安装openssl 1.1.1

    CentOS7中预装了openssl 1.0.2版本,该版本不支持sm2、sm3、sm4等国密算法,可以安装openssl 1.1.1的版本来替代原预装的版本。 一、官网下载 https://www.openssl.org/source/ 现在是1.1.1u版,下载openssl-1.1.1u.tar.gz文件,并上传到CentOS7服务器中,我以user用户登录,放在/home/user/目录下。 二、卸

    2024年02月10日
    浏览(46)
  • Win10使用OpenSSL生成证书的详细步骤(NodeJS Https服务器源码)

    远程开启硬件权限,会用到SSL证书。 以下是Win10系统下用OpenSSL生成测试用证书的步骤。 Step 1 . 下载OpenSSL,一般选择64位的MSI Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions     一路点下来,如果后续请你捐款,可以不选择。 win10下很可能的安装路径为: C:Program FilesO

    2024年02月01日
    浏览(41)
  • HarmonyOS教育类APP项目实战系列课结课考试答案(1-10讲)80分就合格

    结课考试  及格分80/ 满分100 评价 判断题 1.  正确(True) 错误(False) 回答正确 2.  正确(True) 错误(False) 回答正确 3.  正确(True) 错误(False) 回答正确 单选题 1.  A. 分布式多端调测 B. 不支持分布式但支持多端调测C. 不支持分布式但支单持多端调测D. 支持分布式但不支持多端调测

    2024年02月11日
    浏览(36)
  • 虚拟机安装intel架构的银河麒麟V10(SP1)

            银河麒麟是国产操作系统之一,是基于Linux内核的桌面操作系统,有自己的应用中心,具有一定的生态系统。今从官网下载了V10(SP1)镜像文件,在Windowns的VMware虚拟机上安装试用。     官网:https://product.kylinos.cn/productCase/171/36     点击 申请试用,然后进入下载页面

    2024年01月21日
    浏览(54)
  • Openssl数据安全传输平台015:OCCI的使用方法+在项目中的设计与实现

    OCCI通过创建一个Environment的对象完成初始化工作。 可以通过Environment创建数据库连接,从而进行其它的操作 要创建Environment,应该调用Environment类的静态方法 createEnvironment() 连接数据库通过Connection类的对象实例实现 调用Environment类的**createConnection()**方法可以创建一个Connecti

    2024年02月06日
    浏览(48)
  • uni-app学习笔记

    目录 一、前期准备 1、项目认识 2、pages.json基本配置 3、创建页面 二、tabBar 1、获取图标 2、代码配置 三、基础认识 1、页面生命周期 2、App.vue应用生命周期 四、基础组件 1、scroll-view可滚动视图区域 2、提示框 3、swiper滑块视图容器 4、form表单组件 (1)新建项目 (2)启动项

    2024年02月05日
    浏览(48)
  • 【Android】APP启动优化学习笔记

    用户体验: 应用的启动速度直接影响用户体验。用户希望应用能够快速启动并迅速响应他们的操作。如果应用启动较慢,用户可能会感到不满,并且有可能选择卸载或切换到竞争对手的应用。通过启动优化,可以提高应用的启动速度,让用户获得更好的使用体验。 竞争优势

    2024年02月14日
    浏览(40)
  • 【MacOS】装 mac-win10 双系统(2017年的老mac,Intel芯片)

    昨天给学妹的mac装软件。发现之前她找维修店装了双系统,但是win10根本不能用,搞得乱七八糟的,于是我给她重新装了一下。 电脑状况: MacBook Air 2017; 128G+8G,有2个分区(有问题); Intel i5; MacOS Monterey(12.xx)系统; 装了mac和win10,win10不能用。 Mac装双系统基本要求与思

    2024年02月07日
    浏览(40)
  • 【10个适合新手的人工智能项目 - 02】手写数字识别:使用Python和机器学习算法,编写一个手写数字识别程序,能够识别手写数字图像并将其转换为数字。

    为了编写一个手写数字识别程序,我们需要使用Python编程语言和一些机器学习算法。在这个项目中,我们将使用深度学习神经网络模型,它被广泛应用于图像识别任务。 以下是手写数字识别程序的基本步骤: 首先,我们需要一个数据集,用于训练和测试我们的模型。一个常

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包