Algunas aplicaciones requieren un par de claves públicas/privadas. En este procedimiento, podrá crear estos pares de claves y almacenarlos.
Utilice uno de los métodos siguientes.
Las claves basadas en archivos se crean para aplicaciones que leen claves directamente de archivos en el disco. Normalmente, las aplicaciones que utilizan directamente bibliotecas criptográficas OpenSSL requieren que almacene las claves y los certificados de la aplicación en archivos.
% pktool genkeypair keystore=file outkey=key-filename \ [format=der|pem] [keytype=rsa|dsa] [keylen=key-size]
El valor file especifica la ubicación de almacenamiento de tipo archivo para la clave.
Especifica el nombre del archivo donde el par de claves se almacena.
Especifica el formato de codificación del par de claves. La salida der es binaria y la salida pem es ASCII.
Especifica el tipo de par de claves que se puede almacenar en un almacén de claves file. Para obtener definiciones, consulte DSA y RSA.
Especifica la longitud de la clave en bits. El número debe ser divisible por 8. Para determinar los posibles tamaños de clave, utilice el comando cryptoadm list -vm.
Debe completar el Step 1 antes de utilizar este método.
El almacén de claves PKCS #11 se utiliza para almacenar objetos en un dispositivo de hardware. El dispositivo puede ser una tarjeta Sun Crypto Accelerator 6000, un dispositivo de módulo de plataforma de confianza (TPM) o una tarjeta inteligente que se conecta a la estructura criptográfica. PKCS #11 se puede utilizar para almacenar objetos en softtoken, o token basado en software, que almacena los objetos en un subdirectorio privado en el disco. Para obtener más información, consulte la página del comando man pkcs11_softtoken(5).
Puede recuperar el par de claves del almacén de claves mediante una etiqueta que especifique.
% pktool genkeypair label=key-label \ [token=token[:manuf[:serial]]] \ [keytype=rsa|dsa|ec] [curve=ECC-Curve-Name]]\ [keylen=key-size] [listcurves]
Especifica una etiqueta para el par de claves. El par de claves se puede recuperar del almacén de claves por su etiqueta.
Especifica el nombre del token. De manera predeterminada, el nombre del token es Sun Software PKCS#11 softtoken.
Especifica el tipo de par de claves. Para el tipo de curva elíptica (ec), especifica opcionalmente un nombre de curva. Los nombres de curva se muestran como salida a la opción listcurves.
Especifica la longitud de la clave en bits. El número debe ser divisible por 8.
Muestra los nombres de curva elíptica que se pueden utilizar como valores para la opción curve= para un tipo de clave ec.
El almacén de claves NSS es utilizado por servidores que dependen de NSS como interfaz criptográfica primaria.
Debe completar el Step 1 antes de utilizar este método.
% pktool keystore=nss genkeypair label=key-nickname \ [token=token[:manuf[:serial]]] \ [dir=directory-path] [prefix=database-prefix] \ [keytype=rsa|dsa|ec] [curve=ECC-Curve-Name]] \ [keylen=key-size] [listcurves]
El valor nss especifica la ubicación de almacenamiento de tipo NSS para la clave.
Especifica una etiqueta para el par de claves. El par de claves se puede recuperar del almacén de claves por su etiqueta.
Especifica el nombre del token. De manera predeterminada, el token es Sun Software PKCS#11 softtoken.
Especifica la ruta de directorio a la base de datos NSS. De manera predeterminada, el valor de directorio es el directorio actual.
Especifica el prefijo a la base de datos NSS. El valor predeterminado es sin prefijo.
Especifica el tipo de par de claves. Para el tipo de curva elíptica, especifica opcionalmente un nombre de curva. Los nombres de curva se muestran como salida a la opción listcurves.
Especifica la longitud de la clave en bits. El número debe ser divisible por 8.
Muestra los nombres de curva elíptica que se pueden utilizar como valores para la opción curve= para un tipo de clave ec.
Utilice uno de los siguientes comandos, según dónde haya guardado la clave:
% pktool list keystore=file objtype=key infile=key-filename Found n keys. Key #1 - keytype:location (keylen)
$ pktool list objtype=key Enter PIN for keystore: Found n keys. Key #1 - keytype:location (keylen)
% pktool list keystore=nss dir=directory objtype=key
En el siguiente ejemplo, un usuario crea un almacén de claves PKCS #11 por primera vez. Después de determinar los tamaños de clave para los pares de claves RSA, el usuario genera un par de claves para una aplicación. Por último, el usuario verifica que el par de claves se encuentre en el almacén de claves. El usuario nota que la segunda instancia del par de claves RSA se puede almacenar en el hardware. Dado que el usuario no especifica un argumento token, el par de claves se almacena como un Sun Software PKCS#11 softtoken.
# pktool setpin Create new passphrase: Re-enter new passphrase:Retype password Passphrase changed. % cryptoadm list -vm | grep PAIR ... CKM_DSA_KEY_PAIR_GEN 512 3072 . . . . . . . . . X . . . . CKM_RSA_PKCS_KEY_PAIR_GEN 256 8192 . . . . . . . . . X . . . . ... CKM_RSA_PKCS_KEY_PAIR_GEN 256 2048 X . . . . . . . . X . . . . ecc: CKM_EC_KEY_PAIR_GEN,CKM_ECDH1_DERIVE,CKM_ECDSA,CKM_ECDSA_SHA1 % pktool genkeypair label=specialappkeypair keytype=rsa keylen=2048 Enter PIN for Sun Software PKCS#11 softtoken :Type password % pktool list Enter PIN for Sun Software PKCS#11 softtoken :Type password No. Key Type Key Len. Key Label ---------------------------------------------------- Asymmetric public keys: 1 RSA specialappkeypairEjemplo 4-7 Creación de un par de claves que utiliza el algoritmo de curva elíptica
En el siguiente ejemplo, un usuario agrega un par de claves de curva elíptica (ec) al almacén de claves, especifica un nombre de curva y verifica que el par de claves se encuentre en el almacén de claves.
% pktool genkeypair listcurves secp112r1, secp112r2, secp128r1, secp128r2, secp160k1 . . . c2pnb304w1, c2tnb359v1, c2pnb368w1, c2tnb431r1, prime192v2 prime192v3 % pktool genkeypair label=eckeypair keytype=ec curves=c2tnb431r1 % pktool list Enter PIN for Sun Software PKCS#11 softtoken :Type password No. Key Type Key Len. Key Label ---------------------------------------------------- Asymmetric public keys: 1 ECDSA eckeypair