diff options
author | Remko Tronçon <git@el-tramo.be> | 2012-04-25 17:32:37 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2012-04-25 17:32:37 (GMT) |
commit | 76b6528058e1cb9fefb0547b672acb83e7b41ff4 (patch) | |
tree | a491b00a68475abd0ec92e398326228c187d6f2b /Swiften/TLS/Schannel | |
parent | b997b3cdc0ebd32e8be97e5c6265c6c15de7706a (diff) | |
download | swift-contrib-76b6528058e1cb9fefb0547b672acb83e7b41ff4.zip swift-contrib-76b6528058e1cb9fefb0547b672acb83e7b41ff4.tar.bz2 |
Support channel binding with Schannel.
Resolves: #1012
Diffstat (limited to 'Swiften/TLS/Schannel')
-rw-r--r-- | Swiften/TLS/Schannel/SchannelContext.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Swiften/TLS/Schannel/SchannelContext.cpp b/Swiften/TLS/Schannel/SchannelContext.cpp index 20cb7d3..641568d 100644 --- a/Swiften/TLS/Schannel/SchannelContext.cpp +++ b/Swiften/TLS/Schannel/SchannelContext.cpp @@ -640,10 +640,12 @@ CertificateVerificationError::ref SchannelContext::getPeerCertificateVerificatio //------------------------------------------------------------------------ ByteArray SchannelContext::getFinishMessage() const { - // TODO: Implement - - ByteArray emptyArray; - return emptyArray; + SecPkgContext_Bindings bindings; + int ret = QueryContextAttributes(m_ctxtHandle, SECPKG_ATTR_UNIQUE_BINDINGS, &bindings); + if (ret == SEC_E_OK) { + return createByteArray(((unsigned char*) bindings.Bindings) + bindings.Bindings->dwApplicationDataOffset + 11 /* tls-unique:*/, bindings.Bindings->cbApplicationDataLength - 11); + } + return ByteArray(); } //------------------------------------------------------------------------ |