Elemento keygen

Si no sabes lo que es un elemento o cómo debes usarlo, te recomiendo leer el tutorial "Tags y atributos en HTML" que puedes encontrar en la sección de tutoriales HTML.

Descripción

El elemento keygen representa un campo para la generación de llaves criptográficas. Este elemento es nuevo en HTML5 y ha sido diseñado para ayudar en la generación de llaves usadas en la construcción de certificados firmados digitalmente. La funcionalidad de este elemento es beneficiosa en sistemas de manejo de certificados basados en web.

Básicamente, con este elemento los autores pueden proveer los mecanismos para generar un par de llaves (pública y privada) y enviar la llave pública con el formulario, mientras que la llave privada es guardada en la computadora del usuario. Esto muy probablemente llevará a la generación de un certificado (en el servidor) que el usuario podrá descargar y usar para identificarse cuando sea necesario.

Este elemento puede ser mostrado de muchas formas. Sin embargo, los navegadores comúnmente proveerán controles para configurar la generación de las claves, como por ejemplo, su longitud.

Cuando es enviado con el método GET, este control puede llevar la longitud del URL a valores no soportados. Para evitar inconvenientes, usa el método POST en su lugar.

Este elemento está en proceso de ser removido del estándar. Usar el elemento keygen actualmente es altamente desaconsejable.

Ejemplos

En este ejemplo, estableceremos un formulario (form) con un control keygen usando su configuración por defecto. Cuando el formulario sea enviado, el programa del lado servidor recibirá la llave pública únicamente. La llave privada será guardada en la computadora del usuario.

<form action="../../form-result.php" method="post" target="_blank">
  <p>
    Generar un par de llaves pública/privada:
    <keygen name="llavepublica">
    <input type="submit" value="Generar">
  </p>
</form>

Generar un par de llaves pública/privada:

Atributos

Atributos específicos

autofocus

Un valor booleano que instruye al navegador a establecer el enfoque sobre este control cuando el documento termina de cargarse o cuando el cuadro de diálogo (dialog) donde el control se encuentra es mostrado. Si el atributo tiene el valor "autofocus" o la cadena vacía (""), o si simplemente está presente, el control debería obtener el enfoque tan pronto como sea posible, luego de que la página o cuadro de diálogo hayan sido cargados.

Ejemplo

<keygen name="llavepublica" autofocus>

challenge

Una cadena que representa una contraseña secreta que será compartida entre el usuario y el servidor. Aunque esta cadena no será usada en la generación del certificado, será empaquetada y enviada al servidor durante el envío del formulario.

La interpretación de las contraseñas challenge está pensada para ser especificada por los emisores de certificados. Ninguna interpretación particular es requerida.

Ejemplo

<form action="../../form-result.php" method="post" target="_blank">
  <p>
    Generar el par de llaves:
    <keygen name="llavepublica" challenge="123456">
    <input type="submit" value="Generar">
  </p>
</form>

Generar el par de llaves:

disabled

Un valor booleano que indica si el control se encuentra deshabilitado o no. Si el atributo toma el valor "disabled" o la cadena vacía (""), o si está simplemente presente, el control estará deshabilitado.

Los controles deshabilitados son representados en color gris (si son visibles), son impedidos para interactuar con el usuario y, lo más importante, sus valores (si lo tienen) no son enviados cuando el formulario es despachado.

Ejemplo

<form action="../../form-result.php" method="post" target="_blank">
  <p>
    Generar llaves:
    <keygen name="llavepublica" disabled>
    <input type="submit" value="Generar">
  </p>
</form>

Generar llaves:

form

El valor del atributo id del formulario con el que este control está asociado.

Este atributo es nuevo en HTML5 y ayuda a definir la pertenencia de los controles en formularios anidados o distantes.

Ejemplo

<p>Generación de llaves:</p>
<p><keygen name="llavepublica" form="formulario1"></p>
<form id="formulario1" action="../../form-result.php" method="post" target="_blank">
  <p><input type="submit" value="Generar llaves"></p>
</form>

Generación de llaves:

keytype

El algoritmo de encriptación a ser usado en la generación de llaves. Actualmente, el único valor posible (y predeterminado) es rsa, el cual instruye a los navegadores a usar el algoritmo dessarrollado por RSA Data Security.

Los navegadores no están obligados a soportar un método de encriptación en absoluto. Consecuentemente, algunos navegadores han elegido no soportar la encriptación de llaves. Los autores no deberían confiar en las características de este elemento hasta que el soporte crezca.

Ejemplo

<keygen name="llavepublica" keytype="rsa">

name

Un nombre para el control. Este nombre será enviado por el navegador al agente procesador, emparejado con la llave pública generada. Ambos valores juntos conformarán un par nombre-valor que será utilizado para procesar la información del formulario.

Actualmente, el valor isindex, antiguamente utilizado de manera especial por algunos navegadores e incluido en el estándar HTML, no está permitido en este atributo.

Ejemplo

<form action="../../form-result.php" method="post" target="_blank">
  <p>
    Generar llaves:
    <keygen name="llave-publica">
    <input type="submit" value="Generar">
  </p>
</form>

Generar llaves:

Atributos globales

Para más información acerca de los atributos globales refiérete a esta lista de atributos gloables en HTML5.

Eventos

Eventos globales

Para más información acerca de los eventos globales refiérete a esta lista de eventos globales en HTML5.