warden-webauthn 0.2.0 → 0.2.1

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: 36082b734ccb5b1748cdd966e199ee9b8860ba6c9ec98b8a930b41afbbb5df9f
4
- data.tar.gz: a90dcd55aec7c3165d12e63bcf3cabd0b5cfbe114c1540b25cc2362fbe984c9b
3
+ metadata.gz: c0427adf432832eb3cb0782df157e0f76cc7b673f29bbc89f61bca921eadda03
4
+ data.tar.gz: 6409bbb807abdc11c147e67ddccdd9fdcbd37c3be200ee76fd3e1776d0b5c464
5
5
  SHA512:
6
- metadata.gz: 5117c10ce7a6b1d33be4831d8979db4263c7031751b0696116ac98d3d5c4f8dea9aec2eccd47bfd9defac47bb0c025922da4b671c713f573087a1c913a6f5b03
7
- data.tar.gz: 213ed13560b36c8b08963226ea99b02b0628fb35185389ba2a621919a3c0a05c7db0f2c8475397e140702da129aaf8e810a0b4522c51fdc04c3eac8d0037ad48
6
+ metadata.gz: 5205aef3ae71d897d7b013a7e83ea77c09c8e71676eaf89127ff364aaac57fa888a3b18b8c7184a97cb12a087afbdeaf2bfed626ae8ca80c0d324947f5945888
7
+ data.tar.gz: 1290ec462ed67970bddc391361c4876cd63251041a982723937d74bc47c6c6c6f57c53b2c9e5d475c0139b70f52f7a3155bc00c4bc1865ce19b6d5ac6aa0849d
data/CHANGELOG.md CHANGED
@@ -1,4 +1,7 @@
1
- ## [Unreleased]
1
+ ## [0.2.1]- 2023-06-24
2
+
3
+ - Refactor `relying_party_key` into `Warden::WebAuthn::RackHelpers`
4
+ - https://github.com/ruby-passkeys/warden-webauthn/issues/4
2
5
 
3
6
  ## [0.1.0] - 2023-02-04
4
7
 
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- warden-webauthn (0.1.0)
4
+ warden-webauthn (0.2.1)
5
5
  warden
6
- webauthn (>= 3.0)
6
+ webauthn (>= 3)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -36,7 +36,7 @@ GEM
36
36
  parallel (1.22.1)
37
37
  parser (3.2.1.0)
38
38
  ast (~> 2.4.1)
39
- rack (3.0.4.1)
39
+ rack (3.0.6.1)
40
40
  rack-session (2.0.0)
41
41
  rack (>= 3.0.0)
42
42
  rack-test (2.0.2)
@@ -88,6 +88,7 @@ GEM
88
88
  PLATFORMS
89
89
  arm64-darwin-21
90
90
  arm64-darwin-22
91
+ x86_64-linux
91
92
 
92
93
  DEPENDENCIES
93
94
  debug
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # Warden::WebAuthn
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/warden/webauthn`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ This Warden strategy is a series of helper methods wrapping [webauthn-ruby](https://github.com/cedarcode/webauthn-ruby).
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ It can be used on its own to allow for webauthn registration/authentication, such as passkeys authentication.
6
+
7
+ There is also a lightweight devise extension that uses `Warden::WebAuthn`; if you're using Devise: [devise-passkeys](https://github.com/ruby-passkeys/devise-passkeys)
6
8
 
7
9
  ## Installation
8
10
 
@@ -14,15 +16,26 @@ gem 'warden-webauthn'
14
16
 
15
17
  And then execute:
16
18
 
17
- $ bundle install
19
+ ```sh
20
+ $ bundle install
21
+ ```
18
22
 
19
23
  Or install it yourself as:
20
24
 
21
- $ gem install warden-webauthn
25
+ ```sh
26
+ $ gem install warden-webauthn
27
+ ```
28
+
22
29
 
23
30
  ## Usage
24
31
 
25
- TODO: Write usage instructions here
32
+ `Warden::WebAuthn` is a series of modules that can be included wherever you need to implement WebAuthn calls. The primary modules/classes are:
33
+
34
+ * `Warden::WebAuthn::Strategy`: A subclass of `Warden::Strategies::Base`, the core strategy for WebAuthn authentication in Warden. This is the strategy you'd include in your Warden configuration
35
+ * `Warden::WebAuthn::StrategyHelpers`: Helpers that can be mixed in to any WebAuthn-related code, such as custom strategies or an app's authentication flow
36
+ * `Warden::WebAuthn::RegistrationHelpers`: Helper methods to bootstrap registration challenges for implementors
37
+ * `Warden::WebAuthn::AuthenticationInitiationHelpers`: Helper methods for generating & storing authentication challenges
38
+ * `Warden::WebAuthn::ErrorKeyFinder.webauthn_error_key(exception:)`: Helper method for generating a symbol based on the WebAuthn::Error
26
39
 
27
40
  ## Development
28
41
 
@@ -32,7 +45,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
32
45
 
33
46
  ## Contributing
34
47
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/warden-webauthn. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/warden-webauthn/blob/main/CODE_OF_CONDUCT.md).
48
+ Bug reports and pull requests are welcome on GitHub at https://github.com/delete_registration_challenge/warden-webauthn. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/delete_registration_challenge/warden-webauthn/blob/main/CODE_OF_CONDUCT.md).
36
49
 
37
50
  ## License
38
51
 
@@ -40,4 +53,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
40
53
 
41
54
  ## Code of Conduct
42
55
 
43
- Everyone interacting in the Warden::WebAuthn project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/warden-webauthn/blob/main/CODE_OF_CONDUCT.md).
56
+ Everyone interacting in the Warden::WebAuthn project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/delete_registration_challenge/warden-webauthn/blob/main/CODE_OF_CONDUCT.md).
@@ -16,6 +16,8 @@ module Warden
16
16
  :webauthn_attestation_statement_unsupported_algorithm
17
17
  when ::WebAuthn::UserVerifiedVerificationError
18
18
  :webauthn_user_verified_verification_error
19
+ when ::WebAuthn::OriginVerificationError
20
+ :webauthn_origin_verification_error
19
21
  when ::WebAuthn::ChallengeVerificationError
20
22
  :webauthn_challenge_verification_error
21
23
  when ::WebAuthn::SignCountVerificationError
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Warden
4
+ module WebAuthn
5
+ # Helpers that can be mixed in to any Rack middleware or application, in order
6
+ # to setup the environment for `Warden::WebAuthn`, such as the Relying Party
7
+ module RackHelpers
8
+ def relying_party_key
9
+ "warden.webauthn.relying_party"
10
+ end
11
+
12
+ def set_relying_party_in_request_env
13
+ request.env[relying_party_key] = relying_party
14
+ end
15
+ end
16
+ end
17
+ end
@@ -7,6 +7,7 @@ module Warden
7
7
  # Helpers that can be mixed in to any WebAuthn-related code, such as custom strategies or
8
8
  # an app's authentication flow
9
9
  module StrategyHelpers
10
+ prepend RackHelpers
10
11
  class NoStoredCredentialFound < StandardError; end
11
12
 
12
13
  # rubocop:disable Metrics/MethodLength
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Warden
4
4
  module WebAuthn
5
- VERSION = "0.2.0"
5
+ VERSION = "0.2.1"
6
6
  end
7
7
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "webauthn/version"
4
4
  require_relative "webauthn/error_key_finder"
5
+ require_relative "webauthn/rack_helpers"
5
6
  require_relative "webauthn/strategy_helpers"
6
7
  require_relative "webauthn/strategy"
7
8
  require_relative "webauthn/authentication_initiation_helpers"
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/warden/webauthn/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "warden-webauthn"
7
+ spec.version = Warden::WebAuthn::VERSION
8
+ spec.authors = ["Thomas Cannon"]
9
+ spec.email = ["tcannon00@gmail.com"]
10
+
11
+ spec.summary = "A Warden Strategy for WebAuthn"
12
+ spec.description = "A Warden Strategy for WebAuthn"
13
+ spec.homepage = "https://github.com/ruby-passkeys/warden-webauthn"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 2.6.0"
16
+
17
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
18
+
19
+ spec.metadata["homepage_uri"] = spec.homepage
20
+ spec.metadata["source_code_uri"] = "https://github.com/ruby-passkeys/warden-webauthn"
21
+ spec.metadata["changelog_uri"] = "https://github.com/ruby-passkeys/warden-webauthn/blob/main/CHANGELOG.md"
22
+
23
+ spec.metadata["rubygems_mfa_required"] = "true"
24
+
25
+ # Specify which files should be added to the gem when it is released.
26
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
27
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
28
+ `git ls-files -z`.split("\x0").reject do |f|
29
+ (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
30
+ end
31
+ end
32
+ spec.bindir = "exe"
33
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
34
+ spec.require_paths = ["lib"]
35
+
36
+ # Uncomment to register a new dependency of your gem
37
+ spec.add_dependency "warden"
38
+ spec.add_dependency "webauthn", ">= 3"
39
+
40
+ # For more information and examples about making a new gem, check out our
41
+ # guide at: https://bundler.io/guides/creating_gem.html
42
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: warden-webauthn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Cannon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-19 00:00:00.000000000 Z
11
+ date: 2023-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: warden
@@ -57,15 +57,18 @@ files:
57
57
  - lib/warden/webauthn.rb
58
58
  - lib/warden/webauthn/authentication_initiation_helpers.rb
59
59
  - lib/warden/webauthn/error_key_finder.rb
60
+ - lib/warden/webauthn/rack_helpers.rb
60
61
  - lib/warden/webauthn/registration_helpers.rb
61
62
  - lib/warden/webauthn/strategy.rb
62
63
  - lib/warden/webauthn/strategy_helpers.rb
63
64
  - lib/warden/webauthn/version.rb
64
65
  - sig/warden/webauthn.rbs
66
+ - warden-webauthn.gemspec
65
67
  homepage: https://github.com/ruby-passkeys/warden-webauthn
66
68
  licenses:
67
69
  - MIT
68
70
  metadata:
71
+ allowed_push_host: https://rubygems.org
69
72
  homepage_uri: https://github.com/ruby-passkeys/warden-webauthn
70
73
  source_code_uri: https://github.com/ruby-passkeys/warden-webauthn
71
74
  changelog_uri: https://github.com/ruby-passkeys/warden-webauthn/blob/main/CHANGELOG.md