Class: Gitlab::Ssh::Signature
- Inherits:
-
Object
- Object
- Gitlab::Ssh::Signature
- Includes:
- Utils::StrongMemoize
- Defined in:
- lib/gitlab/ssh/signature.rb
Constant Summary collapse
- GIT_NAMESPACE =
'git'
Instance Method Summary collapse
-
#initialize(signature_text, signed_text, signer, committer_email) ⇒ Signature
constructor
A new instance of Signature.
- #key_fingerprint ⇒ Object
- #signed_by_key ⇒ Object
- #verification_status ⇒ Object
Constructor Details
#initialize(signature_text, signed_text, signer, committer_email) ⇒ Signature
Returns a new instance of Signature.
14 15 16 17 18 19 |
# File 'lib/gitlab/ssh/signature.rb', line 14 def initialize(signature_text, signed_text, signer, committer_email) @signature_text = signature_text @signed_text = signed_text @signer = signer @committer_email = committer_email end |
Instance Method Details
#key_fingerprint ⇒ Object
46 47 48 |
# File 'lib/gitlab/ssh/signature.rb', line 46 def key_fingerprint strong_memoize(:key_fingerprint) { signature&.public_key&.fingerprint } end |
#signed_by_key ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/gitlab/ssh/signature.rb', line 38 def signed_by_key strong_memoize(:signed_by_key) do next unless key_fingerprint Key.signing.find_by_fingerprint_sha256(key_fingerprint) end end |
#verification_status ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/gitlab/ssh/signature.rb', line 21 def verification_status strong_memoize(:verification_status) do next :unverified unless all_attributes_present? next :verified_system if verified_by_gitlab? next :unverified unless valid_signature_blob? next :unknown_key unless signed_by_key next :other_user unless committer next :other_user unless signed_by_key.user == committer if signed_by_user_email_verified? :verified else :unverified end end end |