全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
クラス 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 つの局面があります。
- 次のどちらかの方法による、初期化
- 更新
初期化の種類により、この局面では署名または検証対象のバイトを更新します。
update メソッドを参照してください。
- 署名または検証
すべての更新済みバイトに対する署名又は検証。 sign および verify を参照してください。
-
SIGN
-
このシグネチャオブジェクトが署名用に初期化済みであることを示す可能な state 値
-
state
-
このシグネチャオブジェクトの現在の状態
-
UNINITIALIZED
-
このシグネチャオブジェクトの初期化が終了していないことを示す可能な state 値
-
VERIFY
-
このシグネチャオブジェクトが検証用に初期化済みであることを示す可能なstate 値
-
Signature(String)
- 指定されたアルゴリズムに対するシグネチャオブジェクトを作成する。
-
clone()
- 実装がクローン可能である場合にはクローンを返す。
-
engineGetParameter(String)
- SPI: 指定されたアルゴリズムパラメータの値を取得する。
-
engineInitSign(PrivateKey)
- SPI: 署名操作用の指定された秘密鍵を使用してこのシグネチャオブジェクトを初期化する。
-
engineInitVerify(PublicKey)
- SPI: 検証操作用の指定された公開鍵を使用してこのシグネチャオブジェクトを初期化する。
-
engineSetParameter(String, Object)
- SPI: 指定されたアルゴリズムパラメータに指定された値をセットする。
-
engineSign()
-
SPI: 現在までに更新されたすべてのデータの署名バイトを返す。
-
engineUpdate(byte)
- SPI: 指定されたバイトを使用して署名または検証対象データを更新する。
-
engineUpdate(byte[], int, int)
- SPI: 指定されたオフセットを起点に指定されたバイト配列を使用して、署名または検証対象データを更新する。
-
engineVerify(byte[])
-
SPI: 渡された署名を検証する。
-
getAlgorithm()
-
このシグネチャオブジェクトに対するアルゴリズム名を返す。
-
getInstance(String)
- 指定されたアルゴリズムを実装する Signature オブジェクトを生成する。
-
getInstance(String, String)
-
指定されたプロバイダから供給される指定されたアルゴリズムを、そのプロバイダから使用可能な場合に、それを実装する Signature オブジェクトを生成する。
-
getParameter(String)
- 指定されたアルゴリズムパラメータの値を取得する。
-
initSign(PrivateKey)
- 署名用にこのオブジェクトを初期化する。
-
initVerify(PublicKey)
- 検証用にこのオブジェクトを初期化する。
-
setParameter(String, Object)
- 指定されたアルゴリズムパラメータに指定された値をセットする。
-
sign()
- 更新されたすべてのデータの署名バイトを返す。
-
toString()
- このシグネチャオブジェクトの文字列表現を返し、オブジェクトの状態と使用アルゴリズムの名前を含む情報を提供する。
-
update(byte)
- バイトを使用して署名または検証対象データを更新する。
-
update(byte[])
- 指定されたバイト配列を使用して署名または検証対象データを更新する。
-
update(byte[], int, int)
- 指定されたオフセットを起点に指定されたバイト配列を使用して、署名または検証対象データを更新する。
-
verify(byte[])
- 渡された署名を検証する。
UNINITIALIZED
protected static final int UNINITIALIZED
- このシグネチャオブジェクトの初期化が終了していないことを示す可能な state 値です。
SIGN
protected static final int SIGN
- このシグネチャオブジェクトが署名用に初期化済みであることを示す可能なstate 値です。
VERIFY
protected static final int VERIFY
- このシグネチャオブジェクトが検証用に初期化済みであることを示す可能なstate 値です。
state
protected int state
- このシグネチャオブジェクトの現在の状態です。
Signature
protected Signature(String algorithm)
- 指定されたアルゴリズムに対するSignature オブジェクトを作成します。
- パラメータ:
- algorithm - アルゴリズムの標準名の文字列
アルゴリズムの標準名については、
Java Cryptography Architecture API Specification & Reference の中の付録 A を参照する。
getInstance
public static Signature getInstance(String algorithm) throws NoSuchAlgorithmException
- 指定されたアルゴリズムを実装するSignature オブジェクトを生成します。デフォルトのプロバイダパッケージが指定されたアルゴリズムを実装するサブクラスを含むのであれば、そのサブクラスのインスタンスが返されます。指定されたアルゴリズムがデフォルトのパッケージで使用可能でない場合には、ほかのパッケージが検索されます。
- パラメータ:
- algorithm - 要求されているアルゴリズムの標準名。
アルゴリズムの標準名については、
Java Cryptography Architecture API Specification & Reference の中の付録 A を参照する。
- 返り値:
- 新しいSignatureオブジェクト
- 例外: NoSuchAlgorithmException
- アルゴリズムがその環境で使用できない場合
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
initVerify
public final void initVerify(PublicKey publicKey) throws InvalidKeyException
- 検証用にこのオブジェクトを初期化します。このメソッドが別の引数を使用して再度呼び出されると、この呼び出しは無効になります。
- パラメータ:
- publicKey - 検証が行われる署名の身元の公開鍵
- 例外: InvalidKeyException
- 鍵が無効な場合
initSign
public final void initSign(PrivateKey privateKey) throws InvalidKeyException
-
- 署名用にこのオブジェクトを初期化します。このメソッドが別の引数を使用して再度呼び出されると、この呼び出しは無効になります。
- パラメータ:
- privateKey - その署名が生成される身元の秘密鍵
- 例外: InvalidKeyException
- 鍵が無効な場合
sign
public final byte[] sign() throws SignatureException
- 更新されたすべてのデータの署名バイトを返します。返されるシグネチャは X.509で符号化されています。
このメソッドを呼び出すと、 initSign(PrivateKey)
の呼び出しを介して署名用に以前初期化した状態にこのシグネチャオブジェクトはリセットされます。
すなわち、オブジェクトは、必要に応じて update
と sign
の新規の呼び出しを介して、リセットし、同じ署名者から別の署名を生成するために使用可能にされます。
- 返り値:
- 署名操作の結果に対するシグネチャ バイト
- 例外: SignatureException
- このシグネチャオブジェクトが正しく初期化されていない場合
verify
public final boolean verify(byte signature[]) throws SignatureException
- 渡された署名を検証します。シグネチャバイトは X.509 で符号化されている必要があります。
このメソッドを呼び出すと、オブジェクトを initVerify()
を介して、以前に検証用に初期化された状態にします。
すなわち、オブジェクトはリセットされ、initVerify()
で指定された公開鍵をもつ Identityからの別の署名を検証できるようにします。
- パラメータ:
- signature - 検証対象のシグネチャ バイト
- 返り値:
- シグネチャが検証された場合には true、そうでない場合には falseである。
- 例外: SignatureException
- このシグネチャオブジェクトが正しく初期化されていない、渡されたシグネチャが適切に符号化されていない、あるいはタイプが間違っているなどの場合
update
public final void update(byte b) throws SignatureException
- 署名または検証対象のデータをバイトで更新します。
- パラメータ:
- b - 更新に使用するバイト
- 例外: SignatureException
- このシグネチャ オブジェクトが正しく初期化されていない場合
update
public final void update(byte data[]) throws SignatureException
- 指定されたバイト配列を使用して、署名または検証対象データを更新します。
- パラメータ:
- data - 更新に使用するバイト配列
- 例外: SignatureException
- このシグネチャオブジェクトが正しく初期化されていない場合
update
public final void update(byte data[],
int off,
int len) throws SignatureException
- 指定されたオフセットを起点に指定されたバイト配列を使用して、署名または検証対象データを更新します。
- パラメータ:
- data - バイト配列.
- off - バイト配列の起点に対するオフセット
- len - 起点に対するオフセットとして使用するバイト数
- 例外: SignatureException
- このシグネチャ オブジェクトが正しく初期化されていない場合
getAlgorithm
public final String getAlgorithm()
- このシグネチャオブジェクトに対するアルゴリズム名を返します。.
- 返り値:
- このシグネチャ オブジェクトに対するアルゴリズム名
toString
public String toString()
- このシグネチャオブジェクトの文字列表現を返し、オブジェクトの状態と使用アルゴリズムの名前を含む情報を提供します。
- 返り値:
- このシグネチャオブジェクトの文字列表現
- オーバーライド:
- クラス Object の toString
setParameter
public final void setParameter(String param,
Object value) throws InvalidParameterException
- 指定されたアルゴリズムパラメータを指定された値にセットします。このメソッドは、このオブジェクトのさまざまなパラメータの設定を可能にする汎用的な手段を提供します。パラメータは、たとえば、パラメータサイズ、シグネチャ生成に対するランダムビットのソース (該当する場合 )、特定のオプションの計算を実行するかどうかの指示など、アルゴリズムに対してセット可能であればどんなパラメータでもよいです。各パラメータに対しては一定のアルゴリズム特定の命名法が望ましいですが、この時点では規定しないままとします。
- パラメータ:
- param - パラメータの文字列識別子
- value - パラメータ値
- 例外: InvalidParameterException
-
param
がこのシグネチャアルゴリズムエンジンに対して無効、パラメータがセット済みで再セットできない、セキュリティ例外が発生したなどの場合
getParameter
public final Object getParameter(String param) throws InvalidParameterException
- 指定されたアルゴリズムパラメータの値を取得します。このメソッドは、このオブジェクトのさまざまなパラメータの設定を可能にする汎用的な手段を提供します。パラメータは、たとえば、パラメータサイズ、シグネチャ生成に対するランダムビットのソース (該当する場合 )、特定のオプションの計算を実行するかどうかの指示など、アルゴリズムに対してセット可能であればどんなパラメータでもよいです。各パラメータに対しては一定のアルゴリズム特定の命名法が望ましいですが、この時点では規定しないままとします。
- パラメータ:
- param - パラメータの文字列名
- 返り値:
- パラメータ値を表すオブジェクト、存在しない場合には null である。
- 例外: InvalidParameterException
- if
param
がこのエンジンに対して無効なパラメータであるか、
このパラメータの取得中に別の例外が発生した場合
engineInitVerify
protected abstract void engineInitVerify(PublicKey publicKey) throws InvalidKeyException
- SPI: 検証操作用の指定された公開鍵を使用してこのシグネチャオブジェクトを初期化する。
- パラメータ:
- publicKey - 検証が行われる署名の身元の公開鍵
- 例外: InvalidKeyException
- 鍵の符号化が正しくない、パラメータの数が足りないなどの場合
engineInitSign
protected abstract void engineInitSign(PrivateKey privateKey) throws InvalidKeyException
- SPI: 署名操作用の指定された秘密鍵を使用してこのシグネチャ オブジェクトを初期化する。
- パラメータ:
- privateKey - その署名が生成される身元の秘密鍵
- 例外: InvalidKeyException
- 鍵の符号化が正しくない、パラメータの数が足りないなどの場合
engineUpdate
protected abstract void engineUpdate(byte b) throws SignatureException
- SPI: 指定されたバイトを使用して署名または検証対象のデータを更新する。
- パラメータ:
- b - 更新に使用するバイト
- 例外: SignatureException
- エンジンが正しく初期化されていない場合
engineUpdate
protected abstract void engineUpdate(byte b[],
int off,
int len) throws SignatureException
- SPI: 指定されたオフセットを起点に指定されたバイト配列を使用して、署名または検証対象データを更新する。
- パラメータ:
- data - バイト配列.
- off - バイト配列の起点に対するオフセット
- len - 起点に対するオフセットとして使用するバイト数
- 例外: SignatureException
- エンジンが正しく初期化されていない場合
engineSign
protected abstract byte[] engineSign() throws SignatureException
- SPI: 現在までに更新されたすべてのデータの署名バイトを返す。返されるシグネチャは X.509 で符号化されている。
X.509符号化の詳細については、
X.509 certificates を参照する。
- 返り値:
- 署名操作の結果に対するシグネチャ バイト
- 例外: SignatureException
- エンジンが正しく初期化されていない場合
engineVerify
protected abstract boolean engineVerify(byte sigBytes[]) throws SignatureException
- SPI: 渡された署名を検証する。 シグネチャ バイトは X.509で符号化されていることが要求される。
X.509符号化の詳細については、
X.509 certificates を参照する。
- パラメータ:
- sigBytes - 検証対象のシグネチャ バイト
- 返り値:
- シグネチャが検証されている場合には true、そうでない場合には falseである。
- 例外: SignatureException
- このエンジンが正しく初期化されていない、渡されたシグネチャが適切に符号化されていない、あるいはタイプが間違っているなどの場合
engineSetParameter
protected abstract void engineSetParameter(String param,
Object value) throws InvalidParameterException
- SPI: 指定されたアルゴリズムパラメータに指定された値をセットする。このメソッドは、このオブジェクトのさまざまなパラメータの設定を可能にする汎用的な手段を提供する。パラメータは、たとえば、パラメータサイズ、シグネチャ生成に対するランダム ビットのソース (該当する場合 )、特定のオプションの計算を実行するかどうかの指示など、アルゴリズムに対してセット可能であればどんなパラメータでもよい。各パラメータに対しては一定のアルゴリズム特定の命名法が望ましいが、この時点では規定しないままとする。
- パラメータ:
- param - パラメータの文字列識別子
- value - パラメータ値
- 例外: InvalidParameterException
-
param
がこのシグネチャアルゴリズムエンジンに対して無効、パラメータがセット済みで再セットできない、セキュリティ例外が発生したなどの場合
engineGetParameter
protected abstract Object engineGetParameter(String param) throws InvalidParameterException
- SPI: 指定されたアルゴリズムパラメータの値を取得する。 このメソッドは、このオブジェクトのさまざまなパラメータの設定を可能にする汎用的な手段を提供する。パラメータは、たとえば、パラメータ サイズ、シグネチャ生成に対するランダムビットのソース (該当する場合)、特定のオプションの計算を実行するかどうかの指示など、アルゴリズムに対してセット可能であればどんなパラメータでもよい。各パラメータに対しては一定のアルゴリズム特定の命名法が望ましいが、この時点では規定しないままとする。
- パラメータ:
- param - パラメータの文字列名
- 返り値:
- パラメータ値を表すオブジェクト、存在しない場合には null である。
- 例外: InvalidParameterException
-
param
がこのエンジンに対して無効なパラメータであるか、このパラメータの取得中に別の例外が発生した場合
clone
public Object clone() throws CloneNotSupportedException
- 実装がクローン可能である場合にはクローンを返します。
- 返り値:
- 実装がクローン可能である場合、クローン。
- 例外: CloneNotSupportedException
- このメソッドが
Cloneable
をサポートしていない処理系で呼び出された場合
- オーバーライド:
- クラス Object の clone
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス