summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-12-30 19:19:42 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-12-30 19:27:25 (GMT)
commitb5ae8c3a9ec236321d705f9a79234777fc28b5fc (patch)
treed634b3b4bf391b2e8a56d451bf911bcde3f36954 /Swiften/TLS/Certificate.cpp
parentd64d480cae2db95a802323408745b0d49be9c660 (diff)
downloadswift-b5ae8c3a9ec236321d705f9a79234777fc28b5fc.zip
swift-b5ae8c3a9ec236321d705f9a79234777fc28b5fc.tar.bz2
Show certificate fingerprint in 'Trust certificate' dialog.
Diffstat (limited to 'Swiften/TLS/Certificate.cpp')
-rw-r--r--Swiften/TLS/Certificate.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/Swiften/TLS/Certificate.cpp b/Swiften/TLS/Certificate.cpp
index 7d61b22..984d668 100644
--- a/Swiften/TLS/Certificate.cpp
+++ b/Swiften/TLS/Certificate.cpp
@@ -4,7 +4,12 @@
* See Documentation/Licenses/GPLv3.txt for more information.
*/
-#include "Swiften/TLS/Certificate.h"
+#include <Swiften/TLS/Certificate.h>
+
+#include <sstream>
+
+#include <Swiften/StringCodecs/SHA1.h>
+#include <Swiften/StringCodecs/Hexify.h>
namespace Swift {
@@ -14,4 +19,16 @@ const char* Certificate::ID_ON_DNSSRV_OID = "1.3.6.1.5.5.7.8.7";
Certificate::~Certificate() {
}
+String Certificate::getSHA1Fingerprint() const {
+ ByteArray hash = SHA1::getHash(toDER());
+ std::ostringstream s;
+ for (size_t i = 0; i < hash.getSize(); ++i) {
+ if (i > 0) {
+ s << ":";
+ }
+ s << Hexify::hexify(hash[i]).getUTF8String();
+ }
+ return String(s.str());
+}
+
}