Caso os elementos contidos no arquivo de chave criptografada do projeto ETS sejam utilizados fora do ETS e fora do Falcon SDK, os algoritmos de descriptografia a seguir ('código pseudo'), dependendo do elemento, devem ser aplicados:
Rede IP
- ChavedeRede = AES128-CBC( A1, A2, A3, A4 )
- A3 = Project.BackboneKey
Interfaces de Tunelamento
- Senha = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.BusAccess( IA ).Password, A32 ))
- Autenticação = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.AuthenticationCode, A32 )
Dispositivos IP
- ManagementPassword = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.ManagementPassword, A32 )
- Autenticação = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.AuthenticationCode, A32 )
Dispositivos
- ToolKey = AES128-CBC( A1, A2, A3, A4 )
- A3 = Device.ToolKey
Grupo de endereços
- Chave = AES128-CBC( A1, A2, A3, A4 )
- A3 = GroupAddress.Key
Detalhes
- A1 = PBKDF2( A11, A12, A13, A14, A15 )
- A11 = HMAC-SHA256 // 'PRF'
- A12 = senha da chave criptografada
- A13 = "1.keyring.ets.knx.org" // 'salt'
- A14 = 65536 // número de iterações
- A15 = 128 // comprimento de bits da chave derivada
- A2 = SHA256( A21, A22)
- A21 = keyring 'criação' de atributo (a partir do arquivo)
- A22 = 128 // bits mais significativos
- A3 = dados criptografados
- A31 = 8 // número de bytes aleatórios
- A32 = 24 // número de bytes de preenchimento
- A4 = SHA256