Class: OpenSSL::PKey::RSA

Inherits:
Object
  • Object
show all
Defined in:
lib/net/ssh/transport/openssl.rb

Overview

This class is originally defined in the OpenSSL module. As needed, methods have been added to it by the Net::SSH module for convenience in dealing with SSH functionality.

Instance Method Summary collapse

Instance Method Details

#ssh_do_sign(data) ⇒ Object

Returns the signature for the given data.


80
81
82
# File 'lib/net/ssh/transport/openssl.rb', line 80

def ssh_do_sign(data)
  sign(OpenSSL::Digest::SHA1.new, data)
end

#ssh_do_verify(sig, data, options = {}) ⇒ Object

Verifies the given signature matches the given data.


66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/net/ssh/transport/openssl.rb', line 66

def ssh_do_verify(sig, data, options = {})
  digester =
    if options[:host_key] == "rsa-sha2-512"
      OpenSSL::Digest::SHA512.new
    elsif options[:host_key] == "rsa-sha2-256"
      OpenSSL::Digest::SHA256.new
    else
      OpenSSL::Digest::SHA1.new
    end

  verify(digester, sig, data)
end

#ssh_signature_typeObject


56
57
58
# File 'lib/net/ssh/transport/openssl.rb', line 56

def ssh_signature_type
  ssh_type
end

#ssh_typeObject

Returns “ssh-rsa”, which is the description of this key type used by the SSH2 protocol.


52
53
54
# File 'lib/net/ssh/transport/openssl.rb', line 52

def ssh_type
  "ssh-rsa"
end

#to_blobObject

Converts the key to a blob, according to the SSH2 protocol.


61
62
63
# File 'lib/net/ssh/transport/openssl.rb', line 61

def to_blob
  @blob ||= Net::SSH::Buffer.from(:string, ssh_type, :bignum, e, :bignum, n).to_s
end