import { ASCIIString, HaloCmdCFGNDEF, HexString, KeyFlags, KeySlotNo, KeyState, PublicKeyList } from "../types.js"; import { TypedDataDomain, TypedDataField } from "ethers"; export type HaloCmdGetPkeys = Record; export interface HaloResGetPkeys { publicKeys: PublicKeyList; compressedPublicKeys: PublicKeyList; etherAddresses: PublicKeyList; } export interface BaseHaloCmdSign { keyNo: KeySlotNo; format?: "text" | "hex"; password?: ASCIIString; rawPwdDigest?: ASCIIString; legacySignCommand?: boolean; skipPostprocessing?: boolean; } export interface HaloCmdSignVariant1 extends BaseHaloCmdSign { digest: HexString; message?: undefined; typedData?: undefined; } export interface HaloCmdSignVariant2 extends BaseHaloCmdSign { digest?: undefined; message: HexString; typedData?: undefined; } export interface HaloCmdSignVariant3 extends BaseHaloCmdSign { digest?: undefined; message?: undefined; typedData: { domain: TypedDataDomain; types: Record>; value: Record; }; } export type HaloCmdSign = HaloCmdSignVariant1 | HaloCmdSignVariant2 | HaloCmdSignVariant3; export interface HaloResInputObj { keyNo: KeySlotNo; digest: HexString; message?: HexString; typedData?: { domain: TypedDataDomain; types: Record>; value: Record; primaryType: string; domainHash: string; }; } export interface HaloResSign { input: HaloResInputObj; signature: { der: HexString; raw?: { r: string; s: string; v: number; }; ether?: string; }; publicKey?: string; etherAddress?: string; } export interface HaloCmdGetDataStruct { spec: string; } export interface HaloResGetDataStruct { _deprecationMessage: string; isPartial: boolean; data: Record; } export type DataStructObjectType = "publicKey" | "publicKeyAttest" | "keySlotFlags" | "keySlotFailedAuthCtr" | "compressedPublicKey" | "keySlotAuthFailState" | "keySlotAuthUnlockChallenge" | "latchValue" | "latchAttest" | "graffiti" | "firmwareVersion"; export type DataStructErrorType = "resultBufferOverflow" | "keySlotOutOfBounds" | "keySlotNotGenerated" | "latchNotSet" | "latchAttestNotSet" | "authFailStateInvalid" | `unknown_${string}`; export interface HaloCmdGetDataStructV2 { spec: { type: DataStructObjectType; index: number; }[]; } type ObjectIndex = number; type Satisfies = U; type DataStructObjectValue = { value: T; } | { error: DataStructErrorType; }; type DataStructObjectValues = Record>; export type KeySlotAuthFailLevel = 'unrestricted' | 'softlocked' | 'softlocked-hw' | 'lockout'; export interface KeySlotAuthFailState { authPermitted: boolean; failLevel: KeySlotAuthFailLevel; } export type HaloResGetDataStructV2 = Satisfies>, { publicKey: DataStructObjectValues; publicKeyAttest: DataStructObjectValues; keySlotFlags: DataStructObjectValues; keySlotFailedAuthCtr: DataStructObjectValues; compressedPublicKey: DataStructObjectValues; keySlotAuthFailState: DataStructObjectValues; keySlotAuthUnlockChallenge: DataStructObjectValues; latchValue: DataStructObjectValues; latchAttest: DataStructObjectValues; graffiti: DataStructObjectValues; firmwareVersion: DataStructObjectValues; }>; export interface StructErrorResponse { error: string; } export interface HaloCmdGetGraffiti { slotNo: number; } export interface HaloResGetGraffiti { data: ASCIIString; } export interface HaloCmdStoreGraffiti { slotNo: number; data: ASCIIString; } export interface HaloResStoreGraffiti { status: "ok"; } export interface HaloCmdWriteLatch { data: HexString; latchNo: number; } export interface HaloResWriteLatch { status: "ok"; } export interface HaloCmdSignRandom { keyNo: KeySlotNo; } export interface HaloResSignRandom { counter: number; payload: HexString; signature: HexString; publicKey: HexString; } export interface HaloCmdSignChallenge { keyNo: KeySlotNo; challenge: HexString; } export interface HaloResSignChallenge { signature: HexString; publicKey: HexString; attestSig: HexString; } export interface HaloCmdImportKeyInit { keyNo: KeySlotNo; data: HexString; } export interface HaloResImportKeyInit { status: "ok"; } export interface HaloCmdImportKey { keyNo: KeySlotNo; } export interface HaloResImportKey { publicKey: HexString; } export interface HaloCmdExportKey { keyNo: KeySlotNo; password: ASCIIString; data: HexString; } export interface HaloResExportKey { data: HexString; } export type HaloCmdGetTransportPK = Record; export interface HaloResGetTransportPK { data: HexString; rootPublicKey: HexString; } export interface HaloCmdLoadTransportPK { data: HexString; } export interface HaloResLoadTransportPK { data: HexString; rootPublicKey: HexString; } export interface HaloCmdSetPassword { password: ASCIIString; keyNo: KeySlotNo; } export interface HaloResSetPassword { status: "ok"; } export interface HaloCmdUnsetPassword { password: ASCIIString; keyNo: KeySlotNo; } export interface HaloResUnsetPassword { status: "ok"; } export interface HaloCmdReplacePassword { currentPassword: ASCIIString; newPassword: ASCIIString; keyNo: KeySlotNo; } export interface HaloResReplacePassword { status: "ok"; } export interface HaloCmdGetKeyInfo { keyNo: KeySlotNo; } export interface HaloResGetKeyInfo { keyState: KeyState; publicKey: HexString; attestSig: HexString; } export interface HaloCmdSetURLSubdomain { subdomain: ASCIIString; allowSignatureDER: HexString; } export interface HaloResSetURLSubdomain { status: "ok"; } export type HaloCmdReplacePasswordStoreGraffiti = HaloCmdReplacePassword & HaloCmdStoreGraffiti; export type HaloCmdCFGNDEFStoreGraffiti = HaloCmdCFGNDEF & HaloCmdStoreGraffiti; export interface HaloResReplacePasswordStoreGraffiti { status: "ok"; } export interface HaloResCFGNDEFStoreGraffiti { status: "ok"; } export interface HaloCmdUnlockOnline { keyNo: KeySlotNo; unlockSig: ASCIIString; } export interface HaloResUnlockOnline { status: "ok"; } export {}; //# sourceMappingURL=command_types.d.ts.map