class SshSig::KeyLoader::PubKey

Constants

SUPPORTED_KEY_ALGORITHMS

Public Class Methods

load(armored) click to toggle source
# File lib/ssh_sig/key_loader/pub_key.rb, line 9
def load(armored)
  keys = armored.split("\n")

  keys
    .filter { |key| supported_key_algorithm?(key) }
    .map { |key| load_data_public_key(key) }
rescue ::Net::SSH::Exception, ::ArgumentError
  raise ::SshSig::LoadError, 'Public key is not valid'
end

Private Class Methods

load_data_public_key(key) click to toggle source
# File lib/ssh_sig/key_loader/pub_key.rb, line 21
def load_data_public_key(key)
  ::Net::SSH::KeyFactory.load_data_public_key(key)
end
supported_key_algorithm?(key) click to toggle source
# File lib/ssh_sig/key_loader/pub_key.rb, line 25
def supported_key_algorithm?(key)
  alg = key.split(' ').first

  SUPPORTED_KEY_ALGORITHMS.any?(alg)
end