public class KeyStoreManager extends AbstractKeyStoreManager
IDocument document = new FileDocument(new File ("/documento.txt"));
KeyStoreManager manager = new KeyStoreManager (new File ("/keystores/ks.pk12"), "1234");
String aliases = manager.getAliasNamesList();
for (int i=0;i
System.out.println ("Certificate: " + manager.getCertificate(aliases[i]));
System.out.println ("Firma: " + manager.signDocument(document, aliases[i])); // Firma con la clave privada del alias
}
STORE_TYPE_APPLE, STORE_TYPE_CA_WINDOWS, STORE_TYPE_JKS, STORE_TYPE_MOZILLA, STORE_TYPE_PERSONAL_WINDOWS, STORE_TYPE_PKCS12
SELFSIGNED_CERTIFICATE_DN, SUN_PROVIDER_PREFIX
arangiTemporalFolder, CRYPTOGRAPHIC_PROVIDER, CRYPTOGRAPHIC_PROVIDER_NAME, DEFAULT_HASHING_ALGORITHM, DEFAULT_SIGNING_ALGORITHM, NUM_RETRIES
Constructor and Description |
---|
KeyStoreManager(java.io.File ksFile,
java.lang.String pin)
Inicializa un gestor de almacenes de claves software.
|
KeyStoreManager(java.io.InputStream is,
java.lang.String pin)
Inicializa un gestor de almacenes de claves software mediante un stream de lectura.
|
Modifier and Type | Method and Description |
---|---|
byte[] |
changeToJks()
Cambia el formato a JKS.
|
byte[] |
changeToPkcs12()
Cambia el formato a PKCS#12.
|
void |
close()
Si el cierre se produce en un keystore en memoria, todos los cambios se perderán a no ser
que se haya persistido antes en disco.
|
static KeyStoreManager |
getEmptyKeyStore(java.lang.String storeType,
java.lang.String pin)
Crea un fichero PKCS#12 vacío
|
static java.lang.String |
getP12Base64(java.security.KeyPair rsaKeys,
java.security.cert.X509Certificate certificate,
java.lang.String alias,
java.lang.String pin)
Crea un fichero PKCS#12 que contiene en un alias el certificado y el par de claves
que se pasan como parámetro.
|
void |
importAliasFromKeystore(java.io.InputStream is,
java.lang.String password,
java.lang.String labelOrigen,
java.lang.String labelDestino)
Importa los elementos bajo el labelOrigen (certificado y/o clave privada) a
la etiqueta labelDestino.
|
void |
initialize() |
boolean |
isAliasFree(java.lang.String alias)
Indica si existen objetos con cierto alias
|
static void |
main(java.lang.String[] args) |
void |
save(java.io.File file)
Guarda el keystore con el que se está trabajando en disco.
|
void |
save(java.io.OutputStream out)
Guarda el keystore con el que se está trabajando en un stream de salida.
|
void |
saveToJks(java.io.File destination)
Guarda en formato JKS el keystore que se está tratando.
|
void |
saveToPkcs12(java.io.File destination)
Guarda en formato PKCS#12 el keystore que se está tratando.
|
changeAlias, changePin, clear, decrypt, deleteObjects, deletePrivateKey, encrypt, generateKeyPair, generateKeyPair, generatePKCS10, getAliasNamesList, getCertificate, getCertificates, getKeyStore, getKeyStoreType, getPrivateKey, getPrivateKey, getPublicKey, importAliasFromKeystore, importCertificate, importCertificate, importFromKeystore, signBytesHash, signBytesHash, signDocument, signDocument, signDocument, signDocument
decryptWithSessionKey, encrypt, encrypt, encryptWithSessionKey, encryptWithSessionKey
getArangiTemporalFolder, getCryptographicProvider, saveTemporalFile, saveToArangiTemporalFolder
public KeyStoreManager(java.io.File ksFile, java.lang.String pin) throws DeviceNotFoundException, ClosingStreamException, OpeningDeviceException, IncorrectPINException
ksFile
- Fichero keystore (PKCS#12 o JKS)pin
- PIN del dispositivoDeviceNotFoundException
- El fichero no existeClosingStreamException
- No se ha podido cerrar correctamente el stream de lectura
del ficheroOpeningDeviceException
- Error no controlado abriendo el dispositivoIncorrectPINException
- El PIN proporcionado para abrir el dispositivo no es correctopublic KeyStoreManager(java.io.InputStream is, java.lang.String pin) throws DeviceNotFoundException, ReadingStreamException, OpeningDeviceException, IncorrectPINException
is
- Stream de lectura al keystore (PKCS#12 o JKS)pin
- PIN del dispositivoDeviceNotFoundException
- El stream de lectura pasado como parámetro es nuloReadingStreamException
- Error leyendo el stream de lecturaOpeningDeviceException
- Error no controlado abriendo el dispositivoIncorrectPINException
- El PIN proporcionado para abrir el dispositivo no es correctopublic void close()
close
in class DeviceManager
public void importAliasFromKeystore(java.io.InputStream is, java.lang.String password, java.lang.String labelOrigen, java.lang.String labelDestino) throws DeviceNotFoundException, ReadingStreamException, AliasNotFoundException, LoadingObjectException, SavingObjectException, OpeningDeviceException, IncorrectPINException
DeviceManager
importAliasFromKeystore
in class DeviceManager
is
- Stream de lectura para obtener el almacén de claves (JKS o PKCS#12)password
- Contraseña del almacén de claveslabelOrigen
- Etiqueta donde se encuentra la información a importar en el
almacén de claves origen. Si tiene valor nulo se importan todas las etiquetas.labelDestino
- Etiqueta donde se importará la información en el almacén de
claves destino. Si labelOrigen es nulo este parámetro no se utilizará. Si
labelOrigen no es nulo pero este parámetro sí, la información se guardará bajo
la etiqueta labelOrigen (o su nombre alternativo si la etiqueta labelOrigen ya
existe en el almacén de claves destino).DeviceNotFoundException
- El stream de lectura es nuloReadingStreamException
- No ha sido posible leer el stream de lecturaAliasNotFoundException
- El alias 'labelOrigen' no existe en el keystore
origenLoadingObjectException
- Se ha producido un error al asociar una clave y
un certificado en el almacen de claves destinoSavingObjectException
- No se pueden guardar los objetos en el dispositivo
destinoOpeningDeviceException
- Error no controlado abriendo el dispositivoIncorrectPINException
- El PIN proporcionado para abrir el dispositivo no es correctopublic boolean isAliasFree(java.lang.String alias)
DeviceManager
isAliasFree
in class AbstractKeyStoreManager
public static java.lang.String getP12Base64(java.security.KeyPair rsaKeys, java.security.cert.X509Certificate certificate, java.lang.String alias, java.lang.String pin) throws java.lang.Exception
rsaKeys
- Par de claves o null si sólo se quiere añadir el certificadocertificate
- Certificadoalias
- Alias donde se guardará el certificado y el par de clavespin
- Contraseña del keystorejava.lang.Exception
- Excepciones tratando y serializando el keystorepublic static KeyStoreManager getEmptyKeyStore(java.lang.String storeType, java.lang.String pin) throws OpeningDeviceException
storeType
- Tipo de keystore (AbstractKeyStoreManager.STORE_TYPE_JKS
o AbstractKeyStoreManager.STORE_TYPE_PKCS12
)pin
- Contraseña del keystoreOpeningDeviceException
- Excepciones creando y serializando el keystorepublic void saveToPkcs12(java.io.File destination) throws SaveDeviceException, LoadingObjectException
destination
- Fichero destinoSaveDeviceException
- No es posible escribir en el fichero o no es posible
guardar alguno de los elementos del dispositivoSaveDeviceException
- Error guardando el dispositivo en fichero.LoadingObjectException
- No se pueden cargar ciertos elementos del almacén de
claves origen para pasarlos al destinopublic void saveToJks(java.io.File destination) throws SaveDeviceException, LoadingObjectException
destination
- Fichero destinoSaveDeviceException
- No es posible escribir en el fichero o no es posible
guardar alguno de los elementos del dispositivoSaveDeviceException
- Error guardando el dispositivo en fichero.LoadingObjectException
- No se pueden cargar ciertos elementos del almacén de
claves origen para pasarlos al destinopublic byte[] changeToPkcs12() throws SaveDeviceException, LoadingObjectException
SaveDeviceException
- No es posible escribir en el fichero o no es posible
guardar alguno de los elementos del dispositivoSaveDeviceException
- Error guardando el dispositivo en fichero.LoadingObjectException
- No se pueden cargar ciertos elementos del almacén de
claves origen para pasarlos al destinopublic byte[] changeToJks() throws SaveDeviceException, LoadingObjectException
SaveDeviceException
- No es posible escribir en el fichero o no es posible
guardar alguno de los elementos del dispositivoSaveDeviceException
- Error guardando el dispositivo en fichero.LoadingObjectException
- No se pueden cargar ciertos elementos del almacén de
claves origen para pasarlos al destinopublic void save(java.io.OutputStream out) throws SaveDeviceException
out
- Stream de salida donde se guardará el keystoreSaveDeviceException
- No es posible escribir en el stream de salida o no es posible
guardar alguno de los elementos del dispositivopublic void save(java.io.File file) throws SaveDeviceException
file
- Fichero donde se guardará el keystoreSaveDeviceException
- No es posible escribir en el fichero o no es posible
guardar alguno de los elementos del dispositivopublic void initialize() throws OpeningDeviceException, IncorrectPINException
initialize
in class AbstractKeyStoreManager
OpeningDeviceException
IncorrectPINException
public static void main(java.lang.String[] args)
Copyright © 2018 Agencia de Tecnología y Certificación Electrónica. All Rights Reserved.