class Mechanize::Form::Keygen
This class represents a keygen (public / private key generator) found in a Form. The field will automatically generate a key pair and compute its own value to match the challenge. Call key to access the public/private key pair.
Attributes
challenge[R]
The challenge for this <keygen>.
key[R]
The key associated with this <keygen> tag.
Public Class Methods
new(node, value = nil)
click to toggle source
Calls superclass method
Mechanize::Form::Field.new
# File lib/mechanize/form/keygen.rb, line 14 def initialize(node, value = nil) super @challenge = node['challenge'] @spki = OpenSSL::Netscape::SPKI.new @spki.challenge = @challenge @key = nil generate_key if value.nil? || value.empty? end
Public Instance Methods
generate_key(key_size = 2048)
click to toggle source
Generates a key pair and sets the field's value.
# File lib/mechanize/form/keygen.rb, line 26 def generate_key(key_size = 2048) # Spec at http://dev.w3.org/html5/spec/Overview.html#the-keygen-element @key = OpenSSL::PKey::RSA.new key_size @spki.public_key = @key.public_key @spki.sign @key, OpenSSL::Digest::MD5.new self.value = @spki.to_pem end