<oembed><type>rich</type><version>1.0</version><author_name>npub17ty4mumkv43w8wtt0xsz2jypck0gvw0j8xrcg6tpea25z2nh7meqf4qgyd</author_name><author_url>https://nostr.ae/npub17ty4mumkv43w8wtt0xsz2jypck0gvw0j8xrcg6tpea25z2nh7meqf4qgyd</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2012-11-26&#xA;📝 Original message:Obviously this LGTM :)&#xA;&#xA;Minor caveat, IMHO we should support all CAs used by the popular&#xA;browsers. This ensures no merchant ever finds that their SSL cert they&#xA;already own is OK for the web but not for Bitcoin. I don&#39;t see a need&#xA;to be stricter here, given all it achieves is signing some data in a&#xA;way linked with a domain name.&#xA;&#xA;X.509 is pretty baroque indeed, for our use cases it&#39;d not be hard to&#xA;do better. In particular, the inability to delegate properly rather&#xA;defeats the benefits of chained certificates. For the payment&#xA;processor case what you really want to do is take your keys, then&#xA;issue a new cert that is specific to signing Bitcoin transactions and&#xA;give that to the payment processor secure in the knowledge that they&#xA;cannot MITM your secure connections. Unfortunately X.509 wasn&#39;t&#xA;designed for the web and thus certificates you buy are marked such&#xA;that they are not allowed to sign for other certs (due to lack of real&#xA;namespace support).&#xA;&#xA;This leads to the idea of redefining the cert chain part of the&#xA;protocol like this:&#xA;&#xA;  repeated bytes x509_chain = 1;&#xA;&#xA;becomes&#xA;&#xA;  message Certificate {&#xA;    enum Type {&#xA;      X509 = 1;&#xA;    }&#xA;    required Type type = 1;&#xA;    required bytes data = 2;&#xA;  }&#xA;&#xA;  repeated Certificate cert_chain = 1;&#xA;&#xA;Then if later we want to introduce our own minimal certificate formats&#xA;which include features we want, we can add new enum types to do so.&#xA;&#xA;Note that if an old client encounters an invoice with a cert type it&#xA;doesn&#39;t recognize, it will abort parsing of the message entirely. So&#xA;the request to download the invoice should probably include a protocol&#xA;version number of some kind so the server knows when it&#39;s safe to use&#xA;new invoice features.</html></oembed>