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

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")
