Ruby client for Estonian DigiDoc service authentication and signing API.

Installation

Add gem dependency in your Gemfile and install the gem:

gem 'digidoc_client'

Usage

Authentication

client = Digidoc::Client.new
client.authenticate(
  :phone => '+37260000007', :message_to_display => 'Authenticating',
  :service_name => 'Testing'
)
client.authentication_status

Signing

client = Digidoc::Client.new
client.logger = Logger.new('digidoc_service.log')
client.start_session
client.create_signed_doc
client.signed_doc_info

file1 = File.open('file1.pdf')
client.add_datafile(file1)
file2 = File.open('file2.pdf')
client.add_datafile(file2)

client.mobile_sign(:phone => '+37260000007', :role => ' My Company LLC / CTO')
client.sign_status

# Check signature status here...

client.save_signed_doc do |content, format|
  File.open("signed_document.#{format}", 'w') do |f|
    if format == :bdoc
      f.binmode
      f.write(Base64.decode64(content))
    else
      f.write(content)
    end
  end
end

client.close_session

More test numbers and details

In English

Digidoc specifications

In English

In Estonian

Authors

See this list