// Copyright 2019-2023 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT declare global { interface Window { __TAURI_INVOKE__: (cmd: string, args?: unknown) => Promise; } } export class Authenticator { async init(): Promise { return await window.__TAURI_INVOKE__("plugin:authenticator|init_auth"); } async register(challenge: string, application: string): Promise { return await window.__TAURI_INVOKE__("plugin:authenticator|register", { timeout: 10000, challenge, application, }); } async verifyRegistration( challenge: string, application: string, registerData: string, clientData: string, ): Promise { return await window.__TAURI_INVOKE__( "plugin:authenticator|verify_registration", { challenge, application, registerData, clientData, }, ); } async sign( challenge: string, application: string, keyHandle: string, ): Promise { return await window.__TAURI_INVOKE__("plugin:authenticator|sign", { timeout: 10000, challenge, application, keyHandle, }); } async verifySignature( challenge: string, application: string, signData: string, clientData: string, keyHandle: string, pubkey: string, ): Promise { return await window.__TAURI_INVOKE__( "plugin:authenticator|verify_signature", { challenge, application, signData, clientData, keyHandle, pubkey, }, ); } }