From 8f13081270e415e84625aed33dba78509254f363 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Sat, 13 Aug 2016 15:28:52 -0600 Subject: [PATCH 1/2] add README.md --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..d257b6f --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# le-store-SPEC + +The reference implementation, specification, template, and tests for creating an le-store- strategy. + +The reference implementation is completely in-memory. + +See [Help Wanted: Database Plugins (for saving certs)](https://github.com/Daplie/node-letsencrypt/issues/39) + +API +=== + +``` +* getOptions() +* accounts. + * checkKeypair(opts, cb) + * setKeypair(opts, keypair, cb) + * check(opts, cb) + * set(opts, reg, cb) +* certificates. + * checkKeypair(opts, cb) + * setKeypair(opts, keypair, cb) + * check(opts, cb) + * set(opts, certs, cb) +``` + +Keypairs +-------- + +For convenience, the keypair object will always contain **both** PEM and JWK +versions of the private and/or public keys when being passed to the `*Keypair` functions. + +**set** + +`setKeypair` will always be called with `email` and **all three** forms of the keypair: +`privateKeyPem`, `publicKeyPem`, and `privateKeyJwk`. It's easy to generate `publicKeyJwk` +from `privateKeyJwk` because it is just a copy of the public fields `e` and `n`. + +**check** + +`checkKeypair` may be called with any of `email`, `accountId`, and `keypair` - which will +contain only `publicKeyPem` and `publicKeyJwk`. From b3102ded8dcc0a4e33093d1537c0dc29dd6fb793 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Sat, 13 Aug 2016 15:29:14 -0600 Subject: [PATCH 2/2] update README.md --- README.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/README.md b/README.md index d257b6f..bce2826 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,39 @@ The reference implementation is completely in-memory. See [Help Wanted: Database Plugins (for saving certs)](https://github.com/Daplie/node-letsencrypt/issues/39) +How to create a custom strategy +=============================== + +Let's say there's some new database AwesomeDB that +we want to make a plugin for, here's how we'd start: + +```bash +# First create you repo on github or wherever +# Then clone it +git clone git@github.com:AwesomeDB/le-store-awesome.git + +pushd le-store-awesome + +git pull https://github.com/Daplie/le-store-SPEC.git template + +git push +``` + +Or, if you already have some code and just need to merge in the tests: + +```bash +git pull https://github.com/Daplie/le-store-SPEC.git tests +``` + +Next, Just run the tests + +``` +node tests/basic.js +``` + +Note: you should not modify the tests that come from the tests branch, +but rather create separate files for your own tests. + API ===