Secure message生成のサンプルデータとコード
このトピックでは、ビーコン端末に組み込むSecure message生成機能の開発中に利用できる、サンプルのデータとコードについて説明します。Secure message生成のアルゴリズムについては、「Secure messageを生成する」を参照してください。
サンプルデータ
一連の表は、Secure messageの生成に必要なデータのサンプルと、そのデータを正しく計算した結果の値を示しています。ここで提供されているデータと比較して、Secure message生成機能が正しく動作しているかどうかを確認してください。
以下は、Secure messageの計算に使用するパラメータです。
| フィールド | 値 |
|---|---|
| HWID | 01deadbeef |
| Vendor key | 5cf2a423 |
| Lot key | 8c194fe41d7fe34f |
| Battery level | 0x01 |
HWID、Vendor key、およびLot keyは、バイト配列に変換してから計算します。
Timestampが0の場合
Timestampの値が0とは、端末に初めて電源が入ったことを意味します。
| dummy | dummy |
|---|---|
| 入力値 | 000000000000000001deadbeef5cf2a4238c194fe41d7fe34f01 |
| SHA-256ハッシュ値 | 72de7eafe33a44f0094283e03c28ff8bf85230825616fa49b73edaa6be88a0a8 |
| Message authentication code | 037cf6f1 |
| Secure message | 037cf6f1000001 |
Timestampが1の場合
Timestampの値が1とは、最初に電源を入れてから15秒経過したことを意味します。
| dummy | dummy |
|---|---|
| 入力値 | 000000000000000101deadbeef5cf2a4238c194fe41d7fe34f01 |
| SHA-256ハッシュ値 | eba4633c394cf7d913a863f25e930e7b8d9227bd109c2019d9dfbb411366cc4f |
| Message authentication code | c86489c6 |
| Secure message | c86489c6000101 |
Timestampが65535の場合
Timestampの値が65535から65536にインクリメントされると、Secure messageのMasked timestampは0000にリセットされます。「Timestampが65536の場合」セクションも合わせて参照し、Masked timestampがffffから0000になることを確認してください。
| dummy | dummy |
|---|---|
| 入力値 | 000000000000ffff01deadbeef5cf2a4238c194fe41d7fe34f01 |
| SHA-256ハッシュ値 | f435f408d2978130607a8af69da2e6f65b66c260796f03ce2a7daf9b468ae0b5 |
| Message authentication code | 958497b8 |
| Secure message | 958497b8ffff01 |
Timestampが65536の場合
Timestampの値が65536にインクリメントされると、Secure messageのMasked timestampは0000にリセットされます。「Timestampが65535の場合」セクションも合わせて参照し、Masked timestampがffffから0000になることを確認してください。
| dummy | dummy |
|---|---|
| 入力値 | 000000000001000001deadbeef5cf2a4238c194fe41d7fe34f01 |
| SHA-256ハッシュ値 | 70b58ab690b63d519caf37359ce3d910e8e1d79a90f095462ee2d56ae0f035e4 |
| Message authentication code | 564cfb90 |
| Secure message | 564cfb90000001 |
Timestampが9223372036854775807の場合
9223372036854775807は、符号付き64ビット整数型で格納できる最大値です。
| dummy | dummy |
|---|---|
| 入力値 | 7fffffffffffffff01deadbeef5cf2a4238c194fe41d7fe34f01 |
| SHA-256ハッシュ値 | c626232a199b163c53ba70f4d493c8b34891532d9e8fbf2b788e7e1cf3d13dec |
| Message authentication code | 05d522a7 |
| Secure message | 05d522a7ffff01 |
Timestampが18446744073709551615の場合
18446744073709551615は、符号なし64ビット整数型で格納できる最大値です。
| dummy | dummy |
|---|---|
| 入力値 | ffffffffffffffff01deadbeef5cf2a4238c194fe41d7fe34f01 |
| SHA-256ハッシュ値 | 53ab6c6874fc333398ae2186eb45ce5d5a77d10cd2d3fe3d933a12b33cb13090 |
| Message authentication code | 7393bd92 |
| Secure message | 7393bd92ffff01 |
サンプルコード
以下は、Secure messageを生成するJavaのサンプルコードです。
以下は、「サンプルデータ」セクションのデータを使って、上記のSecure message生成コードをテストするサンプルコードです。