UNPKG

pkgcloud

Version:

An infrastructure-as-a-service agnostic cloud library for node.js

44 lines (38 loc) 1.52 kB
/** * 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; };