Method: SSHData::PrivateKey.from_data

Defined in:
lib/ssh_data/private_key.rb

.from_data(data) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/ssh_data/private_key.rb', line 50

def self.from_data(data)
  data[:private_keys].map do |priv|
    case priv[:algo]
    when PublicKey::ALGO_RSA
      RSA.new(**priv)
    when PublicKey::ALGO_DSA
      DSA.new(**priv)
    when PublicKey::ALGO_ECDSA256, PublicKey::ALGO_ECDSA384, PublicKey::ALGO_ECDSA521
      ECDSA.new(**priv)
    when PublicKey::ALGO_ED25519
      ED25519.new(**priv)
    else
      raise DecodeError, "unkown algo: #{priv[:algo].inspect}"
    end
  end
end