{"push_id":2964499920,"size":1,"distinct_size":1,"ref":"refs/heads/zetlen/use-node-forge","head":"f6e8775c64925e268b3f765c6ad6b25c1be28396","before":"6eb0c16c71593da163a64cde96b68b9c3d2f0385","commits":[{"sha":"f6e8775c64925e268b3f765c6ad6b25c1be28396","author":{"name":"zetlen","email":"accf3c8d9b683705fc6685cf210ca3acddbff0ec@adobe.com"},"message":"refactor(ssl): replace openssl dependency with node-forge\n\nFewer dependencies means better DX and UX! With this change, devcert no\nlonger requires a local installation of `openssl`.\n\nThe node-forge library:\n - implements the TLS standard\n - uses native crypto where available, with only a tiny perf hit\n - Configures keys and certificates using code, rather than external\n config file processing\n - generates PEM files, but also can connect keys, cAs, CSRs, and certs\n   without bouncing off the filesystem\n\nNotes:\n- I had to try many times to get browsers and OSes to verify the chain.\n  Ultimately I succeeded by:\n\n  - Removing the `authorityKeyIdentifier` extension (considered\n  redundant)\n  - Generating serial numbers based on the ASN.1 standard\n  - Removing all subject attributes but commonName\n\n  I hope this remains an acceptable certificate configuration for all\n  needs.\n\n- TODO: This can be additionally refactored to remove some of the\n  filesystem-dependent steps. For instance, you could change the way\n  that child certificate generation accesses the root CA, by reading the\n  PEM from the filesystem only once and then threading the CA cert\n  object through the necessary arguments. This would speed up and\n  simplify the code. I chose not to do it for this round, because it\n  would be too large a change for you to safely integrate.\n\nhore: remove openssl config files","distinct":true,"url":"https://api.github.com/repos/magento-research/devcert/commits/f6e8775c64925e268b3f765c6ad6b25c1be28396"}]}
{"actor":{"display_login":"zetlen"}}