{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/corefx/issues/3595","labels_url":"https://api.github.com/repos/dotnet/corefx/issues/3595/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/3595/comments","events_url":"https://api.github.com/repos/dotnet/corefx/issues/3595/events","html_url":"https://github.com/dotnet/corefx/pull/3595","id":109393241,"number":3595,"title":"Fix DecodeHexString parsing to match .net 4.6 behavior","user":{"login":"bartonjs","id":10642668,"avatar_url":"https://avatars.githubusercontent.com/u/10642668?v=3","gravatar_id":"","url":"https://api.github.com/users/bartonjs","html_url":"https://github.com/bartonjs","followers_url":"https://api.github.com/users/bartonjs/followers","following_url":"https://api.github.com/users/bartonjs/following{/other_user}","gists_url":"https://api.github.com/users/bartonjs/gists{/gist_id}","starred_url":"https://api.github.com/users/bartonjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bartonjs/subscriptions","organizations_url":"https://api.github.com/users/bartonjs/orgs","repos_url":"https://api.github.com/users/bartonjs/repos","events_url":"https://api.github.com/users/bartonjs/events{/privacy}","received_events_url":"https://api.github.com/users/bartonjs/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/corefx/labels/2%20-%20In%20Progress","name":"2 - In Progress","color":"CCCCCC"},{"url":"https://api.github.com/repos/dotnet/corefx/labels/cla-already-signed","name":"cla-already-signed","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":13,"created_at":"2015-10-01T21:56:30Z","updated_at":"2015-10-02T14:55:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/3595","html_url":"https://github.com/dotnet/corefx/pull/3595","diff_url":"https://github.com/dotnet/corefx/pull/3595.diff","patch_url":"https://github.com/dotnet/corefx/pull/3595.patch"},"body":"During the port to CoreFX DecodeHexString gained some interesting new quirks.\r\n\r\n\"010305\"   => {0x01, 0x03, 0x05} (OK)\r\n\"01 03 05\" => {0x01, 0x00, 0x03} (no)\r\n\"0 10305\"  => {0xFF, 0x10, 0x30} (no)\r\n\" 010305\"  => {0x00, 0x01, 0x03} (no)\r\n\"  010305\" => {0x00, 0x00, 0x01} (no)\r\n\r\nThis change restores the behavior to be functionally equivalent to the parsing logic in .NET (Full Framework) 4.6, but still without creating the intermediate string.\r\n\r\nBecause one of the existing test certificates has both an 0xFF byte and a 0xFx byte (other than 0xFF) in its subject key identifier field, the behavior of this method is most optimally tested with the subject key identifier tests.\r\n\r\nTest cases have been added to prevent future regressions."},"comment":{"url":"https://api.github.com/repos/dotnet/corefx/issues/comments/145050437","html_url":"https://github.com/dotnet/corefx/pull/3595#issuecomment-145050437","issue_url":"https://api.github.com/repos/dotnet/corefx/issues/3595","id":145050437,"user":{"login":"mmitche","id":8725170,"avatar_url":"https://avatars.githubusercontent.com/u/8725170?v=3","gravatar_id":"","url":"https://api.github.com/users/mmitche","html_url":"https://github.com/mmitche","followers_url":"https://api.github.com/users/mmitche/followers","following_url":"https://api.github.com/users/mmitche/following{/other_user}","gists_url":"https://api.github.com/users/mmitche/gists{/gist_id}","starred_url":"https://api.github.com/users/mmitche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmitche/subscriptions","organizations_url":"https://api.github.com/users/mmitche/orgs","repos_url":"https://api.github.com/users/mmitche/repos","events_url":"https://api.github.com/users/mmitche/events{/privacy}","received_events_url":"https://api.github.com/users/mmitche/received_events","type":"User","site_admin":false},"created_at":"2015-10-02T14:55:02Z","updated_at":"2015-10-02T14:55:02Z","body":"@stephentoub Looks like the test phrases got changed to have \\Q \\E around the regex.  This is essentially a literal quote, so \\Q(?i).*test\\W+this\\W+please.*\\E essentially would only match if you typed that exact phrase.  I removed the \\Q \\E and from the phrases and I'll find out who changed it."}}