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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/two_factor_auth/authentications_controller.rb +2 -1
  3. data/app/controllers/two_factor_auth/registrations_controller.rb +2 -2
  4. data/app/controllers/two_factor_auth/two_factor_auth_controller.rb +1 -2
  5. data/app/helpers/two_factor_auth/authentications_helper.rb +24 -1
  6. data/app/helpers/two_factor_auth/registrations_helper.rb +14 -1
  7. data/lib/generators/two_factor_auth/install_generator.rb +4 -0
  8. data/lib/two_factor_auth.rb +24 -9
  9. data/lib/two_factor_auth/engine.rb +7 -0
  10. data/lib/two_factor_auth/version.rb +1 -1
  11. data/test/controllers/two_factor_auth/authentications_controller_test.rb +7 -6
  12. data/test/controllers/two_factor_auth/registrations_controller_test.rb +7 -6
  13. data/test/controllers/two_factor_auth/trusted_facets_controller_test.rb +2 -1
  14. data/test/dummy/config/environments/test.rb +3 -1
  15. data/test/dummy/config/initializers/two_factor_auth.rb +1 -1
  16. data/test/dummy/db/development.sqlite3 +0 -0
  17. data/test/dummy/db/test.sqlite3 +0 -0
  18. data/test/dummy/log/development.log +2004 -0
  19. data/test/dummy/log/test.log +21119 -0
  20. data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  21. data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  22. data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  23. data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  24. data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  25. data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  26. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/23gMR8_-IjXg7R6VFJYTeYfI5Bk1pWz9cGq8bYcuJVk.cache +0 -0
  27. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/2VRoJl4_ryRqfqbshRZyyukLNeBRe43LWj0jAxWygT8.cache +1 -0
  28. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3xxZOw1d_F3SQEOfqWbJDK7GkQZG6RFL_rML9GivIog.cache +1 -0
  29. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6hrL0PP7EpTrDf7TE6Jy_bGZTX0YP6vt1Ek4ZV6EZgQ.cache +0 -0
  30. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AZvyaoCJYXrzlPHaUn5jiXhx5FffjtGdmDbdcFUAFdw.cache +1 -0
  31. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache +2 -0
  32. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PsO6qD3Gkku7kiCNSCLjl27Qq5KhCd_CA-N_70WNYzA.cache +0 -0
  33. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RRPGdlAzXvxv9xR3OTJeAZ51DrgTuoR-H0hSr7tw7gI.cache +1 -0
  34. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/W89qjVs-Q9sY5rtUb3SkjwhL30IIXe4E2Hw9Lj-puHc.cache +1 -0
  35. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XX56qn6mvgUCTqB1EZEwn5jwrN5nZg7QgMZoWarZirw.cache +1 -0
  36. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/X_vJiIKpNLyakGDEt551QhTBBdYNFyORGG_f2652cEU.cache +0 -0
  37. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hj8Ir9wcVSy1KYrnWu9bpD24vDhCG3tvt-nKbNxb1Wg.cache +3 -0
  38. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jhJyHm46ZT4ALVcHC9sT70lqgwGavwHZ0tNh4A87x18.cache +0 -0
  39. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oCsZTGZyV4kH8Y4OeSDUdrwfkJFPzTODZjuBKZB8oGQ.cache +2 -0
  40. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache +3 -0
  41. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tTO9Y99i7uTczFALqpXjw1qu3SnPz3p3IY2y3u8Vn4w.cache +0 -0
  42. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/6hrL0PP7EpTrDf7TE6Jy_bGZTX0YP6vt1Ek4ZV6EZgQ.cache +0 -0
  43. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AZvyaoCJYXrzlPHaUn5jiXhx5FffjtGdmDbdcFUAFdw.cache +1 -0
  44. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GXYGtb-l25NlDO_NLupPGzBPs5369e_JOjFRGwV-6ms.cache +0 -0
  45. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/L2e4ZPZnUR8GRnWaRnRIjp0H3Z8vxo4zo_P0_2KSS1E.cache +1 -0
  46. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache +2 -0
  47. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/W89qjVs-Q9sY5rtUb3SkjwhL30IIXe4E2Hw9Lj-puHc.cache +1 -0
  48. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WraqXvk499CKXtzl5ErboSwG3N_vtSYjJCMgNcHneXk.cache +1 -0
  49. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/X_vJiIKpNLyakGDEt551QhTBBdYNFyORGG_f2652cEU.cache +0 -0
  50. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YOu-C7kJyArl6rYCUw1yoXsHhxltJRRlOMQYTpbIHL4.cache +1 -0
  51. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZW7dk38nraFCasDj58ONkcokbYpXq6uRpOLoKYf2O8E.cache +0 -0
  52. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_wrWO3hy4ErxhAexiVHwGyHbESdk_BGYnhWAzRVQHYk.cache +0 -0
  53. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hj8Ir9wcVSy1KYrnWu9bpD24vDhCG3tvt-nKbNxb1Wg.cache +3 -0
  54. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/m3sLmK8aXu9kOyNiyDudVIxKOhWTTxdqP6Ygb9hqSWM.cache +0 -0
  55. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oCsZTGZyV4kH8Y4OeSDUdrwfkJFPzTODZjuBKZB8oGQ.cache +2 -0
  56. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache +3 -0
  57. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vmGe_dVH5Bk-GStqPTTa0erZk50i87Lm6HwOd5BtzRg.cache +1 -0
  58. data/test/dummy/tmp/pids/server.pid +1 -0
  59. data/test/helpers/two_factor_auth/authentication_helper_test.rb +1 -1
  60. data/test/helpers/two_factor_auth/registrations_helper_test.rb +1 -1
  61. data/test/integration/navigation_test.rb +1 -1
  62. data/test/lib/two_factor_auth_test.rb +45 -24
  63. data/test/models/two_factor_auth/authentication_request_test.rb +1 -1
  64. data/test/models/two_factor_auth/authentication_response_test.rb +1 -1
  65. data/test/models/two_factor_auth/authentication_verifier_test.rb +1 -1
  66. data/test/models/two_factor_auth/client_data_test.rb +1 -1
  67. data/test/models/two_factor_auth/registration_request_test.rb +1 -1
  68. data/test/models/two_factor_auth/registration_response_test.rb +1 -1
  69. data/test/models/two_factor_auth/registration_verifier_test.rb +1 -1
  70. data/test/test_helper.rb +4 -0
  71. metadata +126 -52
  72. data/app/helpers/two_factor_auth/application_helper.rb +0 -21
  73. data/lib/two_factor_auth/authentication_hook.rb +0 -18
  74. data/lib/two_factor_auth/registration_hook.rb +0 -17
@@ -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
@@ -0,0 +1 @@
1
+ "%]!�K��X�K�֓�ޖ���';�����4x��
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{ I"environment-version:ETTI"environment-paths;TTI"0processors:type=text/css&file_type=text/css;TTI"9file-digest://app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI")file-digest://app/assets/stylesheets;TT
@@ -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
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI")file-digest://app/assets/javascripts;TT
@@ -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,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"9file-digest://app/assets/stylesheets/application.css;TTI")file-digest://app/assets/stylesheets;TT
@@ -0,0 +1 @@
1
+ "%]!�K��X�K�֓�ޖ���';�����4x��
@@ -0,0 +1 @@
1
+ I"}app/assets/stylesheets/application.css?type=text/css&id=5d9fda2cf6d33252e2aceb4a49db87b70102137373aa01a74d93aa09effa3cc4:ET
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{ I"environment-version:ETTI"environment-paths;TTI"0processors:type=text/css&file_type=text/css;TTI"9file-digest://app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI")file-digest://app/assets/stylesheets;TT
@@ -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
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&id=d8e8c88bb09cbd08dfe32f100cecc0a5be4da3e9c58819b0378a9e51d58ed9ce:ET
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI")file-digest://app/assets/javascripts;TT
@@ -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,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"9file-digest://app/assets/stylesheets/application.css;TTI")file-digest://app/assets/stylesheets;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,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative "../../test_helper"
2
2
 
3
3
  module TwoFactorAuth
4
4
  describe AuthenticationsHelper do
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative "../../test_helper"
2
2
 
3
3
  module TwoFactorAuth
4
4
  describe RegistrationsHelper do
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative '../test_helper'
2
2
 
3
3
  class NavigationTest < ActionDispatch::IntegrationTest
4
4
  fixtures :all
@@ -1,8 +1,15 @@
1
- require 'test_helper'
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.must_equal "https://www.example.net/two_factor_auth/trusted_facets"
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 "is just the facet_domain by default" do
82
- # this value is persisted across tests...
83
- TwoFactorAuth.facets = nil
84
- TwoFactorAuth.facet_domain = "https://www.example.net"
85
- TwoFactorAuth.facets.must_equal ["https://www.example.net"]
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 just the facet_domain if empty list" do
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 ["https://www.example.net"]
113
+ TwoFactorAuth.facets.must_equal []
93
114
  end
94
115
  end
95
116
 
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative "../../test_helper"
2
2
 
3
3
  module TwoFactorAuth
4
4
  describe AuthenticationRequest do
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative "../../test_helper"
2
2
 
3
3
  module TwoFactorAuth
4
4
  describe AuthenticationResponse do
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative "../../test_helper"
2
2
 
3
3
  module TwoFactorAuth
4
4
  describe AuthenticationVerifier do
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative "../../test_helper"
2
2
 
3
3
  module TwoFactorAuth
4
4
  describe ClientData do
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative "../../test_helper"
2
2
 
3
3
  module TwoFactorAuth
4
4
  describe RegistrationRequest do
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative "../../test_helper"
2
2
 
3
3
  module TwoFactorAuth
4
4
  describe RegistrationResponse do
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative "../../test_helper"
2
2
 
3
3
  module TwoFactorAuth
4
4
  describe RegistrationVerifier do
@@ -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.1.1
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: 2014-12-26 00:00:00.000000000 Z
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: '4.2'
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: '4.2'
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.2.2
315
+ rubygems_version: 2.4.8
280
316
  signing_key:
281
317
  specification_version: 4
282
- summary: Support FIDO alliance universal two-factor authentication
318
+ summary: Support FIDO Alliance universal two-factor authentication (U2F)
283
319
  test_files:
284
- - test/lib/two_factor_auth_test.rb
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/controllers/two_factor_auth/registrations_controller_test.rb
296
- - test/helpers/two_factor_auth/authentication_helper_test.rb
297
- - test/helpers/two_factor_auth/registrations_helper_test.rb
298
- - test/dummy/config.ru
299
- - test/dummy/config/secrets.yml
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/wrap_parameters.rb
310
- - test/dummy/config/routes.rb
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/database.yml
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/db/development.sqlite3
321
- - test/dummy/db/test.sqlite3
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/Rakefile
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/bin/rails
337
- - test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
338
- - test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
339
- - test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
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/README.rdoc
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
- has_rdoc:
424
+ - test/helpers/two_factor_auth/authentication_helper_test.rb
425
+ - test/helpers/two_factor_auth/registrations_helper_test.rb