Commit a41e7e01 authored by Rubén Dávila's avatar Rubén Dávila

Add ability to include subkeys when finding by fingerprint

parent d0572d9a
......@@ -40,6 +40,17 @@ class GpgKey < ActiveRecord::Base
after_commit :update_invalid_gpg_signatures, on: :create
after_create :generate_subkeys
def self.find_with_subkeys(fingerprint)
keys_table = arel_table
subkeys_table = GpgKeySubkey.arel_table
condition = keys_table[:primary_keyid].eq(fingerprint).or(
subkeys_table[:keyid].eq(fingerprint)
)
joins(:subkeys).where(condition).first
end
def primary_keyid
super&.upcase
end
......
......@@ -43,7 +43,7 @@ module Gitlab
# key belonging to the keyid.
# This way we can add the key to the temporary keychain and extract
# the proper signature.
gpg_key = GpgKey.find_by(primary_keyid: verified_signature.fingerprint)
gpg_key = GpgKey.find_with_subkeys(verified_signature.fingerprint)
if gpg_key
Gitlab::Gpg::CurrentKeyChain.add(gpg_key.key)
......
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