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.CKDSse puede pasar al constructorCCAAlgorithmParameterSpecy el objeto resultante se puede pasar al métodoinit()de unAESKeyGenerator, unDESKeyGeneratoro unDESedeKeyGenerator. En este caso, una llamada posterior agenerateKey()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_TOKENse puede pasar al constructorCCAAlgorithmParameterSpecy el objeto resultante se puede pasar al métodoinit()de unAESKeyGenerator, unDESKeyGeneratoro unDESedeKeyGenerator. En este caso, una llamada posterior agenerateKey()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 claseKeyGeneratory pasando un objetoCCAAlgorithmParameterSpec, que se ha creado sin especificar un tipo de clave, al métodoKeyGenerator init().CCAAlgorithmParameterSpec.CLEARse puede pasar al constructorCCAAlgorithmParameterSpecy el objeto resultante se puede pasar al métodoinit()de unAESKeyGenerator, unDESKeyGeneratoro unDESedeKeyGenerator. En este caso, una llamada posterior agenerateKey()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 claseKeyGeneratorsin pasar un objetoCCAAlgorithmParameterSpecal métodoKeyGenerator 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
sizedebe ser válido para el algoritmo específico delKeyGeneratoral que se pasa esteCCAAlgorithmParameterSpec. - El parámetro
hwTypedebe ser uno de los siguientes valores de constante:CCAAlgorithmParameterSpec.CLEARCCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKENCCAAlgorithmParameterSpec.CKDS
- El parámetro
labeldebe ser válido para el componente CCA, de acuerdo con las reglas definidas para ICSF en z/OS®. - El parámetro
wrappingModese 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
-wrappingModeal 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)
- 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)
CCAAlgorithmParameterSpec.CLEARCCAAlgorithmParameterSpec.SECURE_INTERNAL_TOKENCCAAlgorithmParameterSpec.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 ennull: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 enDEFAULT: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:
DSAKeyHWAttributesDebido a las restricciones de hardware, deben ser
KeyHWAttributeValues.PKDSyKeyHWAttributeValues.SIGNATURE.DSAParameterSpecEstos son los siguientes:p: el primoq: el subprimeg: la base
KeySizeEste parámetro especifica el tamaño de la clave basada en el
pprincipal.KeyLabelEste 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:
RSAKeyHWAttributesEste parámetro incluye los elementos siguientes:
RSAKeyHWAttributes.typeEste elemento debe tener uno de los valores siguientes:KeyHWAttributeValues.PKDSKeyHWAttributeValues.CLEARKeyHWAttributeValues.RETAIN
RSAKeyHWAttributes.usageEste elemento debe tener uno de los valores siguientes:KeyHWAttributeValues.SIGNATUREKeyHWAttributeValues.KEYMANAGEMENT
KeySizeEste parámetro especifica el tamaño de la clave.
KeyLabelSi
RSAKeyHWAttributes.typeno se especifica comoKeyHWAttributeValues.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:
ECHWKeyAttributesEste parámetro incluye los elementos siguientes:
ECHWKeyAttributes.typeEste elemento debe tener uno de los valores siguientes:
KeyHWAttributeValues.PKDSKeyHWAttributeValues.CLEAR
ECHWKeyAttributes.usageEste elemento debe tener uno de los valores siguientes:
KeyHWAttributeValues.SIGNATUREKeyHWAttributeValues.KEYMANAGEMENT
ECParameterSpecEste elemento consta de los siguientes elementos:curve: la curva elípticag: el generador, que también se conoce como punto basen: el orden del generadorgh: el cofactor
StandardNameEste parámetro especifica el nombre estándar de los parámetros de dominio de curva elíptica.
KeySizeEste parámetro especifica el tamaño de la clave.
KeyLabelSi
ECHWKeyAttributes.typeno se especifica comoKeyHWAttributeValues.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.