|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.crypto.KeyAgreement
このクラスは、鍵の合意プロトコル、つまり鍵の交換プロトコルの機能を提供します。共有の秘密情報の確立に関連する鍵は、鍵ジェネレータ (KeyPairGenerator
または KeyGenerator
) のどれか、または KeyFactory
によって、あるいは鍵合意プロトコルの中間段階の結果として生成されます。鍵交換の対応関係ごとに、doPhase
を呼び出す必要があります。たとえば、鍵交換の相手が 1 つの場合は、lastPhase
フラグを true
に設定して doPhase
を 1 回呼び出す必要があります。鍵交換の相手が 2 つの場合は、最初は lastPhase
フラグを false
に設定し、2 回目は true
に設定して、doPhase
を 2 回呼び出す必要があります。鍵交換の相手の数は任意です。
KeyGenerator
,
SecretKey
コンストラクタの概要 | |
protected |
KeyAgreement(KeyAgreementSpi keyAgreeSpi,
Provider provider,
String algorithm)
KeyAgreement オブジェクトを作成します。 |
メソッドの概要 | |
Key |
doPhase(Key key,
boolean lastPhase)
この鍵合意に関係する相手のだれかから受け取った、指定された鍵を使用してこの鍵合意の次の段階を実行します。 |
byte[] |
generateSecret()
共有の秘密情報を生成して新しいバッファ内に返します。 |
int |
generateSecret(byte[] sharedSecret,
int offset)
共有の秘密情報を生成して、 offset から始まる sharedSecret バッファ内に格納します。
|
SecretKey |
generateSecret(String algorithm)
共有の秘密情報を作成して、それを指定されたアルゴリズムの SecretKey オブジェクトとして返します。
|
String |
getAlgorithm()
この KeyAgreement オブジェクトのアルゴリズム名を返します。
|
static KeyAgreement |
getInstance(String algorithm)
指定された鍵合意アルゴリズムを実装する KeyAgreement オブジェクトを作成します。 |
static KeyAgreement |
getInstance(String algorithm,
Provider provider)
指定されたプロバイダから、指定された鍵合意アルゴリズムの KeyAgreement オブジェクトを生成します。 |
static KeyAgreement |
getInstance(String algorithm,
String provider)
指定されたプロバイダから、指定された鍵合意アルゴリズムの KeyAgreement オブジェクトを作成します。 |
Provider |
getProvider()
この KeyAgreement オブジェクトのプロバイダを返します。 |
void |
init(Key key)
指定された鍵でこの鍵合意を初期化します。 |
void |
init(Key key,
AlgorithmParameterSpec params)
指定された鍵とアルゴリズムパラメータのセットを使用してこの鍵合意を初期化します。 |
void |
init(Key key,
AlgorithmParameterSpec params,
SecureRandom random)
指定された鍵、アルゴリズムパラメータのセット、および乱数の発生源を使用してこの鍵合意を初期化します。 |
void |
init(Key key,
SecureRandom random)
指定された鍵と乱数の発生源でこの鍵合意を初期化します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
protected KeyAgreement(KeyAgreementSpi keyAgreeSpi, Provider provider, String algorithm)
keyAgreeSpi
- 委譲先provider
- プロバイダalgorithm
- アルゴリズムメソッドの詳細 |
public final String getAlgorithm()
KeyAgreement
オブジェクトのアルゴリズム名を返します。
これは、この KeyAgreement
オブジェクトを作成した getInstance
呼び出しの 1 つで指定された名前と同じです。
KeyAgreement
オブジェクトのアルゴリズム名public static final KeyAgreement getInstance(String algorithm) throws NoSuchAlgorithmException
KeyAgreement
オブジェクトを作成します。デフォルトのプロバイダのパッケージが、要求された鍵合意アルゴリズムの実装を提供している場合は、その実装を持った KeyAgreement
クラスのインスタンスが返されます。アルゴリズムがデフォルトのパッケージで得られない場合は、ほかのプロバイダパッケージが検索されます。
algorithm
- 要求された鍵合意アルゴリズムの標準的な名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャ API の仕様およびリファレンス」の付録 A を参照
KeyAgreement
オブジェクト
NoSuchAlgorithmException
- 指定されたアルゴリズムが、デフォルトのプロバイダパッケージにも、検索したほかのプロバイダパッケージにもない場合public static final KeyAgreement getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
KeyAgreement
オブジェクトを作成します。
algorithm
- 要求された鍵合意アルゴリズムの標準的な名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャ API の仕様およびリファレンス」の付録 A を参照provider
- プロバイダ名
KeyAgreement
オブジェクト
NoSuchAlgorithmException
- 指定されたプロバイダに指定されたアルゴリズムがない場合
NoSuchProviderException
- 指定されたプロバイダが設定されていない場合
IllegalArgumentException
- provider
が null の場合public static final KeyAgreement getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyAgreement
オブジェクトを生成します。provider
は登録されている必要はないことに注意してください。
algorithm
- 要求された鍵合意アルゴリズムの標準的な名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャ API の仕様およびリファレンス」の付録 A を参照provider
- プロバイダ
KeyAgreement
オブジェクト
NoSuchAlgorithmException
- 指定されたプロバイダに指定されたアルゴリズムがない場合
IllegalArgumentException
- provider
が null の場合public final Provider getProvider()
KeyAgreement
オブジェクトのプロバイダを返します。
KeyAgreement
オブジェクトのプロバイダpublic final void init(Key key) throws InvalidKeyException
この鍵合意が乱数バイトを必要とする場合は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダの
の実装を乱数の発生源として使用して乱数バイトを取得します。SecureRandom の実装を提供するプロバイダがインストールされていない場合は、システムが提供する乱数の発生源が使用されます。
SecureRandom
key
- 当事者の非公開情報。たとえば、Diffie-Hellman の鍵合意の場合は、当事者自身の Diffie-Hellman 非公開鍵
InvalidKeyException
- 指定された鍵がこの鍵合意に不適切な場合。たとえば、型が間違っている場合、またはアルゴリズムの型に互換性がない場合public final void init(Key key, SecureRandom random) throws InvalidKeyException
鍵合意アルゴリズムが乱数バイトを必要とする場合は、指定された乱数の発生源 random
から取得します。ただし、基本となるアルゴリズム実装が乱数バイトを必要としない場合、random
は無視されます。
key
- 当事者の非公開情報。たとえば、Diffie-Hellman の鍵合意の場合は、当事者自身の Diffie-Hellman 非公開鍵random
- 乱数の発生源
InvalidKeyException
- 指定された鍵がこの鍵合意に不適切な場合。たとえば、型が間違っている場合、またはアルゴリズムの型に互換性がない場合public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException
この鍵合意が乱数バイトを必要とする場合は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダの
の実装を乱数の発生源として使用して乱数バイトを取得します。SecureRandom の実装を提供するプロバイダがインストールされていない場合は、システムが提供する乱数の発生源が使用されます。
SecureRandom
key
- 当事者の非公開情報。たとえば、Diffie-Hellman の鍵合意の場合は、当事者自身の Diffie-Hellman 非公開鍵params
- 鍵合意パラメータ
InvalidKeyException
- 指定された鍵がこの鍵合意に不適切な場合。たとえば、型が間違っている場合、またはアルゴリズムの型に互換性がない場合
InvalidAlgorithmParameterException
- 指定されたパラメータがこの鍵合意に不適切な場合public final void init(Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException
key
- 当事者の非公開情報。たとえば、Diffie-Hellman の鍵合意の場合は、当事者自身の Diffie-Hellman 非公開鍵params
- 鍵合意パラメータrandom
- 乱数の発生源
InvalidKeyException
- 指定された鍵がこの鍵合意に不適切な場合。たとえば、型が間違っている場合、またはアルゴリズムの型に互換性がない場合
InvalidAlgorithmParameterException
- 指定されたパラメータがこの鍵合意に不適切な場合public final Key doPhase(Key key, boolean lastPhase) throws InvalidKeyException, IllegalStateException
key
- この段階の鍵。たとえば、2 当事者間の Diffie-Hellman の場合は、相手の Diffie-Hellman 公開鍵lastPhase
- これがこの鍵合意の最後の段階かどうかを示すフラグ
InvalidKeyException
- 指定された鍵がこの段階に不適切な場合
IllegalStateException
- この鍵合意が初期化されていない場合public final byte[] generateSecret() throws IllegalStateException
このメソッドは、この KeyAgreement
オブジェクトをリセットするので、さらにほかの鍵合意に再使用できます。この鍵合意が init
メソッドの 1 つで再初期化されない場合、その後の鍵合意では、同じ非公開情報とアルゴリズムパラメータが使用されます。
IllegalStateException
- この鍵合意がまだ完了していない場合public final int generateSecret(byte[] sharedSecret, int offset) throws IllegalStateException, ShortBufferException
offset
から始まる sharedSecret
バッファ内に格納します。
sharedSecret
バッファが小さすぎて結果を保持できない場合は、ShortBufferException
がスローされます。この場合、より大きな出力バッファを使用してこの呼び出しを繰り返します。
このメソッドは、この KeyAgreement
オブジェクトをリセットするので、さらにほかの鍵合意に再使用できます。この鍵合意が init
メソッドの 1 つで再初期化されない場合、その後の鍵合意では、同じ非公開情報とアルゴリズムパラメータが使用されます。
sharedSecret
- 共有の秘密情報を格納するバッファoffset
- 共有の秘密情報が格納される sharedSecret
内のオフセット
sharedSecret
に格納されたバイト数
IllegalStateException
- この鍵合意がまだ完了していない場合
ShortBufferException
- 指定された出力バッファが小さすぎて秘密情報を保持できない場合public final SecretKey generateSecret(String algorithm) throws IllegalStateException, NoSuchAlgorithmException, InvalidKeyException
SecretKey
オブジェクトとして返します。
このメソッドは、この KeyAgreement
オブジェクトをリセットするので、さらにほかの鍵合意に再使用できます。この鍵合意が init
メソッドの 1 つで再初期化されない場合、その後の鍵合意では、同じ非公開情報とアルゴリズムパラメータが使用されます。
algorithm
- 要求された秘密鍵アルゴリズム
IllegalStateException
- この鍵合意がまだ完了していない場合
NoSuchAlgorithmException
- 指定された秘密鍵アルゴリズムがない場合
InvalidKeyException
- 共有の秘密鍵データを使用して、指定されたアルゴリズムの秘密鍵を生成できない場合 (たとえば、鍵データが短すぎる)
|
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.