jp.veritrans.tercerog.mdk.util

## クラス MdkMerchantUtility

- java.lang.Object
- - jp.veritrans.tercerog.mdk.util.MdkMerchantUtility

-     public class MdkMerchantUtility
      extends Object

  マーチャント向けセキュリティ関連ユーティリティクラス。
  バージョン:
    2.0 2012/07/12
  作成者:
    Veritrans Inc.

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static String` | `MD_ENCODE_CHARSET` マーチャントデータのエンコードCHARSET
    `static String` | `MD_PAIR_SEPARATOR` マーチャントデータのkeyとvalueの区切り文字.
    `static String` | `MD_SEPARATOR` マーチャントデータのデータ同士の区切り文字.

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `MdkMerchantUtility()`

  - ### メソッドのサマリー

    すべてのメソッド staticメソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `static Map` | `analyzeMerchantData(String md)` マーチャントデータ（MD）の解析をする。
    `static boolean` | `checkMessage(String msgBody, String sContentHmac)` 電文のHMACを計算し、引数のHMACと比較する.
    `static boolean` | `checkMessage(String secretKey, String msgBody, String sContentHmac)` 電文のHMACを計算し、引数のHMACと比較する.マルチマーチャント対応のためのメソッド(2010/06/22, VeriTrans Inc.)。
    `static String` | `createMerchantData(Map data)` マーチャントデータ（MD）を生成する。
    `static String` | `getSecret(String sContentHmac)` Content-HMAC文字列からマーチャントシークレットを取り出す.
    `static String` | `getTripartiteAuthHash()` ３者間通信用にメッセージダイジェストを計算する
    `static String` | `sign(String value, String key)` 引数文字列よりメッセージダイジェストを算出する
    `static boolean` | `verifySign(String value, String key, String originalDigest)` valueで指定された文字列からダイジェスト値を算出し、originalDigest値と比較する

    - ### クラスから継承されたメソッド java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### フィールドの詳細

    - #### MD_ENCODE_CHARSET

          public static final String MD_ENCODE_CHARSET

      マーチャントデータのエンコードCHARSET
      関連項目:
        定数フィールド値

    - #### MD_SEPARATOR

          public static final String MD_SEPARATOR

      マーチャントデータのデータ同士の区切り文字.
      関連項目:
        定数フィールド値

    - #### MD_PAIR_SEPARATOR

          public static final String MD_PAIR_SEPARATOR

      マーチャントデータのkeyとvalueの区切り文字.
      関連項目:
        定数フィールド値

  - ### コンストラクタの詳細

    - #### MdkMerchantUtility

          public MdkMerchantUtility()

  - ### メソッドの詳細

    - #### checkMessage

          public static boolean checkMessage(String msgBody,
                                             String sContentHmac)
                                      throws MdkLocalException

      電文のHMACを計算し、引数のHMACと比較する.
      MAC値の算出には、Configファイルで指定されているマーチャント秘密鍵を使用する
      パラメータ:
        `msgBody` - 受信電文の本文（Message-Body)
        `sContentHmac` - 受信電文に付属していた比較用 HMAC（Content-HMAC）。 ヘッダ情報に載っている文字列をそのまま渡す。 例）h=HmacSHA1;s=M123456789;v=f51ea2b7df5e239dc11d90050849ac03d363221a
      戻り値:
        true 一致 or false 不一致
      例外:
        `MdkLocalException` - 以下の条件において例外が発生する
        ・HMACを算出するためのベースとなる文字列がnullの場合
        ・マーチャントConfigファイルの読込に失敗した場合
        ・セキュリティマネージャが指定されており、プロバイダBouncyCastleProviderの追加が認められていない場合
        ・秘密鍵がMAC初期化に不適当な場合

    - #### checkMessage

          public static boolean checkMessage(String secretKey,
                                             String msgBody,
                                             String sContentHmac)
                                      throws MdkLocalException

      電文のHMACを計算し、引数のHMACと比較する.マルチマーチャント対応のためのメソッド(2010/06/22, VeriTrans Inc.)。
      MAC値の算出には、Configファイルで指定されているマーチャント秘密鍵を使用する
      パラメータ:
        `secretKey` - マーチャント認証鍵
        `msgBody` - 受信電文の本文（Message-Body)
        `sContentHmac` - 受信電文に付属していた比較用 HMAC（Content-HMAC）。 ヘッダ情報に載っている文字列をそのまま渡す。 例）h=HmacSHA1;s=M123456789;v=f51ea2b7df5e239dc11d90050849ac03d363221a
      戻り値:
        true 一致 or false 不一致
      例外:
        `MdkLocalException` - 以下の条件において例外が発生する
        ・HMACを算出するためのベースとなる文字列がnullの場合
        ・マーチャントConfigファイルの読込に失敗した場合
        ・セキュリティマネージャが指定されており、プロバイダBouncyCastleProviderの追加が認められていない場合
        ・秘密鍵がMAC初期化に不適当な場合

    - #### getSecret

          public static String getSecret(String sContentHmac)
                                  throws MdkLocalException

      Content-HMAC文字列からマーチャントシークレットを取り出す.
      パラメータ:
        `sContentHmac` - 受信電文に付属していた比較用 HMAC（Content-HMAC）。 ヘッダ情報に載っている文字列をそのまま渡す。 例）h=HmacSHA1;s=M123456789;v=f51ea2b7df5e239dc11d90050849ac03d363221a
      例外:
        `MdkLocalException`

    - #### sign

          public static String sign(String value,
                                    String key)
                             throws MdkLocalException

      引数文字列よりメッセージダイジェストを算出する
      パラメータ:
        `value` - メッセージダイジェスト算出の対象となる文字列
        `key` - メッセージダイジェスト算出キー
      戻り値:
        ダイジェスト値
      例外:
        `MdkLocalException` - 次の条件でMdkLocalExceptionが発生する
        ・メッセージダイジェストを算出するためのベースとなる文字列がnullの場合
        ・マーチャントConfigファイルの読込に失敗した場合

    - #### verifySign

          public static boolean verifySign(String value,
                                           String key,
                                           String originalDigest)
                                    throws MdkLocalException

      valueで指定された文字列からダイジェスト値を算出し、originalDigest値と比較する
      パラメータ:
        `value` - メッセージダイジェスト算出の基になる文字列
        `key` - メッセージダイジェスト算出キー
        `originalDigest` - 事前に算出済のダイジェスト値
      戻り値:
        true 一致 or false 不一致
      例外:
        `MdkLocalException` - 次の条件でMdkLocalExceptionが発生する
        ・メッセージダイジェストを算出するためのベースとなる文字列がnullの場合
        ・マーチャントConfigファイルの読込に失敗した場合

    - #### getTripartiteAuthHash

          public static String getTripartiteAuthHash()

      ３者間通信用にメッセージダイジェストを計算する
      戻り値:
        マーチャントCCID、現在時刻(currentミリ病)、マーチャント認証鍵を基に算出したハッシュ値 コンフィグ関係、メッセージダイジェスト関係でエラーが発生した場合、nullを返す

    - #### createMerchantData

          public static String createMerchantData(Map data)

      マーチャントデータ（MD）を生成する。
      パラメータ:
        `data` - マーチャントデータを生成するためにマーチャントが設定したデータ
      戻り値:
        マーチャントデータ

    - #### analyzeMerchantData

          public static Map analyzeMerchantData(String md)

      マーチャントデータ（MD）の解析をする。
      パラメータ:
        `md` - マーチャントデータ
      戻り値:
        マーチャントデータの元情報。 ハッシュコードが一致しなかった場合はnullを返す。

Copyright © 2026. All rights reserved.