|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object
|
+--java.security.SignatureSpi
|
+--java.security.Signature
Signature クラスは、アプリケーションに対してデジタル署名アルゴリズムの機能を提供するために使用されます。デジタル署名は、認証やデジタルデータの完全性を保証するために使用されます。
多くの署名アルゴリズムの中で、DSA および SHA-1 を使用した、NIST 標準の DSA を使用できます。SHA-1 メッセージダイジェストアルゴリズムを使用する DSA アルゴリズムは、SHA1withDSA のように指定できます。RSA の場合は、メッセージダイジェストアルゴリズムに複数の選択肢があります。したがって、署名アルゴリズムは、MD2withRSA、MD5withRSA、または SHA1withRSA のように指定します。デフォルトはないので、必ずアルゴリズムの名前を指定しなければなりません。
また、Java セキュリティのほかのアルゴリズムに基づいたクラスと同じように、Signature は実装に依存しないアルゴリズムを提供します。呼び出し側 (アプリケーションコード) が、そのアルゴリズムを使用して特定の署名アルゴリズムを要求すると、正しく初期化された Signature オブジェクトが返されます。また、必要に応じて、特定のプロバイダから特定のアルゴリズムを要求することも可能です。getInstance を参照してください。
したがって、Signature アルゴリズムオブジェクトを要求するには 2 通りの方法があることになります。アルゴリズム名だけを指定する方法、あるいはアルゴリズム名とパッケージプロバイダの両方を指定する方法です。
Signature オブジェクトは、デジタル署名を生成し、検証するために使用できます。
データの署名時または署名の検証時に Signature オブジェクトを使用する場合、3 つの段階があります。
initVerify を参照)
initSign(PrivateKey) および initSign(PrivateKey, SecureRandom) を参照)
初期化の種類によっては、この段階では署名または検証の対象となるバイトを更新する。(update メソッドを参照)
sign メソッドおよび verify メソッドを参照)
このクラスは、歴史的な事情から SignatureSpi クラスから拡張された abstract クラスになっていることに注意してください。アプリケーションの開発者は、この Signature クラスでのメソッド定義だけに配慮してください。スーパークラスのすべてのメソッドは、デジタル署名アルゴリズムの独自の実装を提供する必要がある暗号サービスプロバイダで使用されることを想定しています。
| フィールドの概要 | |
protected static int |
SIGN
この署名オブジェクトが署名用に初期化済みであることを示す戻り値 state です。 |
protected int |
state
この署名オブジェクトの現在の状態です。 |
protected static int |
UNINITIALIZED
この署名オブジェクトの初期化が終了していないことを示す戻り値 state です。 |
protected static int |
VERIFY
この署名オブジェクトが検証用に初期化済みであることを示す戻り値 state です。 |
| クラス java.security.SignatureSpi から継承したフィールド |
appRandom |
| コンストラクタの概要 | |
protected |
Signature(String algorithm)
指定されたアルゴリズムに対する Signature オブジェクトを作成します。 |
| メソッドの概要 | |
Object |
clone()
実装が複製可能な場合は複製を返します。 |
String |
getAlgorithm()
この署名オブジェクトに対するアルゴリズム名を返します。 |
static Signature |
getInstance(String algorithm)
指定されたダイジェストアルゴリズムを実装する Signature オブジェクトを作成します。 |
static Signature |
getInstance(String algorithm,
Provider provider)
指定されたプロバイダから提供される、指定したアルゴリズムを実装する Signature オブジェクトを作成します。 |
static Signature |
getInstance(String algorithm,
String provider)
指定されたプロバイダから指定されたアルゴリズムが使用可能な場合に、プロバイダから提供されたそのアルゴリズムを実装する Signature オブジェクトを作成します。 |
Object |
getParameter(String param)
推奨されていません。 |
AlgorithmParameters |
getParameters()
この署名オブジェクトを使用するパラメータを返します。 |
Provider |
getProvider()
この署名オブジェクトのプロバイダを返します。 |
void |
initSign(PrivateKey privateKey)
署名用にこのオブジェクトを初期化します。 |
void |
initSign(PrivateKey privateKey,
SecureRandom random)
署名用にこのオブジェクトを初期化します。 |
void |
initVerify(Certificate certificate)
署名オブジェクトを、検証操作のために指定された公開鍵で初期化します。 |
void |
initVerify(PublicKey publicKey)
検証用にこのオブジェクトを初期化します。 |
void |
setParameter(AlgorithmParameterSpec params)
署名エンジンを、指定されたパラメータセットを使って初期化します。 |
void |
setParameter(String param,
Object value)
推奨されていません。 setParameter を使用してください。 |
byte[] |
sign()
更新されたすべてのデータの署名バイトを返します。 |
int |
sign(byte[] outbuf,
int offset,
int len)
署名操作を終了し、最終的な署名バイトを、指定されたバッファ outbuf に格納します (開始位置は offset)。 |
String |
toString()
この署名オブジェクトの文字列表現を返し、オブジェクトの状態と使用されるアルゴリズムの名前を含む情報を提供します。 |
void |
update(byte b)
指定されたバイトを使用して、署名または検証の対象データを更新します。 |
void |
update(byte[] data)
指定されたバイト配列を使用して、署名または検証の対象データを更新します。 |
void |
update(byte[] data,
int off,
int len)
署名または検証するデータを、指定されたバイトの配列を使って、指定されたオフセットから更新します。 |
boolean |
verify(byte[] signature)
渡された署名を検証します。 |
boolean |
verify(byte[] signature,
int offset,
int length)
指定されたオフセットから開始して、指定されたバイトデータの配列の渡された署名を検証します。 |
| クラス java.security.SignatureSpi から継承したメソッド |
engineGetParameter, engineGetParameters, engineInitSign, engineInitSign, engineInitVerify, engineSetParameter, engineSetParameter, engineSign, engineSign, engineUpdate, engineUpdate, engineVerify, engineVerify |
| クラス java.lang.Object から継承したメソッド |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| フィールドの詳細 |
protected static final int UNINITIALIZED
state です。
protected static final int SIGN
state です。
protected static final int VERIFY
state です。
protected int state
| コンストラクタの詳細 |
protected Signature(String algorithm)
algorithm - アルゴリズムの標準名の文字列。アルゴリズムの標準名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照| メソッドの詳細 |
public static Signature getInstance(String algorithm)
throws NoSuchAlgorithmException
algorithm - 要求されたアルゴリズムの標準的な名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照
NoSuchAlgorithmException - アルゴリズムがその環境で使用できない場合
public static Signature getInstance(String algorithm,
String provider)
throws NoSuchAlgorithmException,
NoSuchProviderException
algorithm - 要求されたアルゴリズムの標準的な名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照provider - プロバイダ名
NoSuchAlgorithmException - 要求されたプロバイダが提供するパッケージではアルゴリズムを使用できない場合
NoSuchProviderException - プロバイダがその環境で使用できない場合
IllegalArgumentException - プロバイダの名前が null か空の場合Provider
public static Signature getInstance(String algorithm,
Provider provider)
throws NoSuchAlgorithmException
provider を登録する必要はありません。
algorithm - 要求されたアルゴリズムの標準的な名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照provider - プロバイダ
NoSuchAlgorithmException - 要求されたプロバイダが提供するパッケージではアルゴリズムを使用できない場合
IllegalArgumentException - provider が null の場合Providerpublic final Provider getProvider()
public final void initVerify(PublicKey publicKey)
throws InvalidKeyException
publicKey - 署名が検証されるアイデンティティの公開鍵
InvalidKeyException - 鍵が無効な場合
public final void initVerify(Certificate certificate)
throws InvalidKeyException
証明書の種類が X.509 で、重要とマークされた key usage 拡張領域があり、key usage 拡張領域の値によって証明書の非公開鍵とそれに対応する非公開鍵がデジタル署名に使用されないものである場合は、InvalidKeyException はスローされます。
certificate - 署名が検証されるアイデンティティの証明書
InvalidKeyException - 証明書の公開鍵が正しく符号化されていない場合、必要なパラメータ情報がない場合、またはデジタル署名用に使用できない場合
public final void initSign(PrivateKey privateKey)
throws InvalidKeyException
privateKey - 署名を生成するアイデンティティの非公開鍵
InvalidKeyException - 鍵が無効な場合
public final void initSign(PrivateKey privateKey,
SecureRandom random)
throws InvalidKeyException
privateKey - 署名を生成するアイデンティティの非公開鍵random - このジェネレータの乱数の発生源
InvalidKeyException - 鍵が無効な場合
public final byte[] sign()
throws SignatureException
このメソッドを呼び出すと、この署名オブジェクトは、initSign(PrivateKey) の呼び出しを介して署名用に以前初期化された状態にリセットされます。つまり、オブジェクトは、必要に応じて update と sign の新規の呼び出しを介して、リセットされ、同じ署名者から別の署名を生成するために使用可能になります。
SignatureException - この署名オブジェクトが正しく初期化されていない場合
public final int sign(byte[] outbuf,
int offset,
int len)
throws SignatureException
outbuf に格納します (開始位置は offset)。署名の形式は基になる署名方式によって異なります。
この署名オブジェクトは、初期状態 (initSign メソッドの 1 つに呼び出された直後の状態) にリセットされます。リセットされたあとは、同じ非公開鍵を使ってさらに署名を生成するために再使用できます。
outbuf - 最終的な署名を格納するバッファoffset - outbuf に署名を格納するときのオフセットlen - outbuf 内に署名用として割り当てられるバイト数
outbuf に格納されたバイト数
SignatureException - エラーが発生した場合、または len が実際の署名の長さより短い場合
public final boolean verify(byte[] signature)
throws SignatureException
このメソッドを呼び出すと、オブジェクトを initVerify を介して、以前に検証用に初期化された状態にします。つまり、オブジェクトはリセットされ、initVerify で指定された公開鍵を持つアイデンティティからの別の署名を検証できるようなります。
signature - 検証対象の署名バイト
SignatureException - この署名オブジェクトが正しく初期化されていない場合、渡された署名が適切に符号化されていない場合、あるいは型が間違っているなどの場合
public final boolean verify(byte[] signature,
int offset,
int length)
throws SignatureException
このメソッドを呼び出すと、オブジェクトを initVerify を介して、以前に検証用に初期化された状態にします。つまり、オブジェクトはリセットされ、initVerify で指定された公開鍵を持つアイデンティティからの別の署名を検証できるようなります。
signature - 検証対象の署名バイトoffset - バイトの配列での開始オフセットlength - オフセットから開始して使われるバイト数
SignatureException - この署名オブジェクトが正しく初期化されていない場合、渡された署名が適切に符号化されていない場合、あるいは型が間違っているなどの場合
IllegalArgumentException - signature バイト配列が null の場合、offset か length が 0 以下の場合、あるいは offset と length との合計が signature バイト配列の長さの値よりも大きい場合
public final void update(byte b)
throws SignatureException
b - 更新に使うバイト
SignatureException - この署名オブジェクトが正しく初期化されていない場合
public final void update(byte[] data)
throws SignatureException
data - 更新に使うバイト配列
SignatureException - この署名オブジェクトが正しく初期化されていない場合
public final void update(byte[] data,
int off,
int len)
throws SignatureException
data - バイトの配列off - バイトの配列での開始オフセットlen - オフセットから開始して使われるバイト数
SignatureException - この署名オブジェクトが正しく初期化されていない場合public final String getAlgorithm()
public String toString()
Object 内の toString
public final void setParameter(String param,
Object value)
throws InvalidParameterException
setParameter を使用してください。
param - パラメータの文字列識別子value - パラメータ値
InvalidParameterException - param がこの署名アルゴリズムエンジンに対して無効である場合、パラメータが設定済みで再設定できない場合、セキュリティ例外が発生したなどの場合getParameter(java.lang.String)
public final void setParameter(AlgorithmParameterSpec params)
throws InvalidAlgorithmParameterException
params - パラメータ
InvalidAlgorithmParameterException - 指定されたパラメータがこの署名エンジンに対して不適切な場合getParameters()public final AlgorithmParameters getParameters()
返されたパラメータは、この署名を初期化するために使用されたパラメータと同じになることがあります。あるいは、この署名がアルゴリズムパラメータを要求しても、どのアルゴリズムパラメータでも初期化されなかった場合には、返されたパラメータには、基になる署名の実装で使用されるデフォルトのパラメータ値とランダムに生成されたパラメータ値の組み合わせが含まれることがあります。
setParameter(AlgorithmParameterSpec)
public final Object getParameter(String param)
throws InvalidParameterException
param - パラメータの文字列名
InvalidParameterException - param がこのエンジンに対して無効なパラメータである場合、あるいはこのパラメータを取得しようとしている間に別の例外が発生した場合setParameter(String, Object)
public Object clone()
throws CloneNotSupportedException
SignatureSpi 内の cloneCloneNotSupportedException - Cloneable をサポートしていない実装で呼び出された場合
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.