1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | var fs = require('fs');
|
22 | var utils = require('./utils');
|
23 |
|
24 | 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-+)/;
|
25 | var CERT_PATT = /(-+BEGIN CERTIFICATE-+)(\n\r?|\r\n?)([A-Za-z0-9\+\/\n\r]+\=*)(\n\r?|\r\n?)(-+END CERTIFICATE-+)/;
|
26 |
|
27 | exports.readFromFile = function readFromFile(fileName) {
|
28 |
|
29 | var data;
|
30 | try {
|
31 | data = fs.readFileSync(fileName, 'utf8');
|
32 | } catch(e) {
|
33 | throw new Error('No account information found. Please import credentials using "azure account import <file>".');
|
34 | }
|
35 | return exports.readFromString(data);
|
36 | };
|
37 |
|
38 | exports.readFromString = function readFromString(data) {
|
39 | var ret = {};
|
40 | var matchKey = data.match(KEY_PATT);
|
41 | if (matchKey) {
|
42 | ret.key = matchKey[1] + '\n' + matchKey[3] + '\n' + matchKey[5] + '\n';
|
43 | }
|
44 |
|
45 | var matchCert = data.match(CERT_PATT);
|
46 | if (matchCert) {
|
47 | ret.cert = matchCert[1] + '\n' + matchCert[3] + '\n' + matchCert[5] + '\n';
|
48 | }
|
49 |
|
50 | return ret;
|
51 | };
|
52 |
|
53 | exports.writeToFile = function writeToFile(fileName, keyCertData) {
|
54 | utils.writeFileSyncMode(fileName, exports.writeToString(keyCertData), 'utf8');
|
55 | };
|
56 |
|
57 | exports.writeToString = function writeToString(keyCertData) {
|
58 | return (keyCertData.key || '') + (keyCertData.cert || '');
|
59 | };
|