pkgcloud
Version:
An infrastructure-as-a-service agnostic cloud library for node.js
44 lines (38 loc) • 1.52 kB
JavaScript
/**
* Copyright (c) Microsoft. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Functions to work with key and certificate files
*/
var fs = require('fs');
var KEY_PATT = /(-+BEGIN RSA PRIVATE KEY-+)(\n\r?|\r\n?)([A-Za-z0-9\+\/\n\r]+\=*)(\n\r?|\r\n?)(-+END RSA PRIVATE KEY-+)/;
var CERT_PATT = /(-+BEGIN CERTIFICATE-+)(\n\r?|\r\n?)([A-Za-z0-9\+\/\n\r]+\=*)(\n\r?|\r\n?)(-+END CERTIFICATE-+)/;
exports.readFromFile = function readFromFile(fileName) {
// other parameters are optional
try {
var data = fs.readFileSync(fileName, 'utf8');
} catch(e) {
throw new Error('Management certificate. Please set managementCertificate path in pkgcloud config file".');
}
var ret = {};
var matchKey = data.match(KEY_PATT);
if (matchKey) {
ret.key = matchKey[1] + '\n' + matchKey[3] + '\n' + matchKey[5] + '\n';
}
var matchCert = data.match(CERT_PATT);
if (matchCert) {
ret.cert = matchCert[1] + '\n' + matchCert[3] + '\n' + matchCert[5] + '\n';
}
return ret;
};