PFX: How Not to Design a Crypto Protocol/Standard (1998)
cs.auckland.ac.nz
cs.auckland.ac.nz
I was on the Netscape side of the house.
I love when this article pops up.
I learned a lot about ASN1and BER/DER coding in the process.
I'd be curious at why things like "Encode these as bit strings." came about?
I also recall trying to implement some of the nebulous things and it was painful. The code for encoding/deciding der/BEr was hand rolled.
I never understood why people go to issuing with new private keys when an existing Certificate can be used as a CSR. Shiploads of process would be simpler if you kept the same private key until it was clear you needed a new one, which is much rarer than people think, in these days of keystores, yubikeys and keychain managers and long RSA keys.
I wish it was the fabric of routine Unix cryptography and not openssl, at this stage in both codebase's life. It's smaller. That alone, LOC to understand, is huge.
There's stuff it can't do, hasn't been added like ARM optimised code, which is a shame. Maybe one day.
CAs can do whatever magic they want here†, but, they probably shouldn't.
If you're comfortable keeping the same keys, which, sure, in some situations is fine (although a loss of agility can hurt you if you didn't understand what you were doing and then have to change keys unexpectedly) you can use the same CSR over and over to apply for the new certificates.
† There are a bunch of rules, but, not relevant to this particular issue.
Look I agree fundamentally, a Cert isn't a CSR. But it has the essential qualities, the critical components of the TBS which you needed to do the S part of the TB. TB | !TB is sometimes the question, in as much as policy is in the CSR, why they asked to be signed, what additional data flows including nonces and proofs of possession, what they asked for, distinct from what was signed over. But to validate the private keys use under a new CA? You don't need it. Should you? Well that's a policy question. If you were the original CA or RA you have reasonable confidence in why you need to do this and all the proofs you need regarding validity. Begs the question why you don't have the CSR, sure.
If you aren't in the original certifying roles then gaining confidence in the cert you're resigning is pretty important and the costs here might be less than rekeying assuming a CSR isn't to hand.
Ha, how the times have changed. I'm glad we've learned that forcing US ASCII on everyone just for programmers' ease is a bad idea, especially for an international standard. Of course the Unicode standard used for PFX is a rather obscure one, but at least it's Unicode...
Wait, that's the proper way to design standards.