mobile_id 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
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