1 /* 2 * Copyright (C) 2012 Emweb bv, Herent, Belgium. 3 * 4 * See the LICENSE file for terms of use. 5 */ 6 7 #include "Wt/WSslInfo.h" 8 9 #include "Wt/WLogger.h" 10 #include "Wt/Utils.h" 11 12 #include <sstream> 13 #include <stdexcept> 14 15 namespace Wt { 16 17 LOGGER("WSslInfo"); 18 WSslInfo(const WSslCertificate & clientCertificate,const std::vector<WSslCertificate> & clientCertificateChain,WValidator::Result clientVerificationResult)19WSslInfo::WSslInfo(const WSslCertificate &clientCertificate, 20 const std::vector<WSslCertificate> &clientCertificateChain, 21 WValidator::Result clientVerificationResult) 22 : clientCertificate_(clientCertificate), 23 clientCertificateChain_(clientCertificateChain), 24 clientVerificationResult_(clientVerificationResult) 25 { 26 LOG_DEBUG("WSslInfo fields: " << gdb()); 27 } 28 gdb()29std::string WSslInfo::gdb() const 30 { 31 std::stringstream ss; 32 ss << "client certificate:\n"; 33 clientCertificate_.gdb(); 34 35 for (unsigned i = 0; i < clientCertificateChain_.size(); ++i) { 36 ss << "client cert chain " << i << " :\n"; 37 clientCertificateChain_[i].gdb(); 38 } 39 40 ss 41 << "valid: " 42 << (clientVerificationResult_.state() == ValidationState::Valid) 43 << std::endl 44 << "validity info: " << clientVerificationResult_.message() << std::endl; 45 46 return ss.str(); 47 } 48 49 } 50