java.lang.Object javax.crypto.SecretKeyFactory
public class SecretKeyFactory
extends Object
Esta clase representa una fábrica de claves secretas.
Las fábricas clave se utilizan para convertir teclas (claves criptográficas opacas de tipo Key
) dentro especificaciones clave (representaciones transparentes del material clave subyacente) y viceversa. Las fábricas de claves secretas operan solo en claves secretas (simétricas).
Las fábricas de claves son bidireccionales, es decir, permiten construir un objeto clave opaco a partir de una especificación clave determinada (material clave), o recuperar el material clave subyacente de un objeto clave en un formato adecuado.
Los desarrolladores de aplicaciones deben consultar la documentación de su proveedor para averiguar qué especificaciones clave son compatibles con el generateSecret
y getKeySpec
métodos. Por ejemplo, la fábrica de claves secretas DESede (Triple DES) proporcionada por el proveedor “SunJCE” admite DESedeKeySpec
como una representación transparente de claves Triple DES.
Se requiere que cada implementación de la plataforma Java sea compatible con el siguiente estándar SecretKeyFactory
algoritmos:
DESede
Estos algoritmos se describen en el Sección SecretKeyFactory de la Especificación de nombres de algoritmos estándar de seguridad de Java. Consulte la documentación de la versión de su implementación para ver si se admiten otros algoritmos.
- Ya que:
- 1.4
- Ver también:
-
SecretKey
,DESedeKeySpec
,PBEKeySpec
Resumen del constructor
Modificador | Constructor | Descripción |
---|---|---|
protected |
SecretKeyFactory(SecretKeyFactorySpi keyFacSpi, |
Crea un objeto SecretKeyFactory. |
Resumen del método
Modificador y tipo | Método | Descripción |
---|---|---|
SecretKey |
generateSecret(KeySpec keySpec) |
Genera un SecretKey objeto de la especificación de clave proporcionada (material clave). |
String |
getAlgorithm() |
Devuelve el nombre del algoritmo de este SecretKeyFactory objeto. |
static SecretKeyFactory |
getInstance(String algorithm) |
Devuelve un SecretKeyFactory objeto que convierte claves secretas del algoritmo especificado. |
static SecretKeyFactory |
getInstance(String algorithm, |
Devuelve un SecretKeyFactory objeto que convierte claves secretas del algoritmo especificado. |
static SecretKeyFactory |
getInstance(String algorithm, |
Devuelve un SecretKeyFactory objeto que convierte claves secretas del algoritmo especificado. |
KeySpec |
getKeySpec(SecretKey key, |
Devuelve una especificación (material clave) del objeto clave dado en el formato solicitado. |
Provider |
getProvider() |
Devuelve el proveedor de este SecretKeyFactory objeto. |
SecretKey |
translateKey(SecretKey key) |
Traduce un objeto clave, cuyo proveedor puede ser desconocido o potencialmente no confiable, en un objeto clave correspondiente de esta fábrica de claves secretas. |
Métodos declarados en la clase java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Detalles del constructor
SecretKeyFactory
protected SecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)
Crea un objeto SecretKeyFactory.
- Parámetros:
-
keyFacSpi
– el delegado -
provider
– el proveedor -
algorithm
– el algoritmo de clave secreta
Detalles del método
obtener Instancia
public static final SecretKeyFactory getInstance(String algorithm) throws NoSuchAlgorithmException
Devuelve un SecretKeyFactory
objeto que convierte claves secretas del algoritmo especificado.
Este método recorre la lista de proveedores de seguridad registrados, comenzando por el proveedor más preferido. Se devuelve un nuevo objeto SecretKeyFactory que encapsula la implementación de SecretKeyFactorySpi del primer proveedor que admite el algoritmo especificado.
Tenga en cuenta que la lista de proveedores registrados se puede recuperar a través del Security.getProviders()
método.
- Nota de implementación:
- La implementación de referencia de JDK utiliza adicionalmente la
jdk.security.provider.preferred
Security
propiedad para determinar el orden de proveedor preferido para el algoritmo especificado. Esto puede ser diferente al orden de los proveedores devueltos porSecurity.getProviders()
. - Parámetros:
-
algorithm
– el nombre estándar del algoritmo de clave secreta solicitado. Consulte la sección SecretKeyFactory en el Especificación de nombres de algoritmos estándar de seguridad de Java para obtener información sobre los nombres de algoritmos estándar. - Devoluciones:
- el nuevo
SecretKeyFactory
objeto - Lanza:
-
NoSuchAlgorithmException
– si noProvider
apoya unSecretKeyFactorySpi
implementación para el algoritmo especificado -
NullPointerException
– sialgorithm
esnull
- Ver también:
Provider
obtener Instancia
public static final SecretKeyFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Devuelve un SecretKeyFactory
objeto que convierte claves secretas del algoritmo especificado.
Se devuelve un nuevo objeto SecretKeyFactory que encapsula la implementación de SecretKeyFactorySpi del proveedor especificado. El proveedor especificado debe estar registrado en la lista de proveedores de seguridad.
Tenga en cuenta que la lista de proveedores registrados se puede recuperar a través del Security.getProviders()
método.
- Parámetros:
-
algorithm
– el nombre estándar del algoritmo de clave secreta solicitado. Consulte la sección SecretKeyFactory en el Especificación de nombres de algoritmos estándar de seguridad de Java para obtener información sobre los nombres de algoritmos estándar. -
provider
– el nombre del proveedor. - Devoluciones:
- el nuevo
SecretKeyFactory
objeto - Lanza:
-
IllegalArgumentException
– Si elprovider
esnull
o vacio -
NoSuchAlgorithmException
– si unSecretKeyFactorySpi
la implementación para el algoritmo especificado no está disponible en el proveedor especificado -
NoSuchProviderException
– si el proveedor especificado no está registrado en la lista de proveedores de seguridad -
NullPointerException
– sialgorithm
esnull
- Ver también:
Provider
obtener Instancia
public static final SecretKeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Devuelve un SecretKeyFactory
objeto que convierte claves secretas del algoritmo especificado.
Se devuelve un nuevo objeto SecretKeyFactory que encapsula la implementación de SecretKeyFactorySpi del objeto Provider especificado. Tenga en cuenta que el objeto Proveedor especificado no tiene que estar registrado en la lista de proveedores.
- Parámetros:
-
algorithm
– el nombre estándar del algoritmo de clave secreta solicitado. Consulte la sección SecretKeyFactory en el Especificación de nombres de algoritmos estándar de seguridad de Java para obtener información sobre los nombres de algoritmos estándar. -
provider
– el proveedor. - Devoluciones:
- el nuevo
SecretKeyFactory
objeto - Lanza:
-
IllegalArgumentException
– Si elprovider
esnull
-
NoSuchAlgorithmException
– si unSecretKeyFactorySpi
La implementación para el algoritmo especificado no está disponible en elProvider
objeto -
NullPointerException
– sialgorithm
esnull
- Ver también:
Provider
getProvider
public final Provider getProvider()
Devuelve el proveedor de este SecretKeyFactory
objeto.
- Devoluciones:
- el proveedor de esto
SecretKeyFactory
objeto
getAlgorithm
public final String getAlgorithm()
Devuelve el nombre del algoritmo de este SecretKeyFactory
objeto.
Este es el mismo nombre que se especificó en uno de los getInstance
llamadas que crearon esto SecretKeyFactory
objeto.
- Devoluciones:
- el nombre del algoritmo de este
SecretKeyFactory
objeto.
generateSecret
public final SecretKey generateSecret(KeySpec keySpec) throws InvalidKeySpecException
Genera un SecretKey
objeto de la especificación de clave proporcionada (material clave).
- Parámetros:
-
keySpec
– la especificación (material clave) de la clave secreta - Devoluciones:
- la clave secreta
- Lanza:
-
InvalidKeySpecException
– si la especificación de clave dada es inapropiada para que esta fábrica de claves secretas produzca una clave secreta.
getKeySpec
public final KeySpec getKeySpec(SecretKey key, Class<?> keySpec) throws InvalidKeySpecException
Devuelve una especificación (material clave) del objeto clave dado en el formato solicitado.
- Parámetros:
-
key
– la clave -
keySpec
– el formato solicitado en el que se devolverá el material clave - Devoluciones:
- la especificación de la clave subyacente (material clave) en el formato solicitado
- Lanza:
-
InvalidKeySpecException
– si la especificación de clave solicitada es inapropiada para la clave dada (por ejemplo, los algoritmos asociados conkey
ykeySpec
no coinciden, okey
hace referencia a una clave en un dispositivo de hardware criptográfico mientras quekeySpec
es la especificación de una clave basada en software), o la clave dada no se puede tratar (por ejemplo, la clave dada tiene un algoritmo o formato no soportado por esta fábrica de claves secretas).
translateKey
public final SecretKey translateKey(SecretKey key) throws InvalidKeyException
Traduce un objeto clave, cuyo proveedor puede ser desconocido o potencialmente no confiable, en un objeto clave correspondiente de esta fábrica de claves secretas.
- Parámetros:
-
key
– la clave cuyo proveedor es desconocido o no es de confianza - Devoluciones:
- la clave traducida
- Lanza:
-
InvalidKeyException
– si la clave dada no puede ser procesada por esta fábrica de claves secretas.