Sha256: b7be7e741b4c06f394c61b330dd5b6dacb3a7c460e0e377edc6a73991d1e84e9
Contents?: true
Size: 1.41 KB
Versions: 1
Compression:
Stored size: 1.41 KB
Contents
require 'openssl' require 'sshkey' require 'base64' module SSHScan # All cryptography related methods. module Crypto # House methods helpful in analysing SSH public keys. class PublicKey def initialize(key_string) @key_string = key_string end def valid? SSHKey.valid_ssh_public_key?(@key_string) end def type if @key_string.start_with?("ssh-rsa") return "rsa" elsif @key_string.start_with?("ssh-dss") return "dsa" elsif @key_string.start_with?("ecdsa-sha2-nistp256") return "ecdsa-sha2-nistp256" elsif @key_string.start_with?("ssh-ed25519") return "ed25519" else return "unknown" end end def length SSHKey.ssh_public_key_bits(@key_string) end def fingerprint_md5 SSHKey.fingerprint(@key_string) end def fingerprint_sha1 SSHKey.sha1_fingerprint(@key_string) end def fingerprint_sha256 SSHKey.sha256_fingerprint(@key_string) end def to_hash { self.type => { "raw" => @key_string, "length" => self.length, "fingerprints" => { "md5" => self.fingerprint_md5, "sha1" => self.fingerprint_sha1, "sha256" => self.fingerprint_sha256 } } } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ssh_scan-0.0.40 | lib/ssh_scan/public_key.rb |