验证 OpenSSL 0.9.8a 中的 RSA 签名

2023-12-19

我正在开发一个基于 OpenSSL 版本 0.9.8a API 的应用程序,我需要使用 RSA 公钥验证 RSA 签名(4096 位 RSA 密钥)pubkey.

这是我的代码:

const EVP_MD* md = EVP_get_digestbyname("SHA512");
if (!md) 
{
    return false;
}   
if(EVP_DigestInit_ex(ctx, md, NULL)<=0) 
{
    return false;
}
if(EVP_DigestVerifyInit( ctx, NULL, md, NULL, pubKey)<=0) 
{ 
   return false;
}
if (EVP_DigestUpdate(ctx, Msg, MsgLen) <= 0) 
{
    return false;
}
int res = EVP_DigestFinal_ex(ctx, MsgHash, &MsgHashLen);

问题是EVP_DigestVerifyInitopenssl0.9.8a 中未定义函数。

在 OpenSSL 版本 1.0.0 之前的版本中是否有其他方法来验证 RSA 签名?

这是我的输入: /* Text_message 保存到“sample.txt”文件(文本以最后一个字符“\n”结尾)*/

My secret message.\n

/* 生成RSA公钥 */

-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAl44E9YikPF9RzjAWxZXO
/GaJVCVdQOjp6pmSgL38WvS7glqMwQFwBzSqAiuvVkf3j9C+9Cgs2pypamfDBabC
CZX9+c4oE9zxW2wz0yT5dKL+lUuvIeKfDTMvttjHPtMn23S4ASqLZFAeJX0bCd9H
6l2/8KBjV+uinVlwvKGjXbE5ds2/8S2gei17WvdTb2ypvAUhdw7dc8IaSosG5lOa
EycLN6XKq0z8UX336PiuY0FzLa2B3FOOc6TuPpjkRuf73YKt/Xtm+78ztkfwHLUs
v+EX0TJpB8jE4DISiogNrceOPOnFipppxau2t0VjLivmYTnvSbJzIbOmutFGX8HV
17m3tUpATCdVDuMJ3ouCWOjIJSvw60gizOUHqmMBX+qG95mQ1h3QGP7SExYDKgfp
VpIEAVsnv+CvZTGOEIYcO9ROI2FM6fBgDxkHAdWFCkBVK6o5JxYmsHAXOfFVh+FD
K/pxCBuQINn5B6xanBJYmtpbtq7D0UcvVn6HP7w/9X/pvdU90+KMx1p5AZ6WFeNB
BWLp4whPnU6VEFo+UwXyrCWPIlq3vAz/TjxOXW0Plw+xtsoyw15C8+mS9/4x9XyV
O9v4vlvsRL46T/h4axVsbf2B5w4JC4VoNTuomObecQ0s3v+v54ZYJNsp/tLMa02n
+N9hImCjf+Y6HF8s6BKQ1B0CAwEAAQ==
-----END PUBLIC KEY-----

/* base64编码的签名保存到“PKGC_sample_singed.enc64”文件*/

NIInzKblrnRZ3olbVUSJbYQhnn9VvDaadcsLNLAVRS/2rryzQr8FVo7ty4oQYqQT
KwRkwVakCxqs+Dg+wHCHQ+K6D6d43nGodC0kNgD1++vYeorUbpK7QNdMu+73g5pW
TiYCicKp6DfeYGWPLI0aYivQJqwNMxqrFd/CdNWhIap4f4fZb5WHcszqlsLCqtrr
qVLP3fXVlHzfiA6jqx2GVE5m43iXLB2H3DwXmjS8eX0veRTlcU5lOtoH/yAGRxmL
p3Mg/s3LSdiAL4Gki4nSORWVmsJ0IwtRttLAl5wYN2VAWz8n21wjCTcr9f2k7BQy
/W74zug+8rbnejFoS50YOKB27PKUTcv0Qn5tWYrk/BK4FPovXyj+tPHZ+jIvAdvX
7UbGl1fkyylb2C6DUxlPPZRxjiaoA4xKwaSFrwcMQnVFphE/LuyQ5aBQZVtAI8Sj
K4zws2BjbCUh+JWzJawCZmIt8IEq1IavW/t/YaMIqR4IMMnHghZGhN8Hm34UOIwB
uyTx1bX/AlKIs7h2ibKSL5JKunQ2IbLqvPeyhjLoFdqiv57JsIzA154xFyl1uXlj
Y32kmtn2LO8SsJcJmDFaD63sj3+WbTR+BRw0QZf9lE94Fa/MPooF0I49aNIx59Wa
2uRR9r0oBgMkpNH+kNmCXcRdPyWIbILGZShkKMcp0Oo=

/* 以下步骤描述了用于签名然后验证签名的 openssl 命令行 */

/* ***** 第 1 步:对消息进行签名 ***** */

/* 使用之前生成的 RSA 私钥来唱出消息 */

dgst -sha512 -sign '/PATH...private_key.pem' -out '/PATH.../PKGC_sample_signed.binr' '/PATH.../sample.txt'

/* Base64编码签名 */

base64 -in '/PATH.../PKGC_sample_signed.binr' -out '/PATH.../PKGC_sample_singed.enc64'

/* ***** 步骤2:签名验证 ***** */

/* Base64解码签名 */

base64 -d -in '/PATH.../PKGC_sample_singed.enc64' -out '/PATH.../PKGC_sample_signed.decod64'

/* 使用公钥验证签名 */

dgst -sha512 -verify '/PATH.../public_key.pem' -signature '/PATH.../PKGC_sample_signed.decod64' '/PATH.../sample.txt'

==> 我得到验证成功。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证 OpenSSL 0.9.8a 中的 RSA 签名 的相关文章

  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 更改 UINavigationBar 背景图像

    我一直在尝试更改应用程序的 UINavigationBar 的背景图像 我尝试了几种方法 首先 我将以下代码添加到我的 AppDelegate 类中 implementation UINavigationBar CustomImage vo
  • 如何使用 python 访问 Azure Dev Ops 数据,例如日期之间的变更集?

    我正在尝试连接到 AZURE Dev Ops 并获取更改集信息 以使用 PYTHON 自动准备发行说明 阅读来自中提供的文档和流程后github https github com microsoft azure devops python
  • python 日志记录 - 消息未显示在子项中

    我在使用 python 的日志记录时遇到一些困难 我有两个文件 main py 和 mymodule py 通常 main py 会运行 它会导入 mymodule py 并使用其中的一些函数 但有时 我会直接运行mymodule py 我
  • 使用具有嵌套关联的多态路径

    我有一个多态关联 如下所示 class Line lt ActiveRecord Base belongs to item polymorphic gt true end class Education lt ActiveRecord ba
  • mac excel vba循环:从列表中然后导出为pdf

    所以我迷失在这个之中 我在一张纸上有一个列表 学生列表 其中有 160 个学生编号 想要将单元格 A1 中的每个学生编号粘贴到反馈表中 然后以 pdf 格式导出到以学生编号作为文件名的文件 走到这一步了 干杯 麦克风 Sub Pdfexpo
  • 何时使用事件?

    在工作中 我们有一个庞大的框架 并使用事件将数据从其中的一个部分发送到另一部分 我最近开始了一个个人项目 我经常想到使用事件来控制我的对象的交互 例如 我有一个播放音效的 Mixer 类 我最初认为我应该接收事件来播放音效 然后我决定只让我
  • 为 VS UT Assert 类创建自定义扩展方法的最佳方法是什么?

    我想知道为 Microsoft Visual Studio 单元测试 Assert 类编写自定义扩展方法的最佳方法是什么 您可以为此创建扩展方法Assert https learn microsoft com en us dotnet ap
  • Matlab 中的克隆图 - 具有属性和数据

    我在 matlab 中编写了一个脚本 它可以生成一组数据 这些图形在格式方面应该非常相似 并且每个图形都应该显示一组数据 它是嵌入在 3D 域中的图形 这些图形中的每一个还应该显示该 3d 域内的一组粒子 所以我想创建第一个图形 然后制作它
  • 数千个多边形和 IE JavaScript 语句限制

    我正在编写一个应用程序 需要一次显示多达 4000 个多边形 其中一些具有数百个坐标 每个多边形都需要一个事件mouseover mouseout and doubleclick以及信息框标签 我最初遇到了 IE 8 中 JavaScrip
  • 为什么某些 HTML 元素可以使用 CSS 设置样式,但不能使用属性

    当我滚动浏览一些w3学校 https w3schools com我遇到了关于的文档部分inline元素和一个我以前从未真正思考过的问题 文档说如下 内联元素 An inline元素不会从新行开始 并且只占用所需的宽度 a a
  • 当子视图与 AVPlayer 重叠时移动字幕

    如果子视图 非本机 自定义播放器控件 出现在视频显示的系统标题上方 是否可以更改视频显示的系统标题 显示的字幕是文本 WebVTT 字幕 在某些屏幕尺寸上 当我切换到横向时 我们的自定义搜索栏控件会重叠显示在播放器底部的字幕 对于它的价值来
  • Angular Modal 服务不会使背景变灰

    我在 plunkur 有以下样本单击此处打开链接 http plnkr co edit GbeJbwwhwcs7plniPYth p preview var app angular module App ui bootstrap try a
  • 如何使用 AWSMobileClient 设置不同的配置 (awsconfiguration.json) 以进行调试和发布构建类型

    我想要不同的配置debug and release构建 所有配置都存储在里面awsconfiguration json 例如我有两个不同的配置文件 如何设置应使用哪个文件 使用时AWSMobileClient getInstance 它从文
  • Spring data jpa - 在执行前修改查询

    我正在开发一个在数据库中保存一些访问控制信息的项目 我们使用该访问控制信息来过滤用户可以看到的内容 我们使用的过滤器基于用户拥有的角色 我们希望使用 Spring Data 提供的存储库抽象 但我们希望能够在执行生成的查询之前对其进行调整
  • 使 Android Textview 或 EditText 可选择

    我要实现EditText or Textview在我的android项目中可以选择 项目适用于 android 4 0 我添加这个 txtView setTextIsSelectable true 并且 txtView setCustomS
  • 在 Python 中创建自签名 X509 证书

    我跟着this url https web archive org web 20161107073715 http blog richardknop com 2012 08 create a self signed x509 certifi
  • 彩色 Git diff 到 HTML

    我喜欢使用git diff color words要清楚地看到文件中已更改的单词 不过 我想与没有 git 或彩色终端的人分享这个差异 那么有人知道可以转换的工具或技巧吗颜色转义终端输出转换为 HTML wget http www pixe
  • 如何从 ASP.NET 页面获取当前登录的 Windows 帐户?

    我有一个使用 ASP NET 表单身份验证的 ASP NET 3 5 应用程序 我希望在页面中编辑数据时能够获取当前登录到计算机的 Windows 用户名 不是登录到 ASP NET 应用程序 而是登录到 Windows 如果我使用Cont
  • 如何在 Spring Boot 应用程序中使用 Thymeleaf 加载 HashMap 和 ModelandView 对象值?

    对于 Spring boot 应用程序 我无法使用 Thymeleaf 从 HTML 文件加载浏览器中的输入和实例值 下面是控制器 java 文件中的代码片段 RequestMapping value x public String lau
  • 验证 OpenSSL 0.9.8a 中的 RSA 签名

    我正在开发一个基于 OpenSSL 版本 0 9 8a API 的应用程序 我需要使用 RSA 公钥验证 RSA 签名 4096 位 RSA 密钥 pubkey 这是我的代码 const EVP MD md EVP get digestby