Skip to content

Commit

Permalink
accounts_ssh_authorized_keys_line_parser: Output regex matches when s…
Browse files Browse the repository at this point in the history
…shkey format isnt correct
  • Loading branch information
bastelfreak committed May 7, 2024
1 parent ea2f809 commit 4a46fc8
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion lib/puppet/functions/accounts_ssh_authorized_keys_line_parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,16 @@

def accounts_ssh_authorized_keys_line_parser_string(str)
matched = str.match(%r{((sk-ssh-ed25519|sk-ecdsa-|ssh-|ecdsa-)[^\s]+)\s+([^\s]+)\s+(.*)$})
raise ArgumentError, 'Wrong Keyline format!' unless matched && matched.length == 5

raise ArgumentError, "Wrong Keyline format! Got nil after applying regex to'#{str}'" unless matched
unless matched.length == 5
output = []
# first element is str, aftwerwards are all matching groups. We ignore the first element
(1..matched.length).each do |counter|
output << "element #{counter}: #{matched[counter]}"
end
raise ArgumentError, "Wrong Keyline format! Input: #{str}. Expected 4 elements after applying regex, got: #{output}"
end

options = str[0, str.index(matched[0])].rstrip
[options, matched[1], matched[3], matched[4]]
Expand Down

0 comments on commit 4a46fc8

Please sign in to comment.