Class: Gem::Guardian::Verifier
- Inherits:
-
Object
- Object
- Gem::Guardian::Verifier
- Defined in:
- lib/gem/guardian/verifier.rb
Instance Method Summary collapse
-
#initialize(client: RubygemsClient.new, artifact_store: nil) ⇒ Verifier
constructor
A new instance of Verifier.
- #verify(dependency) ⇒ Object
- #verify_all(dependencies) ⇒ Object
Constructor Details
#initialize(client: RubygemsClient.new, artifact_store: nil) ⇒ Verifier
Returns a new instance of Verifier.
12 13 14 15 |
# File 'lib/gem/guardian/verifier.rb', line 12 def initialize(client: RubygemsClient.new, artifact_store: nil) @client = client @artifact_store = artifact_store || ArtifactStore.new(client: @client) end |
Instance Method Details
#verify(dependency) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/gem/guardian/verifier.rb', line 17 def verify(dependency) expected = @client.expected_sha256(dependency) artifact_path = @artifact_store.path_for(dependency) actual = Checksum.sha256_file(artifact_path) status = secure_compare(expected, actual) ? :ok : :mismatch VerificationResult.new( dependency:, expected_sha256: expected, actual_sha256: actual, artifact_path:, status:, error: nil ) rescue StandardError => e VerificationResult.new( dependency:, expected_sha256: nil, actual_sha256: nil, artifact_path: nil, status: :error, error: e ) end |
#verify_all(dependencies) ⇒ Object
42 43 44 |
# File 'lib/gem/guardian/verifier.rb', line 42 def verify_all(dependencies) dependencies.map { |dependency| verify(dependency) } end |