当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby PKey.sign_raw用法及代码示例


本文简要介绍ruby语言中 OpenSSL::PKey::PKey.sign_raw 的用法。

用法

sign_raw(digest, data [, options]) → string

使用私钥 pkey 签名 data 。与 sign 不同,data 不会被 digest 自动散列。

验证操作见 verify_raw

在 3.0 版中添加。另请参见手册页EVP_PKEY_sign(3)。

digest

String 表示消息摘要算法名称,如果 PKey 类型不需要摘要算法,则为 nil。尽管此方法不会对其进行哈希 data,但根据签名算法,可能仍需要此参数。

data

一个 String 。要签名的数据。

options

一个 Hash ,包含针对 OpenSSL 的算法特定控制操作。有关详细信息,请参阅 OpenSSL 的手册页 EVP_PKEY_CTX_ctrl_str(3)。

例子:

data = "Sign me!"
hash = OpenSSL::Digest.digest("SHA256", data)
pkey = OpenSSL::PKey.generate_key("RSA", rsa_keygen_bits: 2048)
signopts = { rsa_padding_mode: "pss" }
signature = pkey.sign_raw("SHA256", hash, signopts)

# Creates a copy of the RSA key pkey, but without the private components
pub_key = pkey.public_key
puts pub_key.verify_raw("SHA256", signature, hash, signopts) # => true

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 PKey.sign_raw。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。