## Generar Claves

Antes de firmar el fichero Contract.jar que contiene el contrato, necesitamos generar las claves, si todavía no las tenemos disponibles. La clave privada es necesaria para firmar el fichero JAR, y la correspondiente clave pública es necsaria para que el receptor del contrato pueda verificar la firma.

Esta lección asume que no tenemos dichas claves. Vamos a crear un keystore llamado stanstore y crear una entrada con una pareja de claves pública/privada recien generadas (con la clave pública en un certificado).

Ahora imaginemos que somos Stan Smith y que trabajamos en el departamente leal de la corporación XYZ. Tecleamos lo siguiente en nuesta ventana de comandos para crear un keystore llamado stanstore y para generar las claves para Stan Smith:

    keytool -genkey -alias signLegal -keystore stanstore

Se nos pedirá que introduzcamos la password del keystore, nuestra información de nombre distinguido, y las password de la clave. Aquí tenemos las preguntas, la parte en negrita indica lo que tenemo que teclear:

    Enter keystore password:  balloon53
    What is your first and last name?
      [Unknown]:  Stan Smith
    What is the name of your organizational unit?
      [Unknown]:  Legal
    What is the name of your organization?
      [Unknown]:  XYZ
    What is the name of your City or Locality?
      [Unknown]:  New York
    What is the name of your State or Province?
      [Unknown]:  NY
    What is the two-letter country code for this unit?
      [Unknown]:  US
    Is <CN=Stan Smith, OU=Legal, O=XYZ, L=New York,
           ST=NY, C=US> correct?
      [no]:  y

    Enter key password for
            (RETURN if same as keystore password):  cat876

El coamndo keytool anterior crea el keustore llamado stanstore en el mismo directorio en el que se ejecuta el comando (asumiendo que el keystore especificado no existía) y le asigna la password balloon53. El comando genera una pareja de claves pública/privada para la entidad cuyo nombre distinguido tiene el nombre común de Stan Smith y una unidad organizativa de Legal.

El certificado auto-firmado creado incluye la clave pública y la información del nombre distinguido. (El nombre distinguido que suministramos se usará en el campo "subject" en el certificado). Este certificado será válido durante 90 días, el periodo por defecto de validez si no especificamos una opción -validity. El certificado está asociado con la clave privada en una entrada del keystore referida por el alias signLegal. La clave privada tiene asignada la password car876.

Ozito