メインコンテンツまでスキップ

7.1. CWT の作成

7.1. CWT の作成

CWT を作成するには、次の手順を実行します。各手順の入力と出力に依存関係がない場合、手順の順序は重要ではありません。

  1. 必要なクレームを含む CWT Claims Set を作成します。

  2. Message を CWT Claims Set のバイナリ表現とします。

  3. 必要な Header Parameters の集合を含む COSE Header を作成します。COSE Header は [RFC8152] の仕様に従って有効でなければなりません。

  4. CWT が署名、MAC、または暗号化されるかに応じて、次の 3 つの場合があります。

    • CWT が署名される場合、Message を COSE_Sign/COSE_Sign1 Payload として使用する COSE_Sign/COSE_Sign1 オブジェクトを作成します。COSE_Sign/COSE_Sign1 オブジェクトの作成について [RFC8152] で規定されるすべての手順に従わなければなりません。

    • それ以外で CWT が MAC される場合、Message を COSE_Mac/COSE_Mac0 Payload として使用する COSE_Mac/COSE_Mac0 オブジェクトを作成します。COSE_Mac/COSE_Mac0 オブジェクトの作成について [RFC8152] で規定されるすべての手順に従わなければなりません。

    • それ以外で CWT が COSE_Encrypt/COSE_Encrypt0 オブジェクトの場合、Message を COSE_Encrypt/COSE_Encrypt0 オブジェクトの平文として使用する COSE_Encrypt/COSE_Encrypt0 を作成します。COSE_Encrypt/COSE_Encrypt0 オブジェクトの作成について [RFC8152] で規定されるすべての手順に従わなければなりません。

  5. ネストした署名、MAC、または暗号化操作を行う場合、Message をタグ付きの COSE_Sign/COSE_Sign1、COSE_Mac/COSE_Mac0、または COSE_Encrypt/COSE_Encrypt0 として、手順 3 に戻ります。

  6. アプリケーションで必要な場合、COSE オブジェクトの種類を示す適切な COSE CBOR タグを COSE オブジェクトの先頭に付加します。アプリケーションで必要な場合、COSE オブジェクトが CWT であることを示す CWT CBOR タグを COSE オブジェクトの先頭に付加します。