summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-12-11 12:43:08 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-12-11 12:43:35 (GMT)
commitaaf38fe2e6804bd87ea5e99a05ed57070cbe1c57 (patch)
tree358ff7b5022e0c192e22f746e285f673bf5def9b /Swiften/TLS
parentd9ce3491e818d96f3dc0154e9e5d30228420483c (diff)
downloadswift-contrib-aaf38fe2e6804bd87ea5e99a05ed57070cbe1c57.zip
swift-contrib-aaf38fe2e6804bd87ea5e99a05ed57070cbe1c57.tar.bz2
Added SCRAM-SHA-1-PLUS support.
Release-Notes: Swift now supports SCRAM-SHA-1-PLUS authentication.
Diffstat (limited to 'Swiften/TLS')
-rw-r--r--Swiften/TLS/OpenSSL/OpenSSLContext.cpp9
-rw-r--r--Swiften/TLS/OpenSSL/OpenSSLContext.h2
-rw-r--r--Swiften/TLS/TLSContext.h2
3 files changed, 13 insertions, 0 deletions
diff --git a/Swiften/TLS/OpenSSL/OpenSSLContext.cpp b/Swiften/TLS/OpenSSL/OpenSSLContext.cpp
index 50436c7..6c55a63 100644
--- a/Swiften/TLS/OpenSSL/OpenSSLContext.cpp
+++ b/Swiften/TLS/OpenSSL/OpenSSLContext.cpp
@@ -23,6 +23,7 @@
namespace Swift {
+static const int MAX_FINISHED_SIZE = 4096;
static const int SSL_READ_BUFFERSIZE = 8192;
void freeX509Stack(STACK_OF(X509)* stack) {
@@ -210,6 +211,14 @@ boost::shared_ptr<CertificateVerificationError> OpenSSLContext::getPeerCertifica
}
}
+ByteArray OpenSSLContext::getFinishMessage() const {
+ ByteArray data;
+ data.resize(MAX_FINISHED_SIZE);
+ size_t size = SSL_get_finished(handle_, data.getData(), data.getSize());
+ data.resize(size);
+ return data;
+}
+
CertificateVerificationError::Type OpenSSLContext::getVerificationErrorTypeForResult(int result) {
assert(result != 0);
switch (result) {
diff --git a/Swiften/TLS/OpenSSL/OpenSSLContext.h b/Swiften/TLS/OpenSSL/OpenSSLContext.h
index 9cb287d..40e5483 100644
--- a/Swiften/TLS/OpenSSL/OpenSSLContext.h
+++ b/Swiften/TLS/OpenSSL/OpenSSLContext.h
@@ -30,6 +30,8 @@ namespace Swift {
Certificate::ref getPeerCertificate() const;
boost::shared_ptr<CertificateVerificationError> getPeerCertificateVerificationError() const;
+ virtual ByteArray getFinishMessage() const;
+
private:
static void ensureLibraryInitialized();
diff --git a/Swiften/TLS/TLSContext.h b/Swiften/TLS/TLSContext.h
index 2b8ed2d..1279eeb 100644
--- a/Swiften/TLS/TLSContext.h
+++ b/Swiften/TLS/TLSContext.h
@@ -30,6 +30,8 @@ namespace Swift {
virtual Certificate::ref getPeerCertificate() const = 0;
virtual CertificateVerificationError::ref getPeerCertificateVerificationError() const = 0;
+ virtual ByteArray getFinishMessage() const = 0;
+
public:
boost::signal<void (const ByteArray&)> onDataForNetwork;
boost::signal<void (const ByteArray&)> onDataForApplication;