On Jan 6, 2009, at 4:40 AM, Ian Hickson wrote:


Over the years, several people (most of them bcc'ed) have asked for HTML5 to include a definition of <keygen>. Some have even gone as far as finding
documentation on the element -- thank you.

As I understand it based on the documentation, <keygen> basically
generates a public/private asymmetric cryptographic key pair, and then
sends the public component as its form value.

Unfortunately, this seems completely and utterly useless, as at no point does there seem to be any way to ever use the private component either for signing or for decrypting anything, nor does there appear to be a way to
use the certificate for authentication.

Without further information along these lines describing how to actually make practical use of the element, I do not intend to document <keygen> in the HTML5 specification. If anyone can fill in these holes that would be
very helpful.

In the case of Safari, we store the generated private key in the Keychain, and sites using <keygen> typically respond with a signed certificate, which is downloaded and automatically added to the Keychain. Depending on the valid purposes of the key, users can then do the following automatically:

1) Browse to SSL sites that require client-side certificates for authentication, in Safari. 2) Send email with strong authentication via a cryptographic signature, in Mail. 3) Receive encrypted email from users who have received a copy of their public key, in Mail.

I imagine other browsers store the private key and received signed certificate in similar ways.

This is certainly a useful feature, and we added it at the request of both end users and CAs.

Regards,
Maciej

Reply via email to