密码学专题 openssl编译和安装

Configure 脚本文件

  • 使得OpenSSL可以适应多种不同的系统平台和多达几十种不同的编译器。Configure指令还可以使OpenSSL在编译的时候具备组件的选择功能,比如可以选择支持或者不支持某种算法或者协议等,这使得OpenSSL具有很大的灵活性,比如在空间有限的嵌入式系统移植中就具备独特的优势。定制化选择对应的组件
  • Configure指令还有其他一些灵活的功能,比如选择OpenSSL安装目录、是否支持汇编编译(通常为了加快速度)、是否支持硬件或者某种特定的硬件、编译的时候是否生成动态链接库、是否支持动态加载其他动态链接库,等等。
  • Configure指令事实上根据配置选项,重新改写和生成了opensslv.h,opensslconf.h,Makefile.sl三个文件,从而达到配置的目的。在Windows下,还会生成错误信息提示文件buildinf.h,该文件在Crypto根目录下

使用方式

  • 直接的方式:例如win: Perl Configure VC-NIN32;Configure可以带很多参数,比如要在编译的版本中去掉调用其他动态链接库的功能,就可以使用下面的Configure指令  Perl Configure VC-NIN32  no-dso
  • 间接的方式,如在Linux系统中,就是通过运行config指令来调用Configure指令的。事实上,在这种情况下,config指令自动提取了一些环境变量作为Configure的参数执行,比如自动识别系统的内核版本和编译器并设定参数等。

参数介绍

基于Linux系统的编译和安装

  • 所以,在Linux系统下编译完OpenSSL后,我们会得到一个可执行程序openssl,两个链接库libcrypto.a和libssl.a,如果你选择编译为动态链接库的模式,还会得到另外两个有用的动态链接库libcrypto.so.0.9.7和libssl.so.0.9.7文件。此外,在使用OpenSSL编程的时候,你还需要用到include目录下的头文件。 

使用Configure指令手动配置安装环境

  • 参考链接 
  • 从零开始配置服务器密码机的开发环境_CHYabc123456hh的博客-CSDN博客   
  • 安装 sudo apt-get install openssl
  • 安装 sudo apt-get install libssl-dev
  • Linux(centos7)下安装OpenSSL 安装详解_木亦汐丫-CSDN博客 
  • 使用./config或者./Configure指令配置环境,生成编译安装脚本;
  • 使用make指令执行编译任务;
  • 使用make test指令测试编译好的程序;
  • 使用make install指令安装OpenSSL到默认的/usr/local目录   需要具备root权限,在命令前面加上sudo
  • /source/index.html
  • .github - openssl/openssl - Sourcegraph 
  • OpenSSL所有使用的东西都安装在默认的路径/usr/local/ssl目录下面,进入该目录,首先会发现一个opensl.cnf文件,这就是以后经常会用到的OpenSSL配置文件,主要是用于证书生成和管理方面的。
  • Bin子目录存放了OpenSSL可执行程序,也就是指令;
  • Include目录存放了使用OpenSSL开发的时候需要的头文件;
  • Lib目录存放了libcrypto.a和libssl.a两个库文件;
  • Man目录是OpenSSL的使用文档。

 使用config指令自动配置OpenSSL系统编译选项

  • config指令是首先的选择,它能够自动识别你的系统内核和一些配置,比如编译器,但是又给了你不少灵活的选项。config指令执行的方式如下:./config [option]
  • OpenSSL的0.9.7版本中有效的选项在表5.2中列了出来,你会发现,所有的选项都是前面介绍过的Configure选项中存在的,不过选项减少了一些。这很正常,因为config指令就是调用了Configure,不过它首先自动收集了一些系统的信息作为调用Configure的参数。所以,config指令所有这些参数的格式和用法也和Configure同名参数的格式和用法是相同的

测试config收集到的信息 

  •  使用命令 ./config-t 

  • 如果编译失败需要重新进行编译,使用 make clean命令 并使用make继续编译

 

  • 使用openssl进行编程的时候 引入头文件 需要采用如下的形式 #include<openssl/ssl.h> 需要加上openssl 避免同名干扰的问题 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446318.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python学习12 文件的读写

目标 文件的打开和关闭 mode缺省情况下表示只读r 文件的路径 前面加个r’,代表其中的转义字符不起作用 文件的打开方式 案例&#xff1a;实现文件拷贝的功能 将某一文件夹下的某一文件 保存在当前文件 所在目录。 import os #读取文件1 path./file.txt fileopen(path,…

密码学专题 openssl的基本概念

配置文件 配置文件是OpenSSL的一个基础结构组件&#xff0c;OpenSSL使用一组称为OpenSSLCONF的函数来读取OpenSSL配置文件的信息。OpenSSL提供的主配置文件是opensl.cnf&#xff0c;它集成了OpenSSL所要使用的配置文件选项的大部分内容。此外&#xff0c;OpenSSL还提供了其他一…

该工程中的宏被禁止_建筑劳务分包都能承担什么工程

来源&#xff1a;找法网建筑工程的承包单位&#xff0c;也就是总承包单位可以将部分建造工程分包给具有资质的施工单位&#xff0c;这是法律所允许的&#xff0c;但是禁止将建造工程进行转包。一、建筑劳务分包都能承担什么工程建筑劳务分包能承担什么工程要看分包单位的资质&a…

matlab用辛普森公式求积分_积分近似计算之辛普森公式

对于积分区间[a, b]&#xff0c;若则成立辛普森公式辛普森公式可看作是改良的梯形公式。梯形公式是以直线逼近实际曲线&#xff0c;而辛普森公式则以二次曲线(即抛物线)逼近。以二次曲线逼近实际曲线根据辛普森公式可得各积分小区间内的积分值如下式所示&#xff1a;其中于是&a…

密码学专题 文件编码格式

OpenSSL中虽然使用PEM作为基本的文件编码格式&#xff0c;但是&#xff0c;由于不同的对象其封装的标准格式不太一样&#xff0c;所以经常会导致读者产生迷惑。此外&#xff0c;OpenSSL也支持DER编码和过时的Netscape编码格式(NET)OpenSSL的编码是基于ASN.1标准的&#xff0c;A…

echarts 折线图 设置y轴最小刻度_【硬货】vue全家桶+Echarts+百度地图,搭建数据可视化系统...

作者丨夙言来源丨前端大牛爱好者(Web-2017)https://segmentfault.com/a/1190000018993981本文章篇幅略长&#xff0c;内容有点多&#xff0c;大佬可根据目录选择性查阅&#xff0c;新人可一步步来阅读。1、 前言1.1 业务场景突然接到产品说要做一个数据监控的系统。有线图、柱状…

密码学专题 文本数据库

应用概述 文本数据库是跟OpenSSL的CA应用程序紧密结合在一起的&#xff0c;它以文本的方式记录CA已经签发的证书的状态和摘要信息。这些状态信息可以用于跟证书库相关的一些操作&#xff0c;比如使用ca指令生成CRL主要就是读取这个文本数据库的信息作为参考。文本数据库就是普…

Python学习13 异常处理机制

概括 常见的异常 异常处理机制 可以多个异常放在元组里面 一旦产生异常&#xff0c;try后面的语句不会继续执行&#xff0c;会做异常处理 异常使用场景1 close应该放在finally中 异常使用场景2 finally关键字 会执行except后面的&#xff0c;报错

java 布隆过滤器_牛逼哄哄的布隆过滤器,到底有什么用?

Java技术栈www.javastack.cn打开网站看更多优质文章作者&#xff1a;CodeBear的园子www.cnblogs.com/CodeBear/p/10911177.html本文是站在小白的角度去讨论布隆过滤器&#xff0c;如果你是科班出身&#xff0c;或者比较聪明&#xff0c;又或者真正想完全搞懂布隆过滤器的可以移…

Java web后端6 java Bean EL表达式

EL表达式和JSTL概述 java Bean规范 java中成员变量使用类Integer private Integer count; java Bean的创建 创建java Bean: BookTest.java package com.example.elandjstl.bean;public class BookTest {//java中成员变量使用类Integerprivate Integer count;private Boolean…

python根须系统斜杠_深入浅出Python中的os模块

「Author&#xff1a;Runsen」当初学Python的时候&#xff0c;把一些标准库和第三方开源库学的七零八落&#xff0c;不成系统&#xff0c;正好趁这个机会来系统的整理一下&#xff0c;先从Python常用的标准库os开始吧。osOS模块简单的来说它是一个Python的系统编程的操作模块&a…

Java web后端7JSTL

概括 下载jstl的jar包 官网&#xff1a;https://mvnrepository.com/ 网址1&#xff1a;https://search.maven.org/ 在pomxml中插入依赖&#xff1a; <dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1…

Python学习14 模块和包

模块 公共类、函数都可以放在独立的文件中&#xff0c;这样其他多个程序都可以使用&#xff0c;而不必把这些公共性的类、函数等在每个程序中复制一份&#xff0c;这样独立的文件就叫做模块&#xff0c;它们的扩展名为.py 标准库中的模块 使用help查看模块 代码&#xff1a; …

python语句分为_python以什么划分语句块

语句块是在条件为真&#xff08;条件语句&#xff09;时执行或者执行多次&#xff08;循环语句&#xff09;的一组语句&#xff1b;在代码前放置空格来缩进语句即可创建语句块&#xff0c;语句块中的每行必须是同样的缩进量&#xff1b;&#xff08;推荐学习&#xff1a;Python…

Python学习15 正则表达式1

网址 正则表达式测试网址&#xff1a;https://regex101.com/ 概述 正则表达式&#xff1a; 正则表达式(Regular Expression)是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字符&#xff08;称为"元字符"…

STL源码剖析 空间配置器 查漏补缺

ptrdiff_t含义 减去两个指针的结果的带符号整数类型ptrdiff_t (Type support) - C 中文开发手册 - 开发者手册 - 云社区 - 腾讯云 std::set_new_handler&#xff08;&#xff09;函数的理解 关于set_new_handler的理解_wck0617-CSDN博客new分配内存的时候 如果分配的空间不…

Python学习16 正则表达式2 re模块

re 模块 re 模块&#xff1a; Python的 re 模块实现了正则表达式处理的功能。 导入re模块后&#xff0c;使用findall、search函数可以进行匹配 查找&#xff1a;match和search 多个匹配上的&#xff0c;也只会返回第一个匹配上的 re.match()&#xff1a; 需要特别注意的是&…

STL源码剖析 内存基本处理工具 初始化空间的五个函数

初始化空间的五个函数构造函数 construct()析构函数 destroy()剩余三个底层函数 和 高层函数之间的对应关系如下uninitialized_copy() 对应 copy()uninitialized_fill() 对应 fill()uninitialized_fill_n() 对应 fill_n()使用<memory>使用上述三个底层函数 uninitiali…

单基因gsea_筛到5分的核心基因以后你可以怎么做?

这一次我们从一些已经发表的文章拆解&#xff0c;我们来看看&#xff0c;你找到了一个核心基因以后&#xff0c;你可以怎么做呢&#xff1f;我们就不说那么多废话了&#xff0c;直接用几篇文章的解读来带着大家领会一下如何去进行下一步的分析。Case1&#xff1a;预后标志物免疫…

STL源码剖析 迭代器的概念和traits编程技法

迭代器&#xff1a;依序巡防某个聚合物(容器)所含的各个元素&#xff0c;但是不需要暴露这个聚合物的内部表述方式核心思想&#xff1a;将容器和算法分开&#xff0c;彼此独立设计容器和算法的泛型化&#xff0c;均可以使用模板&#xff0c;使用迭代器连接容器和算法例子 templ…