モジュール java.base
パッケージ java.security

クラスSignatureSpi

  • 直系の既知のサブクラス:
    Signature

    public abstract class SignatureSpi
    extends Object
    Signatureクラスのサービス・プロバイダ・インタフェース (SPI)を定義します。これは、デジタル署名アルゴリズムの機能を提供するために使用されます。 デジタル署名は、認証やデジタル・データの整合性を保証するために使用されます。

    特定の署名アルゴリズムの実装を提供する各暗号サービス・プロバイダは、このクラスのすべての抽象メソッドを実装する必要があります。

    導入されたバージョン:
    1.2
    関連項目:
    Signature
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      protected SecureRandom appRandom
      アプリケーション固有の乱数発生の元です。
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      SignatureSpi()  
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 非推奨のメソッド 
      修飾子と型 メソッド 説明
      Object clone()
      実装が複製可能な場合は複製を返します。
      protected abstract Object engineGetParameter​(String param)
      非推奨。 
      protected AlgorithmParameters engineGetParameters()
      このメソッドはプロバイダによってオーバーライドされ、署名エンジンで使用されたパラメータを返します。署名エンジンがパラメータを使用しない場合はnullを返します。
      protected abstract void engineInitSign​(PrivateKey privateKey)
      署名オブジェクトを、署名操作のために指定された非公開鍵で初期化します。
      protected void engineInitSign​(PrivateKey privateKey, SecureRandom random)
      署名オブジェクトを、署名操作のために指定された非公開鍵と乱数発生の元で初期化します。
      protected abstract void engineInitVerify​(PublicKey publicKey)
      署名オブジェクトを、検証操作のために指定された公開鍵で初期化します。
      protected abstract void engineSetParameter​(String param, Object value)
      非推奨。
      engineSetParameterに置き換えられています。
      protected void engineSetParameter​(AlgorithmParameterSpec params)
      このメソッドはプロバイダによってオーバーライドされ、署名エンジンを指定したパラメータ・セットで初期化します。
      protected abstract byte[] engineSign()
      これまでに更新されたすべてのデータのうちの署名データを返します。
      protected int engineSign​(byte[] outbuf, int offset, int len)
      署名操作を終了し、結果として得られる署名バイトを、指定されたバッファoutbufoffsetから格納します。
      protected abstract void engineUpdate​(byte b)
      署名または検証されるデータを、指定されたバイトで更新します。
      protected abstract void engineUpdate​(byte[] b, int off, int len)
      署名または検証するデータを、指定されたバイトの配列を使って、指定されたオフセットから更新します。
      protected void engineUpdate​(ByteBuffer input)
      署名または検証するデータを、指定されたByteBufferを使用して更新します。
      protected abstract boolean engineVerify​(byte[] sigBytes)
      渡された署名を検証します。
      protected boolean engineVerify​(byte[] sigBytes, int offset, int length)
      指定されたオフセットから開始して、指定されたバイト・データの配列の渡された署名を検証します。
    • フィールドの詳細

      • appRandom

        protected SecureRandom appRandom
        アプリケーション固有の乱数発生の元です。
    • コンストラクタの詳細

      • SignatureSpi

        public SignatureSpi()
    • メソッドの詳細

      • engineInitVerify

        protected abstract void engineInitVerify​(PublicKey publicKey)
                                          throws InvalidKeyException
        署名オブジェクトを、検証操作のために指定された公開鍵で初期化します。
        パラメータ:
        publicKey - 署名が検証されるアイデンティティの公開鍵。
        例外:
        InvalidKeyException - 鍵の符号化が不適切な場合、パラメータが欠落している場合など。
      • engineInitSign

        protected abstract void engineInitSign​(PrivateKey privateKey)
                                        throws InvalidKeyException
        署名オブジェクトを、署名操作のために指定された非公開鍵で初期化します。
        パラメータ:
        privateKey - 署名が生成されるアイデンティティの非公開鍵。
        例外:
        InvalidKeyException - 鍵の符号化が不適切な場合、パラメータが欠落している場合など。
      • engineInitSign

        protected void engineInitSign​(PrivateKey privateKey,
                                      SecureRandom random)
                               throws InvalidKeyException
        署名オブジェクトを、署名操作のために指定された非公開鍵と乱数発生の元で初期化します。

        この具象メソッドは、事前に定義されたこの抽象クラスに追加されたものです。 下位互換性のために、抽象メソッドにはできません。

        パラメータ:
        privateKey - 署名が生成されるアイデンティティの非公開鍵。
        random - 乱数発生の元
        例外:
        InvalidKeyException - 鍵の符号化が不適切な場合、パラメータが欠落している場合など。
      • engineUpdate

        protected abstract void engineUpdate​(byte b)
                                      throws SignatureException
        署名または検証されるデータを、指定されたバイトで更新します。
        パラメータ:
        b - 更新に使うバイト。
        例外:
        SignatureException - エンジンが適切に初期化されていない場合。
      • engineUpdate

        protected abstract void engineUpdate​(byte[] b,
                                             int off,
                                             int len)
                                      throws SignatureException
        署名または検証するデータを、指定されたバイトの配列を使って、指定されたオフセットから更新します。
        パラメータ:
        b - バイトの配列
        off - バイトの配列での開始オフセット
        len - 使用するバイト数(offsetから開始)
        例外:
        SignatureException - エンジンが適切に初期化されていない場合
      • engineUpdate

        protected void engineUpdate​(ByteBuffer input)
        署名または検証するデータを、指定されたByteBufferを使用して更新します。 data.position()から始まるdata.remaining()バイトを処理します。 終了時に、バッファの位置はリミットに等しくなりますが、リミットは変更されません。
        パラメータ:
        input - ByteBuffer
        導入されたバージョン:
        1.5
      • engineSign

        protected abstract byte[] engineSign()
                                      throws SignatureException
        これまでに更新されたすべてのデータのうちの署名データを返します。 署名の形式は基になる署名方式に依存します。
        戻り値:
        署名操作の結果の署名バイト。
        例外:
        SignatureException - エンジンが正しく初期化されていない場合、またはこの署名アルゴリズムが指定された入力データを処理できない場合。
      • engineSign

        protected int engineSign​(byte[] outbuf,
                                 int offset,
                                 int len)
                          throws SignatureException
        署名操作を終了し、結果として得られる署名バイトを、指定されたバッファoutbufoffsetから格納します。 署名の形式は基になる署名方式に依存します。

        署名の実装は、初期状態(engineInitSignメソッドの1つに呼び出された直後の状態)にリセットされます。リセットされた後は、同じ非公開鍵を使ってさらに署名を生成するために再使用できます。 このメソッドは抽象メソッドでなければいけませんが、バイナリ互換を保つために具象メソッドのままにしておきます。 互換性を配慮するプロバイダは、このメソッドをオーバーライドしてください。

        パラメータ:
        outbuf - 最終的な署名を格納するバッファ。
        offset - outbufに署名を格納するときのオフセット。
        len - outbuf内に署名用として割り当てられるバイト数。 このデフォルト実装とSUNプロバイダは、どちらも部分的なダイジェストを返さない。 このパラメータの値が実際の署名の長さよりも短い場合、このメソッドはSignatureExceptionをスローする。 このパラメータは、その値が実際の署名の長さより長いか等しい場合は無視される。
        戻り値:
        outbufに格納されたバイト数
        例外:
        SignatureException - エンジンが正しく初期化されていない場合、この署名アルゴリズムが指定された入力データを処理できない場合、またはlenが実際の署名の長さより小さい場合。
        導入されたバージョン:
        1.2
      • engineVerify

        protected abstract boolean engineVerify​(byte[] sigBytes)
                                         throws SignatureException
        渡された署名を検証します。
        パラメータ:
        sigBytes - 検証対象の署名バイト。
        戻り値:
        署名が検証された場合はtrue、そうでない場合はfalse。
        例外:
        SignatureException - エンジンが正しく初期化されていない場合、指定された署名の符号化方法が不適切である場合、指定された署名の型が不正である場合、この署名アルゴリズムが指定された入力データを処理できない場合など。
      • engineVerify

        protected boolean engineVerify​(byte[] sigBytes,
                                       int offset,
                                       int length)
                                throws SignatureException
        指定されたオフセットから開始して、指定されたバイト・データの配列の渡された署名を検証します。

        注: サブクラスは、デフォルトの実装を上書きする必要があります。

        パラメータ:
        sigBytes - 検証対象の署名バイト。
        offset - バイトの配列での開始オフセット。
        length - 使用するバイト数(offsetから開始)。
        戻り値:
        署名が検証された場合はtrue、そうでない場合はfalse。
        例外:
        SignatureException - エンジンが正しく初期化されていない場合、指定された署名の符号化方法が不適切である場合、指定された署名の型が不正である場合、この署名アルゴリズムが指定された入力データを処理できない場合など。
        導入されたバージョン:
        1.4
      • engineSetParameter

        @Deprecated
        protected abstract void engineSetParameter​(String param,
                                                   Object value)
                                            throws InvalidParameterException
        非推奨。
        engineSetParameterに置き換えられています。
        指定されたアルゴリズム・パラメータを、指定された値に設定します。 このメソッドは、このオブジェクトのさまざまなパラメータの設定を可能にする汎用的なメカニズムを提供します。 パラメータは、たとえば、パラメータ・サイズ、署名生成に対する乱数ビットの発生源(該当する場合)、特定のオプションの計算を実行するかどうかの指示など、アルゴリズムに対して設定可能であればどのようなパラメータでも設定できます。 各パラメータの命名法は、統一されていてアルゴリズムに固有であることが望ましいですが、現時点では規定されていません。
        パラメータ:
        param - パラメータの文字列識別子。
        value - パラメータ値。
        例外:
        InvalidParameterException - paramがこの署名アルゴリズム・エンジンに対して無効である場合、パラメータが設定済みで再設定できない場合、セキュリティ例外が発生した場合など。
      • engineSetParameter

        protected void engineSetParameter​(AlgorithmParameterSpec params)
                                   throws InvalidAlgorithmParameterException

        このメソッドはプロバイダによってオーバーライドされ、署名エンジンを指定したパラメータ・セットで初期化します。

        パラメータ:
        params - パラメータ
        例外:
        UnsupportedOperationException - このメソッドがプロバイダでオーバーライドされていない場合
        InvalidAlgorithmParameterException - このメソッドがプロバイダでオーバーライドされておらず、かつ与えられたパラメータが署名エンジンにとって不適切である場合
      • engineGetParameters

        protected AlgorithmParameters engineGetParameters()

        このメソッドはプロバイダによってオーバーライドされ、署名エンジンで使用されたパラメータを返します。署名エンジンがパラメータを使用しない場合はnullを返します。

        返されたパラメータは、この署名エンジンを初期化するために使用されたパラメータと同じになることがあります。あるいは、この署名エンジンがアルゴリズム・パラメータを要求しても、どのアルゴリズム・パラメータでも初期化されなかった場合には、返されたパラメータには、基になる署名の実装で使用されるデフォルトのパラメータ値とランダムに生成されたパラメータ値の組み合わせが含まれることがあります。

        戻り値:
        この署名エンジンで使用されたパラメータ。この署名エンジンがパラメータを使用しない場合はnull
        例外:
        UnsupportedOperationException - このメソッドがプロバイダでオーバーライドされていない場合
        導入されたバージョン:
        1.4
      • engineGetParameter

        @Deprecated
        protected abstract Object engineGetParameter​(String param)
                                              throws InvalidParameterException
        非推奨。
        指定されたアルゴリズム・パラメータの値を取得します。 このメソッドは、このオブジェクトのさまざまなパラメータの設定を可能にする汎用的なメカニズムを提供します。 パラメータは、たとえば、パラメータ・サイズ、署名生成に対する乱数ビットの発生源(該当する場合)、特定のオプションの計算を実行するかどうかの指示など、アルゴリズムに対して設定可能であればどのようなパラメータでも設定できます。 各パラメータの命名法は、統一されていてアルゴリズムに固有であることが望ましいですが、現時点では規定されていません。
        パラメータ:
        param - パラメータの文字列名。
        戻り値:
        パラメータ値を表現するオブジェクト。存在しない場合はnull。
        例外:
        InvalidParameterException - paramがこのエンジンに対して無効なパラメータである場合、またはこのパラメータを取得しようとしている間に別の例外が発生した場合。