Create index.js
This commit is contained in:
		
							parent
							
								
									5a5848614b
								
							
						
					
					
						commit
						bbf5168fb7
					
				
							
								
								
									
										97
									
								
								index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								index.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,97 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
module.exports.create = function (options) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  var defaults = {};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  var accounts = {
 | 
			
		||||
    checkKeypair: function (opts, cb) {
 | 
			
		||||
      // opts.email // optional
 | 
			
		||||
      // opts.accountId // optional
 | 
			
		||||
      
 | 
			
		||||
      // check db and return null or keypair object with one of privateKeyPem or privateKeyJwk
 | 
			
		||||
      cb(null, { privateKeyPem: '...', privateKeyJwk: {} });
 | 
			
		||||
    }
 | 
			
		||||
  , setKeypair: function (opts, keypair, cb) {
 | 
			
		||||
      // opts.email // optional
 | 
			
		||||
      // opts.accountId // optional
 | 
			
		||||
      
 | 
			
		||||
      // SAVE to db (as PEM and/or JWK) and index each domain in domains to this keypair
 | 
			
		||||
      cb(null, keypair);
 | 
			
		||||
    }
 | 
			
		||||
  , check: function (opts, cb) {
 | 
			
		||||
      // opts.email // optional
 | 
			
		||||
      // opts.accountId // optional
 | 
			
		||||
      // opts.domains // optional
 | 
			
		||||
      
 | 
			
		||||
      // return account from db if it exists, otherwise null
 | 
			
		||||
      cb(null, { id: '...', keypair: { privateKeyJwk: {} }, domains: [] });
 | 
			
		||||
    }
 | 
			
		||||
  , set: function (opts, reg, cb) {
 | 
			
		||||
      // opts.email
 | 
			
		||||
      // reg.keypair
 | 
			
		||||
      // reg.receipt // response from acme server
 | 
			
		||||
      
 | 
			
		||||
      
 | 
			
		||||
      cb(null, { id: '...', email: opts.email, keypair: reg.keypair, receipt: reg.receipt });
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  var certificates = {
 | 
			
		||||
    checkKeypair: function (opts, cb) {
 | 
			
		||||
      // opts.domains
 | 
			
		||||
      
 | 
			
		||||
      // check db and return null or keypair object with one of privateKeyPem or privateKeyJwk
 | 
			
		||||
      cb(null, { privateKeyPem: '...', privateKeyJwk: {} });
 | 
			
		||||
    }
 | 
			
		||||
  , setKeypair: function (opts, keypair, cb) {
 | 
			
		||||
      // opts.domains
 | 
			
		||||
      
 | 
			
		||||
      // SAVE to db (as PEM and/or JWK) and index each domain in domains to this keypair
 | 
			
		||||
      cb(null, keypair);
 | 
			
		||||
    }
 | 
			
		||||
  , check: function (opts, cb) {
 | 
			
		||||
      // You will be provided one of these (which should be tried in this order)
 | 
			
		||||
      // opts.domains
 | 
			
		||||
      // opts.email // optional
 | 
			
		||||
      // opts.accountId // optional
 | 
			
		||||
      
 | 
			
		||||
      // return certificate PEMs from db if they exist, otherwise null
 | 
			
		||||
      // optionally include expiresAt and issuedAt, if they are known exactly
 | 
			
		||||
      // (otherwise they will be read from the cert itself later)
 | 
			
		||||
      cb(null, { privkey: 'PEM', cert: 'PEM', chain: 'PEM', domains: [], accountId: '...' });
 | 
			
		||||
    }
 | 
			
		||||
  , set: function (opts, pems, cb) {
 | 
			
		||||
      // opts.domains
 | 
			
		||||
      // opts.email // optional
 | 
			
		||||
      // opts.accountId // optional
 | 
			
		||||
      
 | 
			
		||||
      // pems.privkey
 | 
			
		||||
      // pems.cert
 | 
			
		||||
      // pems.chain
 | 
			
		||||
      
 | 
			
		||||
      // SAVE to the database, index the email address, the accountId, and alias the domains
 | 
			
		||||
      cb(null, pems);
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
    getOptions: function () {
 | 
			
		||||
      // merge options with default settings and then return them
 | 
			
		||||
      return options;
 | 
			
		||||
    }
 | 
			
		||||
  , accounts: accounts
 | 
			
		||||
  , certificates: certificates
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user