Vous trouverez ci-dessous le format des fichiers porte-clés.
Le FDSK est crypté et le décryptage est expliqué dans l'article ici.
et une fois que le FDSK est crypté, signez l'ensemble du format en suivant la procédure ci-dessous.
Génération de la Signature :
La signature du fichier du porte-clés est générée et vérifiée de la même manière que la génération de hachage/signature pour les données de produits KNX :
- Dans un BinaryWriter .NT (sAttributeStream), écrivez dans cet ordre (en omettant Keyring/@Signature) :
-avant chaque élément
a. char(0x01)
b. Nom de l'élément (sans espace de nom XML)*
c. pour chaque attribut, ordonné par le nom de l'attribut
-Nom de l'attribut avec un octet de longueur*.
-Valeur de l'attribut avec l'octet de longueur d'entête*
d. traiter de manière récursive les éventuels éléments fils
e. char(0x02)
2. Base64( PBKDF2( HMAC-SHA256, KeyringPassword, "1.keyring.ets.knx.org", 65536, 128))*
3. Signature = MSB128( SHA256( sAttributeStream))
Remarque: Les noms d'éléments et d'attributs ainsi que les valeurs d'attributs et le hachage du mot de passe en base64 sont tous écrits avec un octet d'entête. Les valeurs d'attribut vides sont écrites sous la forme d'une valeur de longueur 0x00.