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


Ruby SPKI类用法及代码示例

本文简要介绍ruby语言中 OpenSSL::Netscape::SPKI类 的用法。

一个简单的公钥基础设施实现(发音为“spooky”)。结构定义为

PublicKeyAndChallenge ::= SEQUENCE {
  spki SubjectPublicKeyInfo,
  challenge IA5STRING
}

SignedPublicKeyAndChallenge ::= SEQUENCE {
  publicKeyAndChallenge PublicKeyAndChallenge,
  signatureAlgorithm AlgorithmIdentifier,
  signature BIT STRING
}

其中SubjectPublicKeyInfo和AlgorithmIdentifier的定义可以在RFC5280中找到。 SPKI 通常在浏览器中使用 HTML 元素生成公钥/私钥对和后续证书请求。

例子

创建 SPKI

key = OpenSSL::PKey::RSA.new 2048
spki = OpenSSL::Netscape::SPKI.new
spki.challenge = "RandomChallenge"
spki.public_key = key.public_key
spki.sign(key, OpenSSL::Digest.new('SHA256'))
#send a request containing this to a server generating a certificate

验证 SPKI 请求

request = #...
spki = OpenSSL::Netscape::SPKI.new request
unless spki.verify(spki.public_key)
  # signature is invalid
end
#proceed

相关用法


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