演算法參數類別

實作 AlgorithmParameterSpec 介面的類別。

CCAAlgorithmParameterSpec 類別

此類別 (實作 AlgorithmParameterSpec 介面) 指定要產生或解除包裝的 AES、DES 或三重 DES 金鑰是否為秘密硬體金鑰,以及它是否儲存在 CCA 金鑰儲存區中。

在預設情況下,會建立此類別的物件而不指定索引鍵類型,並將此物件傳遞至 AESKeyGeneratorDESKeyGeneratorDESedeKeyGeneratorinit() 方法。 在此情況下,後續對 generateKey() 的呼叫會傳回包含所要求的金鑰 (使用主機主要金鑰加密) 的金鑰物件。

CCAAlgorithmParameterSpec 物件可用來指定要產生之金鑰的強度 (大小)。

CCAAlgorithmParameterSpec 物件可用來指定 CCA 金鑰記號包裝的類型,以用於類型為 CKDS 或 SECURE_INTERNAL_TOKEN 的 DES 或 DESede 金鑰。

如果使用 CCAAlgorithmParameterSpec 物件來產生 CKDS 類型金鑰,則可以使用 CCAAlgorithmParameterSpec 來指定要用來在 CCA 金鑰儲存區中儲存金鑰的所需標籤。 如果指定標籤,則它在 CCA 鍵儲存區中必須是唯一的,且必須遵循標籤的 CCA 規則。 如果未指定新 CCA 項目的標籤,則 KeyGenerator generateKey() 方法會自動建立一個標籤。

CCAAlgorithmParameterSpec 物件也可以用來明確指定要產生的金鑰類型:

  • CCAAlgorithmParameterSpec.CKDS 可以傳遞至 CCAAlgorithmParameterSpec 建構子,並將產生的物件傳遞至 AESKeyGeneratorDESKeyGeneratorDESedeKeyGeneratorinit() 方法。 在此情況下,後續呼叫 generateKey() 會傳回金鑰物件,其中包含使用主機主要金鑰加密並儲存在系統 CCA 金鑰儲存區中之金鑰的 CCA 標籤。
  • CCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKEN 可以傳遞至 CCAAlgorithmParameterSpec 建構子,並將產生的物件傳遞至 AESKeyGeneratorDESKeyGeneratorDESedeKeyGeneratorinit() 方法。 在此情況下,後續對 generateKey() 的呼叫會傳回包含所要求的金鑰 (使用主機主要金鑰加密) 的金鑰物件。 也可以使用 KeyGenerator 類別並將未指定金鑰類型所建立的 CCAAlgorithmParameterSpec 物件傳遞至 KeyGenerator init() 方法,來產生此金鑰。
  • CCAAlgorithmParameterSpec.CLEAR 可以傳遞至 CCAAlgorithmParameterSpec 建構子,並將產生的物件傳遞至 AESKeyGeneratorDESKeyGeneratorDESedeKeyGeneratorinit() 方法。 在此情況下,後續呼叫 generateKey() 會傳回一個金鑰物件,其中包含所要求金鑰的清除金鑰資料。 也可以使用 KeyGenerator 類別來產生此索引鍵,而不將 CCAAlgorithmParameterSpec 物件傳遞至 KeyGenerator init() 方法。
CCAAlgorithmParameterSpec 具有下列建構子方法:
public CCAAlgorithmParameterSpec()
public CCAAlgorithmParameterSpec(int size)
public CCAAlgorithmParameterSpec(byte hwType)
public CCAAlgorithmParameterSpec(int size,byte hwType)
public CCAAlgorithmParameterSpec(int size,byte hwType,String label)
public CCAAlgorithmParameterSpec(byte hwType,String label)
public CCAAlgorithmParameterSpec(int size, byte hwType, String label, byte wrappingMode)

下列參數限制適用於這些建構子方法:

  • size 參數必須適用於將此 CCAAlgorithmParameterSpec 傳遞至其中之 KeyGenerator 的特定演算法。
  • hwType 參數必須是下列其中一個常數值:
    • CCAAlgorithmParameterSpec.CLEAR
    • CCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKEN
    • CCAAlgorithmParameterSpec.CKDS
  • 根據為 ICSF on z/OS®定義的規則, label 參數必須對 CCA 元件有效。
  • wrappingMode 參數用來指定當您產生 DES 或 DESede 金鑰時 CCA 要使用的金鑰包裝類型。 其他金鑰類型 (例如 AES) 不允許使用金鑰包裝模式值,因為它們一律使用針對 z/OS上 ICSF 定義的系統預設包裝模式來產生。 mode 的可接受值包括 ECB、CBC 及 DEFAULT (這些值會忽略大小寫)。 當您使用此旗標時,在下列條件下會收到錯誤:
    • 當您產生不是 DES 或 DESede 類型的金鑰時。 只有 DES 及 DESede 金鑰才支援加強金鑰包裝。
    • 如果您未針對模式指定 ECB、CBC 或 DEFAULT。
    • 如果您在建立 CLEAR 索引鍵時指定了 -wrappingMode 旗標。 僅當您產生 SECURE_INTERNAL_TOKEN 及 CKDS 類型金鑰時,才支援加強金鑰包裝模式。

CCAAlgorithmParameterSpec 類別具有下列方法。

金鑰大小方法
這些方法會設定或傳回選擇性地指定給 CCAAlgorithmParameterSpec 建構子方法的金鑰大小:
  • public int getKeySize()
  • public void setKeySize(int size)
如果未指定金鑰大小,則金鑰大小會設為 0。
金鑰類型方法
這些方法會設定或傳回選擇性地指定給 CCAAlgorithmParameterSpec 建構子方法的金鑰類型:
  • public byte getHwType()
  • public void setHwType(byte hwTypeVal)
此值是下列其中一個常數:
  • CCAAlgorithmParameterSpec.CLEAR
  • CCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKEN
  • CCAAlgorithmParameterSpec.CKDS
儲存體標籤方法
這些方法會設定或傳回選擇性地指定給 CCAAlgorithmParameterSpec 建構子方法的 CCA 金鑰儲存體標籤。 如果您未指定 CCA 標籤,則此標籤會設為 null:
  • public String getLabel()
  • public void setLabel(String label)
覆蓋模式方法
這些方法會設定或傳回選擇性地指定給 CCAAlgorithmParameterSpec 建構子方法的 CCA 記號覆蓋模式。 如果您未指定折返模式,則此模式會設為 DEFAULT:
  • public byte getTokenWrappingMode()
  • public void setTokenWrappingMode(byte wrappingMode)

不需要指定 CCAAlgorithmParameterSpec 物件,即可使用 AESKeyGeneratorDESKeyGeneratorDESedeKeyGenerator 物件來建立金鑰。 如果在呼叫 generateKey() 方法之前未將任何 CCAAlgorithmParameterSpec 物件傳遞至 KeyGenerator init() 方法,則傳回的金鑰物件會包含所要求金鑰的清除金鑰資料。

DSA 硬體的 KeyParameterSpec 類別 (DSAHWKeyParameterSpec)

此類別 (實作 AlgorithmParameterSpec 介面) 指定要與 DSA 硬體演算法搭配使用的參數集:

  • DSAKeyHWAttributes

    由於硬體限制,這些必須是 KeyHWAttributeValues.PKDSKeyHWAttributeValues.SIGNATURE

  • DSAParameterSpec
    這些措施如下:
    • p: 質數
    • q: 子質數
    • g: 基本程式
  • KeySize

    此參數指定基於主要 p的金鑰大小。

  • KeyLabel

    此參數指定用來參照硬體中儲存的金鑰的名稱。

請參閱 Java™ API 文件,以取得與此類別相關聯的特定方法、預設值及限制。

RSA 硬體的 KeyParameterSpec 類別 (RSAKeyParameterSpec)

此類別 (實作 AlgorithmParameterSpec 介面) 指定要與 RSA 硬體演算法搭配使用的參數集:

  • RSAKeyHWAttributes

    此參數包括下列項目:

    • RSAKeyHWAttributes.type
      此項目必須具有下列其中一個值:
      • KeyHWAttributeValues.PKDS
      • KeyHWAttributeValues.CLEAR
      • KeyHWAttributeValues.RETAIN
    • RSAKeyHWAttributes.usage
      此項目必須具有下列其中一個值:
      • KeyHWAttributeValues.SIGNATURE
      • KeyHWAttributeValues.KEYMANAGEMENT
  • KeySize

    此參數指定金鑰的大小。

  • KeyLabel

    如果 RSAKeyHWAttributes.type 未指定為 KeyHWAttributeValues.CLEAR,則此參數指定用作參照 CCA 金鑰儲存區中儲存之金鑰的名稱。

請參閱 Java API 文件,以取得與此類別相關聯的特定方法、預設值及限制。

EC 硬體的 KeyParameterSpec 類別 (ECHWKeyParameterSpec)

此類別 (實作 AlgorithmParameterSpec 介面) 指定要與 EC 硬體演算法搭配使用的參數集:

  • ECHWKeyAttributes

    此參數包括下列項目:

    • ECHWKeyAttributes.type

      此項目必須具有下列其中一個值:

      • KeyHWAttributeValues.PKDS
      • KeyHWAttributeValues.CLEAR
    • ECHWKeyAttributes.usage

      此項目必須具有下列其中一個值:

      • KeyHWAttributeValues.SIGNATURE
      • KeyHWAttributeValues.KEYMANAGEMENT
  • ECParameterSpec
    此項目由下列項目組成:
    • curve: 橢圓曲線
    • g: 產生器,也稱為基點
    • n: 產生器的順序 g
    • h: 共因素
  • StandardName

    此參數指定橢圓曲線網域參數的標準名稱。

  • KeySize

    此參數指定金鑰的大小。

  • KeyLabel

    如果 ECHWKeyAttributes.type 未指定為 KeyHWAttributeValues.CLEAR,則此參數指定用作參照 CCA 金鑰儲存區中儲存之金鑰的名稱。

請參閱 Java API 文件,以取得與此類別相關聯的特定方法、預設值及限制。