11cb0ef41Sopenharmony_ci'use strict'; 21cb0ef41Sopenharmony_ciconst common = require('../common'); 31cb0ef41Sopenharmony_ciif (!common.hasCrypto) 41cb0ef41Sopenharmony_ci common.skip('missing crypto'); 51cb0ef41Sopenharmony_ci 61cb0ef41Sopenharmony_ciconst assert = require('assert'); 71cb0ef41Sopenharmony_ciconst tls = require('tls'); 81cb0ef41Sopenharmony_ci 91cb0ef41Sopenharmony_ciassert.throws(function() { 101cb0ef41Sopenharmony_ci tls.createSecureContext({ secureProtocol: 'blargh' }); 111cb0ef41Sopenharmony_ci}, { 121cb0ef41Sopenharmony_ci code: 'ERR_TLS_INVALID_PROTOCOL_METHOD', 131cb0ef41Sopenharmony_ci message: 'Unknown method: blargh', 141cb0ef41Sopenharmony_ci}); 151cb0ef41Sopenharmony_ci 161cb0ef41Sopenharmony_ciconst errMessageSSLv2 = /SSLv2 methods disabled/; 171cb0ef41Sopenharmony_ci 181cb0ef41Sopenharmony_ciassert.throws(function() { 191cb0ef41Sopenharmony_ci tls.createSecureContext({ secureProtocol: 'SSLv2_method' }); 201cb0ef41Sopenharmony_ci}, errMessageSSLv2); 211cb0ef41Sopenharmony_ci 221cb0ef41Sopenharmony_ciassert.throws(function() { 231cb0ef41Sopenharmony_ci tls.createSecureContext({ secureProtocol: 'SSLv2_client_method' }); 241cb0ef41Sopenharmony_ci}, errMessageSSLv2); 251cb0ef41Sopenharmony_ci 261cb0ef41Sopenharmony_ciassert.throws(function() { 271cb0ef41Sopenharmony_ci tls.createSecureContext({ secureProtocol: 'SSLv2_server_method' }); 281cb0ef41Sopenharmony_ci}, errMessageSSLv2); 291cb0ef41Sopenharmony_ci 301cb0ef41Sopenharmony_ciconst errMessageSSLv3 = /SSLv3 methods disabled/; 311cb0ef41Sopenharmony_ci 321cb0ef41Sopenharmony_ciassert.throws(function() { 331cb0ef41Sopenharmony_ci tls.createSecureContext({ secureProtocol: 'SSLv3_method' }); 341cb0ef41Sopenharmony_ci}, errMessageSSLv3); 351cb0ef41Sopenharmony_ci 361cb0ef41Sopenharmony_ciassert.throws(function() { 371cb0ef41Sopenharmony_ci tls.createSecureContext({ secureProtocol: 'SSLv3_client_method' }); 381cb0ef41Sopenharmony_ci}, errMessageSSLv3); 391cb0ef41Sopenharmony_ci 401cb0ef41Sopenharmony_ciassert.throws(function() { 411cb0ef41Sopenharmony_ci tls.createSecureContext({ secureProtocol: 'SSLv3_server_method' }); 421cb0ef41Sopenharmony_ci}, errMessageSSLv3); 431cb0ef41Sopenharmony_ci 441cb0ef41Sopenharmony_ci// Note that SSLv2 and SSLv3 are disallowed but SSLv2_method and friends are 451cb0ef41Sopenharmony_ci// still accepted. They are OpenSSL's way of saying that all known protocols 461cb0ef41Sopenharmony_ci// are supported unless explicitly disabled (which we do for SSLv2 and SSLv3.) 471cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'SSLv23_method' }); 481cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'SSLv23_client_method' }); 491cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'SSLv23_server_method' }); 501cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'TLSv1_method' }); 511cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'TLSv1_client_method' }); 521cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'TLSv1_server_method' }); 531cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'TLSv1_1_method' }); 541cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'TLSv1_1_client_method' }); 551cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'TLSv1_1_server_method' }); 561cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'TLSv1_2_method' }); 571cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'TLSv1_2_client_method' }); 581cb0ef41Sopenharmony_citls.createSecureContext({ secureProtocol: 'TLSv1_2_server_method' }); 59