Module java.base

Interface DSAKeyPairGenerator


public interface DSAKeyPairGenerator
用于生成DSA密钥对的对象的接口。

initialize方法可以被调用任意次数。如果在DSAKeyPairGenerator上没有调用initialize方法,则实现此接口的每个提供程序应提供(并记录)默认初始化。请注意,默认值可能会因不同提供程序而异。此外,提供程序的默认值可能会在将来的版本中更改。因此,建议显式初始化DSAKeyPairGenerator,而不是依赖于特定于提供程序的默认值。

希望指定DSA特定参数并生成适用于DSA算法的密钥对的用户通常应:

  1. 通过调用KeyPairGenerator的getInstance方法并将"DSA"作为参数来获取DSA算法的密钥对生成器。
  2. 在将结果强制转换为DSAKeyPairGenerator并从此DSAKeyPairGenerator接口调用initialize方法之前,检查返回的密钥对生成器是否是DSAKeyPairGenerator的实例。
  3. 通过调用KeyPairGenerator类的generateKeyPair方法生成密钥对。

注意:并非总是需要为DSA密钥对生成器执行特定于算法的初始化。也就是说,并非总是需要在此接口中调用initialize方法。当您接受算法特定参数的默认值时,只需使用KeyPairGenerator接口中的initialize方法即可。

注意:此接口的一些早期实现可能不支持更大的DSA参数值,例如3072位。

自:
1.1
参见:
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    initialize(int modlen, boolean genParams, SecureRandom random)
    为给定的模数长度(而不是参数)和可选的SecureRandom位源初始化密钥对生成器。
    void
    initialize(DSAParams params, SecureRandom random)
    使用DSA家族参数(p、q和g)和可选的SecureRandom位源初始化密钥对生成器。
  • Method Details

    • initialize

      void initialize(DSAParams params, SecureRandom random)
      使用DSA家族参数(p、q和g)和可选的SecureRandom位源初始化密钥对生成器。如果需要但未提供SecureRandom位源,即null,将使用默认的SecureRandom实例。
      参数:
      params - 用于生成密钥的参数。
      random - 用于生成密钥位的随机位源;可以为null。
      抛出:
      InvalidParameterException - 如果params值无效、为null或不受支持。
    • initialize

      void initialize(int modlen, boolean genParams, SecureRandom random)
      为给定的模数长度(而不是参数)和可选的SecureRandom位源初始化密钥对生成器。如果需要但未提供SecureRandom位源,即null,将使用默认的SecureRandom实例。

      如果genParams为true,则此方法生成新的p、q和g参数。如果为false,则该方法使用请求的模数长度的预计算参数。如果没有该模数长度的预计算参数,将抛出异常。

      参数:
      modlen - 位数的模数长度。有效值为512到1024之间的64的任意倍数(包括512和1024)、2048和3072。
      genParams - 是否为请求的模数长度生成新参数。
      random - 用于生成密钥位的随机位源;可以为null。
      抛出:
      InvalidParameterException - 如果modlen无效、不受支持,或者如果genParams为false且没有请求的模数长度的预计算参数。