two_factor_auth 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/two_factor_auth/authentications_controller.rb +2 -1
- data/app/controllers/two_factor_auth/registrations_controller.rb +2 -2
- data/app/controllers/two_factor_auth/two_factor_auth_controller.rb +1 -2
- data/app/helpers/two_factor_auth/authentications_helper.rb +24 -1
- data/app/helpers/two_factor_auth/registrations_helper.rb +14 -1
- data/lib/generators/two_factor_auth/install_generator.rb +4 -0
- data/lib/two_factor_auth.rb +24 -9
- data/lib/two_factor_auth/engine.rb +7 -0
- data/lib/two_factor_auth/version.rb +1 -1
- data/test/controllers/two_factor_auth/authentications_controller_test.rb +7 -6
- data/test/controllers/two_factor_auth/registrations_controller_test.rb +7 -6
- data/test/controllers/two_factor_auth/trusted_facets_controller_test.rb +2 -1
- data/test/dummy/config/environments/test.rb +3 -1
- data/test/dummy/config/initializers/two_factor_auth.rb +1 -1
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +2004 -0
- data/test/dummy/log/test.log +21119 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/23gMR8_-IjXg7R6VFJYTeYfI5Bk1pWz9cGq8bYcuJVk.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/2VRoJl4_ryRqfqbshRZyyukLNeBRe43LWj0jAxWygT8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3xxZOw1d_F3SQEOfqWbJDK7GkQZG6RFL_rML9GivIog.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6hrL0PP7EpTrDf7TE6Jy_bGZTX0YP6vt1Ek4ZV6EZgQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AZvyaoCJYXrzlPHaUn5jiXhx5FffjtGdmDbdcFUAFdw.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PsO6qD3Gkku7kiCNSCLjl27Qq5KhCd_CA-N_70WNYzA.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RRPGdlAzXvxv9xR3OTJeAZ51DrgTuoR-H0hSr7tw7gI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/W89qjVs-Q9sY5rtUb3SkjwhL30IIXe4E2Hw9Lj-puHc.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XX56qn6mvgUCTqB1EZEwn5jwrN5nZg7QgMZoWarZirw.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/X_vJiIKpNLyakGDEt551QhTBBdYNFyORGG_f2652cEU.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hj8Ir9wcVSy1KYrnWu9bpD24vDhCG3tvt-nKbNxb1Wg.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jhJyHm46ZT4ALVcHC9sT70lqgwGavwHZ0tNh4A87x18.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oCsZTGZyV4kH8Y4OeSDUdrwfkJFPzTODZjuBKZB8oGQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tTO9Y99i7uTczFALqpXjw1qu3SnPz3p3IY2y3u8Vn4w.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/6hrL0PP7EpTrDf7TE6Jy_bGZTX0YP6vt1Ek4ZV6EZgQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AZvyaoCJYXrzlPHaUn5jiXhx5FffjtGdmDbdcFUAFdw.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GXYGtb-l25NlDO_NLupPGzBPs5369e_JOjFRGwV-6ms.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/L2e4ZPZnUR8GRnWaRnRIjp0H3Z8vxo4zo_P0_2KSS1E.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/W89qjVs-Q9sY5rtUb3SkjwhL30IIXe4E2Hw9Lj-puHc.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WraqXvk499CKXtzl5ErboSwG3N_vtSYjJCMgNcHneXk.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/X_vJiIKpNLyakGDEt551QhTBBdYNFyORGG_f2652cEU.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YOu-C7kJyArl6rYCUw1yoXsHhxltJRRlOMQYTpbIHL4.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZW7dk38nraFCasDj58ONkcokbYpXq6uRpOLoKYf2O8E.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_wrWO3hy4ErxhAexiVHwGyHbESdk_BGYnhWAzRVQHYk.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hj8Ir9wcVSy1KYrnWu9bpD24vDhCG3tvt-nKbNxb1Wg.cache +3 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/m3sLmK8aXu9kOyNiyDudVIxKOhWTTxdqP6Ygb9hqSWM.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oCsZTGZyV4kH8Y4OeSDUdrwfkJFPzTODZjuBKZB8oGQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache +3 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vmGe_dVH5Bk-GStqPTTa0erZk50i87Lm6HwOd5BtzRg.cache +1 -0
- data/test/dummy/tmp/pids/server.pid +1 -0
- data/test/helpers/two_factor_auth/authentication_helper_test.rb +1 -1
- data/test/helpers/two_factor_auth/registrations_helper_test.rb +1 -1
- data/test/integration/navigation_test.rb +1 -1
- data/test/lib/two_factor_auth_test.rb +45 -24
- data/test/models/two_factor_auth/authentication_request_test.rb +1 -1
- data/test/models/two_factor_auth/authentication_response_test.rb +1 -1
- data/test/models/two_factor_auth/authentication_verifier_test.rb +1 -1
- data/test/models/two_factor_auth/client_data_test.rb +1 -1
- data/test/models/two_factor_auth/registration_request_test.rb +1 -1
- data/test/models/two_factor_auth/registration_response_test.rb +1 -1
- data/test/models/two_factor_auth/registration_verifier_test.rb +1 -1
- data/test/test_helper.rb +4 -0
- metadata +126 -52
- data/app/helpers/two_factor_auth/application_helper.rb +0 -21
- data/lib/two_factor_auth/authentication_hook.rb +0 -18
- data/lib/two_factor_auth/registration_hook.rb +0 -17
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"}app/assets/stylesheets/application.css?type=text/css&id=24cd2d5bf07827b9723cdabfa2cf73d8e019feb25adcd4c67e3177a9e046b8a3:ET
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=ed3ed3df74fa32587f9643a433f912b59a567f2791920b5d4d474bf6c03dc4d7:ET
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
"%]!�K��X�K�֓�ޖ���';�����4x��
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&id=6b1b2ab53ed9d790c2b34a82b30354594eeef0d086e2b14b5dafab54ff0862ba:ET
|
@@ -0,0 +1 @@
|
|
1
|
+
"%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=9290f894815da593d76dbfacdaeab89dc4327c8336017ee5bd1437b19617e67b:ET
|
Binary file
|
Binary file
|
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash{I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI")file-digest://app/assets/javascripts;TT
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
"%]!�K��X�K�֓�ޖ���';�����4x��
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"}app/assets/stylesheets/application.css?type=text/css&id=5d9fda2cf6d33252e2aceb4a49db87b70102137373aa01a74d93aa09effa3cc4:ET
|
@@ -0,0 +1 @@
|
|
1
|
+
"%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=dd7666be4b582e50a0c22b11210fc492a4b1fe09641db93377294d0318d247a3:ET
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&id=d8e8c88bb09cbd08dfe32f100cecc0a5be4da3e9c58819b0378a9e51d58ed9ce:ET
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash{I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI")file-digest://app/assets/javascripts;TT
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=173e6a8bc26b4b277951bff473e7e7ccd08e51cfacb2f991ebf21221a6ed3583:ET
|
@@ -0,0 +1 @@
|
|
1
|
+
12941
|
@@ -1,8 +1,15 @@
|
|
1
|
-
|
1
|
+
require_relative '../test_helper'
|
2
2
|
|
3
3
|
describe TwoFactorAuth do
|
4
4
|
let(:pubkey) { "\x049\xC6GC\xE6\xD3un;a\xD2\x04\e\x9B,vk\xEB\xDC\xB51\b\x14\x16\a\x92\x8D\xA1\xA92\xD7Z\x17\xB3D\xDF}P\xDA\x9Cg\xEB\xFD7h)N\xC4\xF2\xF1\x10\e\x8A\xC7\x88\x9AM\x17V\xEA\xBEX\x14\xAB" }
|
5
5
|
|
6
|
+
def teardown
|
7
|
+
# clear all the settings between runs
|
8
|
+
TwoFactorAuth.instance_variable_set(:@facet_domain, nil)
|
9
|
+
TwoFactorAuth.instance_variable_set(:@trusted_facet_list_url, nil)
|
10
|
+
TwoFactorAuth.instance_variable_set(:@facets, nil)
|
11
|
+
end
|
12
|
+
|
6
13
|
describe "U2F_VERSION" do
|
7
14
|
it "is the only version" do
|
8
15
|
TwoFactorAuth::U2F_VERSION.must_equal 'U2F_V2'
|
@@ -27,18 +34,6 @@ describe TwoFactorAuth do
|
|
27
34
|
TwoFactorAuth.facet_domain.must_equal "http://www.example.net"
|
28
35
|
end
|
29
36
|
|
30
|
-
it "raises if you try to use localhost" do
|
31
|
-
Proc.new {
|
32
|
-
TwoFactorAuth.facet_domain = "http://localhost:3000"
|
33
|
-
}.must_raise(TwoFactorAuth::InvalidFacetDomain)
|
34
|
-
Proc.new {
|
35
|
-
TwoFactorAuth.facet_domain = "http://localhost:3000/"
|
36
|
-
}.must_raise(TwoFactorAuth::InvalidFacetDomain)
|
37
|
-
Proc.new {
|
38
|
-
TwoFactorAuth.facet_domain = "http://localhost/"
|
39
|
-
}.must_raise(TwoFactorAuth::InvalidFacetDomain)
|
40
|
-
end
|
41
|
-
|
42
37
|
it "raises if you try to use something.dev" do
|
43
38
|
Proc.new {
|
44
39
|
TwoFactorAuth.facet_domain = "http://local.dev:3000"
|
@@ -65,31 +60,57 @@ describe TwoFactorAuth do
|
|
65
60
|
end
|
66
61
|
|
67
62
|
it "is based on facet_domain otherwise" do
|
68
|
-
# this value is persisted across tests...
|
69
|
-
TwoFactorAuth.trusted_facet_list_url = nil
|
70
63
|
TwoFactorAuth.facet_domain = "https://www.example.net"
|
71
|
-
TwoFactorAuth.trusted_facet_list_url.
|
64
|
+
TwoFactorAuth.trusted_facet_list_url.must_match /\Ahttps:\/\/www.example.net/
|
65
|
+
end
|
66
|
+
|
67
|
+
it "prohibits HTTP URLs" do
|
68
|
+
Proc.new {
|
69
|
+
TwoFactorAuth.trusted_facet_list_url = "http://www.example.net/list"
|
70
|
+
}.must_raise(TwoFactorAuth::InvalidTrustedFacetListUrl)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "#app_id_or_facet_list" do
|
75
|
+
it "is the domain if there are no facets" do
|
76
|
+
TwoFactorAuth.facet_domain = "https://www.example.net"
|
77
|
+
TwoFactorAuth.facets = []
|
78
|
+
TwoFactorAuth.app_id_or_facet_list.must_equal "https://www.example.net"
|
79
|
+
end
|
80
|
+
|
81
|
+
it "is the trusted facet list if there are facets" do
|
82
|
+
TwoFactorAuth.facet_domain = "https://www.example.net"
|
83
|
+
TwoFactorAuth.facets = ["https://www.example.com", "https://www.example.net"]
|
84
|
+
TwoFactorAuth.app_id_or_facet_list.must_equal "https://www.example.net/two_factor_auth/trusted_facets"
|
72
85
|
end
|
73
86
|
end
|
74
87
|
|
75
88
|
describe "setting facets" do
|
76
89
|
it "can be set explicitly" do
|
90
|
+
TwoFactorAuth.facet_domain = "https://www.example.net"
|
77
91
|
TwoFactorAuth.facets = ["https://www.example.net", "https://staging.example.net"]
|
78
92
|
TwoFactorAuth.facets.must_equal ["https://www.example.net", "https://staging.example.net"]
|
79
93
|
end
|
80
94
|
|
81
|
-
it "
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
TwoFactorAuth
|
95
|
+
it "prohibits using a facet list with an http app id" do
|
96
|
+
TwoFactorAuth.facet_domain = "http://www.example.net/"
|
97
|
+
Proc.new {
|
98
|
+
TwoFactorAuth.facets = ["https://www.example.com"]
|
99
|
+
}.must_raise(TwoFactorAuth::InvalidFacetDomain)
|
100
|
+
end
|
101
|
+
|
102
|
+
it "prohibits setting an HTTP URL in the facet list" do
|
103
|
+
TwoFactorAuth.facet_domain = "https://www.example.net/"
|
104
|
+
Proc.new {
|
105
|
+
TwoFactorAuth.facets = ["http://www.example.net"]
|
106
|
+
}.must_raise(TwoFactorAuth::InvalidFacetListDomain)
|
86
107
|
end
|
87
108
|
|
88
|
-
it "is
|
109
|
+
it "is empty by default" do
|
89
110
|
# this value is persisted across tests...
|
90
|
-
TwoFactorAuth.facets =
|
111
|
+
TwoFactorAuth.facets = nil
|
91
112
|
TwoFactorAuth.facet_domain = "https://www.example.net"
|
92
|
-
TwoFactorAuth.facets.must_equal [
|
113
|
+
TwoFactorAuth.facets.must_equal []
|
93
114
|
end
|
94
115
|
end
|
95
116
|
|
data/test/test_helper.rb
CHANGED
@@ -26,6 +26,10 @@ class ActionController::TestCase
|
|
26
26
|
|
27
27
|
def teardown
|
28
28
|
Warden.test_reset!
|
29
|
+
# clear all the settings
|
30
|
+
TwoFactorAuth.instance_variable_set(:@facet_domain, nil)
|
31
|
+
TwoFactorAuth.instance_variable_set(:@trusted_facet_list_url, nil)
|
32
|
+
TwoFactorAuth.instance_variable_set(:@facets, nil)
|
29
33
|
end
|
30
34
|
|
31
35
|
def register_as user, registration
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: two_factor_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Harkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
version: '4.0'
|
68
68
|
- - "<="
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
70
|
+
version: 4.2.4
|
71
71
|
type: :development
|
72
72
|
prerelease: false
|
73
73
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
version: '4.0'
|
78
78
|
- - "<="
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
version:
|
80
|
+
version: 4.2.4
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: devise
|
83
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,7 +162,6 @@ files:
|
|
162
162
|
- app/controllers/two_factor_auth/registrations_controller.rb
|
163
163
|
- app/controllers/two_factor_auth/trusted_facets_controller.rb
|
164
164
|
- app/controllers/two_factor_auth/two_factor_auth_controller.rb
|
165
|
-
- app/helpers/two_factor_auth/application_helper.rb
|
166
165
|
- app/helpers/two_factor_auth/authentications_helper.rb
|
167
166
|
- app/helpers/two_factor_auth/registrations_helper.rb
|
168
167
|
- app/models/two_factor_auth/authentication_client_data.rb
|
@@ -184,9 +183,7 @@ files:
|
|
184
183
|
- lib/generators/two_factor_auth/install_generator.rb
|
185
184
|
- lib/tasks/two_factor_auth_tasks.rake
|
186
185
|
- lib/two_factor_auth.rb
|
187
|
-
- lib/two_factor_auth/authentication_hook.rb
|
188
186
|
- lib/two_factor_auth/engine.rb
|
189
|
-
- lib/two_factor_auth/registration_hook.rb
|
190
187
|
- lib/two_factor_auth/version.rb
|
191
188
|
- test/controllers/two_factor_auth/authentications_controller_test.rb
|
192
189
|
- test/controllers/two_factor_auth/registrations_controller_test.rb
|
@@ -237,12 +234,51 @@ files:
|
|
237
234
|
- test/dummy/public/422.html
|
238
235
|
- test/dummy/public/500.html
|
239
236
|
- test/dummy/public/favicon.ico
|
237
|
+
- test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
|
238
|
+
- test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
|
239
|
+
- test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
|
240
|
+
- test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994
|
241
|
+
- test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
|
242
|
+
- test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
|
243
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/23gMR8_-IjXg7R6VFJYTeYfI5Bk1pWz9cGq8bYcuJVk.cache
|
244
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/2VRoJl4_ryRqfqbshRZyyukLNeBRe43LWj0jAxWygT8.cache
|
245
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/3xxZOw1d_F3SQEOfqWbJDK7GkQZG6RFL_rML9GivIog.cache
|
246
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/6hrL0PP7EpTrDf7TE6Jy_bGZTX0YP6vt1Ek4ZV6EZgQ.cache
|
247
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/AZvyaoCJYXrzlPHaUn5jiXhx5FffjtGdmDbdcFUAFdw.cache
|
248
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache
|
249
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/PsO6qD3Gkku7kiCNSCLjl27Qq5KhCd_CA-N_70WNYzA.cache
|
250
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/RRPGdlAzXvxv9xR3OTJeAZ51DrgTuoR-H0hSr7tw7gI.cache
|
251
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/W89qjVs-Q9sY5rtUb3SkjwhL30IIXe4E2Hw9Lj-puHc.cache
|
252
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/XX56qn6mvgUCTqB1EZEwn5jwrN5nZg7QgMZoWarZirw.cache
|
253
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/X_vJiIKpNLyakGDEt551QhTBBdYNFyORGG_f2652cEU.cache
|
254
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/hj8Ir9wcVSy1KYrnWu9bpD24vDhCG3tvt-nKbNxb1Wg.cache
|
255
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/jhJyHm46ZT4ALVcHC9sT70lqgwGavwHZ0tNh4A87x18.cache
|
256
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/oCsZTGZyV4kH8Y4OeSDUdrwfkJFPzTODZjuBKZB8oGQ.cache
|
257
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache
|
258
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/tTO9Y99i7uTczFALqpXjw1qu3SnPz3p3IY2y3u8Vn4w.cache
|
240
259
|
- test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
|
241
260
|
- test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
|
242
261
|
- test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
|
243
262
|
- test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
|
244
263
|
- test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
|
245
264
|
- test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
|
265
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/6hrL0PP7EpTrDf7TE6Jy_bGZTX0YP6vt1Ek4ZV6EZgQ.cache
|
266
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/AZvyaoCJYXrzlPHaUn5jiXhx5FffjtGdmDbdcFUAFdw.cache
|
267
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/GXYGtb-l25NlDO_NLupPGzBPs5369e_JOjFRGwV-6ms.cache
|
268
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/L2e4ZPZnUR8GRnWaRnRIjp0H3Z8vxo4zo_P0_2KSS1E.cache
|
269
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache
|
270
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/W89qjVs-Q9sY5rtUb3SkjwhL30IIXe4E2Hw9Lj-puHc.cache
|
271
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/WraqXvk499CKXtzl5ErboSwG3N_vtSYjJCMgNcHneXk.cache
|
272
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/X_vJiIKpNLyakGDEt551QhTBBdYNFyORGG_f2652cEU.cache
|
273
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/YOu-C7kJyArl6rYCUw1yoXsHhxltJRRlOMQYTpbIHL4.cache
|
274
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZW7dk38nraFCasDj58ONkcokbYpXq6uRpOLoKYf2O8E.cache
|
275
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/_wrWO3hy4ErxhAexiVHwGyHbESdk_BGYnhWAzRVQHYk.cache
|
276
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/hj8Ir9wcVSy1KYrnWu9bpD24vDhCG3tvt-nKbNxb1Wg.cache
|
277
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/m3sLmK8aXu9kOyNiyDudVIxKOhWTTxdqP6Ygb9hqSWM.cache
|
278
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/oCsZTGZyV4kH8Y4OeSDUdrwfkJFPzTODZjuBKZB8oGQ.cache
|
279
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache
|
280
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/vmGe_dVH5Bk-GStqPTTa0erZk50i87Lm6HwOd5BtzRg.cache
|
281
|
+
- test/dummy/tmp/pids/server.pid
|
246
282
|
- test/helpers/two_factor_auth/authentication_helper_test.rb
|
247
283
|
- test/helpers/two_factor_auth/registrations_helper_test.rb
|
248
284
|
- test/integration/navigation_test.rb
|
@@ -276,76 +312,114 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
276
312
|
version: '0'
|
277
313
|
requirements: []
|
278
314
|
rubyforge_project:
|
279
|
-
rubygems_version: 2.
|
315
|
+
rubygems_version: 2.4.8
|
280
316
|
signing_key:
|
281
317
|
specification_version: 4
|
282
|
-
summary: Support FIDO
|
318
|
+
summary: Support FIDO Alliance universal two-factor authentication (U2F)
|
283
319
|
test_files:
|
284
|
-
- test/
|
285
|
-
- test/models/two_factor_auth/authentication_response_test.rb
|
286
|
-
- test/models/two_factor_auth/authentication_request_test.rb
|
287
|
-
- test/models/two_factor_auth/registration_verifier_test.rb
|
288
|
-
- test/models/two_factor_auth/registration_response_test.rb
|
289
|
-
- test/models/two_factor_auth/registration_request_test.rb
|
290
|
-
- test/models/two_factor_auth/client_data_test.rb
|
291
|
-
- test/models/two_factor_auth/authentication_verifier_test.rb
|
292
|
-
- test/integration/navigation_test.rb
|
320
|
+
- test/controllers/two_factor_auth/registrations_controller_test.rb
|
293
321
|
- test/controllers/two_factor_auth/trusted_facets_controller_test.rb
|
294
322
|
- test/controllers/two_factor_auth/authentications_controller_test.rb
|
295
|
-
- test/
|
296
|
-
- test/
|
297
|
-
- test/
|
298
|
-
- test/dummy/config.
|
299
|
-
- test/dummy/config/
|
323
|
+
- test/dummy/config/locales/en.yml
|
324
|
+
- test/dummy/config/locales/devise.en.yml
|
325
|
+
- test/dummy/config/database.yml
|
326
|
+
- test/dummy/config/environment.rb
|
327
|
+
- test/dummy/config/routes.rb
|
328
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
329
|
+
- test/dummy/config/initializers/mime_types.rb
|
300
330
|
- test/dummy/config/initializers/session_store.rb
|
301
331
|
- test/dummy/config/initializers/devise.rb
|
302
|
-
- test/dummy/config/initializers/cookies_serializer.rb
|
303
|
-
- test/dummy/config/initializers/inflections.rb
|
304
|
-
- test/dummy/config/initializers/filter_parameter_logging.rb
|
305
332
|
- test/dummy/config/initializers/two_factor_auth.rb
|
306
|
-
- test/dummy/config/initializers/mime_types.rb
|
307
333
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
334
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
335
|
+
- test/dummy/config/initializers/inflections.rb
|
308
336
|
- test/dummy/config/initializers/assets.rb
|
309
|
-
- test/dummy/config/initializers/
|
310
|
-
- test/dummy/config/
|
311
|
-
- test/dummy/config/boot.rb
|
312
|
-
- test/dummy/config/environments/production.rb
|
337
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
338
|
+
- test/dummy/config/secrets.yml
|
313
339
|
- test/dummy/config/environments/development.rb
|
340
|
+
- test/dummy/config/environments/production.rb
|
314
341
|
- test/dummy/config/environments/test.rb
|
315
|
-
- test/dummy/config/
|
316
|
-
- test/dummy/config/environment.rb
|
317
|
-
- test/dummy/config/locales/en.yml
|
318
|
-
- test/dummy/config/locales/devise.en.yml
|
342
|
+
- test/dummy/config/boot.rb
|
319
343
|
- test/dummy/config/application.rb
|
320
|
-
- test/dummy/
|
321
|
-
- test/dummy/
|
322
|
-
- test/dummy/db/schema.rb
|
323
|
-
- test/dummy/db/migrate/20141026231953_devise_create_users.rb
|
324
|
-
- test/dummy/db/migrate/20141224135949_create_two_factor_auth_registrations.rb
|
344
|
+
- test/dummy/app/controllers/application_controller.rb
|
345
|
+
- test/dummy/app/controllers/secrets_controller.rb
|
325
346
|
- test/dummy/app/assets/javascripts/application.js
|
326
347
|
- test/dummy/app/assets/stylesheets/application.css
|
327
348
|
- test/dummy/app/models/user.rb
|
328
|
-
- test/dummy/app/controllers/application_controller.rb
|
329
|
-
- test/dummy/app/controllers/secrets_controller.rb
|
330
|
-
- test/dummy/app/helpers/application_helper.rb
|
331
349
|
- test/dummy/app/views/layouts/application.html.erb
|
332
350
|
- test/dummy/app/views/secrets/index.html.erb
|
333
|
-
- test/dummy/
|
351
|
+
- test/dummy/app/helpers/application_helper.rb
|
352
|
+
- test/dummy/bin/rails
|
334
353
|
- test/dummy/bin/bundle
|
335
354
|
- test/dummy/bin/rake
|
336
|
-
- test/dummy/
|
337
|
-
- test/dummy/tmp/cache/assets/test/sprockets/
|
338
|
-
- test/dummy/tmp/cache/assets/test/sprockets/
|
339
|
-
- test/dummy/tmp/cache/assets/test/sprockets/
|
355
|
+
- test/dummy/README.rdoc
|
356
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/W89qjVs-Q9sY5rtUb3SkjwhL30IIXe4E2Hw9Lj-puHc.cache
|
357
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZW7dk38nraFCasDj58ONkcokbYpXq6uRpOLoKYf2O8E.cache
|
358
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache
|
359
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/X_vJiIKpNLyakGDEt551QhTBBdYNFyORGG_f2652cEU.cache
|
360
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/6hrL0PP7EpTrDf7TE6Jy_bGZTX0YP6vt1Ek4ZV6EZgQ.cache
|
361
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/m3sLmK8aXu9kOyNiyDudVIxKOhWTTxdqP6Ygb9hqSWM.cache
|
362
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/_wrWO3hy4ErxhAexiVHwGyHbESdk_BGYnhWAzRVQHYk.cache
|
363
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/vmGe_dVH5Bk-GStqPTTa0erZk50i87Lm6HwOd5BtzRg.cache
|
364
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/L2e4ZPZnUR8GRnWaRnRIjp0H3Z8vxo4zo_P0_2KSS1E.cache
|
365
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/oCsZTGZyV4kH8Y4OeSDUdrwfkJFPzTODZjuBKZB8oGQ.cache
|
366
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/hj8Ir9wcVSy1KYrnWu9bpD24vDhCG3tvt-nKbNxb1Wg.cache
|
367
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/YOu-C7kJyArl6rYCUw1yoXsHhxltJRRlOMQYTpbIHL4.cache
|
368
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/GXYGtb-l25NlDO_NLupPGzBPs5369e_JOjFRGwV-6ms.cache
|
369
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/WraqXvk499CKXtzl5ErboSwG3N_vtSYjJCMgNcHneXk.cache
|
370
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/AZvyaoCJYXrzlPHaUn5jiXhx5FffjtGdmDbdcFUAFdw.cache
|
371
|
+
- test/dummy/tmp/cache/assets/test/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache
|
340
372
|
- test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
|
341
373
|
- test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
|
342
374
|
- test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
|
343
|
-
- test/dummy/
|
375
|
+
- test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
|
376
|
+
- test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
|
377
|
+
- test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
|
378
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/W89qjVs-Q9sY5rtUb3SkjwhL30IIXe4E2Hw9Lj-puHc.cache
|
379
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/tTO9Y99i7uTczFALqpXjw1qu3SnPz3p3IY2y3u8Vn4w.cache
|
380
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache
|
381
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/X_vJiIKpNLyakGDEt551QhTBBdYNFyORGG_f2652cEU.cache
|
382
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/6hrL0PP7EpTrDf7TE6Jy_bGZTX0YP6vt1Ek4ZV6EZgQ.cache
|
383
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/2VRoJl4_ryRqfqbshRZyyukLNeBRe43LWj0jAxWygT8.cache
|
384
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/XX56qn6mvgUCTqB1EZEwn5jwrN5nZg7QgMZoWarZirw.cache
|
385
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/jhJyHm46ZT4ALVcHC9sT70lqgwGavwHZ0tNh4A87x18.cache
|
386
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/oCsZTGZyV4kH8Y4OeSDUdrwfkJFPzTODZjuBKZB8oGQ.cache
|
387
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/hj8Ir9wcVSy1KYrnWu9bpD24vDhCG3tvt-nKbNxb1Wg.cache
|
388
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/RRPGdlAzXvxv9xR3OTJeAZ51DrgTuoR-H0hSr7tw7gI.cache
|
389
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/23gMR8_-IjXg7R6VFJYTeYfI5Bk1pWz9cGq8bYcuJVk.cache
|
390
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/PsO6qD3Gkku7kiCNSCLjl27Qq5KhCd_CA-N_70WNYzA.cache
|
391
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/AZvyaoCJYXrzlPHaUn5jiXhx5FffjtGdmDbdcFUAFdw.cache
|
392
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/3xxZOw1d_F3SQEOfqWbJDK7GkQZG6RFL_rML9GivIog.cache
|
393
|
+
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache
|
394
|
+
- test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
|
395
|
+
- test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994
|
396
|
+
- test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
|
397
|
+
- test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
|
398
|
+
- test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
|
399
|
+
- test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
|
400
|
+
- test/dummy/tmp/pids/server.pid
|
401
|
+
- test/dummy/db/schema.rb
|
402
|
+
- test/dummy/db/migrate/20141026231953_devise_create_users.rb
|
403
|
+
- test/dummy/db/migrate/20141224135949_create_two_factor_auth_registrations.rb
|
404
|
+
- test/dummy/db/test.sqlite3
|
405
|
+
- test/dummy/db/development.sqlite3
|
344
406
|
- test/dummy/log/development.log
|
345
407
|
- test/dummy/log/test.log
|
346
|
-
- test/dummy/public/422.html
|
347
|
-
- test/dummy/public/favicon.ico
|
348
408
|
- test/dummy/public/404.html
|
349
409
|
- test/dummy/public/500.html
|
410
|
+
- test/dummy/public/favicon.ico
|
411
|
+
- test/dummy/public/422.html
|
412
|
+
- test/dummy/Rakefile
|
413
|
+
- test/dummy/config.ru
|
414
|
+
- test/integration/navigation_test.rb
|
415
|
+
- test/models/two_factor_auth/authentication_request_test.rb
|
416
|
+
- test/models/two_factor_auth/client_data_test.rb
|
417
|
+
- test/models/two_factor_auth/registration_verifier_test.rb
|
418
|
+
- test/models/two_factor_auth/authentication_response_test.rb
|
419
|
+
- test/models/two_factor_auth/authentication_verifier_test.rb
|
420
|
+
- test/models/two_factor_auth/registration_response_test.rb
|
421
|
+
- test/models/two_factor_auth/registration_request_test.rb
|
422
|
+
- test/lib/two_factor_auth_test.rb
|
350
423
|
- test/test_helper.rb
|
351
|
-
|
424
|
+
- test/helpers/two_factor_auth/authentication_helper_test.rb
|
425
|
+
- test/helpers/two_factor_auth/registrations_helper_test.rb
|