demarches-normaliennes/app/lib/certigna/api.rb
2022-12-07 19:28:01 +01:00

41 lines
914 B
Ruby

class Certigna::API
## Certigna Timestamp POST API
# the CAfile used to controle the timestamp token is build:
# curl http://autorite.certigna.fr/ACcertigna.crt http://autorite.certigna.fr/entityca.crt > authorities.crt
def self.ensure_properly_configured!
if userpwd.blank?
raise StandardError, 'Certigna API is not properly configured'
end
end
def self.timestamp(data)
ensure_properly_configured!
response = Typhoeus.post(
CERTIGNA_API_URL,
userpwd: userpwd,
body: body(data)
)
if response.success?
response.body
else
raise StandardError, "Certigna timestamp query failed: #{response.status_message}"
end
end
private
def self.body(data)
{
'hashAlgorithm': 'SHA256',
'certReq': 'true',
'hashedMessage': data
}
end
def self.userpwd
Rails.application.secrets.certigna[:userpwd]
end
end