- java.lang.Object
-
- java.security.SecureRandomSpi
-
- すべての実装されたインタフェース:
Serializable
public abstract class SecureRandomSpi extends Object implements Serializable
このクラスは、SecureRandom
クラスの「サービス・プロバイダ・インタフェース」 (SPI)を定義します。このクラス内のすべての抽象メソッドは、暗号用に強化した擬似乱数ジェネレータの実装を供給しようとする各サービス・プロバイダによって実装される必要があります。
- 実装要件:
SecureRandomSpi(SecureRandomParameters)
コンストラクタが実装でオーバーライドされている場合、SecureRandom
がインスタンス化されるたびに必ず呼び出されます。 具体的には、オブジェクトがSecureRandom
getInstance
メソッドwithoutとSecureRandomParameters
パラメータのいずれかでインスタンス化される場合、コンストラクタはnull
引数で呼び出され、実装はengineGetParameters()
が呼び出されるときに使用する独自のSecureRandomParameters
パラメータを作成します。 オブジェクトがSecureRandom
getInstance
メソッドwithとSecureRandomParameters
のいずれかの引数でインスタンス化されている場合、その引数でコンストラクタが呼び出されます。engineGetParameters()
メソッドはnull
を返してはなりません。それ以外の場合、
SecureRandomSpi(SecureRandomParameters)
コンストラクタが実装でオーバーライドされていない場合、SecureRandomSpi()
コンストラクタをオーバーライドする必要があります。オブジェクトがSecureRandom
getInstance
メソッドwithoutとSecureRandomParameters
引数のいずれかを使用してインスタンス化された場合に呼び出されます。SecureRandom
getInstance
のメソッドwithとSecureRandomParameters
のいずれかを呼び出すと、この実装のインスタンスは返されません。engineGetParameters()
メソッドはnull
を返す必要があります。スレッドの安全性の詳細については、
SecureRandom
を参照してください。 デフォルトでは、SecureRandomSpi
の実装は、複数の同時スレッドで使用するのが安全ではないとみなされ、SecureRandom
は、該当する各エンジン・メソッド(メソッドのリストについては、SecureRandom
を参照してください。)へのアクセスを同期します。 ただし、SecureRandomSpi
実装がスレッド・セーフである場合、「サービス・プロバイダ属性」 "ThreadSafe"は、登録時に次のように"true"に設定する必要があります:
orput("SecureRandom.AlgName ThreadSafe", "true");
putService(new Service(this, "SecureRandom", "AlgName", className, null, Map.of("ThreadSafe", "true")));
SecureRandom
は、同期を行わずに該当するエンジン・メソッドを呼び出します。- 導入されたバージョン:
- 1.2
- 関連項目:
- 直列化された形式
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 SecureRandomSpi()
パラメータを持たないコンストラクタです。protected
SecureRandomSpi(SecureRandomParameters params)
パラメータを持つコンストラクタです。
-
メソッドのサマリー
修飾子と型 メソッド 説明 protected abstract byte[]
engineGenerateSeed(int numBytes)
指定されたバイト数のシード・バイト数を返します。protected SecureRandomParameters
engineGetParameters()
このSecureRandom
インスタンスの実効SecureRandomParameters
を返します。protected abstract void
engineNextBytes(byte[] bytes)
ユーザーが指定したバイト数の乱数バイト数を生成します。protected void
engineNextBytes(byte[] bytes, SecureRandomParameters params)
追加のパラメータを使用して、ユーザーが指定した数のランダムなバイトを生成します。protected void
engineReseed(SecureRandomParameters params)
このランダム・オブジェクトを、エントロピ入力から追加のパラメータで読み取ったエントロピ入力で再計算します。protected abstract void
engineSetSeed(byte[] seed)
このランダム・オブジェクトを指定されたシードで再割り当てします。String
toString()
このSecureRandom
の人間が読める文字列表現を返します。
-
-
-
コンストラクタの詳細
-
SecureRandomSpi
public SecureRandomSpi()
パラメータを持たないコンストラクタです。
-
SecureRandomSpi
protected SecureRandomSpi(SecureRandomParameters params)
パラメータを持つコンストラクタです。- パラメータ:
params
-SecureRandomParameters
オブジェクト。 この引数にはnull
を指定できます。- 例外:
IllegalArgumentException
- このSecureRandom
によってparams
が認識できないか、またはサポートされていない場合- 導入されたバージョン:
- 9
-
-
メソッドの詳細
-
engineSetSeed
protected abstract void engineSetSeed(byte[] seed)
このランダム・オブジェクトを指定されたシードで再割り当てします。 種子は、既存の種子を置き換えるのではなく、補充します。 これにより、呼出しを繰り返しても、ランダム性が減少しないことが保証されます。- パラメータ:
seed
- シード。
-
engineNextBytes
protected abstract void engineNextBytes(byte[] bytes)
ユーザーが指定したバイト数の乱数バイト数を生成します。いくつかの乱数ジェネレータは、呼び出しごとに限られた量のランダム・バイトしか生成できません。
bytes
のサイズがこの制限より大きい場合、実装はこのメソッドから戻す前に、生成プロセスを複数回呼び出してバッファを完全に満たす必要があります。- パラメータ:
bytes
- 乱数バイトを充填する配列。
-
engineNextBytes
protected void engineNextBytes(byte[] bytes, SecureRandomParameters params)
追加のパラメータを使用して、ユーザーが指定した数のランダムなバイトを生成します。いくつかの乱数ジェネレータは、呼び出しごとに限られた量のランダム・バイトしか生成できません。
bytes
のサイズがこの制限より大きい場合、実装はこのメソッドから戻す前に、生成プロセスを複数回呼び出してバッファを完全に満たす必要があります。- 実装要件:
- デフォルトの実装では、
UnsupportedOperationException
がスローされます。 - パラメータ:
bytes
- 乱数バイトを充填する配列params
- 追加パラメータ- 例外:
UnsupportedOperationException
- 実装がこのメソッドをオーバーライドしていない場合IllegalArgumentException
-params
がnull
の場合、このSecureRandom
によって不正またはサポートされていない- 導入されたバージョン:
- 9
-
engineGenerateSeed
protected abstract byte[] engineGenerateSeed(int numBytes)
指定されたバイト数のシード・バイト数を返します。 この呼出しを使うと、ほかの乱数ジェネレータをシードできます。- パラメータ:
numBytes
- 生成するシード・バイト数。- 戻り値:
- シード・バイト。
-
engineReseed
protected void engineReseed(SecureRandomParameters params)
このランダム・オブジェクトを、エントロピ入力から追加のパラメータで読み取ったエントロピ入力で再計算します。このメソッドが
SecureRandom.reseed()
によって呼び出された場合、params
はnull
になります。実装が再シードをサポートしていない場合は、このメソッドをオーバーライドしないでください。
- 実装要件:
- デフォルトの実装では、
UnsupportedOperationException
がスローされます。 - パラメータ:
params
- 余分なパラメータは、null
にすることができます。- 例外:
UnsupportedOperationException
- 実装がこのメソッドをオーバーライドしていない場合IllegalArgumentException
- このSecureRandom
によってparams
が不正またはサポートされていない場合- 導入されたバージョン:
- 9
-
engineGetParameters
protected SecureRandomParameters engineGetParameters()
このSecureRandom
インスタンスの実効SecureRandomParameters
を返します。- 実装要件:
- デフォルトの実装では
null
を返します。 - 戻り値:
- 有効な
SecureRandomParameters
パラメータ、またはパラメータが使用されていない場合はnull
。 - 導入されたバージョン:
- 9
-
-