MAC 検査 2 (CSNBMVR2、 CSNBMVR3、 CSNEMVR2、および CSNEMVR3)

MAC 検査 2 呼び出し可能サービスは、入力として指定されるメッセージ・テキストの、 鍵を使用するハッシュ・メッセージ認証コード (HMAC) または暗号化メッセージ認証コード (CMAC) を検証する場合に使用します。 MAC を検証するには、検証に使用できる鍵用途の MAC 鍵が必要です。

MAC 検査鍵は、可変長 HMAC 鍵トークン (HMAC の場合) および AES MAC トークン (CMAC の場合) に含まれていなければなりません。

AMODE(64) の呼び出し可能サービス名は CSNEMVR2 と CSNEMVR3 です。

CSNBMVR2 および CSNBMVR3 からの選択

CSNBMVR2 と CSNBMVR3 には同じ機能が備わっています。 使用するサービスを選択するときは、以下のことを考慮してください。
  • CSNBMVR2 では、アプリケーション指定のテキストは呼び出し側の 1 次アドレス・スペースに入っていなければなりません。
  • CSNBMVR3 では、アプリケーション指定のテキストは呼び出し側の 1 次アドレス・スペースに入れることも、 データ・スペースに入れることもできます。 これにより、1 回の呼び出しで、より多くのデータを処理できるようになります。 CSNBMVR3 の場合、text_id_in は、アプリケーション指定のテキストが含まれる データ・スペースのアクセス・リスト項目トークン (ALET) パラメーターです。

形式

CALL CSNBMVR2(
             return_code,
             reason_code,
             exit_data_length,
             exit_data,
             rule_array_count,
             rule_array,
             key_identifier_length,
             key_identifier,
             text_length,
             text,
             chaining_vector_length,
             chaining_vector,
             mac_length,
             mac)
CALL CSNBMVR3(
             return_code,
             reason_code,
             exit_data_length,
             exit_data,
             rule_array_count,
             rule_array,
             key_identifier_length,
             key_identifier,
             text_length,
             text,
             chaining_vector_length,
             chaining_vector,
             mac_length,
             mac,
             text_id_in)

パラメーター

return_code
方向 タイプ
出力 整数

戻りコードは、呼び出し可能サービスの一般的な結果を示しています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コードに、戻りコードがリストされています。

reason_code
方向 タイプ
出力 整数

理由コードは、アプリケーション・プログラムに返される、呼び出し可能サービスの結果を示しています。 戻りコードにはそれぞれ、特定の処理問題を示すさまざまな理由コードがあります。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コード に、理由コードがリストされています。

exit_data_length
方向 タイプ
入出力 整数

インストール・システム出口に渡されるデータの長さ。 データは exit_data パラメーターで識別されます。

exit_data
方向 タイプ
入出力 ストリング

このデータはインストール出口に渡されます。

rule_array_count
方向 タイプ
入力 整数

rule_array パラメーターで指定するキーワードの数。 値は 1、2、または 3 でなければなりません。

rule_array
方向 タイプ
入力 ストリング

rule_array には、制御情報をこの呼び出し可能サービスに提供するキーワードが含まれます。 キーワードは、連続するストレージ内になければならず、各キーワードはその 8 バイト位置で左寄せされ、右側にブランクが埋め込まれている必要があります。

表 1. MAC 検査 2 制御情報のキーワード
キーワード 意味
トークン・アルゴリズム (いずれかが必須)
AES これは、MAC を生成する AES CMAC アルゴリズムの使用を指定します。
HMAC これは、MAC を生成する HMAC アルゴリズムの使用を指定します。
ハッシュ方式 (HMAC の場合にのみいずれかが必須)
SHA-1 これは、SHA-1 ハッシュ方式の使用を指定します。
SHA-224 これは、SHA-224 ハッシュ方式の使用を指定します。
SHA-256 これは、SHA-256 ハッシュ方式の使用を指定します。
SHA-384 これは、SHA-384 ハッシュ方式の使用を指定します。
SHA-512 これは、SHA-512 ハッシュ方式の使用を指定します。
セグメント化制御 (オプションで 1 つのみ指定可能)
FIRST 最初の呼び出し。 これはアプリケーション・プログラムのデータの最初のセグメントです。
LAST 最後の呼び出し。 これは最後のデータ・セグメントです。
MIDDLE 中間呼び出し。 これは中間データ・セグメントです。
ONLY 呼び出しのみ。 アプリケーション・プログラムでセグメント化は使用されません。 これがデフォルト値です。
key_identifier_length
方向 タイプ
入力 整数

key_identifier_length は、key_identifier パラメーターの 長さ (バイト) を指定します。 key_identifier パラメーターにラベルが含まれている場合、この値は 64 でなければなりません。 それ以外の場合、この値は、トークンの実際の長さと 725 の間でなければなりません。

key_identifier
方向 タイプ
入出力 ストリング

MAC を検査する鍵の ID。 この鍵 ID は、操作可能トークンであるか、または鍵ストレージ内の操作可能トークンの鍵ラベルです。

HMAC アルゴリズムの場合、鍵アルゴリズムは HMAC でなければならず、 鍵用途フィールドが GENERATE または VERIFY を示していて、ハッシュ方式が選択されていなければなりません。 AES アルゴリズムの場合、鍵アルゴリズムは AES でなければならず、 鍵タイプは MAC でなければならず、鍵用途フィールドは GENERATE または VERIFY を示していて、さらに CMAC を示していなければなりません。

指定されたトークンが旧マスター鍵で暗号化されていた場合、このトークンは現行マスター鍵で暗号化されて返されます。

text_length
方向 タイプ
入力 整数
text パラメーターで指定されたテキストの長さ。 text の最大長は 214783647 バイトです。 FIRST 呼び出しおよび MIDDLE 呼び出しに関しては、text_length は以下のようになっていなければなりません。
  • SHA-1、SHA-224、および SHA-256 ハッシュ方式の場合は 64 の倍数。
  • SHA-384 および SHA-512 ハッシュ方式の場合は 128 の倍数。
  • AES CMAC 方式の場合は 16 の倍数。
text
方向 タイプ
入力 ストリング

MAC が生成されるときの対象となるアプリケーション指定のテキスト。

chaining_vector_length
方向 タイプ
入出力 整数

chaining_vector_length は、chaining_vector パラメーターの 長さ (バイト) を指定します。 値は 128 でなければなりません。

chaining_vector
方向 タイプ
入出力 ストリング

ICSF がシステム作業域として使用する 128 バイトのストリング。 ご使用のアプリケーション・プログラムで、このストリングに含まれるデータを変更してはなりません。 チェーニング・ベクトルにより、呼び出し間でデータをチェーニングできます。

最初の呼び出しで、このパラメーターを 2 進ゼロとして初期化します。

mac_length
方向 タイプ
入力 整数

mac パラメーターの長さ (バイト)。 HMAC の場合、最大値は 64 です。 AES の場合、値は 16 でなければなりません。

mac
方向 タイプ
入力 ストリング

検証される MAC 値が含まれるフィールド。

text_id_in
方向 タイプ
入力 整数

CSNBMVR3 に関してのみ、MAC が検証されるときの対象となるテキストの ALET。

使用上の注意

呼び出し側がこの呼び出し可能サービス、鍵ラベル、または CKDS に保管された内部セキュア鍵トークンの使用を許可されているかを検査するために、SAF が呼び出される場合があります。

アクセス制御点

次の表は、ドメイン役割におけるアクセス制御点をリストしたものです。 これらのアクセス制御点では、このサービスの機能が制御されます。

表 2. MAC 検査 2 アクセス制御点
ハッシュ方式 アクセス制御点
CMAC MAC Verify2 - AES CMAC
SHA-1 HMAC の検査 - SHA-1
SHA-224 HMAC の検査 - SHA-224
SHA-256 HMAC の検査 - SHA-256
SHA-384 HMAC の検査 - SHA-384
SHA-512 HMAC の検査 - SHA-512

必須ハードウェア

下表に、各サーバー・タイプに必要な暗号化ハードウェアを示し、この呼び出し可能サービスの制約事項について説明します。

表 3. MAC 検査 2 必須ハードウェア
サーバー 必須暗号化ハードウェア 制約事項

IBM eServer zSeries 990
IBM eServer zSeries 890

  このサービスはサポートされていません。

IBM System z9 EC
IBM System z9 BC

  このサービスはサポートされていません。

IBM System z10 EC
IBM System z10 BC

  このサービスはサポートされていません。

IBM zEnterprise 196
IBM zEnterprise 114

Crypto Express3 コプロセッサー これには、2014 年 3 月以降のライセンス内部コード (LIC) が必要です。

IBM zEnterprise EC12
IBM zEnterprise BC12

Crypto Express3 コプロセッサー

Crypto Express4 CCA コプロセッサー

これには、2014 年 3 月以降のライセンス内部コード (LIC) が必要です。
IBM z13 Crypto Express5 CCA コプロセッサー