Update THREADING and CHANGELOG with SecureTransport details
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 12c6053..c97a18b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -31,6 +31,9 @@ v0.22 + 1
* `git_rebase_commit` now returns `GIT_EUNMERGED` when you attempt to
commit with unstaged changes.
+* On Mac OS X, we now use SecureTransport to provide the cryptographic
+support for HTTPS connections insead of OpenSSL.
+
### API additions
* The `git_merge_options` gained a `file_flags` member.
diff --git a/THREADING.md b/THREADING.md
index c9bee51..cf7ac1f 100644
--- a/THREADING.md
+++ b/THREADING.md
@@ -41,12 +41,22 @@ both of which are thread-safe. You do not need to do anything special.
When using libssh2 which itself uses WinCNG, there are no special
steps necessary. If you are using a MinGW or similar environment where
-libssh2 uses OpenSSL or libgcrypt, then the non-Windows case affects
+libssh2 uses OpenSSL or libgcrypt, then the general case affects
you.
-Non-Windows
+On Mac OS X
-----------
+On OS X, the library makes use of CommonCrypto and SecureTransport for
+cryptographic support. These are thread-safe and you do not need to do
+anything special.
+
+Note that libssh2 may still use OpenSSL itself. In that case, the
+general case still affects you if you use ssh.
+
+General Case
+------------
+
On the rest of the platforms, libgit2 uses OpenSSL to be able to use
HTTPS as a transport. This library is made to be thread-implementation
agnostic, and the users of the library must set which locking function
@@ -71,8 +81,8 @@ See the
[OpenSSL documentation](https://www.openssl.org/docs/crypto/threads.html)
on threading for more details.
-Be also aware that libgit2 may not always link against OpenSSL in the
-future if there are alternatives provided by the system.
+Be also aware that libgit2 does not always link against OpenSSL
+if there are alternatives provided by the system.
libssh2 may be linked against OpenSSL or libgcrypt. If it uses
OpenSSL, you only need to set up threading for OpenSSL once and the