From d4aef79b68dc8e73e73d90966e434d7a3e8347c0 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Tue, 29 Oct 2024 08:29:26 +0200 Subject: [PATCH] use tsa fallback url --- lib/submissions/timestamp_handler.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/submissions/timestamp_handler.rb b/lib/submissions/timestamp_handler.rb index 96f09f41..03b45d43 100644 --- a/lib/submissions/timestamp_handler.rb +++ b/lib/submissions/timestamp_handler.rb @@ -6,10 +6,10 @@ module Submissions TimestampError = Class.new(StandardError) - attr_reader :tsa_url + attr_reader :tsa_url, :tsa_fallback_url def initialize(tsa_url:) - @tsa_url = tsa_url + @tsa_url, @tsa_fallback_url = tsa_url.split(',') end def finalize_objects(_signature_field, signature) @@ -37,7 +37,16 @@ module Submissions response = conn.post(uri.path, build_payload(digest.digest), 'content-type' => 'application/timestamp-query') - raise TimestampError if response.status != 200 || response.body.blank? + if response.status != 200 || response.body.blank? + raise TimestampError if tsa_fallback_url.blank? + + Rollbar.error('TimestampError: use fallback URL') if defined?(Rollbar) + + response = Faraday.post(tsa_fallback_url, build_payload(digest.digest), + 'content-type' => 'application/timestamp-query') + + raise TimestampError if response.status != 200 || response.body.blank? + end OpenSSL::Timestamp::Response.new(response.body).token.to_der end