public abstract class Signature extends SignatureSpi
多くの署名アルゴリズムの中で、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
クラスから拡張された抽象クラスになっていることに注意してください。アプリケーションの開発者は、このSignature
クラスでのメソッド定義だけに配慮してください。スーパー・クラスのすべてのメソッドは、デジタル署名アルゴリズムの独自の実装を提供する必要がある暗号サービス・プロバイダで使用されることを想定しています。
Javaプラットフォームの実装は、すべて次の標準のSignature
アルゴリズムをサポートする必要があります。
SHA1withDSA
SHA1withRSA
SHA256withRSA
修飾子と型 | フィールドと説明 |
---|---|
protected static int |
SIGN
この署名オブジェクトが署名用に初期化済みであることを示す、
state の可能な値です。 |
protected int |
state
この署名オブジェクトの現在の状態です。
|
protected static int |
UNINITIALIZED
この署名オブジェクトの初期化が終了していないことを示す、
state の可能な値です。 |
protected static int |
VERIFY
この署名オブジェクトが検証用に初期化済みであることを示す、
state の可能な値です。 |
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)
指定されたオフセットから開始して、指定されたバイト・データの配列の渡された署名を検証します。
|
engineGetParameter, engineGetParameters, engineInitSign, engineInitSign, engineInitVerify, engineSetParameter, engineSetParameter, engineSign, engineSign, engineUpdate, engineUpdate, engineUpdate, engineVerify, engineVerify
protected static final int UNINITIALIZED
state
の可能な値です。protected int state
protected Signature(String algorithm)
algorithm
- アルゴリズムの標準名を表す文字列。アルゴリズムの標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのSignatureのセクションを参照。public static Signature getInstance(String algorithm) throws NoSuchAlgorithmException
このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。指定されたアルゴリズムをサポートする最初のProviderのSignatureSpi実装をカプセル化する新しいSignatureオブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求されたアルゴリズムの標準名。アルゴリズムの標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのSignatureのセクションを参照。NoSuchAlgorithmException
- 指定されたアルゴリズムのSignature実装をサポートするProviderが存在しない場合。Provider
public static Signature getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
指定されたプロバイダのSignatureSpi実装をカプセル化する新しいSignatureオブジェクトが返されます。指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求するアルゴリズムの名前。アルゴリズムの標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのSignatureのセクションを参照。provider
- プロバイダ名。NoSuchAlgorithmException
- 指定されたプロバイダに指定されたアルゴリズムのSignatureSpiの実装がない場合。NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合。IllegalArgumentException
- プロバイダ名がnullまたは空の場合。Provider
public static Signature getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
指定されたProviderオブジェクトのSignatureSpi実装をカプセル化する新しいSignatureオブジェクトが返されます。指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
algorithm
- 要求するアルゴリズムの名前。アルゴリズムの標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのSignatureのセクションを参照。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
- iこの署名オブジェクトが正しく初期化されていない場合、この署名アルゴリズムが指定された入力データを処理できない場合、またはlen
の値が実際の署名の長さより小さい場合。public final boolean verify(byte[] signature) throws SignatureException
このメソッドを呼び出すと、この署名オブジェクトは、以前にinitVerify(PublicKey)
の呼出しを介して検証用に初期化されたときの状態にリセットされます。つまり、オブジェクトをリセットするので、initVerify
への呼出しで指定した公開鍵を持つ識別の別の署名を検証できます。
signature
- 検証対象の署名バイト。SignatureException
- この署名オブジェクトが正しく初期化されていない場合、指定された署名の符号化方法が不適切である場合、指定された署名の型が不正である場合、この署名アルゴリズムが指定された入力データを処理できない場合など。public final boolean verify(byte[] signature, int offset, int length) throws SignatureException
このメソッドを呼び出すと、この署名オブジェクトは、以前にinitVerify(PublicKey)
の呼出しを介して検証用に初期化されたときの状態にリセットされます。つまり、オブジェクトをリセットするので、initVerify
への呼出しで指定した公開鍵を持つ識別の別の署名を検証できます。
signature
- 検証対象の署名バイト。offset
- バイトの配列での開始オフセット。length
- 使用するバイト数(offsetから開始)。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
- 使用するバイト数(offsetから開始)。SignatureException
- この署名オブジェクトが正しく初期化されていない場合。public final void update(ByteBuffer data) throws SignatureException
data.position()
から始まるdata.remaining()
バイトを処理します。終了時に、バッファの位置はリミットに等しくなりますが、リミットは変更されません。data
- ByteBufferSignatureException
- この署名オブジェクトが正しく初期化されていない場合。public final String getAlgorithm()
public String 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
clone
、クラス: SignatureSpi
CloneNotSupportedException
- Cloneable
をサポートしていない実装で呼び出された場合。Cloneable
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.