UNPKG

@domojs/homekit-controller

Version:

79 lines (78 loc) 2.46 kB
import { Http, IsomorphicBuffer } from "@akala/core"; import State from "../state.js"; export type PairMessage = { method: PairMethod; identifier: string; salt: IsomorphicBuffer; publicKey: IsomorphicBuffer; proof: IsomorphicBuffer; encryptedData: IsomorphicBuffer; state: PairState; error: PairErrorCode; retryDelay: number; certificate: IsomorphicBuffer; signature: IsomorphicBuffer; permissions: number; fragmentData: IsomorphicBuffer; fragmentLast: IsomorphicBuffer; flags: number; }; export declare enum PairMethod { Setup = 0, SetupWithAuth = 1, Verify = 2, AddPairing = 3, RemovePairing = 4, ListPairings = 5 } export declare enum PairState { M1 = 1, M2 = 2, M3 = 3, M4 = 4, M5 = 5, M6 = 6 } export declare enum PairErrorCode { Unknown = 1, Authentication = 2, Backoff = 3, MaxPeers = 4, MaxTries = 5, Unavailable = 6, Busy = 7 } export declare enum PairTypeFlags { Transient = 2, Split = 64 } export default function pair(this: State, accessoryAddress: string, accessoryFqdn: string, http: Http, pinCode: string): Promise<void>; export declare const pairMessage: import("@akala/protocol-parser/dist/parsers/tlv/object.js").default<Partial<PairMessage>>; export type PairSetupM2 = Pick<PairMessage, 'state' | 'publicKey' | 'salt'>; export type PairSetupM3 = Pick<PairMessage, 'state' | 'proof'>; export type PairSetupM4 = Pick<PairMessage, 'state' | 'proof' | 'encryptedData'>; export type PairSetupM5 = Pick<PairMessage, 'state' | 'publicKey' | 'encryptedData'>; export type PairSetupM6 = Pick<PairMessage, 'state' | 'encryptedData'>; export type SubPairSetupM6 = Pick<PairMessage, 'identifier' | 'signature' | 'publicKey'>; export interface PairSetupClientInfo { username: string; publicKey: IsomorphicBuffer; privateKey: IsomorphicBuffer; } interface EncryptedData { ciphertext: IsomorphicBuffer; authTag: IsomorphicBuffer; } export interface PairedAccessory { publicKey: IsomorphicBuffer; identifier: string; } /** * @group Cryptography */ export declare function chacha20_poly1305_encryptAndSeal(key: Buffer, nonce: Buffer, aad: Buffer | null, plaintext: Buffer): EncryptedData; /** * @group Cryptography */ export declare function chacha20_poly1305_decryptAndVerify(key: Buffer, nonce: Buffer, aad: Buffer | null, ciphertext: Buffer, authTag: Buffer): Buffer; export {};