class Fiscalizer::SecurityCodeGenerator

Attributes

invoice[R]
private_key[R]

Public Class Methods

new(invoice, private_key) click to toggle source
# File lib/fiscalizer/services/security_code_generator.rb, line 3
def initialize(invoice, private_key)
  @invoice = invoice
  @private_key = private_key
end

Public Instance Methods

call() click to toggle source
# File lib/fiscalizer/services/security_code_generator.rb, line 10
def call
  invoice.security_code = md5_digest
end

Private Instance Methods

md5_digest() click to toggle source
# File lib/fiscalizer/services/security_code_generator.rb, line 16
def md5_digest
  Digest::MD5.hexdigest(signed_code)
end
signed_code() click to toggle source
# File lib/fiscalizer/services/security_code_generator.rb, line 20
def signed_code
  OpenSSL::PKey::RSA.new(private_key).sign(OpenSSL::Digest::SHA1.new, unsigned_code)
end
unsigned_code() click to toggle source
# File lib/fiscalizer/services/security_code_generator.rb, line 24
def unsigned_code
  invoice.pin + invoice.time_issued_str(' ') + invoice.issued_number.to_s +
    invoice.issued_office.to_s + invoice.issued_machine.to_s + invoice.summed_total_str
end