ac86b2043d
Add find key by base64 key or fingerprint to the internal API See merge request !250 Squashed changes: Add unique index to fingerprint Add new index to schema Add internal api to get ssh key by fingerprint Change API endpoint to authorized_keys Add InsecureKeyFingerprint that calculates the fingerprint without shelling out Add require for gitlab key fingerprint Remove uniqueness of fingerprint index Remove unique option from migration Fix spec style in fingerprint test Fix rubocop complain Extract insecure key fingerprint to separate file Change migration to support building index concurrently Remove those hideous tabs
23 lines
577 B
Ruby
23 lines
577 B
Ruby
module Gitlab
|
|
#
|
|
# Calculates the fingerprint of a given key without using
|
|
# openssh key validations. For this reason, only use
|
|
# for calculating the fingerprint to find the key with it.
|
|
#
|
|
# DO NOT use it for checking the validity of a ssh key.
|
|
#
|
|
class InsecureKeyFingerprint
|
|
attr_accessor :key
|
|
|
|
#
|
|
# Gets the base64 encoded string representing a rsa or dsa key
|
|
#
|
|
def initialize(key_base64)
|
|
@key = key_base64
|
|
end
|
|
|
|
def fingerprint
|
|
OpenSSL::Digest::MD5.hexdigest(Base64.decode64(@key)).scan(/../).join(':')
|
|
end
|
|
end
|
|
end
|