|
|
|
|
@ -304,16 +304,9 @@ module Submissions
|
|
|
|
|
if sign_reason
|
|
|
|
|
sign_params = {
|
|
|
|
|
reason: sign_reason,
|
|
|
|
|
certificate: pkcs.certificate,
|
|
|
|
|
key: pkcs.key,
|
|
|
|
|
certificate_chain: pkcs.ca_certs || []
|
|
|
|
|
**build_signing_params(pkcs, tsa_url)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if tsa_url
|
|
|
|
|
sign_params[:timestamp_handler] = Submissions::TimestampHandler.new(tsa_url:)
|
|
|
|
|
sign_params[:signature_size] = 10_000
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
pdf.sign(io, write_options: { validate: false }, **sign_params)
|
|
|
|
|
rescue HexaPDF::MalformedPDFError => e
|
|
|
|
|
@ -342,6 +335,21 @@ module Submissions
|
|
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def build_signing_params(pkcs, tsa_url)
|
|
|
|
|
params = {
|
|
|
|
|
certificate: pkcs.certificate,
|
|
|
|
|
key: pkcs.key,
|
|
|
|
|
certificate_chain: pkcs.ca_certs || []
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if tsa_url
|
|
|
|
|
params[:timestamp_handler] = Submissions::TimestampHandler.new(tsa_url:)
|
|
|
|
|
params[:signature_size] = 10_000
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
params
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def images_pdf_uuid(attachments)
|
|
|
|
|
Digest::UUID.uuid_v5(Digest::UUID::OID_NAMESPACE, attachments.map(&:uuid).sort.join(':'))
|
|
|
|
|
end
|
|
|
|
|
|