gpt4 book ai didi

ruby - ruby/rails 中的 openssl smime

转载 作者:数据小太阳 更新时间:2023-10-29 08:51:42 27 4
gpt4 key购买 nike

所以,我有这个应用程序可以创建一个包含图像和内容的 zip 文件

我想使用 smime 对其进行签名。

如果我使用终端命令:

openssl smime -binary -sign -passin "pass:MYPASS" -signer ./MyCertificate.pem -inkey ./MyKey.pem -in ./manifest.in -out ./signature.out -outform DER

格式化:

openssl smime -binary -sign -passin "pass:MYPASS"             \
-signer ./MyCertificate.pem -inkey ./MyKey.pem \
-in ./manifest.in -out ./signature.out -outform DER

manifest.in 是包含要签名的文本的文件,signature.out 是输出文件。

我不太了解签名,但我相信这段代码使用 PKCS7 对我的文件进行签名

如何使用 ruby​​/rails 重新创建相同的结果?

我试图查看 OpenSSL 的文档但我找不到对我有用的东西

编辑

如果这对某人有帮助,这就是文档所说的

我需要建立一个:

A detached PKCS#7 signature of the manifest

最佳答案

找到了方法。

像这样:

  require 'secure_digest'

def sign_manifest(manifest = {})
manifest_str = manifest.to_json

key4_pem = File.read Rails.root.join("lib", "keys", "key.pem")
pass_phrase = "supera"

key = OpenSSL::PKey::RSA.new key4_pem, pass_phrase
cert = OpenSSL::X509::Certificate.new File.read Rails.root.join("lib", "keys", "certificate.pem")

sign = OpenSSL::PKCS7.sign(cert, key, manifest_str, nil, OpenSSL::PKCS7::BINARY | OpenSSL::PKCS7::NOATTR | OpenSSL::PKCS7::DETACHED).to_der

sign
end

为了阐明我的代码, list 参数是一个哈希值,我想使用此代码对其进行签名。如果我想要另一个项目,比如图像、字符串或文件,我只需要将其作为字符串读取即可

关于ruby - ruby/rails 中的 openssl smime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11159478/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com