Class: Gitlab::Ci::Reports::Security::FindingSignature

Inherits:
Object
  • Object
show all
Includes:
VulnerabilityFindingSignatureHelpers
Defined in:
lib/gitlab/ci/reports/security/finding_signature.rb

Constant Summary

Constants included from VulnerabilityFindingSignatureHelpers

VulnerabilityFindingSignatureHelpers::ALGORITHM_TYPES

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from VulnerabilityFindingSignatureHelpers

#algorithm_types, #priority

Constructor Details

#initialize(params = {}) ⇒ FindingSignature

Returns a new instance of FindingSignature.



12
13
14
15
16
# File 'lib/gitlab/ci/reports/security/finding_signature.rb', line 12

def initialize(params = {})
  @algorithm_type = params[:algorithm_type]
  @signature_value = params[:signature_value]
  @qualified_signature = params[:qualified_signature]
end

Instance Attribute Details

#algorithm_typeObject

Returns the value of attribute algorithm_type.



10
11
12
# File 'lib/gitlab/ci/reports/security/finding_signature.rb', line 10

def algorithm_type
  @algorithm_type
end

#qualified_signatureObject

Returns the value of attribute qualified_signature.



10
11
12
# File 'lib/gitlab/ci/reports/security/finding_signature.rb', line 10

def qualified_signature
  @qualified_signature
end

#signature_valueObject

Returns the value of attribute signature_value.



10
11
12
# File 'lib/gitlab/ci/reports/security/finding_signature.rb', line 10

def signature_value
  @signature_value
end

Instance Method Details

#eql?(other) ⇒ Boolean Also known as: ==

Returns:

  • (Boolean)


41
42
43
44
# File 'lib/gitlab/ci/reports/security/finding_signature.rb', line 41

def eql?(other)
  other.algorithm_type == algorithm_type &&
    other.signature_sha == signature_sha
end

#signature_hexObject



22
23
24
25
26
27
28
# File 'lib/gitlab/ci/reports/security/finding_signature.rb', line 22

def signature_hex
  if qualified_signature
    "#{algorithm_type}:#{signature_sha.unpack1('H*')}"
  else
    signature_sha.unpack1("H*")
  end
end

#signature_shaObject



18
19
20
# File 'lib/gitlab/ci/reports/security/finding_signature.rb', line 18

def signature_sha
  Digest::SHA1.digest(signature_value)
end

#to_hashObject



30
31
32
33
34
35
# File 'lib/gitlab/ci/reports/security/finding_signature.rb', line 30

def to_hash
  {
    algorithm_type: algorithm_type,
    signature_sha: signature_sha
  }
end

#valid?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/gitlab/ci/reports/security/finding_signature.rb', line 37

def valid?
  algorithm_types.key?(algorithm_type)
end