UNPKG

@grpc/grpc-js

Version:

gRPC Library for Node - pure JS implementation

81 lines 2.83 kB
"use strict"; /* * Copyright 2019 gRPC authors. * * 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. * */ Object.defineProperty(exports, "__esModule", { value: true }); exports.ServerCredentials = void 0; const tls_helpers_1 = require("./tls-helpers"); class ServerCredentials { static createInsecure() { return new InsecureServerCredentials(); } static createSsl(rootCerts, keyCertPairs, checkClientCertificate = false) { if (rootCerts !== null && !Buffer.isBuffer(rootCerts)) { throw new TypeError('rootCerts must be null or a Buffer'); } if (!Array.isArray(keyCertPairs)) { throw new TypeError('keyCertPairs must be an array'); } if (typeof checkClientCertificate !== 'boolean') { throw new TypeError('checkClientCertificate must be a boolean'); } const cert = []; const key = []; for (let i = 0; i < keyCertPairs.length; i++) { const pair = keyCertPairs[i]; if (pair === null || typeof pair !== 'object') { throw new TypeError(`keyCertPair[${i}] must be an object`); } if (!Buffer.isBuffer(pair.private_key)) { throw new TypeError(`keyCertPair[${i}].private_key must be a Buffer`); } if (!Buffer.isBuffer(pair.cert_chain)) { throw new TypeError(`keyCertPair[${i}].cert_chain must be a Buffer`); } cert.push(pair.cert_chain); key.push(pair.private_key); } return new SecureServerCredentials({ ca: rootCerts || (0, tls_helpers_1.getDefaultRootsData)() || undefined, cert, key, requestCert: checkClientCertificate, ciphers: tls_helpers_1.CIPHER_SUITES, }); } } exports.ServerCredentials = ServerCredentials; class InsecureServerCredentials extends ServerCredentials { _isSecure() { return false; } _getSettings() { return null; } } class SecureServerCredentials extends ServerCredentials { constructor(options) { super(); this.options = options; } _isSecure() { return true; } _getSettings() { return this.options; } } //# sourceMappingURL=server-credentials.js.map