The new tag is:
<KEYGEN NAME="name" CHALLENGE="challenge string">
The KEYGEN tag is only valid within an HTML form. It will cause some sort of selection to be presented to the user for selecting key size. The UI for the selection may be a menu, radio buttons, or possibly something else. The Navigator presents several possible key sizes. Currently the Export version will only allow 512 bit, while the US version will give the user the option of 512 bit, 768 bit, and 1024 bit.
When the submit button is pressed, a key pair of the selected size is generated. The private key is encrypted and stored in the local key database.
PublicKeyAndChallenge ::= SEQUENCE {
spki SubjectPublicKeyInfo,
challenge IA5STRING
}
SignedPublicKeyAndChallenge ::= SEQUENCE {
publicKeyAndChallenge PublicKeyAndChallenge,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING
}
The public key and challenge string are DER encoded as PublicKeyAndChallenge,
and then digitally signed with the private key to produce a SignedPublicKeyAndChallenge.
The SignedPublicKeyAndChallenge is base64 encoded, and the ascii data is
finally submitted to the server as the value of a form name/value pair,
where the name is name as specified by the
NAME= attribute
of the KEYGEN tag. If no challenge string is provided, then it
will be encoded as a IA5STRING of length zero.
Here is an example form submission as it would be delivered to a cgi program by the http server:
commonname=John+Doe&email=doe@foo.com&org=Foobar+Computing+Corp.&orgunit=Bureau+of+Bureaucracy&locality=Anytown&state=California&country=US&key=MIHFMHEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAnX0TILJrOMUue%2BPtwBRE6XfV%0AWtKQbsshxk5ZhcUwcwyvcnIq9b82QhJdoACdD34rqfCAIND46fXKQUnb0mvKzQID%0AAQABFhFNb3ppbGxhSXNNeUZyaWVuZDANBgkqhkiG9w0BAQQFAANBAAKv2Eex2n%2FS%0Ar%2F7iJNroWlSzSMtTiQTEB%2BADWHGj9u1xrUrOilq%2Fo2cuQxIfZcNZkYAkWP4DubqW%0Ai0%2F%2FrgBvmco%3D
For more infomation on downloading certificates into Netscape Navigator in response to the <KEYGEN> tag, please see the document Netscape Certificate Download Specification.