Commit 38384bd9 authored by Sašo Stanovnik's avatar Sašo Stanovnik

The new fingerprint format wis incompatible with the previous regex.

parent 05d4658b
...@@ -83,6 +83,7 @@ class Key < ActiveRecord::Base ...@@ -83,6 +83,7 @@ class Key < ActiveRecord::Base
cmd_status = 0 cmd_status = 0
cmd_output = '' cmd_output = ''
explicit_fingerprint_algorithm = false
Tempfile.open('gitlab_key_file') do |file| Tempfile.open('gitlab_key_file') do |file|
file.puts key file.puts key
file.rewind file.rewind
...@@ -90,7 +91,6 @@ class Key < ActiveRecord::Base ...@@ -90,7 +91,6 @@ class Key < ActiveRecord::Base
# OpenSSH 6.8 introduces a new default output format for fingerprints. # OpenSSH 6.8 introduces a new default output format for fingerprints.
# Check the version and decide which command to use. # Check the version and decide which command to use.
version_output, version_status = popen(%W(ssh -V)) version_output, version_status = popen(%W(ssh -V))
explicit_fingerprint_algorithm = false
if version_status.zero? if version_status.zero?
out, _ = version_output.scan /.*?(\d)\.(\d).*?,/ out, _ = version_output.scan /.*?(\d)\.(\d).*?,/
major, minor = out[0], out[1] major, minor = out[0], out[1]
...@@ -107,9 +107,16 @@ class Key < ActiveRecord::Base ...@@ -107,9 +107,16 @@ class Key < ActiveRecord::Base
end end
if cmd_status.zero? if cmd_status.zero?
if explicit_fingerprint_algorithm
cmd_output.gsub /(MD5:)(\h{2}:)+\h{2}/ do |match|
match.slice! /^MD5:/
self.fingerprint = match
end
else
cmd_output.gsub /(\h{2}:)+\h{2}/ do |match| cmd_output.gsub /(\h{2}:)+\h{2}/ do |match|
self.fingerprint = match self.fingerprint = match
end end
end end
end end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment