问题标签 [openssl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6781 浏览

c# - 如何将 .NET 中的 RSA 公钥导入 OpenSSL

我有一个 .NET 程序和一个 Borland Win32 程序,它们需要传递一些加密安全信息。现在的计划是让 .NET 应用程序创建一个公钥/私钥对,将公钥存储在磁盘上,并在 .NET 程序运行期间将私钥保存在内存中。

然后 Borland 应用程序将从磁盘读取公钥并使用 OpenSSL 库使用公钥加密数据并将结果写入磁盘。

最后,.NET 应用程序将读取加密数据并使用私钥对其进行解密。

从 .NET 导出密钥然后将其导入 OpenSSL 库的最佳方法是什么?

0 投票
2 回答
1829 浏览

php - PHP 加密 openssl_pkcs7_encrypt() 失败

我有这个代码:

在我的本地开发环境(运行 LAMP 的 Macbook)上可以正常工作。我将其移至 Windows 服务器进行测试,现在openssl_pkcs7_encrypt每次都失败。我认为这是一个权限问题,因为该函数需要写入$enc_path; 但我已将 Windows 服务器上的目录尽可能地打开。(将完全控制设置为几乎每个可能与它有关的用户/组。任何人都知道调试它的好方法吗?看起来该函数在失败时只是返回 false 而没有说明原因。

经过进一步调查,该脚本似乎具有对该目录的写访问权限。它写入 $unenc_path 没问题,只是在调用openssl_pkcs7_encrypt.

另一个更新:我正在使用 filemon 来观察一些请求,我看到它打开并写入未加密的文件,但即使尝试写入加密文件也没有输出。

还添加了加载密钥的行。我已经通过回显它来验证它正在加载,它似乎很好。

另一个更新: 再次观看 filemon,大约在它应该调用的时间openssq_pkcs7_encrypt我看到一个条目,它正在 Windows tmp 目录中寻找未加密的消息。

0 投票
2 回答
5545 浏览

c++ - 使用 OpenSSL 查询 X509 证书的扩展

我正在使用 OpenSSL 库的 X509 证书类,我需要查询“密钥使用”扩展名。

在放弃 OpenSSL 的蒸汽软件“文档”后,一些暗中的网络搜索最终显示我需要调用

并通过 objects.h 标头搜索显示正确的 NID。

问题是,这个调用返回一个指向 void 的指针,它显然可以指向各种结构,具体取决于所要求的扩展。

由于这些似乎都没有记录,因此无法弄清楚如何解析函数返回的内容。

谁能给我指出一个真正讨论这个问题的文档,而不是仅仅列出我自己可以找到的东西(函数配置文件、它来自哪个文件等)?

0 投票
3 回答
3807 浏览

ssl - 获得 SSL 连接以使用 STUNNEL/Win32

我需要连接的服务为我提供了三个文件,我试图找出创建 STUNNEL 需要的 Cert=xxx.PEM 文件所需的内容

我有一个“keystore.jks”文件。用 keytool 转储它说这是一个“私钥条目”

我有一个“truststore.jks”文件。转储说它是“受信任的证书条目”。别名是“服务器”

我还有一个“xyz.cer”文件。那似乎是 X.509 证书

我有 OPENSSL 和一个名为“KeytoolUI”的 Java 程序。

底线是我有一堆文件和工具,并且对 SSL 了解不多,我觉得我看不到树木的树木。我需要所有这些文件吗?我为其他服务拥有的现有 PEM 文件只有一个“证书”部分和一个“RSA 私钥”部分。

任何建议表示赞赏。谢谢!

0 投票
1 回答
656 浏览

openssl - 为什么有效性扩展 ca 不包含私钥信息?

我有一个自签名的 rootcacert.pem,它将在下个月到期。由于特定原因,我使用以下命令扩展了此 rootcacert 的有效性:

openssl x509 -in rootcacert.pem -days 365 -out extendedrootcacert.pem - signkey rootcakey.pem -text

所以我得到了新的根 ca 作为extendedrootcacert.pem。使用新的根 ca,我可以使用旧根 ca 签名的用户证书以及这个新根 ca 签名的新用户证书。所有功能都可以正常工作,没有任何问题。

但是当我用记事本打开这个extendedrootcacert.pem & original rootcacert.pem文件时,发现内容有区别。

rootcacert.pem 有私钥和其他信息(PrivateKey、publicExponent、privateExponent、prime1、prime2、exponent1、exponent2、coefficient),如下所示:

http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/sample-key-components.htm

但是新的 extendedrootcacert.pem 中没有此信息。两个证书中的所有其他字段都相同。

我不知道原始 rootcacert.pem 是如何生成的。

是否会对我的应用程序的功能产生任何不利影响。有什么方法可以将此信息包含在新的扩展根 ca 中。是否绝对有必要在新的扩展根目录中包含这些信息?

感谢任何输入。

0 投票
3 回答
2656 浏览

iphone - 在 Xcode 中编译失败,因为未找到链接库

我的 iPhone 应用程序中的一些 C 代码需要 openssl 库。所以我把这个库放到了我的项目中。

但是当我编译它时,Xcode 会抛出一些错误:

错误:openssl/ssl.h:没有这样的文件或目录

这是我的代码,包括:

Xcode 中的目标设置:

替代文字 http://img17.imageshack.us/img17/2266/bild3tez.png

我错过了正确链接它的哪一步?

0 投票
2 回答
543 浏览

ssl - 在哪里可以找到关于使用 OpenSSL 的 SSL 的介绍?

我想了解使用 SSL 来保护客户端/服务器通信的具体细节。是否有任何关于如何使用 OpenSSL 执行此操作的文档?

到目前为止,我能找到的最好的是 stunnel 的源代码(http://www.stunnel.org/)......

更准确地说,我希望客户端能够与服务器连接,进行安全握手,验证服务器的证书是否有效(例如,由受信任的 CA 签名、未过期等)然后发送一些数据。

0 投票
15 回答
302585 浏览

java - 将 Java 密钥库转换为 PEM 格式

我正在尝试使用 keytool 和 openssl 应用程序将 Java 密钥库文件转换为 PEM 文件。但是我找不到进行转换的好方法。有任何想法吗?

我没有将密钥库直接转换为 PEM,而是尝试先创建一个 PKCS12 文件,然后再转换为相关的 PEM 文件和密钥库。但我无法使用它们建立连接。(请注意,我只需要一个 PEM 文件和一个 Keystore 文件来实现安全连接。没有像“从 java 密钥库文件开始”这样的限制。:) 所以从其他格式开始对我的情况是可以接受的)

但是从 jks 到 pem 的直接转换方法更可取。

0 投票
3 回答
4376 浏览

ruby - 在 Ruby 中模拟 AES_ENCRYPT 和 AES_DECRYPT 函数

我需要模仿 MySQL 在使用内置函数 AES_ENCRYPT() 和 AES_DECRYPT() 加密和解密字符串时所做的事情。

我已经阅读了几篇博客文章,显然 MySQL 对这些功能使用了 AES 128 位加密。最重要的是,由于这种加密需要 16 位密钥,MySQL 用 x0 字符 (\0s) 填充字符串,直到它的大小为 16 位。

来自 MySQL 源代码的 C 语言算法在此处发现。

现在我需要复制 MySQL 在 Rails 应用程序中所做的事情,但是我尝试的每一件事都不起作用。

这是一种复制我得到的行为的方法:

1) 创建一个新的 Rails 应用程序

2) 创建一个新的脚手架

3) 编辑你的 config/database.yml 并添加一个测试 MySQL 数据库

4) 运行迁移

5) 进入控制台,创建用户并从 MySQL 查询更新其密码

这就是我卡住的地方。如果我尝试解密它,使用 MySQL 它可以工作:

但是,如果我尝试使用 OpenSSL 库,我将无法使其工作:

我试过填充键:

但这真的行不通。

有没有人知道如何在 Ruby 中模仿 MySQL AES_ENCRYPT() 和 AES_DECRYPT() 函数的行为?

谢谢!

0 投票
2 回答
447 浏览

installation - 鞋子和宝石

我有鞋葡萄干 (0.r1134) [i686-darwin8.9.1] +视频

我正在尝试像这样设置 Shoes.setup 块:

一切正常,直到我们到达 mwa.login,这将我们带到我的 XML-RPC 包装 API,它将执行安全登录。我得到错误:

未定义的方法“关闭?” 为了 #

如果我启动 irb 并加载“my_webservice_api_wrapper.rb”,一切正常,所以我想也许我误解了应该在鞋中加载什么以及何时加载。

任何帮助表示赞赏。鞋子看起来真的很酷。