當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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類。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。