全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.security.Signature

java.lang.Object
   |
   +----java.security.Signature

public abstract class Signature
extends Object
このシグネチャクラスは、 MD5付き RSA または DSAなどのデジタル署名アルゴリズムの機能を実現するために使用されます。デジタル署名は、認証とデジタル データの完全性の保証のために使用されます。

Java Security のほかのアルゴリズムベースのクラスと同じように、シグネチャクラスには 2つの主な構成要素があります。

デジタル署名 API (アプリケーション プログラム インタフェース)
これは、デジタル署名サービスを必要とするアプリケーションが呼び出すメソッドのインタフェースです。この API はpublic なメソッドからすべて構成されています。
デジタル署名 SPI (サービス プロバイダ インタフェース)
この API は、特定のアルゴリズムを提供するプロバイダが実装するインタフェースです。この API は、先頭にengine というプリフィックスの付いたメソッドによってすべて構成されています。各メソッドは、それに対応する名前のpublic API メソッドによって呼び出されます。たとえば、 engineSign メソッドは、sign メソッドによって呼び出されます。このSPI メソッドは抽象クラスです。すなわち、プロバイダが、実際の実装を行わなければなりません。

また、 Java Security のほかのアルゴリズムベースのクラスと同じように Signature は、実装独立のアルゴリズムを提供します。呼び出し側 (アプリケーション コード) が、そのアルゴリズムを使用して、特定の署名アルゴリズムを要求すると、正しく初期化されたシグネチャオブジェクトが返ります。また、必要に応じて、特定のプロバイダから特定のアルゴリズムを要求することも可能です。getInstance を参照してください。

したがって、署名アルゴリズム オブジェクトを要求するには 2 通りの方法があることになります。アルゴリズム名のみを指定するか、あるいはアルゴリズム名とパッケージ プロバイダの両方を指定するかする方法のどちらかです。

シグネチャオブジェクトは、デジタル署名を生成し、検証するために使用できます。

データの署名時または署名の検証時にシグネチャオブジェクトを使用するには、3 つの局面があります。

  1. 次のどちらかの方法による、初期化

  2. 更新

    初期化の種類により、この局面では署名または検証対象のバイトを更新します。 update メソッドを参照してください。

  3. 署名または検証

    すべての更新済みバイトに対する署名又は検証。 sign および verify を参照してください。


Variable Index

 o SIGN
このシグネチャオブジェクトが署名用に初期化済みであることを示す可能な state
 o state
このシグネチャオブジェクトの現在の状態
 o UNINITIALIZED
このシグネチャオブジェクトの初期化が終了していないことを示す可能な state
 o VERIFY
このシグネチャオブジェクトが検証用に初期化済みであることを示す可能なstate

Constructor Index

 o Signature(String)
指定されたアルゴリズムに対するシグネチャオブジェクトを作成する。

Method Index

 o clone()
実装がクローン可能である場合にはクローンを返す。
 o engineGetParameter(String)
SPI: 指定されたアルゴリズムパラメータの値を取得する。
 o engineInitSign(PrivateKey)
SPI: 署名操作用の指定された秘密鍵を使用してこのシグネチャオブジェクトを初期化する。
 o engineInitVerify(PublicKey)
SPI: 検証操作用の指定された公開鍵を使用してこのシグネチャオブジェクトを初期化する。
 o engineSetParameter(String, Object)
SPI: 指定されたアルゴリズムパラメータに指定された値をセットする。
 o engineSign()
SPI: 現在までに更新されたすべてのデータの署名バイトを返す。
 o engineUpdate(byte)
SPI: 指定されたバイトを使用して署名または検証対象データを更新する。
 o engineUpdate(byte[], int, int)
SPI: 指定されたオフセットを起点に指定されたバイト配列を使用して、署名または検証対象データを更新する。
 o engineVerify(byte[])
SPI: 渡された署名を検証する。
 o getAlgorithm()
このシグネチャオブジェクトに対するアルゴリズム名を返す。
 o getInstance(String)
指定されたアルゴリズムを実装する Signature オブジェクトを生成する。
 o getInstance(String, String)
指定されたプロバイダから供給される指定されたアルゴリズムを、そのプロバイダから使用可能な場合に、それを実装する Signature オブジェクトを生成する。
 o getParameter(String)
指定されたアルゴリズムパラメータの値を取得する。
 o initSign(PrivateKey)
署名用にこのオブジェクトを初期化する。
 o initVerify(PublicKey)
検証用にこのオブジェクトを初期化する。
 o setParameter(String, Object)
指定されたアルゴリズムパラメータに指定された値をセットする。
 o sign()
更新されたすべてのデータの署名バイトを返す。
 o toString()
このシグネチャオブジェクトの文字列表現を返し、オブジェクトの状態と使用アルゴリズムの名前を含む情報を提供する。
 o update(byte)
バイトを使用して署名または検証対象データを更新する。
 o update(byte[])
指定されたバイト配列を使用して署名または検証対象データを更新する。
 o update(byte[], int, int)
指定されたオフセットを起点に指定されたバイト配列を使用して、署名または検証対象データを更新する。
 o verify(byte[])
渡された署名を検証する。

Variables

 o UNINITIALIZED
  protected static final int UNINITIALIZED
このシグネチャオブジェクトの初期化が終了していないことを示す可能な state 値です。

 o SIGN
  protected static final int SIGN
このシグネチャオブジェクトが署名用に初期化済みであることを示す可能なstate 値です。

 o VERIFY
  protected static final int VERIFY
このシグネチャオブジェクトが検証用に初期化済みであることを示す可能なstate 値です。

 o state
  protected int state
このシグネチャオブジェクトの現在の状態です。

Constructors

 o Signature
  protected Signature(String algorithm)
指定されたアルゴリズムに対するSignature オブジェクトを作成します。

パラメータ:
algorithm - アルゴリズムの標準名の文字列 アルゴリズムの標準名については、 Java Cryptography Architecture API Specification & Reference の中の付録 A を参照する。

Methods

 o getInstance
  public static Signature getInstance(String algorithm) throws NoSuchAlgorithmException
指定されたアルゴリズムを実装するSignature オブジェクトを生成します。デフォルトのプロバイダパッケージが指定されたアルゴリズムを実装するサブクラスを含むのであれば、そのサブクラスのインスタンスが返されます。指定されたアルゴリズムがデフォルトのパッケージで使用可能でない場合には、ほかのパッケージが検索されます。

パラメータ:
algorithm - 要求されているアルゴリズムの標準名。 アルゴリズムの標準名については、 Java Cryptography Architecture API Specification & Reference の中の付録 A を参照する。
返り値:
新しいSignatureオブジェクト
例外: NoSuchAlgorithmException
アルゴリズムがその環境で使用できない場合
 o getInstance
  public static Signature getInstance(String algorithm,
                                      String provider) throws NoSuchAlgorithmException, NoSuchProviderException
指定されたプロバイダから指定されたアルゴリズムか使用可能な場合に、プロバイダから供給されたそのアルゴリズムを実装するSignature オブジェクトを生成します。

パラメータ:
algorithm - 要求されているアルゴリズムの名前。 アルゴリズムの標準名については、 Java Cryptography Architecture API Specification & Reference の中の付録 A を参照する。
provider - プロバイダ名
返り値:
新しいSignatureオブジェクト
例外: NoSuchAlgorithmException
アルゴリズムが、要求されているプロバイダが供給するパッケージでは使用できない場合
例外: NoSuchProviderException
アルゴリズムが、その環境で使用できない場合
参照:
Provider
 o initVerify
  public final void initVerify(PublicKey publicKey) throws InvalidKeyException
検証用にこのオブジェクトを初期化します。このメソッドが別の引数を使用して再度呼び出されると、この呼び出しは無効になります。

パラメータ:
publicKey - 検証が行われる署名の身元の公開鍵
例外: InvalidKeyException
鍵が無効な場合
 o initSign
  public final void initSign(PrivateKey privateKey) throws InvalidKeyException
署名用にこのオブジェクトを初期化します。このメソッドが別の引数を使用して再度呼び出されると、この呼び出しは無効になります。

パラメータ:
privateKey - その署名が生成される身元の秘密鍵
例外: InvalidKeyException
鍵が無効な場合
 o sign
  public final byte[] sign() throws SignatureException
更新されたすべてのデータの署名バイトを返します。返されるシグネチャは X.509で符号化されています。

このメソッドを呼び出すと、 initSign(PrivateKey) の呼び出しを介して署名用に以前初期化した状態にこのシグネチャオブジェクトはリセットされます。 すなわち、オブジェクトは、必要に応じて updatesign の新規の呼び出しを介して、リセットし、同じ署名者から別の署名を生成するために使用可能にされます。

返り値:
署名操作の結果に対するシグネチャ バイト
例外: SignatureException
このシグネチャオブジェクトが正しく初期化されていない場合
 o verify
  public final boolean verify(byte signature[]) throws SignatureException
渡された署名を検証します。シグネチャバイトは X.509 で符号化されている必要があります。

このメソッドを呼び出すと、オブジェクトを initVerify() を介して、以前に検証用に初期化された状態にします。 すなわち、オブジェクトはリセットされ、initVerify() で指定された公開鍵をもつ Identityからの別の署名を検証できるようにします。

パラメータ:
signature - 検証対象のシグネチャ バイト
返り値:
シグネチャが検証された場合には true、そうでない場合には falseである。
例外: SignatureException
このシグネチャオブジェクトが正しく初期化されていない、渡されたシグネチャが適切に符号化されていない、あるいはタイプが間違っているなどの場合
 o update
  public final void update(byte b) throws SignatureException
署名または検証対象のデータをバイトで更新します。

パラメータ:
b - 更新に使用するバイト
例外: SignatureException
このシグネチャ オブジェクトが正しく初期化されていない場合
 o update
  public final void update(byte data[]) throws SignatureException
指定されたバイト配列を使用して、署名または検証対象データを更新します。

パラメータ:
data - 更新に使用するバイト配列
例外: SignatureException
このシグネチャオブジェクトが正しく初期化されていない場合
 o update
  public final void update(byte data[],
                           int off,
                           int len) throws SignatureException
指定されたオフセットを起点に指定されたバイト配列を使用して、署名または検証対象データを更新します。

パラメータ:
data - バイト配列.
off - バイト配列の起点に対するオフセット
len - 起点に対するオフセットとして使用するバイト数
例外: SignatureException
このシグネチャ オブジェクトが正しく初期化されていない場合
 o getAlgorithm
  public final String getAlgorithm()
このシグネチャオブジェクトに対するアルゴリズム名を返します。.

返り値:
このシグネチャ オブジェクトに対するアルゴリズム名
 o toString
  public String toString()
このシグネチャオブジェクトの文字列表現を返し、オブジェクトの状態と使用アルゴリズムの名前を含む情報を提供します。

返り値:
このシグネチャオブジェクトの文字列表現
オーバーライド:
クラス ObjecttoString
 o setParameter
  public final void setParameter(String param,
                                 Object value) throws InvalidParameterException
指定されたアルゴリズムパラメータを指定された値にセットします。このメソッドは、このオブジェクトのさまざまなパラメータの設定を可能にする汎用的な手段を提供します。パラメータは、たとえば、パラメータサイズ、シグネチャ生成に対するランダムビットのソース (該当する場合 )、特定のオプションの計算を実行するかどうかの指示など、アルゴリズムに対してセット可能であればどんなパラメータでもよいです。各パラメータに対しては一定のアルゴリズム特定の命名法が望ましいですが、この時点では規定しないままとします。

パラメータ:
param - パラメータの文字列識別子
value - パラメータ値
例外: InvalidParameterException
param がこのシグネチャアルゴリズムエンジンに対して無効、パラメータがセット済みで再セットできない、セキュリティ例外が発生したなどの場合
 o getParameter
  public final Object getParameter(String param) throws InvalidParameterException
指定されたアルゴリズムパラメータの値を取得します。このメソッドは、このオブジェクトのさまざまなパラメータの設定を可能にする汎用的な手段を提供します。パラメータは、たとえば、パラメータサイズ、シグネチャ生成に対するランダムビットのソース (該当する場合 )、特定のオプションの計算を実行するかどうかの指示など、アルゴリズムに対してセット可能であればどんなパラメータでもよいです。各パラメータに対しては一定のアルゴリズム特定の命名法が望ましいですが、この時点では規定しないままとします。

パラメータ:
param - パラメータの文字列名
返り値:
パラメータ値を表すオブジェクト、存在しない場合には null である。
例外: InvalidParameterException
if param がこのエンジンに対して無効なパラメータであるか、 このパラメータの取得中に別の例外が発生した場合
 o engineInitVerify
  protected abstract void engineInitVerify(PublicKey publicKey) throws InvalidKeyException
SPI: 検証操作用の指定された公開鍵を使用してこのシグネチャオブジェクトを初期化する。

パラメータ:
publicKey - 検証が行われる署名の身元の公開鍵
例外: InvalidKeyException
鍵の符号化が正しくない、パラメータの数が足りないなどの場合
 o engineInitSign
  protected abstract void engineInitSign(PrivateKey privateKey) throws InvalidKeyException
SPI: 署名操作用の指定された秘密鍵を使用してこのシグネチャ オブジェクトを初期化する。

パラメータ:
privateKey - その署名が生成される身元の秘密鍵
例外: InvalidKeyException
鍵の符号化が正しくない、パラメータの数が足りないなどの場合
 o engineUpdate
  protected abstract void engineUpdate(byte b) throws SignatureException
SPI: 指定されたバイトを使用して署名または検証対象のデータを更新する。

パラメータ:
b - 更新に使用するバイト
例外: SignatureException
エンジンが正しく初期化されていない場合
 o engineUpdate
  protected abstract void engineUpdate(byte b[],
                                       int off,
                                       int len) throws SignatureException
SPI: 指定されたオフセットを起点に指定されたバイト配列を使用して、署名または検証対象データを更新する。

パラメータ:
data - バイト配列.
off - バイト配列の起点に対するオフセット
len - 起点に対するオフセットとして使用するバイト数
例外: SignatureException
エンジンが正しく初期化されていない場合
 o engineSign
  protected abstract byte[] engineSign() throws SignatureException
SPI: 現在までに更新されたすべてのデータの署名バイトを返す。返されるシグネチャは X.509 で符号化されている。 X.509符号化の詳細については、 X.509 certificates を参照する。

返り値:
署名操作の結果に対するシグネチャ バイト
例外: SignatureException
エンジンが正しく初期化されていない場合
 o engineVerify
  protected abstract boolean engineVerify(byte sigBytes[]) throws SignatureException
SPI: 渡された署名を検証する。 シグネチャ バイトは X.509で符号化されていることが要求される。 X.509符号化の詳細については、 X.509 certificates を参照する。

パラメータ:
sigBytes - 検証対象のシグネチャ バイト
返り値:
シグネチャが検証されている場合には true、そうでない場合には falseである。
例外: SignatureException
このエンジンが正しく初期化されていない、渡されたシグネチャが適切に符号化されていない、あるいはタイプが間違っているなどの場合
 o engineSetParameter
  protected abstract void engineSetParameter(String param,
                                             Object value) throws InvalidParameterException
SPI: 指定されたアルゴリズムパラメータに指定された値をセットする。このメソッドは、このオブジェクトのさまざまなパラメータの設定を可能にする汎用的な手段を提供する。パラメータは、たとえば、パラメータサイズ、シグネチャ生成に対するランダム ビットのソース (該当する場合 )、特定のオプションの計算を実行するかどうかの指示など、アルゴリズムに対してセット可能であればどんなパラメータでもよい。各パラメータに対しては一定のアルゴリズム特定の命名法が望ましいが、この時点では規定しないままとする。

パラメータ:
param - パラメータの文字列識別子
value - パラメータ値
例外: InvalidParameterException
param がこのシグネチャアルゴリズムエンジンに対して無効、パラメータがセット済みで再セットできない、セキュリティ例外が発生したなどの場合
 o engineGetParameter
  protected abstract Object engineGetParameter(String param) throws InvalidParameterException
SPI: 指定されたアルゴリズムパラメータの値を取得する。 このメソッドは、このオブジェクトのさまざまなパラメータの設定を可能にする汎用的な手段を提供する。パラメータは、たとえば、パラメータ サイズ、シグネチャ生成に対するランダムビットのソース (該当する場合)、特定のオプションの計算を実行するかどうかの指示など、アルゴリズムに対してセット可能であればどんなパラメータでもよい。各パラメータに対しては一定のアルゴリズム特定の命名法が望ましいが、この時点では規定しないままとする。

パラメータ:
param - パラメータの文字列名
返り値:
パラメータ値を表すオブジェクト、存在しない場合には null である。
例外: InvalidParameterException
param がこのエンジンに対して無効なパラメータであるか、このパラメータの取得中に別の例外が発生した場合
 o clone
  public Object clone() throws CloneNotSupportedException
実装がクローン可能である場合にはクローンを返します。

返り値:
実装がクローン可能である場合、クローン。
例外: CloneNotSupportedException
このメソッドが Cloneable をサポートしていない処理系で呼び出された場合
オーバーライド:
クラス Objectclone

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス