|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.security.SignatureSpi java.security.Signature
public abstract class Signature
Signature クラスは、アプリケーションに対してデジタル署名アルゴリズムの機能を提供するために使用されます。デジタル署名は、認証やデジタルデータの整合性を保証するために使用されます。
多くの署名アルゴリズムの中で、DSA および SHA-1 を使用した、NIST 標準の DSA を使用できます。 SHA-1 メッセージダイジェストアルゴリズムを使用する DSA アルゴリズムは、SHA1withDSA のように指定できます。RSA の場合は、メッセージダイジェストアルゴリズムに複数の選択肢があります。 したがって、署名アルゴリズムは、MD2withRSA、MD5withRSA、または SHA1withRSA のように指定します。デフォルトはないので、必ずアルゴリズムの名前を指定しなければいけません。
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)
署名または検証するデータを、指定されたバイトの配列を使って、指定されたオフセットから更新します。 |
void |
update(ByteBuffer data)
署名または検証するデータを、指定された ByteBuffer を使用して更新します。 |
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, 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
このメソッドは、最優先の Provider から順に、登録済みのセキュリティー Provider のリストをトラバースします。指定されたアルゴリズムをサポートする最初の Provider の SignatureSpi 実装をカプセル化する新しい Signature オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求されたアルゴリズムの標準的な名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照
NoSuchAlgorithmException
- 指定されたアルゴリズムの Signature 実装をサポートする Provider が存在しない場合Provider
public static Signature getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
指定されたプロバイダの SignatureSpi 実装をカプセル化する新しい Signature オブジェクトが返されます。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求するアルゴリズムの名前アルゴリズムの標準名については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照provider
- プロバイダ名
NoSuchAlgorithmException
- 指定されたプロバイダに指定されたアルゴリズムの SignatureSpi 実装がない場合
NoSuchProviderException
- 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合
IllegalArgumentException
- プロバイダの名前が null か空の場合Provider
public static Signature getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
指定された Provider オブジェクトの SignatureSpi 実装をカプセル化する新しい Signature オブジェクトが返されます。指定された Provider オブジェクトは、プロバイダリストに登録する必要はありません。
algorithm
- 要求するアルゴリズムの名前アルゴリズムの標準名については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照provider
- プロバイダ
NoSuchAlgorithmException
- 指定された Provider オブジェクトに指定されたアルゴリズムの SignatureSpi 実装がない場合
IllegalArgumentException
- プロバイダが null の場合Provider
public 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 void update(ByteBuffer data) throws SignatureException
data.position()
から始まる data.remaining()
バイトを処理します。終了時に、バッファーの位置はリミットに等しくなりますが、リミットは変更されません。
data
- ByteBuffer
SignatureException
- この署名オブジェクトが正しく初期化されていない場合public final String getAlgorithm()
public String toString()
Object
内の toString
@Deprecated 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)
@Deprecated public final Object getParameter(String param) throws InvalidParameterException
param
- パラメータの文字列名
InvalidParameterException
- param
がこのエンジンに対して無効なパラメータである場合、またはこのパラメータを取得しようとしている間に別の例外が発生した場合setParameter(String, Object)
public Object clone() throws CloneNotSupportedException
SignatureSpi
内の clone
CloneNotSupportedException
- Cloneable
をサポートしていない実装で呼び出された場合Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。