mirror of
https://github.com/bitwarden/browser
synced 2025-12-16 08:13:42 +00:00
[EC-598] feat: start creating separate authenticator service
This commit is contained in:
@@ -0,0 +1,44 @@
|
|||||||
|
export abstract class Fido2AuthenticatorService {
|
||||||
|
makeCredential: (params: Fido2AuthenticatorMakeCredentialsParams) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parameters for {@link Fido2AuthenticatorService.makeCredential}
|
||||||
|
*
|
||||||
|
* @note
|
||||||
|
* This interface uses the parameter names defined in `fido-v2.0-ps-20190130`
|
||||||
|
* but the parameter values use the corresponding data structures defined in
|
||||||
|
* `WD-webauthn-3-20210427`. This is to avoid the unnecessary complexity of
|
||||||
|
* converting data to CBOR and back.
|
||||||
|
*/
|
||||||
|
export interface Fido2AuthenticatorMakeCredentialsParams {
|
||||||
|
clientDataHash: BufferSource;
|
||||||
|
rp: {
|
||||||
|
name: string;
|
||||||
|
id?: string;
|
||||||
|
};
|
||||||
|
user: {
|
||||||
|
name: string;
|
||||||
|
displayName: string;
|
||||||
|
id: BufferSource;
|
||||||
|
};
|
||||||
|
pubKeyCredParams: {
|
||||||
|
alg: number;
|
||||||
|
// type: "public-key"; // not used
|
||||||
|
}[];
|
||||||
|
excludeList?: {
|
||||||
|
id: BufferSource;
|
||||||
|
transports?: ("ble" | "internal" | "nfc" | "usb")[];
|
||||||
|
// type: "public-key"; // not used
|
||||||
|
}[];
|
||||||
|
extensions?: {
|
||||||
|
appid?: string;
|
||||||
|
appidExclude?: string;
|
||||||
|
credProps?: boolean;
|
||||||
|
uvm?: boolean;
|
||||||
|
};
|
||||||
|
options?: {
|
||||||
|
rk?: boolean;
|
||||||
|
uv?: boolean;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
describe("FidoAuthenticatorService", () => {
|
||||||
|
describe("authenticatorMakeCredential", () => {
|
||||||
|
test.skip("To be implemented");
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import {
|
||||||
|
Fido2AuthenticatorMakeCredentialsParams,
|
||||||
|
Fido2AuthenticatorService as Fido2AuthenticatorServiceAbstraction,
|
||||||
|
} from "../abstractions/fido2-authenticator.service.abstraction";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bitwarden implementation of the Authenticator API described by the FIDO Alliance
|
||||||
|
* https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html
|
||||||
|
*/
|
||||||
|
export class Fido2AuthenticatorService implements Fido2AuthenticatorServiceAbstraction {
|
||||||
|
makeCredential: (params: Fido2AuthenticatorMakeCredentialsParams) => void;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user