mirror of
https://github.com/bitwarden/browser
synced 2025-12-15 15:53:27 +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