/** * LibHaLo - Programmatically interact with HaLo tags from the web browser, mobile application or the desktop. * Copyright by Arx Research, Inc., a Delaware corporation * License: MIT */ import { HaloCmdCFGNDEFStoreGraffiti, HaloCmdExportKey, HaloCmdGetDataStruct, HaloCmdGetDataStructV2, HaloCmdGetGraffiti, HaloCmdGetKeyInfo, HaloCmdGetPkeys, HaloCmdGetTransportPK, HaloCmdImportKey, HaloCmdImportKeyInit, HaloCmdLoadTransportPK, HaloCmdReplacePassword, HaloCmdReplacePasswordStoreGraffiti, HaloCmdSetPassword, HaloCmdSetURLSubdomain, HaloCmdSign, HaloCmdSignChallenge, HaloCmdSignRandom, HaloCmdStoreGraffiti, HaloCmdUnlockOnline, HaloCmdUnsetPassword, HaloCmdWriteLatch, HaloResCFGNDEFStoreGraffiti, HaloResExportKey, HaloResGetDataStruct, HaloResGetDataStructV2, HaloResGetGraffiti, HaloResGetKeyInfo, HaloResGetPkeys, HaloResGetTransportPK, HaloResImportKey, HaloResImportKeyInit, HaloResLoadTransportPK, HaloResReplacePassword, HaloResReplacePasswordStoreGraffiti, HaloResSetPassword, HaloResSetURLSubdomain, HaloResSign, HaloResSignChallenge, HaloResSignRandom, HaloResStoreGraffiti, HaloResUnlockOnline, HaloResUnsetPassword, HaloResWriteLatch } from "./command_types.js"; import { HaloAPICallOptions, HaloCmdCFGNDEF, HaloCmdGenKey, HaloCmdGenKeyConfirm, HaloCmdGenKeyFinalize, HaloCommandObject, HaloResCFGNDEF, HaloResGenKey, HaloResGenKeyConfirm, HaloResGenKeyFinalize, HaloResponseObject } from "../types.js"; export abstract class BaseHaloAPI { abstract executeCommand(args: HaloCommandObject, options?: HaloAPICallOptions): Promise; getPkeys(args: HaloCmdGetPkeys, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "get_pkeys"}, options); } sign(args: HaloCmdSign, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "sign"}, options); } writeLatch(args: HaloCmdWriteLatch, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "write_latch"}, options); } signRandom(args: HaloCmdSignRandom, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "sign_random"}, options); } signChallenge(args: HaloCmdSignChallenge, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "sign_challenge"}, options); } cfgNDEF(args: HaloCmdCFGNDEF, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "cfg_ndef"}, options); } genKey(args: HaloCmdGenKey, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "gen_key"}, options); } genKeyConfirm(args: HaloCmdGenKeyConfirm, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "gen_key_confirm"}, options); } genKeyFinalize(args: HaloCmdGenKeyFinalize, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "gen_key_finalize"}, options); } setURLSubdomain(args: HaloCmdSetURLSubdomain, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "set_url_subdomain"}, options); } getKeyInfo(args: HaloCmdGetKeyInfo, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "get_key_info"}, options); } setPassword(args: HaloCmdSetPassword, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "set_password"}, options); } unsetPassword(args: HaloCmdUnsetPassword, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "unset_password"}, options); } replacePassword(args: HaloCmdReplacePassword, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "replace_password"}, options); } getTransportPK(args: HaloCmdGetTransportPK, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "get_transport_pk"}, options); } loadTransportPK(args: HaloCmdLoadTransportPK, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "load_transport_pk"}, options); } exportKey(args: HaloCmdExportKey, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "export_key"}, options); } importKeyInit(args: HaloCmdImportKeyInit, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "import_key_init"}, options); } importKey(args: HaloCmdImportKey, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "import_key"}, options); } getDataStruct(args: HaloCmdGetDataStruct, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "get_data_struct"}, options); } getDataStructV2(args: HaloCmdGetDataStructV2, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "get_data_struct_v2"}, options); } getGraffiti(args: HaloCmdGetGraffiti, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "get_graffiti"}, options); } storeGraffiti(args: HaloCmdStoreGraffiti, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "store_graffiti"}, options); } replacePasswordStoreGraffiti(args: HaloCmdReplacePasswordStoreGraffiti, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "replace_password_store_graffiti"}, options); } cfgNDEFStoreGraffiti(args: HaloCmdCFGNDEFStoreGraffiti, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "cfg_ndef_store_graffiti"}, options); } unlockOnline(args: HaloCmdUnlockOnline, options?: HaloAPICallOptions): Promise { return this.executeCommand({...args, name: "unlock_online"}, options); } }