Module: Eet::Utils
- Defined in:
- lib/eet/utils.rb
Class Method Summary collapse
- .create_bkp(pkp_value) ⇒ Object
- .create_pkp(message, certificate) ⇒ Object
- .serialize_pkp_data(message) ⇒ Object
- .sign(xml, certificate) ⇒ Object
Class Method Details
.create_bkp(pkp_value) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/eet/utils.rb', line 11 def self.create_bkp(pkp_value) decoded = Base64.decode64(pkp_value) digest = Digest::SHA1.digest(decoded) ret = '' encoded = digest.each_char do |c| ch = c.ord.to_s(16) ch = '0' + ch if ch.size == 1 ret += ch end ret.upcase.chars.each_slice(8).map(&:join).join('-') end |
.create_pkp(message, certificate) ⇒ Object
5 6 7 8 9 |
# File 'lib/eet/utils.rb', line 5 def self.create_pkp(, certificate) digest = OpenSSL::Digest::SHA256.new signature = certificate.key.sign(digest, serialize_pkp_data()) Base64.encode64(signature).delete("\n") end |
.serialize_pkp_data(message) ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/eet/utils.rb', line 42 def self.serialize_pkp_data() [.dic_popl, .id_provoz, .id_pokl, .porad_cis, .dat_trzby, .celk_trzba].join('|') end |
.sign(xml, certificate) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/eet/utils.rb', line 26 def self.sign(xml, certificate) signer = Signer.new(xml) signer.cert = certificate.certificate signer.private_key = certificate.key signer.security_node = signer.document.children.first.children.first.children.first signer.digest_algorithm = :sha256 signer.signature_digest_algorithm = :sha256 signer.ds_namespace_prefix = 'ds' signer.security_token_id = 'A79845F15C5549CA0514761283545705' signer.digest!(signer.document.at_xpath('//soap:Body'), inclusive_namespaces: ['']) signer.sign!(security_token: true, inclusive_namespaces: ['soap']) signer.to_xml end |