IOWN-HomeControl Keys

u_int8_t system_key[] = {0xCE, 0x0D, 0x4B, 0x2F, 0x5C, 0x68, 0x24, 0x93, 0x2D, 0xFF, 0xED, 0x7E, 0x70, 0x06, 0xD3, 0x38};

u_int8_t transfert_key[] = {0x34, 0xc3, 0x46, 0x6e, 0xd8, 0x8f, 0x4e, 0x8e, 0x16, 0xaa, 0x47, 0x39, 0x49, 0x88, 0x43, 0x73};

Create TransfertKey (in python)

import binascii
def AES_CreateTRANSFERTKEY_With_SYSTEMKEY_08025734(ReturnedEncryptedData, KEY):
    EncryptedData = bytearray(KEY) 

    EncryptedData[0] = ((~EncryptedData[0]) & 0xFF) ^ 0x05
    EncryptedData[1] = ((~EncryptedData[1]) & 0xFF) ^ 0x31
    EncryptedData[2] = EncryptedData[2] ^ 0xD
    EncryptedData[3] = EncryptedData[3] ^ 0x41
    EncryptedData[4] = ((~EncryptedData[4]) & 0xFF) ^ 0x7B
    EncryptedData[5] = ((~EncryptedData[5]) & 0xFF) ^ 0x18
    EncryptedData[6] = EncryptedData[6] ^ 0x6A
    EncryptedData[7] = EncryptedData[7] ^ 0x1D
    EncryptedData[8] = EncryptedData[8] ^ 0x3B
    EncryptedData[9] = EncryptedData[9] ^ 0x55
    EncryptedData[10] = ((~EncryptedData[10]) & 0xFF) ^ 0x55
    EncryptedData[11] = EncryptedData[11] ^ 0x47
    EncryptedData[12] = EncryptedData[12] ^ 0x39
    EncryptedData[13] = ((~EncryptedData[13]) & 0xFF) ^ 0x71
    EncryptedData[14] = ((~EncryptedData[14]) & 0xFF) ^ 0x6F
    EncryptedData[15] = EncryptedData[15] ^ 0x4B

    ReturnedEncryptedData[:] = EncryptedData

AES_KEY = bytes.fromhex("CE0D4B2F5C6824932DFFED7E7006D338") 

ReturnedEncryptedData = bytearray(16)
AES_CreateTRANSFERTKEY_With_SYSTEMKEY_08025734(ReturnedEncryptedData, AES_KEY)
print(binascii.hexlify(ReturnedEncryptedData))

b'34c3466ed88f4e8e16aa473949884373'