type=class
superclass=OpenSSL=PKey=PKey
included=
extended=
library=openssl
aliases=
aliasof=

RSA 暗号鍵のクラスです。

通常このクラスで利用するのは、
[[m:OpenSSL::PKey::RSA.generate]], [[m:OpenSSL::PKey::RSA.new]],
[[m:OpenSSL::PKey::RSA#public?]], [[m:OpenSSL::PKey::RSA#private?]],
[[m:OpenSSL::PKey::RSA#public_key]], [[m:OpenSSL::PKey::RSA#to_text]],
[[m:OpenSSL::PKey::RSA#to_pem]], [[m:OpenSSL::PKey::RSA#to_der]]
のいずれかでしょう。これ以外のメソッドを利用するときは
RSA についてよく理解し、必要な場合のみにすべきです。


例:
  # initialize random seed
  OpenSSL::Random.seed(File.read("/dev/random", 16))
  # 鍵対を生成
  rsa = OpenSSL::PKey::RSA.generate(2048)
  # 秘密鍵をAES256で暗号化して private_key.pem に PEM 形式で保存
  passphrase = "!secret passphrase!"
  File.open("private_key.pem", "w") do |f|
    f.write(rsa.export(OpenSSL::Cipher::Cipher.new("aes256"), passphrase))
  end
  # 公開鍵をpublic_key.pemに保存
  public_key = rsa.public_key
  File.open("public_key.pem", "w") do |f|
    f.write(public_key.export)
  end
  
  # 秘密鍵で署名
  data = "foobar"
  sign = rsa.sign("sha256", data)
  # 公開鍵で検証
  p public_key.verify("sha256", sign, data)
  # 不正なデータを検証
  p public_key.verify("sha256", sign, "foobarbaz")
