code: function starttls(socket, options, callback) {
      var sslcontext, pair, cleartext;
      socket.removeAllListeners('data');
      // ciphers from BetterCrypto.org
      options.ciphers = options.ciphers || 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384'+
              ':EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL'+
              ':!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:'+
              'CAMELLIA128-SHA:AES128-SHA';
      sslcontext = require('crypto').createCredentials(options);
      pair = require('tls').createSecurePair(sslcontext, true, false, false);
      cleartext = pipe(pair, socket);
  
      pair.on('secure', function() {
          var verifyError = (pair._ssl || pair.ssl).verifyError();
  
          if (verifyError) {
              cleartext.authorized = false;
              cleartext.authorizationError = verifyError;
          } else {
              cleartext.authorized = true;
          }
  
          callback(cleartext);
      });
  
      cleartext._controlReleased = true;
      return pair;
  }
docs: <p>Upgrades a socket to a secure TLS connection</p>
  
  @memberOf starttls
  @param {Object} socket Plaintext socket to be upgraded
  @param {Object} options Certificate data for the server
  @param {Function} callback Callback function to be run after upgrade