以下はキーリング・ファイルのフォーマットです。
FDSKは暗号化されており、復号化についてはこちらの記事で説明しています。
FDSKが暗号化されたら、以下の手順でフォーマット全体に署名します。
署名の生成:
KNX製品データのハッシュ/署名生成と同様に、キーリング・ファイルに対する署名が生成され、検証されます:
- .NT BinaryWriter (sAttributeStream)に、以下の順序で書き込みます (Keyring/@Signatureは省略):
各要素について -
a. char(0x01)
b. 要素名(XML名前空間なし)*
c. 各属性、属性名の順に
-属性名で先頭に長さバイト*
-属性値、先頭にバイト長*
d. 子要素を再帰的に処理
e. char(0x02)
2. Base64( PBKDF2( HMAC-SHA256, KeyringPassword, "1.keyring.ets.knx.org", 65536, 128))*)
3. 署名 = MSB128( SHA256( sAttributeStream))
注:要素名と属性名、属性値とbase64パスワード・ハッシュには、すべて先頭の長さバイトを記載。 空の属性値は長さ値0x00として書かれる。