mobile_id 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99c9c1d9c44d00d271fa3b42aba146322950aa8bec19a149557530cbe4fc2cf8
4
- data.tar.gz: 4502fa084cad790ee395600599e3babb4ae1e10d538141106bb049c855f2be6e
3
+ metadata.gz: 2bcb3f7e69f425ea215f86a911b42b36fd0bba8012b25491dba9bfe2983f61ae
4
+ data.tar.gz: d322ceae5ef98c798beed98fd1927111a81fee624c667897bc43b5b0bb2ffc30
5
5
  SHA512:
6
- metadata.gz: a032c0f18198697d25f81aec5adbddff64ecd72f4b010dabae52556ae23a379d4f35b2a469851dc1e10a9f798b378e4cd2f3e662cac7a0d3017ad68314c9403c
7
- data.tar.gz: 34ec448de3a9f6c9f620ba10de1f88be4f012b4878ae55fac6f9dd74023f4d9615cd083f117bd40db860673167fda83869c3bacfb0ba95656fecca0b4d48282c
6
+ metadata.gz: c3b858ba860c6194f7c52a47d5496835535462ba8ca60570c8eaa5e407de5349fac8dc205fc8a98cb796522cf8b3295a8693e418e7d7078cbd05a10a61105fc6
7
+ data.tar.gz: d3fde770330ab1614f2192d008b9ed202cc65caa06a065bb78833514e52d34c2d2dcfcf44435e6a20a68304df6dc7e309b1beae0af3997fdd08cfc3084c0040f
@@ -1,6 +1,9 @@
1
- Release 0.0.7
1
+ Release 0.0.9
2
+ * Fixed verification code
3
+
4
+ Release 0.0.8
2
5
  * Release cleanup
3
- *
6
+
4
7
  Release 0.0.7
5
8
  * Cert cleanup
6
9
 
@@ -16,13 +16,12 @@ module MobileId
16
16
  self.uuid = live == true ? uuid : TEST_UUID
17
17
  self.name = live == true ? name : TEST_NAME
18
18
  self.live = live
19
- init_doc(SecureRandom.uuid)
19
+ init_doc(SecureRandom.hex(40))
20
20
  end
21
21
 
22
22
  def init_doc(doc)
23
23
  self.doc = doc
24
-
25
- self.hash = Digest::SHA256.base64digest(self.doc)
24
+ self.hash = Digest::SHA256.digest(doc)
26
25
  end
27
26
 
28
27
  def authenticate!(phone_calling_code: nil, phone:, personal_code:, language: nil, display_text: nil)
@@ -51,7 +50,7 @@ module MobileId
51
50
  relyingPartyName: name,
52
51
  phoneNumber: full_phone.to_s.strip,
53
52
  nationalIdentityNumber: personal_code.to_s.strip,
54
- hash: hash,
53
+ hash: Base64.strict_encode64(hash),
55
54
  hashType: 'SHA256',
56
55
  language: language,
57
56
  displayText: display_text,
@@ -114,7 +113,8 @@ module MobileId
114
113
  end
115
114
 
116
115
  def verification_code
117
- format("%04d", (Digest::SHA2.new(256).digest(Base64.decode64(hash))[-2..-1].unpack1('n') % 10000))
116
+ binary = hash.unpack('B*').first
117
+ "%04d" % (binary[0...6] + binary[-7..-1]).to_i(2)
118
118
  end
119
119
 
120
120
  def given_name
@@ -47,9 +47,14 @@ module MobileId
47
47
  true
48
48
  end
49
49
 
50
- def verify_signature!(signature, doc)
51
- # TODO OpenSSL does not parse signature
52
- # cert.public_key.verify(OpenSSL::Digest::SHA256.new, signature, doc)
50
+ def verify_signature!(signature_base64, doc)
51
+ signature = Base64.decode64(signature_base64)
52
+ digest = OpenSSL::Digest::SHA256.new(doc)
53
+
54
+ # cert.public_key.verify(digest, signature, doc)
55
+
56
+ # TODO OpenSSL does not parse signature correctly
57
+ # OpenSSL::PKey::PKeyError: EVP_VerifyFinal: nested asn1 error
53
58
  end
54
59
 
55
60
  def given_name
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobile_id
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Priit Tark