<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 28, 2015 at 3:33 PM, Rob Stradling <span dir="ltr"><<a href="mailto:rob.stradling@comodo.com" target="_blank">rob.stradling@comodo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Perhaps, with your W3C hat on, you know more about Microsoft's plans than I do.  However, if you don't mind, I'd like to hear from Microsoft about whether or not Edge's non-support for certificate enrolment is deliberate.</blockquote><div><br></div><div>No W3C hat required - from one of the Microsoft IE/Edge PMs - <a href="https://groups.google.com/a/chromium.org/d/msg/blink-dev/pX5NbX0Xack/UdqJdDsFAgAJ">https://groups.google.com/a/chromium.org/d/msg/blink-dev/pX5NbX0Xack/UdqJdDsFAgAJ</a></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">If that's the case, then I suppose the simplest solution is for the CA to generate the keypair, then issue the cert, and then send a password-encrypted PKCS#12 file to the user.</blockquote><div><br></div><div>Or you can use WebCrypto to generate a keypair (which is constrained to that origin), perform whatever proof of possession dance is required (e.g. signing a CSR; again, using WebCrypto), submiting the CSR to the CA and using WebCrypto to 'export' the key from JavaScript into a PKCS#12 blob URL, which could then be invoked as a download.</div><div><br></div><div>The benefit to this is that the CA never need touch the key material. It could live entirely on the client, avoiding any pesky escrow/generation concerns. While a CA could, theoretically, access that private key (e.g. by serving JS that caused WebCrypto to post them the exported private key), it's no different a threat-model from a CA using a native enrollment technology to escrow their key.</div></div></div></div>