web_authn 0.6.1 → 0.6.3
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 +4 -4
- data/.github/FUNDING.yml +3 -0
- data/.github/workflows/spec.yml +30 -0
- data/README.md +0 -2
- data/VERSION +1 -1
- data/lib/web_authn/attestation_statement/packed.rb +1 -1
- data/lib/web_authn/authenticator_data/flags.rb +9 -3
- data/spec/authenticator_data/flags_spec.rb +10 -0
- data/spec/context/authentication_spec.rb +1 -1
- data/spec/context/registration_spec.rb +1 -1
- metadata +8 -7
- data/.travis.yml +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9e2c2102ac9f08f68d52d497ed0e1c45c8d034a60460e5bb797165a00d19817
|
4
|
+
data.tar.gz: fd640acbc0889be33315d93e0af526ae90388827eff45bb5ff3350551beb2713
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ce4d9b16ce2b4f439d101c62dbf5e5d27113699ddd50041b374ab1267f62c0fa91d82bf9c118bfebc892e0d2c3800961747a31b58e9d4ae41227ca437e21c17
|
7
|
+
data.tar.gz: 1ce6aa45261bc972d73bb5e7f749c61290559c1c6912340dd765147f55fcd4e0fbe1e2e1c0f190af2a84f04b1a11fc1124ebe83263325703d31efe119776178b
|
data/.github/FUNDING.yml
ADDED
@@ -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
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.3
|
@@ -27,7 +27,7 @@ module WebAuthn
|
|
27
27
|
OpenSSL::Digest::SHA256.digest(client_data_json.raw)
|
28
28
|
].join
|
29
29
|
|
30
|
-
if self_issued?
|
30
|
+
if self_issued?
|
31
31
|
public_cose_key = authenticator_data.attested_credential_data.public_cose_key
|
32
32
|
unless alg == public_cose_key.alg
|
33
33
|
raise InvalidAttestation, 'Invalid Packed Self Attestation: alg'
|
@@ -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
|
@@ -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.
|
4
|
+
version: 0.6.3
|
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:
|
11
|
+
date: 2022-09-30 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.
|
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:
|