Skip to content

Commit 030b135

Browse files
committed
Refactor
1 parent 0318bb0 commit 030b135

File tree

4 files changed

+36
-10
lines changed

4 files changed

+36
-10
lines changed

README.md

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,27 @@
1-
# node-simple-keystore
2-
Simple keystore for Node.js
1+
# Simple filesystem based keystore for Node.js
2+
3+
Simple filesystem keystore implementation
4+
5+
# Usage
6+
7+
```js
8+
// initializing keystore
9+
const debugNamePrefix = 'myproject' // name prefix used for the debug module
10+
const baseDir = <directory containing key files>
11+
const refreshIntervalMillis = 30 * 1000 // 30 secs
12+
const signingKeyPassphrases = { // an object containing passphrases for private keys
13+
'key_id_1': 'passphrase1',
14+
'key_id_2': 'passphrase2'
15+
}
16+
const keystore = require('@vanioinformatika/simple-keystore') (
17+
debugNamePrefix, baseDir, refreshIntervalMillis, signingKeyPassphrases
18+
)
19+
20+
...
21+
22+
// publishing public keys with express.js
23+
router.route('/certs').get((req, res) => {
24+
const certificateList = keystore.fny.getAllCertificatesAsJWKS()
25+
res.status(HttpStatus.OK).json({keys: certificateList})
26+
})
27+
```

lib/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
const { KeystoreError, PrivateKeyNotFoundError, CertificateNotFoundError } = require('./errors')
22

3-
module.exports = (debugName, baseDir, signingKeyPassphrases) => {
4-
const keystoreReaderFs = require('./keystore.reader.fs')(baseDir)
3+
module.exports = (debugNamePrefix, baseDir, refreshIntervalMillis, signingKeyPassphrases) => {
4+
const keystoreReader = require('./keystore.reader.fs')(baseDir)
55
const keystore = require('./keystore')(
6-
debugName, signingKeyPassphrases, keystoreReaderFs, 5 * 60 * 1000
6+
debugNamePrefix, signingKeyPassphrases, keystoreReader, refreshIntervalMillis
77
)
88
return {
99
getCurrentSigningKeyId: keystore.getCurrentSigningKeyId,

lib/keystore.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,14 @@ const { PrivateKeyNotFoundError, CertificateNotFoundError } = require('./errors'
3030

3131
/**
3232
* Creates a new keystore service
33+
* @param {string} debugNamePrefix Name prefix used for the debug module
3334
* @param {Object} signingKeyPassphrases Stores passphrases for each signing keys. Key: key id, value: passphrase
3435
* @param {KeystoreService~keystoreReaderCallback} keystoreReader Keystore reader callback (sync or async)
3536
* @param {integer} refreshInterval Interval of the keystore refresh [millisec]
3637
*/
37-
module.exports = (debugName, signingKeyPassphrases, keystoreReader, refreshInterval) => {
38+
module.exports = (debugNamePrefix, signingKeyPassphrases, keystoreReader, refreshInterval) => {
3839

39-
const debug = require('debug')(debugName)
40+
const debug = require('debug')(debugNamePrefix + ':keystore')
4041

4142
/** The current signing key ID */
4243
let currentSigningKeyId

lib/keystore.reader.fs.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ const verifySigningChainAsync = Promise.promisify(pem.verifySigningChain)
1414

1515
/**
1616
* Creates a keystore reader function
17-
* @alias keystoreReaderFactory
17+
* @param {string} debugNamePrefix Name prefix used for the debug module
1818
* @param {string} baseDir The keystore base directory
1919
* @return {keystoreReaderFactory~readKeys} A function to (re)load private keys and certificates
2020
*/
21-
module.exports = function (debugName, baseDir) {
21+
module.exports = function (debugNamePrefix, baseDir) {
2222
//
23-
const debug = require('debug')(`${debugName}:reader.fs`)
23+
const debug = require('debug')(debugNamePrefix + ':keystore.reader')
2424
//
2525
const rootCACert = fs.readFileSync(path.join(baseDir, `rootCA.cert.pem`))
2626
debug('Root CA cert loaded: ' + rootCACert)

0 commit comments

Comments
 (0)