如何在 openssl 1.0.1 中加载 CRL 路径?

2024-01-07

自从我更新到 openssl 1.0.1 以来,我的应用程序中的吊销检查功能已损坏。在“apps/verfiy.c”的帮助下,我发现 CRL 文件的加载发生了变化,到目前为止我已经完成了以下操作:

X509_LOOKUP *lookup;
const char *crl_path = "/path/to/crls"

X509_VERIFY_PARAM *param = X509_VERIFY_PARAM_new();
X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK);
SSL_CTX_set1_param(ctx, param);

lookup = X509_STORE_add_lookup(ctx->cert_store, X509_LOOKUP_hash_dir());
if (lookup == NULL) {
  return "CRL path initialization error: X509 lookup initialization failed.";
}
if(!X509_LOOKUP_add_dir(lookup, crl_path, X509_FILETYPE_PEM)) {
  return "CRL path initialization error: path addition failed.";
}

X509_VERIFY_PARAM_free(param);

现在这样做我总是收到错误“无法加载证书 CRL”。

然而,在“apps/verify.c”中,最近通过以下代码一次加载一个 CRL 文件:

STACK_OF(X509_CRL) *crls;
char *crlfile = "/path/to/single/crl"

crls = load_crls(bio_err, crlfile, FORMAT_PEM, NULL, e, "other CRLs");
X509_STORE_CTX_set0_crls(csc, crls);

有谁知道如何仍然可以通过使用查找例程(例如 X509_LOOKUP_add_dir)并通过 CRL 路径的规范一次性加载 CRL 文件?


我知道一些将 CRL 文件添加到商店的方法 方法一: 使用此 API 形式 x509_vfy.h 文件。int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type);这里的type可以是以下任意一个值

X509_FILETYPE_PEM -- 用于 PEM/B64 编码的 CRL 文件

X509_FILETYPE_ASN1 -- 用于 DER 编码的 CRL 文件

方法2.

步骤1.将文件转换为X509_CRL格式 (要转换,请使用以下任一 APIX509.h file:

      //If the CRL file is DER encoded 
         X509_CRL *d2i_X509_CRL_fp(FILE *fp,X509_CRL **crl);  
      //If the CRL file is PEM encoded 
        PEM_read_X509_CRL_fp();

    )

步骤 2:创建 CRL 堆栈

STACK_OF(X509_CRL) mCRLStack;

步骤3:

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

如何在 openssl 1.0.1 中加载 CRL 路径? 的相关文章

  • 在 XCode 中静态链接 OpenSSL

    我正在尝试链接libssl a and libcrypto aXCode 命令行项目中的静态库 在 Link Binary With Libraries 下 我已在搜索路径中包含 Openssl 头文件 编译成功但执行失败dyld Libr
  • C - 如何正确使用 OpenSSL 的 BIO_write()

    我是 OpenSSL 新手 我知道 BIO write BIO b const void buf int len 需要在循环中调用 但我不完全确定我是否正确使用它 我写了一个这样的函数 int32 t SendPacket BIO cons
  • 使用 .NET 类进行 OpenSSL 加密

    我希望创建一个使用与 OpenSSL 兼容的 NET 库的类 我知道有一个 OpenSSL Net 包装器 但我希望避免引用第 3 方 非托管代码 我并不是要讨论这是否是正确的选择 但这是有原因的 目前我有以下内容 我认为它应该与 Open
  • 当 SSL_get_fd 返回 -1 时,这意味着什么?

    我正在使用 frida 分析一个程序 该程序肯定通过 SSL 连接到某个服务器 当我打电话时SSL get fd 它返回 1 从文档中我看到这意味着ssl不包装套接字 BIO 已明确配置 因为我可以通过SSL get rbio openss
  • Ruby 安装由于缺少扩展而中止:openssl、readline、zlib 编译错误

    我正在使用 macOS Catalina 我正在尝试通过 rbenv 安装旧版本的 Ruby 1 9 3 2 1 2 但是 在尝试安装旧版本时 我不断收到以下错误 安装 2 4 或更新版本时没问题 我已经尝试过 brew install o
  • 如何修改s_client的代码?

    我正在玩apps s client c in the openssl源代码 我想进行一些更改并运行它 但是在保存文件并执行操作后 我的更改没有得到反映make all or a make 例如 我改变了sc usage函数为此 BIO pr
  • fsockopen() 和 SSL 出错,“无法启用加密”

    我正在尝试连接到 Nominet EPP 测试台 但收到 无法启用加密 的消息 这似乎是一个罕见的错误 没有记录的解决方案或原因 用行 socket fsockopen ssl testbed epp nominet org uk 700
  • 在 OpenSSL 中使用零填充?

    System Security Cryptography TripleDES 允许我使用零填充 如下所示 static TripleDES CreateTripleDES byte key byte iv TripleDES des new
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • Anaconda 无法导入 ssl 但 Python 可以

    Anaconda 3 Jupyter笔记本无法导入ssl 但使用Atom终端导入ssl没有问题 我尝试在 Jupyter 笔记本中导入 ssl 但出现以下错误 C ProgramData Anaconda3 lib ssl py in
  • “未知 ca”,具有自行生成的 CA、证书和客户端/服务器

    我正在编写一个自定义客户端和服务器 我想通过公共互联网安全地进行通信 因此我想使用 OpenSSL 并让两端进行对等验证 以确保我的客户端不会被 MITM 误导 同样未经授权的客户端无法连接到服务器 这是在 SSL connect SSL
  • openSSL:PEM_write_RSAPublicKey 和 PEM_write_RSA_PUBKEY 之间的区别

    在 openssl 库中 我可以看到两种将公钥写入文件的方法 int PEM write RSAPublicKey FILE fp RSA x int PEM write RSA PUBKEY FILE fp RSA x 在文档中我可以看到
  • 如何读取密钥文件以与 HMAC_Init_ex() 一起使用

    我使用 openssl 生成了 RSA 私钥 我需要使用纯 C 语言中的 OpenSSL 库的 HMAC 函数来对数据进行哈希 签名 但我不确定如何从该文件中正确提取私钥数据 据我所知 该文件是 B64 编码的 因此我将其取消编码并将其存储
  • 如何解释 openssl 速度输出?

    I ran openssl speed在我的 Ubuntu 计算机上 一些结果 Doing md4 for 3s on 16 size blocks 9063888 md4 s in 3 00s Doing md4 for 3s on 64
  • RVM 和 OpenSSL 的问题

    尝试为同事设置一台新 MacBook 进展不顺利 首先我安装 OpenSSL Heathers MacBook Pro heather rvm pkg install openssl Fetching openssl 1 0 1c tar
  • openssl 是否拒绝没有基本约束的自签名证书?

    我有两个极其相似的自签名证书 是通过两种不同的方法生成的 为了测试它们 我有 在我的主机文件中添加了 local mydomain com 的条目 设置一个 nginx 服务器 使用被测试的证书和关联的私钥在端口 443 上侦听该域 然后我
  • OpenSSL 无法建立 SSL 连接,因为协议不受支持

    我正在尝试构建 OpenCoghere https wiki opencog org w Building OpenCog当我发出这个命令时 octool rdcpav l default 它构建了所有内容 但随后进入安装 Link Gra
  • 在 Cygwin 软件包列表中找不到 Openssl

    这里说的是https github com joyent node wiki Building node js on Cygwin Windows https github com joyent node wiki Building nod
  • JSEncrypt 在后端解密(Bash)

    看起来 JSEncrypt 在 RSA 加密字符串中添加了一些随机填充 因此我无法使用 OpenSSL 对其进行解密 我的 JS 代码如下所示 const rsaEncrypt new window JSEncrypt rsaEncrypt
  • 使用 openssl 检查服务器安全协议

    我有一个框架应用程序 它根据使用方式连接到不同的服务器 对于 https 连接 使用 openssl 我的问题是 我需要知道我连接的服务器是否使用 SSL 还是 TLS 以便我可以创建正确的 SSL 上下文 目前 如果我使用错误的上下文尝试

随机推荐

  • 使用httpwebrequest从网站获取图像到byte[]

    我想读取网站上 PNG 文件的原始二进制文件并将其存储到 byte 中 到目前为止我有这样的内容 Uri imageUri new Uri http www example com image png Create a HttpWebreq
  • 使用 java processbuilder 运行 bat 文件

    我正在尝试使用 java 进程生成器执行 bat 文件 但它不会启动该进程 请告诉我我在这里做错了什么 当我用 file sh 替换 file bat 时 这段代码在 Linux 环境下工作得很好 final ArrayList
  • Python 随机列表理解

    我有一个类似于以下内容的列表 1 2 1 4 5 2 3 2 4 5 3 1 4 2 我想从此列表中创建 x 个随机元素的列表 其中所选元素都不相同 困难的部分是我想通过使用列表理解来做到这一点 如果 x 3 可能的结果是 1 2 3 2
  • Rails 模型回调(创建/更新后)attribute_was 不起作用

    我正在将 Rails 5 1 应用程序迁移到 Rails 5 2 1 在我的模型中 我在创建或更新模型后使用回调来创建活动日志 很遗憾todo name and todo name was始终相同 当前值 这适用于每个属性和每个模型 还ch
  • 如何为 JMenu 子菜单设置加速器?

    我有一个用户请求将加速器添加到子菜单 JMenu 这将允许用户按下快捷键并使相应的子菜单 折叠 显示其包含的菜单项 我不记得每个人都见过这样的东西 无论是在 Java 还是任何其他语言中 我们的应用程序是使用 Swing 用 Ja va 编
  • 了解 TypeError:获得关键字参数的多个值

    我尝试了不同的方法来使用 args 调用该方法 下面是我的代码片段 def total name args if args print s has total money of Rs d name sum args else print s
  • 如何使用 Linq 的聚合函数 C# 添加到列表

    我有一个类型的对象集合 我想将其转换为不同类型 这可以使用 foreach 轻松完成 但我想弄清楚如何使用 Linq 的聚合函数来完成此操作 问题是所有聚合示例都使用行字符串或 int 类型 它们支持 运算符 我希望累加器类型是一个列表 它
  • 如何从 Java 向 sudo 提供 root 密码?

    我正在尝试编写一个小型 Java 应用程序来覆盖我的 etc resolv conf文件 我使用的是 Ubuntu 12 04 为此 我需要提供我的root密码 myUser myMachine sudo vim etc resolv co
  • Android:如何测量ListView的总高度[重复]

    这个问题在这里已经有答案了 我需要测量 ListView 的总高度 但似乎我不断得到错误的值 我正在使用这段代码 public static void setListViewHeightBasedOnChildren ListView li
  • 如何配置 karma-runner(也称为睾丸)与closure-library 一起使用

    我正在尝试将 karma runner 与 mocha 测试框架结合使用来测试使用closure library 和 angularjs 构建的应用程序 我总是得到namespace Application is not defined 提
  • 如何将动画视图捕获为视频

    我正在使用反应本机图像来显示网络上某些网址的一些图像 现在 根据某些条件 我以不同的时间间隔更新图像网址 我想将整个过渡捕获到视频文件中 但是 我找不到合适的 android API 用于本机端 或react native 包来实现这一点
  • 如何测量函数运行的时间?

    我想查看一个函数运行了多长时间 所以我在表单上添加了一个计时器对象 并得到了以下代码 private int counter 0 Inside button click I have timer new Timer timer Tick n
  • AWS S3 ACL 公共读写:安全问题

    我想要一些关于 AWS S3 ACL 公共读写的解释 来自docs http docs aws amazon com AmazonS3 latest dev acl overview html 所有者获得 FULL CONTROL AllU
  • R 图 - 具有颜色渐变的正态曲线

    How can I make curves with a color gradient in R Take a look at this flame 它应该看起来像那样 我尝试制作一条法线曲线 然后制作另一条法线曲线 但从技术上讲 你无法用
  • 等待文件上传

    我遇到了困难 我正在尝试使用 WatiN 上传文件 我可以加载上传框 但它很快就消失了 目前我的代码的最后一行是 ie FileUpload Find ById profile file Click 它加载对话框以选择图片但消失 是否可以自
  • Fiware-Orion:订阅所有实体

    在 Orion 1 4 0 中我使用以下 JSON 来订阅对于所有实体 description Update average rating subject entities idPattern type condition attrs no
  • 在 notepad.exe 中挂钩 CreateFile 不会捕获 API 调用

    我的最终目标是通过在 kernel32 dll 中挂钩文件 api 来跟踪 explorer exe 完成的文件操作 但是我尚未实现该操作 explorer exe 没有调用 API 或者我这边出了问题 为了弄清楚发生了什么 我设置了一个目
  • 有趣的错误?在操作系统中预装了 Ruby (1.8.7)

    2 2 gt 4 2 63 gt 9223372036854775808 2 63 2 63 gt 18446744073709551616 64以及它返回后的一切0 2 64 gt 0 2 65 gt 0 2 100 gt 0 2 100
  • 删除 List 中的替代元素

    删除替换 奇数索引或偶数索引 元素的最有效方法是什么List
  • 如何在 openssl 1.0.1 中加载 CRL 路径?

    自从我更新到 openssl 1 0 1 以来 我的应用程序中的吊销检查功能已损坏 在 apps verfiy c 的帮助下 我发现 CRL 文件的加载发生了变化 到目前为止我已经完成了以下操作 X509 LOOKUP lookup con