{"action":"created","issue":{"url":"https://api.github.com/repos/joyent/node/issues/23947","labels_url":"https://api.github.com/repos/joyent/node/issues/23947/labels{/name}","comments_url":"https://api.github.com/repos/joyent/node/issues/23947/comments","events_url":"https://api.github.com/repos/joyent/node/issues/23947/events","html_url":"https://github.com/joyent/node/pull/23947","id":71713880,"number":23947,"title":"tls: fix default ciphers not used consistently","user":{"login":"misterdjules","id":811047,"avatar_url":"https://avatars.githubusercontent.com/u/811047?v=3","gravatar_id":"","url":"https://api.github.com/users/misterdjules","html_url":"https://github.com/misterdjules","followers_url":"https://api.github.com/users/misterdjules/followers","following_url":"https://api.github.com/users/misterdjules/following{/other_user}","gists_url":"https://api.github.com/users/misterdjules/gists{/gist_id}","starred_url":"https://api.github.com/users/misterdjules/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misterdjules/subscriptions","organizations_url":"https://api.github.com/users/misterdjules/orgs","repos_url":"https://api.github.com/users/misterdjules/repos","events_url":"https://api.github.com/users/misterdjules/events{/privacy}","received_events_url":"https://api.github.com/users/misterdjules/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/joyent/node/labels/crypto","name":"crypto","color":"e10c02"},{"url":"https://api.github.com/repos/joyent/node/labels/https","name":"https","color":"e10c02"},{"url":"https://api.github.com/repos/joyent/node/labels/in%20progress","name":"in progress","color":"ededed"},{"url":"https://api.github.com/repos/joyent/node/labels/pr","name":"pr","color":"006b75"},{"url":"https://api.github.com/repos/joyent/node/labels/tls","name":"tls","color":"e10c02"},{"url":"https://api.github.com/repos/joyent/node/labels/v0.10","name":"v0.10","color":"207de5"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/joyent/node/milestones/36","html_url":"https://github.com/joyent/node/milestones/0.10.39","labels_url":"https://api.github.com/repos/joyent/node/milestones/36/labels","id":1067457,"number":36,"title":"0.10.39","description":"","creator":{"login":"misterdjules","id":811047,"avatar_url":"https://avatars.githubusercontent.com/u/811047?v=3","gravatar_id":"","url":"https://api.github.com/users/misterdjules","html_url":"https://github.com/misterdjules","followers_url":"https://api.github.com/users/misterdjules/followers","following_url":"https://api.github.com/users/misterdjules/following{/other_user}","gists_url":"https://api.github.com/users/misterdjules/gists{/gist_id}","starred_url":"https://api.github.com/users/misterdjules/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misterdjules/subscriptions","organizations_url":"https://api.github.com/users/misterdjules/orgs","repos_url":"https://api.github.com/users/misterdjules/repos","events_url":"https://api.github.com/users/misterdjules/events{/privacy}","received_events_url":"https://api.github.com/users/misterdjules/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":2,"state":"open","created_at":"2015-04-14T18:24:45Z","updated_at":"2015-05-01T12:06:16Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2015-04-28T21:40:30Z","updated_at":"2015-05-05T00:00:59Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/joyent/node/pulls/23947","html_url":"https://github.com/joyent/node/pull/23947","diff_url":"https://github.com/joyent/node/pull/23947.diff","patch_url":"https://github.com/joyent/node/pull/23947.patch"},"body":"Passing `null` or `undefined` for the `ciphers` value of the `options`\r\nparameter of `tls.connect` and `https.get`/`request` makes node _not_ use the\r\ndefault ciphers list.\r\n\r\nThis problem had been fixed in node v0.12 with commit\r\n5d2aef17ee56fbbf415ca1e3034cdb02cd97117c, but for some reason the fix\r\nhasn't been backported to v0.10.\r\n\r\nThis change also comes with a test that makes sure that tls/https\r\nclients that don't specify a ciphers suite (or a null or undefined one)\r\ncannot connect to a server that specifies only RC4-MD5 as the available\r\nciphers suite. \r\n\r\nThis test relies on the fact that RC4-MD5 is not\r\navailable in the default ciphers suite, which is the case currently in\r\nthe v0.10 branch."},"comment":{"url":"https://api.github.com/repos/joyent/node/issues/comments/98887376","html_url":"https://github.com/joyent/node/pull/23947#issuecomment-98887376","issue_url":"https://api.github.com/repos/joyent/node/issues/23947","id":98887376,"user":{"login":"misterdjules","id":811047,"avatar_url":"https://avatars.githubusercontent.com/u/811047?v=3","gravatar_id":"","url":"https://api.github.com/users/misterdjules","html_url":"https://github.com/misterdjules","followers_url":"https://api.github.com/users/misterdjules/followers","following_url":"https://api.github.com/users/misterdjules/following{/other_user}","gists_url":"https://api.github.com/users/misterdjules/gists{/gist_id}","starred_url":"https://api.github.com/users/misterdjules/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misterdjules/subscriptions","organizations_url":"https://api.github.com/users/misterdjules/orgs","repos_url":"https://api.github.com/users/misterdjules/repos","events_url":"https://api.github.com/users/misterdjules/events{/privacy}","received_events_url":"https://api.github.com/users/misterdjules/received_events","type":"User","site_admin":false},"created_at":"2015-05-05T00:00:59Z","updated_at":"2015-05-05T00:00:59Z","body":"Wouldn't\r\n```\r\n  var tls = require('tls'); // this is new.. see below\r\n  if (options.ciphers) {\r\n    c.context.setCiphers(options.ciphers);\r\n  } else (!tls.usingV1038Ciphers() || options.ciphers !== undefined) {\r\n    c.context.setCiphers(binding.DEFAULT_CIPHER_LIST);\r\n  }\r\n```\r\nmake `node --enable-legacy-ciphers=v0.10.38` use a non-empty ciphers list if `ciphers: null` is passed, and wouldn't that be a breaking change? "}}