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

Constructores
Modificador Constructor Descripción
protected SecretKeyFactory​(SecretKeyFactorySpi keyFacSpi,
Provider provider,
String algorithm)
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,
String provider)
Devuelve un SecretKeyFactory objeto que convierte claves secretas del algoritmo especificado.
static SecretKeyFactory getInstance​(String algorithm,
Provider provider)
Devuelve un SecretKeyFactory objeto que convierte claves secretas del algoritmo especificado.
KeySpec getKeySpec​(SecretKey key,
Class<?> keySpec)
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 por Security.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 no Provider apoya un SecretKeyFactorySpi implementación para el algoritmo especificado
NullPointerException – si algorithm es null
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 el provider es null o vacio
NoSuchAlgorithmException – si un SecretKeyFactorySpi 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 – si algorithm es null
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 el provider es null
NoSuchAlgorithmException – si un SecretKeyFactorySpi La implementación para el algoritmo especificado no está disponible en el Provider objeto
NullPointerException – si algorithm es null
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 con key y keySpec no coinciden, o key hace referencia a una clave en un dispositivo de hardware criptográfico mientras que keySpec 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.