Code has been added to clipboard!

HTML keygen Tag

Reading time 2 min
Published Jun 29, 2017
Updated Oct 2, 2019

HTML keygen: Main Tips

  • The HTML <keygen> element generated a private and public key pair, which was used while submitting an HTML <form>.
  • keygen HTML usually had attributes such as autofocus, challenge, disabled, and form.
  • In HTML5, keygen is no longer supported.

keygen Explained

After HTML <keygen> created a public key, it was sent to a web server along with the other form inputs. The private key was stored locally. Web browsers used these keys to generate a certificate for secure data communication between a web browser and a web server.

Note: the functionality of <keygen> in HTML depended on the web browser and the corresponding web server program.

The example below defines a key-pair used while submitting an HTML <form>.

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form">
  <input type="submit" value="Login">
</form>

Attributes for keygen

autofocus

It sets focus to the element after a web page loads.

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form" autofocus>
  <input type="submit" value="Login">
</form>

challenge

It defines a challenge string for validation on a web server.

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form" challenge="staff_login">
  <input type="submit" value="Login" >
</form>

disabled

It sets the element disabled.

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form" disabled>
  <input type="submit" value="Login">
</form>

form

It defines a space separated list of form ID's.

Example
<form id="user_login" action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form" form="user_login">
  <input type="submit" value="Login">
</form>

keytype

It defines the type of algorithm to be used for key generation.

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form" keytype="dsa">
  <input type="submit" value="Login">
</form>

name

It defines a name for the element (it is a required attribute).

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form">
  <input type="submit" value="Login">
</form>

Browser support

Chrome
All
Edge
All
Firefox
1+
IE
-
Opera
3+
Safari
1.2+

Mobile browser support

Chrome
All
Firefox
4+
Opera
-
Safari
-