Skip to content

Commit a9f45e1

Browse files
feature(conformanceTests): use MDS v3
1 parent 618a6da commit a9f45e1

File tree

3 files changed

+25
-35
lines changed

3 files changed

+25
-35
lines changed

spec/conformance/MDSROOT.crt

+19-13
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
-----BEGIN CERTIFICATE-----
2-
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
20+
WD9f
1521
-----END CERTIFICATE-----

spec/conformance/conformance_cache_store.rb

+4-19
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
class ConformanceCacheStore < FidoMetadata::TestCacheStore
88
FILENAME = "metadata.zip"
9+
METADATA_ENDPOINT = URI("https://mds.fidoalliance.org/")
910

1011
def setup_authenticators
1112
puts("#{FILENAME} not found, this will affect Metadata Service Test results.") unless File.exist?(FILENAME)
@@ -18,27 +19,11 @@ def setup_authenticators
1819
end
1920
end
2021

21-
def setup_metadata_store(endpoint)
22+
def setup_metadata_store
2223
puts("Setting up metadata store TOC")
2324

24-
response = Net::HTTP.post(
25-
URI("https://mds.certinfra.fidoalliance.org/getEndpoints"),
26-
{ endpoint: endpoint }.to_json,
27-
FidoMetadata::Client::DEFAULT_HEADERS
28-
)
29-
30-
response.value
31-
possible_endpoints = JSON.parse(response.body)["result"]
32-
33-
client = FidoMetadata::Client.new(nil)
34-
35-
json =
36-
possible_endpoints.each_with_index do |uri, index|
37-
puts("Trying endpoint #{index}: #{uri}")
38-
break client.download_toc(URI(uri), trusted_certs: conformance_certificates)
39-
rescue FidoMetadata::Client::DataIntegrityError, JWT::VerificationError, Net::HTTPFatalError
40-
nil
41-
end
25+
client = FidoMetadata::Client.new
26+
json = client.download_toc(METADATA_ENDPOINT, trusted_certs: conformance_certificates)
4227

4328
if json.is_a?(Hash) && json.keys == ["legalHeader", "no", "nextUpdate", "entries"]
4429
puts("TOC setup done!")

spec/conformance/server.rb

+2-3
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,15 @@ def self.registered_for(username)
4242

4343
mds_finder =
4444
MDSFinder.new.tap do |mds|
45-
mds.token = ""
4645
mds.cache_backend = ConformanceCacheStore.new
4746
mds.cache_backend.setup_authenticators
48-
mds.cache_backend.setup_metadata_store("http://#{host}:#{settings.port}")
47+
mds.cache_backend.setup_metadata_store
4948
end
5049

5150
relying_party = WebAuthn::RelyingParty.new(
5251
origin: "http://#{host}:#{settings.port}",
5352
name: RP_NAME,
54-
algorithms: %w(ES256 ES384 ES512 PS256 PS384 PS512 RS256 RS384 RS512 RS1),
53+
algorithms: %w(ES256 ES384 ES512 PS256 PS384 PS512 RS256 RS384 RS512 RS1 EdDSA),
5554
silent_authentication: true,
5655
attestation_root_certificates_finders: mds_finder
5756
)

0 commit comments

Comments
 (0)