web_authn 0.6.2 → 0.7.0

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: e669fea75f5608f49b5b3d72a2aa046a76719a5fec82c994f0daeae109e6ee50
4
- data.tar.gz: e64a57b588e52d98d9b933c527baff08a7c6378dcda9621e347751a2521baf59
3
+ metadata.gz: 2236077520d34560a16ab68335cd6d822dfe2d3353c42f0154f4c50baf5ae10a
4
+ data.tar.gz: 4312f7f14eb8602d89184440283206786bd7c37221fce59688c5ff19d29071ad
5
5
  SHA512:
6
- metadata.gz: e0295fb973d12d4bf48759b1a7c64327d4271cc8689b583843057835278b85c128e7b9abfc1ad5e7e3693967647ab1888ef7fcdf963beb03f8fad147a6f9113a
7
- data.tar.gz: dd58271072335f33dac4cb4a95f16ac8b1f5d5a016fdbc77bd332a662400a252b956fd1b4f171aea5a9b0114647d3e1c16b88e2327e3697de4c35129c3a8090c
6
+ metadata.gz: 573dbf915dc1a6f4a8a0716182361d1a51bd6e40a85b4540d9fb67e7984c0ee353e3b8818deb21c809c8cd71eec520a0354a0733fbdf9b15f76585749d8c907d
7
+ data.tar.gz: e322c40e4146a679573772a8538ca83661346f06f386c3871d234b31161fb304c0faf597b3025e4ee83f1d22aeb6bb56e590e76d200a0a0d08fe4d89cd4b376d
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: nov
@@ -0,0 +1,30 @@
1
+ name: Spec
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ spec:
12
+ strategy:
13
+ matrix:
14
+ os: ['ubuntu-20.04']
15
+ ruby-version: ['2.6', '2.7', '3.0', '3.1']
16
+ # ubuntu 22.04 only supports ssl 3 and thus only ruby 3.1
17
+ include:
18
+ - os: 'ubuntu-22.04'
19
+ ruby-version: '3.1'
20
+ runs-on: ${{ matrix.os }}
21
+
22
+ steps:
23
+ - uses: actions/checkout@v3
24
+ - name: Set up Ruby
25
+ uses: ruby/setup-ruby@v1
26
+ with:
27
+ ruby-version: ${{ matrix.ruby-version }}
28
+ bundler-cache: true
29
+ - name: Run Specs
30
+ run: bundle exec rake spec
data/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  W3C Web Authentication API (a.k.a. WebAuthN / FIDO 2.0) RP library in Ruby
4
4
 
5
- [![Build Status](https://secure.travis-ci.org/nov/web_authn.png)](http://travis-ci.org/nov/web_authn)
6
-
7
5
  ## Installation
8
6
 
9
7
  Add this line to your application's Gemfile:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.2
1
+ 0.7.0
@@ -1,15 +1,17 @@
1
1
  module WebAuthn
2
2
  class AuthenticatorData
3
3
  class Flags
4
- _flags_ = [:up, :uv, :at, :ex]
4
+ _flags_ = [:up, :uv, :be, :bs, :at, :ex]
5
5
  attr_accessor *_flags_
6
6
  _flags_.each do |flag|
7
7
  alias_method :"#{flag}?", flag
8
8
  end
9
9
 
10
- def initialize(up:, uv:, at:, ex:)
10
+ def initialize(up:, uv:, be:, bs:, at:, ex:)
11
11
  self.up = up
12
12
  self.uv = uv
13
+ self.be = be
14
+ self.bs = bs
13
15
  self.at = at
14
16
  self.ex = ex
15
17
  end
@@ -17,6 +19,8 @@ module WebAuthn
17
19
  def ==(target)
18
20
  up == target.up &&
19
21
  uv == target.uv &&
22
+ be == target.be &&
23
+ bs == target.bs &&
20
24
  at == target.at &&
21
25
  ex == target.ex
22
26
  end
@@ -27,8 +31,10 @@ module WebAuthn
27
31
  new(
28
32
  up: bit_array[0] == 1,
29
33
  uv: bit_array[2] == 1,
34
+ be: bit_array[4] == 1,
35
+ bs: bit_array[5] == 1,
30
36
  at: bit_array[6] == 1,
31
- ex: bit_array[7] == 1
37
+ ex: bit_array[7] == 1,
32
38
  )
33
39
  end
34
40
  end
@@ -13,11 +13,11 @@ module WebAuthn
13
13
  true
14
14
  end
15
15
 
16
- def verify!(encoded_attestation_object)
16
+ def verify!(encoded_attestation_object, skip_flag_verification: false)
17
17
  self.attestation_object = AttestationObject.decode(
18
18
  encoded_attestation_object
19
19
  )
20
- verify_flags!
20
+ verify_flags! unless skip_flag_verification
21
21
  verify_signature!
22
22
  self
23
23
  end
@@ -6,6 +6,8 @@ RSpec.describe WebAuthn::AuthenticatorData::Flags do
6
6
  let(:bits) { '00000000' }
7
7
  its(:up?) { should == false }
8
8
  its(:uv?) { should == false }
9
+ its(:be?) { should == false }
10
+ its(:bs?) { should == false }
9
11
  its(:at?) { should == false }
10
12
  its(:ex?) { should == false }
11
13
  end
@@ -14,6 +16,8 @@ RSpec.describe WebAuthn::AuthenticatorData::Flags do
14
16
  let(:bits) { '10000000' }
15
17
  its(:up?) { should == true }
16
18
  its(:uv?) { should == false }
19
+ its(:be?) { should == false }
20
+ its(:bs?) { should == false }
17
21
  its(:at?) { should == false }
18
22
  its(:ex?) { should == false }
19
23
  end
@@ -22,6 +26,8 @@ RSpec.describe WebAuthn::AuthenticatorData::Flags do
22
26
  let(:bits) { '00100000' }
23
27
  its(:up?) { should == false }
24
28
  its(:uv?) { should == true }
29
+ its(:be?) { should == false }
30
+ its(:bs?) { should == false }
25
31
  its(:at?) { should == false }
26
32
  its(:ex?) { should == false }
27
33
  end
@@ -30,6 +36,8 @@ RSpec.describe WebAuthn::AuthenticatorData::Flags do
30
36
  let(:bits) { '00000010' }
31
37
  its(:up?) { should == false }
32
38
  its(:uv?) { should == false }
39
+ its(:be?) { should == false }
40
+ its(:bs?) { should == false }
33
41
  its(:at?) { should == true }
34
42
  its(:ex?) { should == false }
35
43
  end
@@ -38,6 +46,8 @@ RSpec.describe WebAuthn::AuthenticatorData::Flags do
38
46
  let(:bits) { '00000001' }
39
47
  its(:up?) { should == false }
40
48
  its(:uv?) { should == false }
49
+ its(:be?) { should == false }
50
+ its(:bs?) { should == false }
41
51
  its(:at?) { should == false }
42
52
  its(:ex?) { should == true }
43
53
  end
@@ -18,7 +18,7 @@ RSpec.describe WebAuthn::Context::Authentication do
18
18
  end
19
19
  let(:flags) do
20
20
  WebAuthn::AuthenticatorData::Flags.new(
21
- up: true, uv: false, at: false, ex: false
21
+ up: true, uv: false, be: false, bs: false, at: false, ex: false
22
22
  )
23
23
  end
24
24
  let(:public_key) do
@@ -17,7 +17,7 @@ RSpec.describe WebAuthn::Context::Registration do
17
17
  end
18
18
  let(:flags) do
19
19
  WebAuthn::AuthenticatorData::Flags.new(
20
- up: true, uv: false, at: true, ex: false
20
+ up: true, uv: false, be: false, bs: false, at: true, ex: false
21
21
  )
22
22
  end
23
23
  let(:public_key_pem) do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web_authn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nov matake
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-07 00:00:00.000000000 Z
11
+ date: 2024-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: openssl
@@ -144,9 +144,10 @@ executables: []
144
144
  extensions: []
145
145
  extra_rdoc_files: []
146
146
  files:
147
+ - ".github/FUNDING.yml"
148
+ - ".github/workflows/spec.yml"
147
149
  - ".gitignore"
148
150
  - ".rspec"
149
- - ".travis.yml"
150
151
  - Gemfile
151
152
  - LICENSE.txt
152
153
  - README.md
@@ -181,7 +182,7 @@ homepage: https://github.com/nov/web_authn
181
182
  licenses:
182
183
  - MIT
183
184
  metadata: {}
184
- post_install_message:
185
+ post_install_message:
185
186
  rdoc_options: []
186
187
  require_paths:
187
188
  - lib
@@ -196,8 +197,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
197
  - !ruby/object:Gem::Version
197
198
  version: '0'
198
199
  requirements: []
199
- rubygems_version: 3.0.3
200
- signing_key:
200
+ rubygems_version: 3.3.3
201
+ signing_key:
201
202
  specification_version: 4
202
203
  summary: WebAuthn RP library
203
204
  test_files:
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- before_install:
2
- - gem install bundler
3
-
4
- rvm:
5
- - 2.5.8
6
- - 2.6.6
7
- - 2.7.2
8
- - 3.0.0