u2f 0.0.3 → 0.0.4

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
  SHA1:
3
- metadata.gz: c779dd25f9a95cfc831617c40bd58adc467a36eb
4
- data.tar.gz: 94efeeaad1dacd2f0d77a9c78732643d91b750db
3
+ metadata.gz: 4c24a1971210f173c24a9e93c488133a3165db70
4
+ data.tar.gz: bfa2a34fd0d63d308d57cc9be246861cf4c95842
5
5
  SHA512:
6
- metadata.gz: ec901166a6ae4436cad602d63016e392f10a0d2deaa78f20ea4ec0555e9e8f16bb65af5508ecc04e3928fb91a989b993341c77d469f5bfdadd725b8c48501219
7
- data.tar.gz: 0d48814191c242bc0f5cec5ece404d5e85cb321cc110db2e767156763255a54322dc242bae9a1200a87503314d5d39180597b50a96f71ece49209b30b8861795
6
+ metadata.gz: e00d61768512827fe9037384b6311bac3f4fc32651cb4e2e5269966b89cc62e28fb5dc4736ed97240ddc99ef3d40e2c88c244ea92ae88105a5a1f0bb21dddee1
7
+ data.tar.gz: 0abeed621b15a657d315fdb89896d7180120422613012120a91e85f5be50061c398b4649b88befb14b695d380af187e0529f173179dc1db8e0d7a94b70a0ee3e
@@ -11,4 +11,22 @@ module U2F
11
11
  class CounterToLowError < Error; end
12
12
  class AuthenticationFailedError < Error; end
13
13
  class UserNotPresentError < Error;end
14
+
15
+ class RegistrationError < Error
16
+ CODES = {
17
+ 1 => "OTHER_ERROR",
18
+ 2 => "BAD_REQUEST",
19
+ 3 => "CONFIGURATION_UNSUPPORTED",
20
+ 4 => "DEVICE_INELIGIBLE",
21
+ 5 => "TIMEOUT"
22
+ }
23
+
24
+ attr_reader :code
25
+
26
+ def initialize(options = {})
27
+ @code = options[:code]
28
+ message = options[:message] || "Token returned #{CODES[code]}"
29
+ super(message)
30
+ end
31
+ end
14
32
  end
@@ -15,6 +15,11 @@ module U2F
15
15
  def self.load_from_json(json)
16
16
  # TODO: validate
17
17
  data = JSON.parse(json)
18
+
19
+ if data['errorCode'] && data['errorCode'] > 0
20
+ fail RegistrationError, :code => data['errorCode']
21
+ end
22
+
18
23
  instance = new
19
24
  instance.client_data_json =
20
25
  ::U2F.urlsafe_decode64(data['clientData'])
@@ -1,3 +1,3 @@
1
1
  module U2F
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -18,6 +18,10 @@ describe U2F::RegisterResponse do
18
18
  "{\"registrationData\":\"BQT2UXxw7PXHmN5nCj1M3Lq_sibfqQehZbuUV1Vxr1l0J1Gdcv7FEvnPofmrSN44_pz8-XAj7pOpqB79rOphJPf2QM8nt8Jtyyj9_XmZWZTQMg2UVHvrin_Jc4tMHY9QmyCNDmSU9_Bhb-Ei4u5GPgLrpF1TaEYQCqUHboqDKt4x524wggIbMIIBBaADAgECAgR1o_Z1MAsGCSqGSIb3DQEBCzAuMSwwKgYDVQQDEyNZdWJpY28gVTJGIFJvb3QgQ0EgU2VyaWFsIDQ1NzIwMDYzMTAgFw0xNDA4MDEwMDAwMDBaGA8yMDUwMDkwNDAwMDAwMFowKjEoMCYGA1UEAwwfWXViaWNvIFUyRiBFRSBTZXJpYWwgMTk3MzY3OTczMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBmjfkNqa2mXzVh2ZxuES5coCvvENxDMDLmfd-0ACG0Fu7wR4ZTjKd9KAuidySpfona5csGmlM0Te_Zu35h_wwujEjAQMA4GCisGAQQBgsQKAQIEADALBgkqhkiG9w0BAQsDggEBAb0tuI0-CzSxBg4cAlyD6UyT4cKyJZGVhWdtPgj_mWepT3Tu9jXtdgA5F3jfZtTc2eGxuS-PPvqRAkZd40AXgM8A0YaXPwlT4s0RUTY9Y8aAQzQZeAHuZk3lKKd_LUCg5077dzdt90lC5eVTEduj6cOnHEqnOr2Cv75FuiQXX7QkGQxtoD-otgvhZ2Fjk29o7Iy9ik7ewHGXOfoVw_ruGWi0YfXBTuqEJ6H666vvMN4BZWHtzhC0k5ceQslB9Xdntky-GQgDqNkkBf32GKwAFT9JJrkO2BfsB-wfBrTiHr0AABYNTNKTceA5dtR3UVpI492VUWQbY3YmWUUfKTI7fM4wRgIhAIfEKaF0w43L3RJHXp8qeRKw8Ek0CVcZ6pvBsH3Wo3F1AiEA5w89AFOBrjoSsnuGdUgB4AGxc5bRnV-p8jGUNoVSUwI\",\"version\":\"U2F_V2\",\"challenge\":\"oqDO4u_tTvhm1LhFDVYhFwywQF0PzFsXPgjD-5lKGDY\",\"appId\":\"http://localhost:3000\",\"clientData\":\"eyJ0eXAiOiJuYXZpZ2F0b3IuaWQuZmluaXNoRW5yb2xsbWVudCIsImNoYWxsZW5nZSI6Im9xRE80dV90VHZobTFMaEZEVlloRnd5d1FGMFB6RnNYUGdqRC01bEtHRFk9Iiwib3JpZ2luIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwIiwiY2lkX3B1YmtleSI6IiJ9\"}"
19
19
  }
20
20
 
21
+ let(:error_response) {
22
+ "{\"errorCode\":4}"
23
+ }
24
+
21
25
  let(:app_id) { 'http://demo.example.com' }
22
26
  let(:challenge) { 'yKA0x075tjJ-GE7fKTfnzTOSaNUOWQxRd9TWz5aFOg8' }
23
27
 
@@ -27,6 +31,17 @@ describe U2F::RegisterResponse do
27
31
  U2F::RegisterResponse.load_from_json(registration_data_json)
28
32
  end
29
33
 
34
+ context 'with error response' do
35
+ let(:registration_data_json) { error_response }
36
+ it 'raises RegistrationError with code' do
37
+ expect {
38
+ register_response
39
+ }.to raise_error(U2F::RegistrationError) do |error|
40
+ expect(error.code).to eq(4)
41
+ end
42
+ end
43
+ end
44
+
30
45
  context 'with unpadded response' do
31
46
  let(:registration_data_json) { registration_data_without_padding }
32
47
  it 'does not raise "invalid base64" exception' do
@@ -67,4 +82,4 @@ describe U2F::RegisterResponse do
67
82
  subject { register_response.verify(app_id) }
68
83
  it { is_expected.to be_truthy }
69
84
  end
70
- end
85
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: u2f
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johan Brissmyr
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-20 00:00:00.000000000 Z
12
+ date: 2014-11-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake