• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2const common = require('../common');
3if (!common.hasCrypto)
4  common.skip('missing crypto');
5
6const assert = require('assert');
7const tls = require('tls');
8
9assert.throws(function() {
10  tls.createSecureContext({ secureProtocol: 'blargh' });
11}, {
12  code: 'ERR_TLS_INVALID_PROTOCOL_METHOD',
13  message: 'Unknown method: blargh',
14});
15
16const errMessageSSLv2 = /SSLv2 methods disabled/;
17
18assert.throws(function() {
19  tls.createSecureContext({ secureProtocol: 'SSLv2_method' });
20}, errMessageSSLv2);
21
22assert.throws(function() {
23  tls.createSecureContext({ secureProtocol: 'SSLv2_client_method' });
24}, errMessageSSLv2);
25
26assert.throws(function() {
27  tls.createSecureContext({ secureProtocol: 'SSLv2_server_method' });
28}, errMessageSSLv2);
29
30const errMessageSSLv3 = /SSLv3 methods disabled/;
31
32assert.throws(function() {
33  tls.createSecureContext({ secureProtocol: 'SSLv3_method' });
34}, errMessageSSLv3);
35
36assert.throws(function() {
37  tls.createSecureContext({ secureProtocol: 'SSLv3_client_method' });
38}, errMessageSSLv3);
39
40assert.throws(function() {
41  tls.createSecureContext({ secureProtocol: 'SSLv3_server_method' });
42}, errMessageSSLv3);
43
44// Note that SSLv2 and SSLv3 are disallowed but SSLv2_method and friends are
45// still accepted.  They are OpenSSL's way of saying that all known protocols
46// are supported unless explicitly disabled (which we do for SSLv2 and SSLv3.)
47tls.createSecureContext({ secureProtocol: 'SSLv23_method' });
48tls.createSecureContext({ secureProtocol: 'SSLv23_client_method' });
49tls.createSecureContext({ secureProtocol: 'SSLv23_server_method' });
50tls.createSecureContext({ secureProtocol: 'TLSv1_method' });
51tls.createSecureContext({ secureProtocol: 'TLSv1_client_method' });
52tls.createSecureContext({ secureProtocol: 'TLSv1_server_method' });
53tls.createSecureContext({ secureProtocol: 'TLSv1_1_method' });
54tls.createSecureContext({ secureProtocol: 'TLSv1_1_client_method' });
55tls.createSecureContext({ secureProtocol: 'TLSv1_1_server_method' });
56tls.createSecureContext({ secureProtocol: 'TLSv1_2_method' });
57tls.createSecureContext({ secureProtocol: 'TLSv1_2_client_method' });
58tls.createSecureContext({ secureProtocol: 'TLSv1_2_server_method' });
59