HTML keygen: Main Tips
- The HTML 
<keygen>element generated a private and public key pair, which was used while submitting an HTML <form>. keygenHTML usually had attributes such asautofocus,challenge,disabled, andform.- In HTML5, 
keygenis 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>.
<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.
<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.
<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.
<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.
<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.
<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).
<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>