JavaTM 2 Platform
Standard Ed. 6

java.security.interfaces
介面 DSAKeyPairGenerator


public interface DSAKeyPairGenerator

能夠產生 DSA 密鑰對的物件的介面。

可以對每個 initialize 方法調用任意多次。如果沒有對 DSAKeyPairGenerator 調用 initialize 方法,則預設使用預計算的 p、q、g 參數並使用 SecureRandom 的某個實例作為隨機位源,產生一個 1024 位的密鑰。

希望指示特定於 DSA 參數的使用者,以及希望產生適合於 DSA 演算法使用的密鑰對的使用者通常可以進行以下操作:

  1. 通過調用 KeyPairGenerator getInstance 方法並將 "DSA" 作為其參數,獲取 DSA 演算法的密鑰對產生器。

  2. 通過將結果強制轉換為 DSAKeyPairGenerator,並從此 DSAKeyPairGenerator 介面調用 initialize 方法之一,初始化該產生器。

  3. 通過從 KeyPairGenerator 類別調用 generateKeyPair 方法產生一個密鑰對。

註:並非總是需要對 DSA 密鑰對產生器執行特定於演算法的初始化。也就是說,並非總是需要調用此介面中的 initialize 方法。接受特定於演算法的參數的預設值時,只需要使用 KeyPairGenerator 介面 initialize 方法的與演算法無關的初始化。

另請參見:
KeyPairGenerator

方法摘要
 void initialize(DSAParams params, SecureRandom random)
          使用 DSA 系列參數(p、q 和 g)和可選 SecureRandom 位源初始化密鑰對產生器。
 void initialize(int modlen, boolean genParams, SecureRandom random)
          使用給定係數長度(而不是參數)和可選 SecureRandom 位源初始化密鑰對產生器。
 

方法詳細資訊

initialize

void initialize(DSAParams params,
                SecureRandom random)
                throws InvalidParameterException
使用 DSA 系列參數(p、q 和 g)和可選 SecureRandom 位源初始化密鑰對產生器。如果需要 SecureRandom 位源但沒有提供,即 SecureRandom 為 null,則使用預設 SecureRandom 實例。

參數:
params - 用於產生密鑰的參數。
random - 用於產生密鑰位的隨機位源;可以為 null。
拋出:
InvalidParameterException - 如果 params 值無效或為 null。

initialize

void initialize(int modlen,
                boolean genParams,
                SecureRandom random)
                throws InvalidParameterException
使用給定係數長度(而不是參數)和可選 SecureRandom 位源初始化密鑰對產生器。如果需要 SecureRandom 位源但沒有提供,即 SecureRandom 為 null,則使用預設 SecureRandom 實例。

如果 genParams 為 true,則此方法產生新的 p、q 和 g 參數。如果為 false,則該方法使用對應於所請求係數長度的預計算參數。如果不存在對應於該係數長度的預計算參數,則將拋出一個異常。確保總是存在係數長度為 512 和 1024 位的對應預設參數。

參數:
modlen - 以位為單位的係數長度。有效值在 512 到 1024(包括兩者)之間,且是 8 的倍數。
random - 用於產生密鑰位的隨機位源;可以為 null。
genParams - 是否產生對應所請求係數長度的新參數。
拋出:
InvalidParameterException - 如果 modlen 不在 512 到 1024 之間,或者 genParams 為 false,並且不存在對應所請求係數長度的預計算參數。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only