{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/comments/40063254","id":40063254,"diff_hunk":"@@ -0,0 +1,72 @@\n+// Copyright (c) Microsoft. All rights reserved.\n+// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n+\n+using System;\n+using System.Runtime.InteropServices;\n+\n+internal static partial class Interop\n+{\n+    internal static partial class libssl\n+    {\n+        internal const int SSL_CTRL_OPTIONS = 32;\n+        internal static bool OPENSSL_NO_COMP = true; //no compression true by default\n+\n+        [StructLayout(LayoutKind.Sequential)]\n+        internal struct SSL_CIPHER\n+        {\n+            internal int valid;\n+            internal string name; /* text name */\n+            internal long id; /* id, 4 bytes, first is version */\n+            internal long algorithm_mkey; /* key exchange algorithm */\n+            internal long algorithm_auth; /* server authentication */\n+            internal long algorithm_enc; /* symmetric encryption */\n+            internal long algorithm_mac; /* symmetric authentication */\n+            internal long algorithm_ssl; /* (major) protocol version */\n+            internal long algo_strength; /* strength and export flags */\n+            internal long algorithm2; /* Extra flags */\n+            internal int strength_bits; /* Number of bits really used */\n+            internal int alg_bits; /* Number of bits for algorithm */\n+        }\n+\n+        internal class Options\n+        {\n+            internal const long SSL_OP_NO_SSLv2 = 0x01000000;\n+            internal const long SSL_OP_NO_SSLv3 = 0x02000000;\n+            internal const long SSL_OP_NO_TLSv1 = 0x04000000;\n+            internal const long SSL_OP_NO_TLSv1_2 = 0x08000000;\n+            internal const long SSL_OP_NO_TLSv1_1 = 0x10000000;\n+        }\n+      \n+        internal static class SslSizes\n+        {\n+            //From /usr/include/openssl/ssl3.h\n+            internal const int SSL3_RT_MAX_MD_SIZE = 64;\n+            internal const int SSL3_RT_MAX_PLAIN_LENGTH = 16384;\n+            private const int SSL3_RT_MAX_COMPRESSED_OVERHEAD = 1024;\n+            private const int SSL3_RT_MAX_ENCRYPTED_OVERHEAD = (256 + SSL3_RT_MAX_MD_SIZE);\n+            //todo compression is allowed? size will vary when compression is there\n+\n+            private static readonly int SSL3_RT_MAX_COMPRESSED_LENGTH = OPENSSL_NO_COMP\n+                ? SSL3_RT_MAX_PLAIN_LENGTH\n+                : SSL3_RT_MAX_PLAIN_LENGTH + SSL3_RT_MAX_COMPRESSED_OVERHEAD;\n+\n+            internal static int SSL3_RT_MAX_ENCRYPTED_LENGTH = (SSL3_RT_MAX_ENCRYPTED_OVERHEAD +\n+                                                                SSL3_RT_MAX_COMPRESSED_LENGTH);\n+            internal const int HEADER_SIZE = 5;\n+            internal const int TRAILER_SIZE = 16;\n+        }\n+\n+        internal static class SslErrorCode","path":"src/Common/src/Interop/Unix/libssl/Interop.libssl_types.cs","position":59,"original_position":59,"commit_id":"242302706a63d694e90fe533f436961ce9bfc5d7","original_commit_id":"242302706a63d694e90fe533f436961ce9bfc5d7","user":{"login":"rajansingh10","id":13608570,"avatar_url":"https://avatars.githubusercontent.com/u/13608570?v=3","gravatar_id":"","url":"https://api.github.com/users/rajansingh10","html_url":"https://github.com/rajansingh10","followers_url":"https://api.github.com/users/rajansingh10/followers","following_url":"https://api.github.com/users/rajansingh10/following{/other_user}","gists_url":"https://api.github.com/users/rajansingh10/gists{/gist_id}","starred_url":"https://api.github.com/users/rajansingh10/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rajansingh10/subscriptions","organizations_url":"https://api.github.com/users/rajansingh10/orgs","repos_url":"https://api.github.com/users/rajansingh10/repos","events_url":"https://api.github.com/users/rajansingh10/events{/privacy}","received_events_url":"https://api.github.com/users/rajansingh10/received_events","type":"User","site_admin":false},"body":"The values are used for matching against output of SSL_get_error which is an Int. If converted to Int, this will have to be casted again to int for matching.","created_at":"2015-09-22T08:37:45Z","updated_at":"2015-09-22T08:37:45Z","html_url":"https://github.com/dotnet/corefx/pull/3345#discussion_r40063254","pull_request_url":"https://api.github.com/repos/dotnet/corefx/pulls/3345","_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/comments/40063254"},"html":{"href":"https://github.com/dotnet/corefx/pull/3345#discussion_r40063254"},"pull_request":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/3345"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/3345","id":45554109,"html_url":"https://github.com/dotnet/corefx/pull/3345","diff_url":"https://github.com/dotnet/corefx/pull/3345.diff","patch_url":"https://github.com/dotnet/corefx/pull/3345.patch","issue_url":"https://api.github.com/repos/dotnet/corefx/issues/3345","number":3345,"state":"open","locked":false,"title":"Net Secure Xplat Implementation","user":{"login":"rajansingh10","id":13608570,"avatar_url":"https://avatars.githubusercontent.com/u/13608570?v=3","gravatar_id":"","url":"https://api.github.com/users/rajansingh10","html_url":"https://github.com/rajansingh10","followers_url":"https://api.github.com/users/rajansingh10/followers","following_url":"https://api.github.com/users/rajansingh10/following{/other_user}","gists_url":"https://api.github.com/users/rajansingh10/gists{/gist_id}","starred_url":"https://api.github.com/users/rajansingh10/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rajansingh10/subscriptions","organizations_url":"https://api.github.com/users/rajansingh10/orgs","repos_url":"https://api.github.com/users/rajansingh10/repos","events_url":"https://api.github.com/users/rajansingh10/events{/privacy}","received_events_url":"https://api.github.com/users/rajansingh10/received_events","type":"User","site_admin":false},"body":"1. Abstracted the code as per design shared earlier.\r\n2. Made SecureChannel & SSPIWrapper agnostic of os.\r\n3. Created 1 class 1 file for each new classes & move them to windows specific folder.\r\n4. Added new interfaces & modules related to Cert.\r\n5. SSPINegoInterface & SSPIAuthType, currently are not part of csproj as suggested by cipop.\r\n\r\nHave included unix Interop & related code as well for completeness. You can choose to review Windows first as well. \r\n\r\n\r\n\r\n\r\n","created_at":"2015-09-21T14:20:10Z","updated_at":"2015-09-22T08:37:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"43835397358b4a5f26abad8733bd070322a94a7b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/corefx/pulls/3345/commits","review_comments_url":"https://api.github.com/repos/dotnet/corefx/pulls/3345/comments","review_comment_url":"https://api.github.com/repos/dotnet/corefx/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/3345/comments","statuses_url":"https://api.github.com/repos/dotnet/corefx/statuses/242302706a63d694e90fe533f436961ce9bfc5d7","head":{"label":"rajansingh10:Netfeature","ref":"Netfeature","sha":"242302706a63d694e90fe533f436961ce9bfc5d7","user":{"login":"rajansingh10","id":13608570,"avatar_url":"https://avatars.githubusercontent.com/u/13608570?v=3","gravatar_id":"","url":"https://api.github.com/users/rajansingh10","html_url":"https://github.com/rajansingh10","followers_url":"https://api.github.com/users/rajansingh10/followers","following_url":"https://api.github.com/users/rajansingh10/following{/other_user}","gists_url":"https://api.github.com/users/rajansingh10/gists{/gist_id}","starred_url":"https://api.github.com/users/rajansingh10/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rajansingh10/subscriptions","organizations_url":"https://api.github.com/users/rajansingh10/orgs","repos_url":"https://api.github.com/users/rajansingh10/repos","events_url":"https://api.github.com/users/rajansingh10/events{/privacy}","received_events_url":"https://api.github.com/users/rajansingh10/received_events","type":"User","site_admin":false},"repo":{"id":40076943,"name":"corefx","full_name":"rajansingh10/corefx","owner":{"login":"rajansingh10","id":13608570,"avatar_url":"https://avatars.githubusercontent.com/u/13608570?v=3","gravatar_id":"","url":"https://api.github.com/users/rajansingh10","html_url":"https://github.com/rajansingh10","followers_url":"https://api.github.com/users/rajansingh10/followers","following_url":"https://api.github.com/users/rajansingh10/following{/other_user}","gists_url":"https://api.github.com/users/rajansingh10/gists{/gist_id}","starred_url":"https://api.github.com/users/rajansingh10/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rajansingh10/subscriptions","organizations_url":"https://api.github.com/users/rajansingh10/orgs","repos_url":"https://api.github.com/users/rajansingh10/repos","events_url":"https://api.github.com/users/rajansingh10/events{/privacy}","received_events_url":"https://api.github.com/users/rajansingh10/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rajansingh10/corefx","description":"This repo contains the .NET Core foundational libraries, called CoreFX. It includes classes for collections, file systems, console, XML, async and many others.","fork":true,"url":"https://api.github.com/repos/rajansingh10/corefx","forks_url":"https://api.github.com/repos/rajansingh10/corefx/forks","keys_url":"https://api.github.com/repos/rajansingh10/corefx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rajansingh10/corefx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rajansingh10/corefx/teams","hooks_url":"https://api.github.com/repos/rajansingh10/corefx/hooks","issue_events_url":"https://api.github.com/repos/rajansingh10/corefx/issues/events{/number}","events_url":"https://api.github.com/repos/rajansingh10/corefx/events","assignees_url":"https://api.github.com/repos/rajansingh10/corefx/assignees{/user}","branches_url":"https://api.github.com/repos/rajansingh10/corefx/branches{/branch}","tags_url":"https://api.github.com/repos/rajansingh10/corefx/tags","blobs_url":"https://api.github.com/repos/rajansingh10/corefx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rajansingh10/corefx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rajansingh10/corefx/git/refs{/sha}","trees_url":"https://api.github.com/repos/rajansingh10/corefx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rajansingh10/corefx/statuses/{sha}","languages_url":"https://api.github.com/repos/rajansingh10/corefx/languages","stargazers_url":"https://api.github.com/repos/rajansingh10/corefx/stargazers","contributors_url":"https://api.github.com/repos/rajansingh10/corefx/contributors","subscribers_url":"https://api.github.com/repos/rajansingh10/corefx/subscribers","subscription_url":"https://api.github.com/repos/rajansingh10/corefx/subscription","commits_url":"https://api.github.com/repos/rajansingh10/corefx/commits{/sha}","git_commits_url":"https://api.github.com/repos/rajansingh10/corefx/git/commits{/sha}","comments_url":"https://api.github.com/repos/rajansingh10/corefx/comments{/number}","issue_comment_url":"https://api.github.com/repos/rajansingh10/corefx/issues/comments{/number}","contents_url":"https://api.github.com/repos/rajansingh10/corefx/contents/{+path}","compare_url":"https://api.github.com/repos/rajansingh10/corefx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rajansingh10/corefx/merges","archive_url":"https://api.github.com/repos/rajansingh10/corefx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rajansingh10/corefx/downloads","issues_url":"https://api.github.com/repos/rajansingh10/corefx/issues{/number}","pulls_url":"https://api.github.com/repos/rajansingh10/corefx/pulls{/number}","milestones_url":"https://api.github.com/repos/rajansingh10/corefx/milestones{/number}","notifications_url":"https://api.github.com/repos/rajansingh10/corefx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rajansingh10/corefx/labels{/name}","releases_url":"https://api.github.com/repos/rajansingh10/corefx/releases{/id}","created_at":"2015-08-02T11:08:04Z","updated_at":"2015-08-02T11:08:22Z","pushed_at":"2015-09-21T14:31:33Z","git_url":"git://github.com/rajansingh10/corefx.git","ssh_url":"git@github.com:rajansingh10/corefx.git","clone_url":"https://github.com/rajansingh10/corefx.git","svn_url":"https://github.com/rajansingh10/corefx","homepage":"http://dotnet.github.io/core/","size":31497,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:dev-sslstream","ref":"dev-sslstream","sha":"08f475f140bb983a83d59d6d57ba3fb58243c1da","user":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":26295345,"name":"corefx","full_name":"dotnet/corefx","owner":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/corefx","description":"This repo contains the .NET Core foundational libraries, called CoreFX. It includes classes for collections, file systems, console, XML, async and many others.","fork":false,"url":"https://api.github.com/repos/dotnet/corefx","forks_url":"https://api.github.com/repos/dotnet/corefx/forks","keys_url":"https://api.github.com/repos/dotnet/corefx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/corefx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/corefx/teams","hooks_url":"https://api.github.com/repos/dotnet/corefx/hooks","issue_events_url":"https://api.github.com/repos/dotnet/corefx/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/corefx/events","assignees_url":"https://api.github.com/repos/dotnet/corefx/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/corefx/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/corefx/tags","blobs_url":"https://api.github.com/repos/dotnet/corefx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/corefx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/corefx/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/corefx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/corefx/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/corefx/languages","stargazers_url":"https://api.github.com/repos/dotnet/corefx/stargazers","contributors_url":"https://api.github.com/repos/dotnet/corefx/contributors","subscribers_url":"https://api.github.com/repos/dotnet/corefx/subscribers","subscription_url":"https://api.github.com/repos/dotnet/corefx/subscription","commits_url":"https://api.github.com/repos/dotnet/corefx/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/corefx/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/corefx/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/corefx/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/corefx/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/corefx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/corefx/merges","archive_url":"https://api.github.com/repos/dotnet/corefx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/corefx/downloads","issues_url":"https://api.github.com/repos/dotnet/corefx/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/corefx/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/corefx/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/corefx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/corefx/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/corefx/releases{/id}","created_at":"2014-11-06T23:42:48Z","updated_at":"2015-09-22T04:09:30Z","pushed_at":"2015-09-22T08:31:00Z","git_url":"git://github.com/dotnet/corefx.git","ssh_url":"git@github.com:dotnet/corefx.git","clone_url":"https://github.com/dotnet/corefx.git","svn_url":"https://github.com/dotnet/corefx","homepage":"http://dotnet.github.io/core/","size":68991,"stargazers_count":8363,"watchers_count":8363,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1804,"mirror_url":null,"open_issues_count":619,"forks":1804,"open_issues":619,"watchers":8363,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/3345"},"html":{"href":"https://github.com/dotnet/corefx/pull/3345"},"issue":{"href":"https://api.github.com/repos/dotnet/corefx/issues/3345"},"comments":{"href":"https://api.github.com/repos/dotnet/corefx/issues/3345/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/3345/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/3345/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/corefx/statuses/242302706a63d694e90fe533f436961ce9bfc5d7"}}}}