- java.lang.Object
-
- java.security.SecureRandomSpi
-
- すべての実装されたインタフェース:
Serializable
public abstract class SecureRandomSpi extends Object implements Serializable
このクラスは、SecureRandomクラスのサービス・プロバイダ・インタフェース(SPI)を定義します。このクラス内のすべての抽象メソッドは、暗号用に強化した擬似乱数ジェネレータの実装を供給しようとする各サービス・プロバイダによって実装される必要があります。
- 実装要件:
SecureRandomSpi(SecureRandomParameters)コンストラクタが実装でオーバーライドされる場合、SecureRandomがインスタンス化されるたびに常にコールされます。 正確には、オブジェクトがSecureRandomParametersパラメータなしでSecureRandomのgetInstanceメソッドのいずれかでインスタンス化される場合、コンストラクタはnull引数でコールされ、実装はengineGetParameters()がコールされるときに使用する独自のSecureRandomParametersパラメータを作成します。 オブジェクトがSecureRandomParameters引数を使用してSecureRandomのgetInstanceメソッドのいずれかでインスタンス化される場合、コンストラクタはその引数を使用してコールされます。engineGetParameters()メソッドは、nullを返さないでください。それ以外の場合、
SecureRandomSpi(SecureRandomParameters)コンストラクタが実装でオーバーライドされない場合は、SecureRandomSpi()コンストラクタをオーバーライドする必要があり、オブジェクトがSecureRandomParameters引数を含まないSecureRandomのgetInstanceメソッドのいずれかでインスタンス化される場合に呼び出されます。SecureRandomParameters引数を使用してSecureRandomのgetInstanceメソッドの1つを呼び出すと、この実装のインスタンスは返されません。engineGetParameters()メソッドはnullを返す必要があります。スレッドの安全性の詳細は、
SecureRandomを参照してください。 デフォルトでは、SecureRandomSpi実装は複数の同時スレッドで使用することは安全ではないと考えられ、SecureRandomは適用可能な各エンジン・メソッドへのアクセスを同期します(メソッドのリストはSecureRandomを参照)。 ただし、SecureRandomSpi実装がスレッドセーフである場合、次のように、登録時にサービス・プロバイダ属性のThreadSafeをtrueに設定する必要があります。
またはput("SecureRandom.AlgName ThreadSafe", "true");putService(new Service(this, "SecureRandom", "AlgName", className, null, Map.of("ThreadSafe", "true")));SecureRandomは、同期なしで適用可能なエンジン・メソッドを呼び出します。- 導入されたバージョン:
- 1.2
- 関連項目:
- 直列化された形式
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 SecureRandomSpi()パラメータのないコンストラクタです。protectedSecureRandomSpi(SecureRandomParameters params)パラメータを持つコンストラクタです。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 protected abstract byte[]engineGenerateSeed(int numBytes)指定されたバイト数のシード・バイト数を返します。protected SecureRandomParametersengineGetParameters()このSecureRandomインスタンスの有効なSecureRandomParametersを返します。protected abstract voidengineNextBytes(byte[] bytes)ユーザーが指定したバイト数の乱数バイト数を生成します。protected voidengineNextBytes(byte[] bytes, SecureRandomParameters params)追加パラメータを使用して、ユーザー指定のランダム・バイト数を生成します。protected voidengineReseed(SecureRandomParameters params)エントロピーソースからのエントロピー入力が追加パラメータで読み込まれたこのランダムオブジェクトを再シードします。protected abstract voidengineSetSeed(byte[] seed)指定されたシードでこのランダム・オブジェクトをリシードします。StringtoString()このSecureRandomの判読可能な文字列表現を返します。
-
-
-
コンストラクタの詳細
-
SecureRandomSpi
public SecureRandomSpi()
パラメータのないコンストラクタです。
-
SecureRandomSpi
protected SecureRandomSpi(SecureRandomParameters params)
パラメータを持つコンストラクタです。- パラメータ:
params-SecureRandomParametersオブジェクト。 この引数には、nullを指定できます。- 例外:
IllegalArgumentException-paramsが認識できないか、このSecureRandomでサポートされていない場合- 導入されたバージョン:
- 9
-
-
メソッドの詳細
-
engineSetSeed
protected abstract void engineSetSeed(byte[] seed)
指定されたシードでこのランダム・オブジェクトをリシードします。 シードは、既存のシードを置き換えるのではなく、補足します。 これにより、呼出しを繰り返しても、ランダム性が減少しないことが保証されます。- パラメータ:
seed- シード。
-
engineNextBytes
protected abstract void engineNextBytes(byte[] bytes)
ユーザーが指定したバイト数の乱数バイト数を生成します。一部の乱数ジェネレータでは、1回の呼出しで生成できるランダム・バイト数は制限されています。
bytesのサイズがこの制限より大きい場合、実装は、このメソッドから戻す前に、その生成プロセスを複数回起動してバッファを完全に埋める必要があります。- パラメータ:
bytes- 乱数バイトを充填する配列。
-
engineNextBytes
protected void engineNextBytes(byte[] bytes, SecureRandomParameters params)追加パラメータを使用して、ユーザー指定のランダム・バイト数を生成します。一部の乱数ジェネレータでは、1回の呼出しで生成できるランダム・バイト数は制限されています。
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-paramsがこのSecureRandomによって違法またはサポートされていない場合- 導入されたバージョン:
- 9
-
engineGetParameters
protected SecureRandomParameters engineGetParameters()
このSecureRandomインスタンスの有効なSecureRandomParametersを返します。- 実装要件:
- デフォルトの実装では
nullを返します。 - 戻り値:
- 有効な
SecureRandomParametersパラメータ。パラメータが使用されなかった場合はnull。 - 導入されたバージョン:
- 9
-
-