Package io.vertx.ext.auth.webauthn

## Interface MetaDataService

-     public interface MetaDataService

  Factory interface for creating FIDO2 MetaDataService.
  Author:
    Paulo Lopes

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `MetaDataService` | `addStatement​(JsonObject statement)` | Manually feed a Meta Data Statement to the service.
    `default Future<Boolean>` | `fetchTOC()` | Fetches the FIDO2 MDS3 TOC and process the entries to the metadata store.
    `Future<Boolean>` | `fetchTOC​(String url)` | Fetches the FIDO2 TOC for the given URL and process the entries to the metadata store.
    `MetaDataService` | `flush()` | Clears all loaded statements, both from the TOC and manually inserted.
    `JsonObject` | `verify​(Authenticator authenticator)` | Verify the metadata for a given authenticator.

- - ### Method Detail

    - #### fetchTOC

          Future<Boolean> fetchTOC​(String url)

      Fetches the FIDO2 TOC for the given URL and process the entries to the metadata store. Only valid entries will be stored. The operation will return `true` only if all entries have been added. `false` if they have been processed but at least one was invalid.

      The operation will only fail on network problems.

      Parameters:
        `url` - the url to the TOC
      Returns:
        future result of the operation

    - #### fetchTOC

          default Future<Boolean> fetchTOC()

      Fetches the FIDO2 MDS3 TOC and process the entries to the metadata store. Only valid entries will be stored. The operation will return `true` only if all entries have been added. `false` if they have been processed but at least one was invalid.

      The operation will only fail on network problems.

      Returns:
        future result of the operation

    - #### addStatement

          MetaDataService addStatement​(JsonObject statement)

      Manually feed a Meta Data Statement to the service.
      Parameters:
        `statement` - the json statement
      Returns:
        fluent self

    - #### flush

          MetaDataService flush()

      Clears all loaded statements, both from the TOC and manually inserted. The flush operation will not cancel any in-flight TOC download/processing.
      Returns:
        fluent self

    - #### verify

          JsonObject verify​(Authenticator authenticator)

      Verify the metadata for a given authenticator. The MDS will lookup the metadata by the AAGUID. If no AAGUID is known, the result will be `null`.

      When a statement is found, the statement will be used to verify the certificate chain. A failure during this verification will throw a `RuntimeException`.

      Parameters:
        `authenticator` - authenticator to verify
      Returns:
        an MDS statement for this authenticator or `null`.
      Throws:
        `RuntimeException` - if the verification fails.