class HrrRbSsh::Algorithm::Publickey::SshRsa
Constants
- DIGEST
- NAME
Public Class Methods
new(arg, logger: nil)
click to toggle source
# File lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa.rb, line 15 def initialize arg, logger: nil self.logger = logger begin new_by_key_str arg rescue OpenSSL::PKey::RSAError new_by_public_key_blob arg end end
Public Instance Methods
new_by_key_str(key_str)
click to toggle source
# File lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa.rb, line 24 def new_by_key_str key_str @publickey = OpenSSL::PKey::RSA.new(key_str) end
new_by_public_key_blob(public_key_blob)
click to toggle source
# File lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa.rb, line 28 def new_by_public_key_blob public_key_blob public_key_blob_h = PublicKeyBlob.new(logger: logger).decode public_key_blob @publickey = OpenSSL::PKey::RSA.new if @publickey.respond_to?(:set_key) @publickey.set_key public_key_blob_h[:'n'], public_key_blob_h[:'e'], nil else @publickey.n = public_key_blob_h[:'n'] @publickey.e = public_key_blob_h[:'e'] end end
sign(signature_blob)
click to toggle source
# File lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa.rb, line 52 def sign signature_blob signature_h = { :'public key algorithm name' => self.class::NAME, :'signature blob' => @publickey.sign(self.class::DIGEST, signature_blob), } Signature.new(logger: logger).encode signature_h end
to_pem()
click to toggle source
# File lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa.rb, line 39 def to_pem @publickey.public_key.to_pem end
to_public_key_blob()
click to toggle source
# File lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa.rb, line 43 def to_public_key_blob public_key_blob_h = { :'public key algorithm name' => self.class::NAME, :'e' => @publickey.e.to_i, :'n' => @publickey.n.to_i, } PublicKeyBlob.new(logger: logger).encode public_key_blob_h end
verify(signature, signature_blob)
click to toggle source
# File lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa.rb, line 60 def verify signature, signature_blob signature_h = Signature.new(logger: logger).decode signature signature_h[:'public key algorithm name'] == self.class::NAME && @publickey.verify(self.class::DIGEST, signature_h[:'signature blob'], signature_blob) end