一个能够生成密钥对的对象接口。
每个 initialize 方法都将被多次调用。如果在一个 DSAKeyPairGenerator 中没有调用 initialize 方法,将缺省地生成一个 1024 比特的密钥,它用到事先计算好的 p、q 和 g 参数和作为随机比特源的 SecureRandom 的一个实例。
希望指明 DSA 专用参数并生成适用于 DSA 算法的密钥对的用户一般:
getInstance 方法,获得 DSA 算法的密钥对生成程序。
initialize 方法初始化该生成程序。
generateKeyPair
方法生成一个密钥对。
注意:没有必要总是为一个 DSA 密钥对生成程序进行算法特定的初始化。即,没有必要总是调用该接口的一个 initialize 方法。当接受算法特定参数的缺省设置时,所有需要做的是调用 KeyPairGenerator
接口中的 initialize 方法进行独立于算法的初始化。
public abstract void initialize(DSAParams params,
SecureRandom random) throws InvalidParameterException
public abstract void initialize(int modlen,
boolean genParams,
SecureRandom random) throws InvalidParameterException
如果 genParams 为 true,该方法将生成新的 p、q 和 g
参数。如果它为 false,该方法将使用为要求的模长度事先计算的参数。如果没有为要求的模长度事先计算的参数,将抛出一个异常。保证有 512
或 1024 比特模长度的缺省参数。