Clases de parámetros de algoritmo

Clases que implementan la interfaz AlgorithmParameterSpec .

La clase CCAAlgorithmParameterSpec

Esta clase (que implementa la interfaz AlgorithmParameterSpec ) especifica si la clave AES, DES o triple DES que se va a generar o desencapsular es una clave de hardware secreta y si se almacena en el área de almacenamiento de claves CCA.

En el caso predeterminado, se crea un objeto de esta clase sin especificar un tipo de clave, y este objeto se pasa al método init() de un AESKeyGenerator, un DESKeyGeneratoro un DESedeKeyGenerator. En este caso, una llamada posterior a generateKey() devuelve un objeto de clave que contiene la clave solicitada, que se cifra utilizando la clave primaria de host.

Se puede utilizar un objeto CCAAlgorithmParameterSpec para especificar la fuerza (tamaño) de la clave que se va a generar.

Se puede utilizar un objeto CCAAlgorithmParameterSpec para especificar el tipo de derivación de señal de clave CCA que se debe utilizar para una clave DES o DESede de tipo CKDS o SECURE_INTERNAL_TOKEN.

Si el objeto CCAAlgorithmParameterSpec se utiliza para generar una clave de tipo CKDS, el CCAAlgorithmParameterSpec se puede utilizar para especificar la etiqueta deseada que se va a utilizar para almacenar la clave en el área de almacenamiento de claves CCA. Si se especifica una etiqueta, debe ser exclusiva en el área de almacenamiento de claves CCA y debe seguir las reglas de CCA para las etiquetas. Si no se especifica ninguna etiqueta para una nueva entrada CCA, el método KeyGenerator generateKey() crea una automáticamente.

También se puede utilizar un objeto CCAAlgorithmParameterSpec para especificar explícitamente el tipo de clave que se va a generar:

  • CCAAlgorithmParameterSpec.CKDS se puede pasar al constructor CCAAlgorithmParameterSpec y el objeto resultante se puede pasar al método init() de un AESKeyGenerator, un DESKeyGeneratoro un DESedeKeyGenerator. En este caso, una llamada posterior a generateKey() devuelve un objeto de clave que contiene la etiqueta CCA de la clave cifrada utilizando la clave primaria de host y almacenada en el área de almacenamiento de claves CCA del sistema.
  • CCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKEN se puede pasar al constructor CCAAlgorithmParameterSpec y el objeto resultante se puede pasar al método init() de un AESKeyGenerator, un DESKeyGeneratoro un DESedeKeyGenerator. En este caso, una llamada posterior a generateKey() devuelve un objeto de clave que contiene la clave solicitada, que se cifra utilizando la clave primaria de host. Esta clave también se puede generar utilizando una clase KeyGenerator y pasando un objeto CCAAlgorithmParameterSpec , que se ha creado sin especificar un tipo de clave, al método KeyGenerator init() .
  • CCAAlgorithmParameterSpec.CLEAR se puede pasar al constructor CCAAlgorithmParameterSpec y el objeto resultante se puede pasar al método init() de un AESKeyGenerator, un DESKeyGeneratoro un DESedeKeyGenerator. En este caso, una llamada posterior a generateKey() devuelve un objeto de clave que contiene el material de clave simple para la clave solicitada. Esta clave también se puede generar utilizando una clase KeyGenerator sin pasar un objeto CCAAlgorithmParameterSpec al método KeyGenerator init() .
CCAAlgorithmParameterSpec tiene los métodos de constructor siguientes:
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)

Las restricciones de parámetro siguientes se aplican a estos métodos de constructor:

  • El parámetro size debe ser válido para el algoritmo específico del KeyGenerator al que se pasa este CCAAlgorithmParameterSpec .
  • El parámetro hwType debe ser uno de los siguientes valores de constante:
    • CCAAlgorithmParameterSpec.CLEAR
    • CCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKEN
    • CCAAlgorithmParameterSpec.CKDS
  • El parámetro label debe ser válido para el componente CCA, de acuerdo con las reglas definidas para ICSF en z/OS®.
  • El parámetro wrappingMode se utiliza para especificar el tipo de envolvimiento de claves que desea que utilice CCA al generar claves DES o DESede. Otros tipos de claves, como AES, no respetan el valor de la modalidad de derivación de claves porque siempre se generan con la modalidad de derivación predeterminada del sistema que está definida para ICSF en z/OS. Los valores aceptables para mode incluyen ECB, CBC y DEFAULT (el caso se ignora para estos valores). Cuando utilice este distintivo, recibirá un error en las condiciones siguientes:
    • Cuando genera una clave que no es del tipo DES o DESede. El encapsulado de claves mejorado sólo está soportado para las claves DES y DESede.
    • Si no ha especificado ECB, CBC o DEFAULT para la modalidad.
    • Si ha especificado el distintivo -wrappingMode al crear una clave CLEAR. La modalidad de derivación de claves mejorada solo está soportada cuando genera los tipos de claves SECURE_INTERNAL_TOKEN y CKDS.

La clase CCAAlgorithmParameterSpec tiene los métodos siguientes.

Métodos de tamaño de clave
Estos métodos establecen o devuelven el tamaño de clave que se especifica opcionalmente en el método de constructor CCAAlgorithmParameterSpec :
  • public int getKeySize()
  • public void setKeySize(int size)
Si no especifica un tamaño de clave, el tamaño de clave se establece en 0.
Métodos de tipo de clave
Estos métodos establecen o devuelven el tipo de clave que se especifica opcionalmente en el método de constructor CCAAlgorithmParameterSpec :
  • public byte getHwType()
  • public void setHwType(byte hwTypeVal)
El valor es una de las constantes siguientes:
  • CCAAlgorithmParameterSpec.CLEAR
  • CCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKEN
  • CCAAlgorithmParameterSpec.CKDS
Métodos de etiqueta de almacenamiento
Estos métodos establecen o devuelven la etiqueta de almacenamiento de claves CCA que se especifica opcionalmente en el método de constructor CCAAlgorithmParameterSpec . Si no especifica una etiqueta CCA, esta etiqueta se establece en null:
  • public String getLabel()
  • public void setLabel(String label)
Métodos de modalidad de derivación
Estos métodos establecen o devuelven la modalidad de derivación de señal CCA que se especifica opcionalmente en el método de constructor CCAAlgorithmParameterSpec . Si no especifica una modalidad de derivación, esta modalidad se establece en DEFAULT:
  • public byte getTokenWrappingMode()
  • public void setTokenWrappingMode(byte wrappingMode)

No es necesario especificar un objeto CCAAlgorithmParameterSpec para crear una clave utilizando un objeto AESKeyGenerator, DESKeyGeneratoro DESedeKeyGenerator . Si no se pasa ningún objeto CCAAlgorithmParameterSpec al método KeyGenerator init() antes de llamar al método generateKey() , el objeto de clave que se devuelve contiene el material de clave de borrado para la clave solicitada.

La clase KeyParameterSpec para el hardware DSA (DSAHWKeyParameterSpec)

Esta clase (que implementa la interfaz AlgorithmParameterSpec ) especifica el conjunto de parámetros a utilizar con el algoritmo de hardware DSA:

  • DSAKeyHWAttributes

    Debido a las restricciones de hardware, deben ser KeyHWAttributeValues.PKDS y KeyHWAttributeValues.SIGNATURE.

  • DSAParameterSpec
    Estos son los siguientes:
    • p: el primo
    • q: el subprime
    • g: la base
  • KeySize

    Este parámetro especifica el tamaño de la clave basada en el pprincipal.

  • KeyLabel

    Este parámetro especifica el nombre que se utiliza como referencia a la clave almacenada en el hardware.

Consulte la documentación de la API de Java™ para ver los métodos específicos, los valores predeterminados y las restricciones que están asociados con esta clase.

La clase KeyParameterSpec para el hardware RSA (RSAKeyParameterSpec)

Esta clase (que implementa la interfaz AlgorithmParameterSpec ) especifica el conjunto de parámetros a utilizar con el algoritmo de hardware RSA:

  • RSAKeyHWAttributes

    Este parámetro incluye los elementos siguientes:

    • RSAKeyHWAttributes.type
      Este elemento debe tener uno de los valores siguientes:
      • KeyHWAttributeValues.PKDS
      • KeyHWAttributeValues.CLEAR
      • KeyHWAttributeValues.RETAIN
    • RSAKeyHWAttributes.usage
      Este elemento debe tener uno de los valores siguientes:
      • KeyHWAttributeValues.SIGNATURE
      • KeyHWAttributeValues.KEYMANAGEMENT
  • KeySize

    Este parámetro especifica el tamaño de la clave.

  • KeyLabel

    Si RSAKeyHWAttributes.type no se especifica como KeyHWAttributeValues.CLEAR, este parámetro especifica el nombre que se utiliza como referencia a la clave que se almacena en el área de almacenamiento de claves CCA.

Consulte la documentación de la API de Java para ver los métodos específicos, los valores predeterminados y las restricciones asociadas con esta clase.

La clase KeyParameterSpec para el hardware EC (ECHWKeyParameterSpec)

Esta clase (que implementa la interfaz AlgorithmParameterSpec ) especifica el conjunto de parámetros a utilizar con el algoritmo de hardware EC:

  • ECHWKeyAttributes

    Este parámetro incluye los elementos siguientes:

    • ECHWKeyAttributes.type

      Este elemento debe tener uno de los valores siguientes:

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

      Este elemento debe tener uno de los valores siguientes:

      • KeyHWAttributeValues.SIGNATURE
      • KeyHWAttributeValues.KEYMANAGEMENT
  • ECParameterSpec
    Este elemento consta de los siguientes elementos:
    • curve: la curva elíptica
    • g: el generador, que también se conoce como punto base
    • n: el orden del generador g
    • h: el cofactor
  • StandardName

    Este parámetro especifica el nombre estándar de los parámetros de dominio de curva elíptica.

  • KeySize

    Este parámetro especifica el tamaño de la clave.

  • KeyLabel

    Si ECHWKeyAttributes.type no se especifica como KeyHWAttributeValues.CLEAR, este parámetro especifica el nombre que se utiliza como referencia a la clave que se almacena en el área de almacenamiento de claves CCA.

Consulte la documentación de la API de Java para ver los métodos específicos, los valores predeterminados y las restricciones asociadas con esta clase.