code.pfad.fr/gohmekit@v0.2.1/pairing/kltv.go (about) 1 //nolint:godot 2 package pairing 3 4 import "code.pfad.fr/gohmekit/tlv8" 5 6 // Table 5-3. 7 const ( 8 kTLVMethod_PairSetup = 0 9 // kTLVMethod_PairSetupWithAuth = 1 // not supported (yet) 10 // kTLVMethod_PairVerify = 2 // not used in the spec... 11 kTLVMethod_AddPairing = 3 12 kTLVMethod_RemovePairing = 4 13 kTLVMethod_ListPairings = 5 14 ) 15 16 // Table 5-5. 17 const ( 18 kTLVError_Unknown = 0x01 19 kTLVError_Authentication = 0x02 20 // kTLVError_Backoff = 0x03 21 // kTLVError_MaxPeers = 0x04 22 // kTLVError_MaxTries = 0x05 23 kTLVError_Unavailable = 0x06 24 // kTLVError_Busy = 0x07 25 ) 26 27 // Table 5-6. 28 const ( 29 // kTLVType_Method = 0x00 30 // kTLVType_Identifier = 0x01 31 // kTLVType_Salt = 0x02 32 // kTLVType_PublicKey = 0x03 33 // kTLVType_Proof = 0x04 34 // kTLVType_EncryptedData = 0x05 35 kTLVType_State = 0x06 36 // kTLVType_Error = 0x07 37 // kTLVType_RetryDelay = 0x08 38 // kTLVType_Certificate = 0x09 39 // kTLVType_Signature = 0x0A 40 // kTLVType_Permissions = 0x0B 41 // kTLVType_FragmentData = 0x0C 42 // kTLVType_FragmentLast = 0x0D 43 // kTLVType_Flags = 0x13 44 // kTLVType_Separator = 0xFF 45 ) 46 47 type ktlvState struct { 48 State byte `tlv8:"kTLVType_State"` 49 } 50 51 func ktlvError(state, err byte) ([]byte, error) { 52 return tlv8.Marshal(struct { 53 ktlvState 54 Error byte `tlv8:"kTLVType_Error"` 55 }{ 56 ktlvState: ktlvState{state}, 57 Error: err, 58 }) 59 }