| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // <code>chrome.cryptotokenPrivate</code> API that provides hooks to Chrome to |
| // be used by cryptotoken component extension. |
| // <p>In the context of this API, an AppId is roughly an origin and is formally |
| // defined in |
| // <a href="https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-appid-and-facets-v1.2-ps-20170411.html"> |
| // the FIDO spec</a></p> |
| namespace cryptotokenPrivate { |
| |
| callback BooleanCallback = void(boolean result); |
| |
| dictionary CanAppIdGetAttestationOptions { |
| // The AppId (see definition, above) that was used in the registration |
| // request and which has been authenticated by |canOriginAssertAppId|. |
| DOMString appId; |
| // The origin of the caller. |
| DOMString origin; |
| // Identifies the tab in which the registration is occuring so that any |
| // permissions prompt is correctly located. |
| long tabId; |
| }; |
| |
| interface Functions { |
| // Checks whether the origin is allowed to assert the appId, according to |
| // the same origin policy defined at |
| // http://fidoalliance.org/specs/fido-u2f-v1.0-ps-20141009/ |
| // fido-appid-and-facets-ps-20141009.html |
| // |securityOrigin| is the origin as seen by the extension, and |appIdUrl| |
| // is the appId being asserted by the origin. |
| static void canOriginAssertAppId(DOMString securityOrigin, |
| DOMString appIdUrl, |
| BooleanCallback callback); |
| |
| // Checks whether the given appId is specified in the |
| // SecurityKeyPermitAttestation policy. This causes a signal to be sent to |
| // the token that informs it that an individually-identifying attestation |
| // certificate may be used. Without that signal, the token is required to |
| // use its batch attestation certificate. |
| static void isAppIdHashInEnterpriseContext(ArrayBuffer appIdHash, |
| BooleanCallback callback); |
| |
| // Checks whether the given appId may receive attestation data that |
| // identifies the token. If not, the attestation from the token must be |
| // substituted with a randomly generated certificate since webauthn and U2F |
| // require that some attestation be provided. |
| static void canAppIdGetAttestation(CanAppIdGetAttestationOptions options, |
| BooleanCallback callback); |
| }; |
| }; |