File indexing completed on 2024-05-12 04:58:26
0001 /* ============================================================ 0002 * Falkon - Qt web browser 0003 * Copyright (C) 2010-2014 David Rosca <nowrep@gmail.com> 0004 * 0005 * This program is free software: you can redistribute it and/or modify 0006 * it under the terms of the GNU General Public License as published by 0007 * the Free Software Foundation, either version 3 of the License, or 0008 * (at your option) any later version. 0009 * 0010 * This program is distributed in the hope that it will be useful, 0011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0013 * GNU General Public License for more details. 0014 * 0015 * You should have received a copy of the GNU General Public License 0016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0017 * ============================================================ */ 0018 #include "certificateinfowidget.h" 0019 #include "ui_certificateinfowidget.h" 0020 #include "mainapplication.h" 0021 #include "qztools.h" 0022 0023 #include <QSslCertificate> 0024 #include <QDateTime> 0025 0026 QString CertificateInfoWidget::certificateItemText(const QSslCertificate &cert) 0027 { 0028 QString commonName = cert.subjectInfo(QSslCertificate::CommonName).isEmpty() ? QString() : cert.subjectInfo(QSslCertificate::CommonName).at(0); 0029 QString organization = cert.subjectInfo(QSslCertificate::Organization).isEmpty() ? QString() : cert.subjectInfo(QSslCertificate::Organization).at(0); 0030 0031 if (commonName.isEmpty()) { 0032 return clearCertSpecialSymbols(organization); 0033 } 0034 0035 return clearCertSpecialSymbols(commonName); 0036 } 0037 0038 QString CertificateInfoWidget::clearCertSpecialSymbols(const QString &string) 0039 { 0040 QString n = string.toHtmlEscaped(); 0041 0042 if (!n.contains(QLatin1String("\\"))) { 0043 return n; 0044 } 0045 0046 // Credits to http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/176679?help-en 0047 n.replace(QLatin1String("\\xC3\\x80"), QLatin1String("A")); 0048 n.replace(QLatin1String("\\xC3\\x81"), QLatin1String("A")); 0049 n.replace(QLatin1String("\\xC3\\x82"), QLatin1String("A")); 0050 n.replace(QLatin1String("\\xC3\\x83"), QLatin1String("A")); 0051 n.replace(QLatin1String("\\xC3\\x84"), QLatin1String("A")); 0052 n.replace(QLatin1String("\\xC3\\x85"), QLatin1String("A")); 0053 n.replace(QLatin1String("\\xC3\\x86"), QLatin1String("AE")); 0054 n.replace(QLatin1String("\\xC3\\x87"), QLatin1String("C")); 0055 n.replace(QLatin1String("\\xC3\\x88"), QLatin1String("E")); 0056 n.replace(QLatin1String("\\xC3\\x89"), QLatin1String("E")); 0057 n.replace(QLatin1String("\\xC3\\x8A"), QLatin1String("E")); 0058 n.replace(QLatin1String("\\xC3\\x8B"), QLatin1String("E")); 0059 n.replace(QLatin1String("\\xC3\\x8C"), QLatin1String("I")); 0060 n.replace(QLatin1String("\\xC3\\x8D"), QLatin1String("I")); 0061 n.replace(QLatin1String("\\xC3\\x8E"), QLatin1String("I")); 0062 n.replace(QLatin1String("\\xC3\\x8F"), QLatin1String("I")); 0063 n.replace(QLatin1String("\\xC3\\x90"), QLatin1String("D")); 0064 n.replace(QLatin1String("\\xC3\\x91"), QLatin1String("N")); 0065 n.replace(QLatin1String("\\xC3\\x92"), QLatin1String("O")); 0066 n.replace(QLatin1String("\\xC3\\x93"), QLatin1String("O")); 0067 n.replace(QLatin1String("\\xC3\\x94"), QLatin1String("O")); 0068 n.replace(QLatin1String("\\xC3\\x95"), QLatin1String("O")); 0069 n.replace(QLatin1String("\\xC3\\x96"), QLatin1String("O")); 0070 n.replace(QLatin1String("\\xC3\\x98"), QLatin1String("O")); 0071 n.replace(QLatin1String("\\xC3\\x99"), QLatin1String("U")); 0072 n.replace(QLatin1String("\\xC3\\x9A"), QLatin1String("U")); 0073 n.replace(QLatin1String("\\xC3\\x9B"), QLatin1String("U")); 0074 n.replace(QLatin1String("\\xC3\\x9C"), QLatin1String("U")); 0075 n.replace(QLatin1String("\\xC3\\x9D"), QLatin1String("Y")); 0076 n.replace(QLatin1String("\\xC3\\x9E"), QLatin1String("P")); 0077 n.replace(QLatin1String("\\xC3\\x9F"), QLatin1String("ss")); 0078 n.replace(QLatin1String("\\xC9\\x99"), QLatin1String("e")); 0079 n.replace(QLatin1String("\\xC3\\xA0"), QLatin1String("a")); 0080 n.replace(QLatin1String("\\xC3\\xA1"), QLatin1String("a")); 0081 n.replace(QLatin1String("\\xC3\\xA2"), QLatin1String("a")); 0082 n.replace(QLatin1String("\\xC3\\xA3"), QLatin1String("a")); 0083 n.replace(QLatin1String("\\xC3\\xA4"), QLatin1String("a")); 0084 n.replace(QLatin1String("\\xC3\\xA5"), QLatin1String("a")); 0085 n.replace(QLatin1String("\\xC3\\xA6"), QLatin1String("ae")); 0086 n.replace(QLatin1String("\\xC3\\xA7"), QLatin1String("c")); 0087 n.replace(QLatin1String("\\xC3\\xA8"), QLatin1String("e")); 0088 n.replace(QLatin1String("\\xC3\\xA9"), QLatin1String("e")); 0089 n.replace(QLatin1String("\\xC3\\xAA"), QLatin1String("e")); 0090 n.replace(QLatin1String("\\xC3\\xAB"), QLatin1String("e")); 0091 n.replace(QLatin1String("\\xC3\\xAC"), QLatin1String("i")); 0092 n.replace(QLatin1String("\\xC3\\xAD"), QLatin1String("i")); 0093 n.replace(QLatin1String("\\xC3\\xAE"), QLatin1String("i")); 0094 n.replace(QLatin1String("\\xC3\\xAF"), QLatin1String("i")); 0095 n.replace(QLatin1String("\\xC3\\xB0"), QLatin1String("o")); 0096 n.replace(QLatin1String("\\xC3\\xB1"), QLatin1String("n")); 0097 n.replace(QLatin1String("\\xC3\\xB2"), QLatin1String("o")); 0098 n.replace(QLatin1String("\\xC3\\xB3"), QLatin1String("o")); 0099 n.replace(QLatin1String("\\xC3\\xB4"), QLatin1String("o")); 0100 n.replace(QLatin1String("\\xC3\\xB5"), QLatin1String("o")); 0101 n.replace(QLatin1String("\\xC3\\xB6"), QLatin1String("o")); 0102 n.replace(QLatin1String("\\xC3\\xB8"), QLatin1String("o")); 0103 n.replace(QLatin1String("\\xC3\\xB9"), QLatin1String("u")); 0104 n.replace(QLatin1String("\\xC3\\xBA"), QLatin1String("u")); 0105 n.replace(QLatin1String("\\xC3\\xBB"), QLatin1String("u")); 0106 n.replace(QLatin1String("\\xC3\\xBC"), QLatin1String("u")); 0107 n.replace(QLatin1String("\\xC3\\xBD"), QLatin1String("y")); 0108 n.replace(QLatin1String("\\xC3\\xBE"), QLatin1String("p")); 0109 n.replace(QLatin1String("\\xC3\\xBF"), QLatin1String("y")); 0110 n.replace(QLatin1String("\\xC7\\xBF"), QLatin1String("o")); 0111 n.replace(QLatin1String("\\xC4\\x80"), QLatin1String("A")); 0112 n.replace(QLatin1String("\\xC4\\x81"), QLatin1String("a")); 0113 n.replace(QLatin1String("\\xC4\\x82"), QLatin1String("A")); 0114 n.replace(QLatin1String("\\xC4\\x83"), QLatin1String("a")); 0115 n.replace(QLatin1String("\\xC4\\x84"), QLatin1String("A")); 0116 n.replace(QLatin1String("\\xC4\\x85"), QLatin1String("a")); 0117 n.replace(QLatin1String("\\xC4\\x86"), QLatin1String("C")); 0118 n.replace(QLatin1String("\\xC4\\x87"), QLatin1String("c")); 0119 n.replace(QLatin1String("\\xC4\\x88"), QLatin1String("C")); 0120 n.replace(QLatin1String("\\xC4\\x89"), QLatin1String("c")); 0121 n.replace(QLatin1String("\\xC4\\x8A"), QLatin1String("C")); 0122 n.replace(QLatin1String("\\xC4\\x8B"), QLatin1String("c")); 0123 n.replace(QLatin1String("\\xC4\\x8C"), QLatin1String("C")); 0124 n.replace(QLatin1String("\\xC4\\x8D"), QLatin1String("c")); 0125 n.replace(QLatin1String("\\xC4\\x8E"), QLatin1String("D")); 0126 n.replace(QLatin1String("\\xC4\\x8F"), QLatin1String("d")); 0127 n.replace(QLatin1String("\\xC4\\x90"), QLatin1String("D")); 0128 n.replace(QLatin1String("\\xC4\\x91"), QLatin1String("d")); 0129 n.replace(QLatin1String("\\xC4\\x92"), QLatin1String("E")); 0130 n.replace(QLatin1String("\\xC4\\x93"), QLatin1String("e")); 0131 n.replace(QLatin1String("\\xC4\\x94"), QLatin1String("E")); 0132 n.replace(QLatin1String("\\xC4\\x95"), QLatin1String("e")); 0133 n.replace(QLatin1String("\\xC4\\x96"), QLatin1String("E")); 0134 n.replace(QLatin1String("\\xC4\\x97"), QLatin1String("e")); 0135 n.replace(QLatin1String("\\xC4\\x98"), QLatin1String("E")); 0136 n.replace(QLatin1String("\\xC4\\x99"), QLatin1String("e")); 0137 n.replace(QLatin1String("\\xC4\\x9A"), QLatin1String("E")); 0138 n.replace(QLatin1String("\\xC4\\x9B"), QLatin1String("e")); 0139 n.replace(QLatin1String("\\xC4\\x9C"), QLatin1String("G")); 0140 n.replace(QLatin1String("\\xC4\\x9D"), QLatin1String("g")); 0141 n.replace(QLatin1String("\\xC4\\x9E"), QLatin1String("G")); 0142 n.replace(QLatin1String("\\xC4\\x9F"), QLatin1String("g")); 0143 n.replace(QLatin1String("\\xC4\\xA0"), QLatin1String("G")); 0144 n.replace(QLatin1String("\\xC4\\xA1"), QLatin1String("g")); 0145 n.replace(QLatin1String("\\xC4\\xA2"), QLatin1String("G")); 0146 n.replace(QLatin1String("\\xC4\\xA3"), QLatin1String("g")); 0147 n.replace(QLatin1String("\\xC4\\xA4"), QLatin1String("H")); 0148 n.replace(QLatin1String("\\xC4\\xA5"), QLatin1String("h")); 0149 n.replace(QLatin1String("\\xC4\\xA6"), QLatin1String("H")); 0150 n.replace(QLatin1String("\\xC4\\xA7"), QLatin1String("h")); 0151 n.replace(QLatin1String("\\xC4\\xA8"), QLatin1String("I")); 0152 n.replace(QLatin1String("\\xC4\\xA9"), QLatin1String("i")); 0153 n.replace(QLatin1String("\\xC4\\xAA"), QLatin1String("I")); 0154 n.replace(QLatin1String("\\xC4\\xAB"), QLatin1String("i")); 0155 n.replace(QLatin1String("\\xC4\\xAC"), QLatin1String("I")); 0156 n.replace(QLatin1String("\\xC4\\xAD"), QLatin1String("i")); 0157 n.replace(QLatin1String("\\xC4\\xAE"), QLatin1String("I")); 0158 n.replace(QLatin1String("\\xC4\\xAF"), QLatin1String("i")); 0159 n.replace(QLatin1String("\\xC4\\xB0"), QLatin1String("I")); 0160 n.replace(QLatin1String("\\xC4\\xB1"), QLatin1String("i")); 0161 n.replace(QLatin1String("\\xC4\\xB2"), QLatin1String("IJ")); 0162 n.replace(QLatin1String("\\xC4\\xB3"), QLatin1String("ij")); 0163 n.replace(QLatin1String("\\xC4\\xB4"), QLatin1String("J")); 0164 n.replace(QLatin1String("\\xC4\\xB5"), QLatin1String("j")); 0165 n.replace(QLatin1String("\\xC4\\xB6"), QLatin1String("K")); 0166 n.replace(QLatin1String("\\xC4\\xB7"), QLatin1String("k")); 0167 n.replace(QLatin1String("\\xC4\\xB8"), QLatin1String("k")); 0168 n.replace(QLatin1String("\\xC4\\xB9"), QLatin1String("L")); 0169 n.replace(QLatin1String("\\xC4\\xBA"), QLatin1String("l")); 0170 n.replace(QLatin1String("\\xC4\\xBB"), QLatin1String("L")); 0171 n.replace(QLatin1String("\\xC4\\xBC"), QLatin1String("l")); 0172 n.replace(QLatin1String("\\xC4\\xBD"), QLatin1String("L")); 0173 n.replace(QLatin1String("\\xC4\\xBE"), QLatin1String("l")); 0174 n.replace(QLatin1String("\\xC4\\xBF"), QLatin1String("L")); 0175 n.replace(QLatin1String("\\xC5\\x80"), QLatin1String("l")); 0176 n.replace(QLatin1String("\\xC5\\x81"), QLatin1String("L")); 0177 n.replace(QLatin1String("\\xC5\\x82"), QLatin1String("l")); 0178 n.replace(QLatin1String("\\xC5\\x83"), QLatin1String("N")); 0179 n.replace(QLatin1String("\\xC5\\x84"), QLatin1String("n")); 0180 n.replace(QLatin1String("\\xC5\\x85"), QLatin1String("N")); 0181 n.replace(QLatin1String("\\xC5\\x86"), QLatin1String("n")); 0182 n.replace(QLatin1String("\\xC5\\x87"), QLatin1String("N")); 0183 n.replace(QLatin1String("\\xC5\\x88"), QLatin1String("n")); 0184 n.replace(QLatin1String("\\xC5\\x89"), QLatin1String("n")); 0185 n.replace(QLatin1String("\\xC5\\x8A"), QLatin1String("N")); 0186 n.replace(QLatin1String("\\xC5\\x8B"), QLatin1String("n")); 0187 n.replace(QLatin1String("\\xC5\\x8C"), QLatin1String("O")); 0188 n.replace(QLatin1String("\\xC5\\x8D"), QLatin1String("o")); 0189 n.replace(QLatin1String("\\xC5\\x8E"), QLatin1String("O")); 0190 n.replace(QLatin1String("\\xC5\\x8F"), QLatin1String("o")); 0191 n.replace(QLatin1String("\\xC5\\x90"), QLatin1String("O")); 0192 n.replace(QLatin1String("\\xC5\\x91"), QLatin1String("o")); 0193 n.replace(QLatin1String("\\xC5\\x92"), QLatin1String("CE")); 0194 n.replace(QLatin1String("\\xC5\\x93"), QLatin1String("ce")); 0195 n.replace(QLatin1String("\\xC5\\x94"), QLatin1String("R")); 0196 n.replace(QLatin1String("\\xC5\\x95"), QLatin1String("r")); 0197 n.replace(QLatin1String("\\xC5\\x96"), QLatin1String("R")); 0198 n.replace(QLatin1String("\\xC5\\x97"), QLatin1String("r")); 0199 n.replace(QLatin1String("\\xC5\\x98"), QLatin1String("R")); 0200 n.replace(QLatin1String("\\xC5\\x99"), QLatin1String("r")); 0201 n.replace(QLatin1String("\\xC5\\x9A"), QLatin1String("S")); 0202 n.replace(QLatin1String("\\xC5\\x9B"), QLatin1String("s")); 0203 n.replace(QLatin1String("\\xC5\\x9C"), QLatin1String("S")); 0204 n.replace(QLatin1String("\\xC5\\x9D"), QLatin1String("s")); 0205 n.replace(QLatin1String("\\xC5\\x9E"), QLatin1String("S")); 0206 n.replace(QLatin1String("\\xC5\\x9F"), QLatin1String("s")); 0207 n.replace(QLatin1String("\\xC5\\xA0"), QLatin1String("S")); 0208 n.replace(QLatin1String("\\xC5\\xA1"), QLatin1String("s")); 0209 n.replace(QLatin1String("\\xC5\\xA2"), QLatin1String("T")); 0210 n.replace(QLatin1String("\\xC5\\xA3"), QLatin1String("t")); 0211 n.replace(QLatin1String("\\xC5\\xA4"), QLatin1String("T")); 0212 n.replace(QLatin1String("\\xC5\\xA5"), QLatin1String("t")); 0213 n.replace(QLatin1String("\\xC5\\xA6"), QLatin1String("T")); 0214 n.replace(QLatin1String("\\xC5\\xA7"), QLatin1String("t")); 0215 n.replace(QLatin1String("\\xC5\\xA8"), QLatin1String("U")); 0216 n.replace(QLatin1String("\\xC5\\xA9"), QLatin1String("u")); 0217 n.replace(QLatin1String("\\xC5\\xAA"), QLatin1String("U")); 0218 n.replace(QLatin1String("\\xC5\\xAB"), QLatin1String("u")); 0219 n.replace(QLatin1String("\\xC5\\xAC"), QLatin1String("U")); 0220 n.replace(QLatin1String("\\xC5\\xAD"), QLatin1String("u")); 0221 n.replace(QLatin1String("\\xC5\\xAE"), QLatin1String("U")); 0222 n.replace(QLatin1String("\\xC5\\xAF"), QLatin1String("u")); 0223 n.replace(QLatin1String("\\xC5\\xB0"), QLatin1String("U")); 0224 n.replace(QLatin1String("\\xC5\\xB1"), QLatin1String("u")); 0225 n.replace(QLatin1String("\\xC5\\xB2"), QLatin1String("U")); 0226 n.replace(QLatin1String("\\xC5\\xB3"), QLatin1String("u")); 0227 n.replace(QLatin1String("\\xC5\\xB4"), QLatin1String("W")); 0228 n.replace(QLatin1String("\\xC5\\xB5"), QLatin1String("w")); 0229 n.replace(QLatin1String("\\xC5\\xB6"), QLatin1String("Y")); 0230 n.replace(QLatin1String("\\xC5\\xB7"), QLatin1String("y")); 0231 n.replace(QLatin1String("\\xC5\\xB8"), QLatin1String("Y")); 0232 n.replace(QLatin1String("\\xC5\\xB9"), QLatin1String("Z")); 0233 n.replace(QLatin1String("\\xC5\\xBA"), QLatin1String("z")); 0234 n.replace(QLatin1String("\\xC5\\xBB"), QLatin1String("Z")); 0235 n.replace(QLatin1String("\\xC5\\xBC"), QLatin1String("z")); 0236 n.replace(QLatin1String("\\xC5\\xBD"), QLatin1String("Z")); 0237 n.replace(QLatin1String("\\xC5\\xBE"), QLatin1String("z")); 0238 n.replace(QLatin1String("\\xC6\\x8F"), QLatin1String("E")); 0239 n.replace(QLatin1String("\\xC6\\xA0"), QLatin1String("O")); 0240 n.replace(QLatin1String("\\xC6\\xA1"), QLatin1String("o")); 0241 n.replace(QLatin1String("\\xC6\\xAF"), QLatin1String("U")); 0242 n.replace(QLatin1String("\\xC6\\xB0"), QLatin1String("u")); 0243 n.replace(QLatin1String("\\xC7\\x8D"), QLatin1String("A")); 0244 n.replace(QLatin1String("\\xC7\\x8E"), QLatin1String("a")); 0245 n.replace(QLatin1String("\\xC7\\x8F"), QLatin1String("I")); 0246 n.replace(QLatin1String("\\xC7\\x93"), QLatin1String("U")); 0247 n.replace(QLatin1String("\\xC7\\x90"), QLatin1String("i")); 0248 n.replace(QLatin1String("\\xC7\\x91"), QLatin1String("O")); 0249 n.replace(QLatin1String("\\xC7\\x92"), QLatin1String("o")); 0250 n.replace(QLatin1String("\\xC7\\x97"), QLatin1String("U")); 0251 n.replace(QLatin1String("\\xC7\\x94"), QLatin1String("u")); 0252 n.replace(QLatin1String("\\xC7\\x95"), QLatin1String("U")); 0253 n.replace(QLatin1String("\\xC7\\x96"), QLatin1String("u")); 0254 n.replace(QLatin1String("\\xC7\\x9B"), QLatin1String("U")); 0255 n.replace(QLatin1String("\\xC7\\x98"), QLatin1String("u")); 0256 n.replace(QLatin1String("\\xC7\\x99"), QLatin1String("U")); 0257 n.replace(QLatin1String("\\xC7\\x9A"), QLatin1String("u")); 0258 n.replace(QLatin1String("\\xC7\\xBD"), QLatin1String("ae")); 0259 n.replace(QLatin1String("\\xC7\\x9C"), QLatin1String("u")); 0260 n.replace(QLatin1String("\\xC7\\xBB"), QLatin1String("a")); 0261 n.replace(QLatin1String("\\xC7\\xBC"), QLatin1String("AE")); 0262 n.replace(QLatin1String("\\xC7\\xBE"), QLatin1String("O")); 0263 n.replace(QLatin1String("\\xC7\\xBA"), QLatin1String("A")); 0264 0265 n.replace(QLatin1String("\\xC2\\x82"), QLatin1String(",")); // High code comma 0266 n.replace(QLatin1String("\\xC2\\x84"), QLatin1String(",,")); // High code double comma 0267 n.replace(QLatin1String("\\xC2\\x85"), QLatin1String("...")); // Tripple dot 0268 n.replace(QLatin1String("\\xC2\\x88"), QLatin1String("^")); // High carat 0269 n.replace(QLatin1String("\\xC2\\x91"), QLatin1String("\\x27")); // Forward single quote 0270 n.replace(QLatin1String("\\xC2\\x92"), QLatin1String("\\x27")); // Reverse single quote 0271 n.replace(QLatin1String("\\xC2\\x93"), QLatin1String("\\x22")); // Forward double quote 0272 n.replace(QLatin1String("\\xC2\\x94"), QLatin1String("\\x22")); // Reverse double quote 0273 n.replace(QLatin1String("\\xC2\\x96"), QLatin1String("-")); // High hyphen 0274 n.replace(QLatin1String("\\xC2\\x97"), QLatin1String("--")); // Double hyphen 0275 n.replace(QLatin1String("\\xC2\\xA6"), QLatin1String("|")); // Split vertical bar 0276 n.replace(QLatin1String("\\xC2\\xAB"), QLatin1String("<<")); // Double less than 0277 n.replace(QLatin1String("\\xC2\\xBB"), QLatin1String(">>")); // Double greater than 0278 n.replace(QLatin1String("\\xC2\\xBC"), QLatin1String("1/4")); // one quarter 0279 n.replace(QLatin1String("\\xC2\\xBD"), QLatin1String("1/2")); // one half 0280 n.replace(QLatin1String("\\xC2\\xBE"), QLatin1String("3/4")); // three quarters 0281 n.replace(QLatin1String("\\xCA\\xBF"), QLatin1String("\\x27")); // c-single quote 0282 n.remove(QLatin1String("\\xCC\\xA8")); // modifier - under curve 0283 n.remove(QLatin1String("\\xCC\\xB1")); // modifier - under line 0284 0285 return n; 0286 } 0287 0288 QString CertificateInfoWidget::clearCertSpecialSymbols(const QStringList &stringList) 0289 { 0290 if (stringList.isEmpty()) { 0291 return {}; 0292 } 0293 0294 return clearCertSpecialSymbols(stringList.at(0)); 0295 } 0296 0297 QString CertificateInfoWidget::showCertInfo(const QString &string) 0298 { 0299 if (string.isEmpty()) { 0300 return QObject::tr("<not set in certificate>"); 0301 } 0302 else { 0303 return clearCertSpecialSymbols(string); 0304 } 0305 } 0306 0307 QString CertificateInfoWidget::showCertInfo(const QStringList &stringList) 0308 { 0309 if (stringList.isEmpty()) { 0310 return {}; 0311 } 0312 0313 return showCertInfo(stringList.at(0)); 0314 } 0315 0316 CertificateInfoWidget::CertificateInfoWidget(const QSslCertificate &cert, QWidget* parent) 0317 : QWidget(parent) 0318 , ui(new Ui::CertificateInfoWidget) 0319 { 0320 ui->setupUi(this); 0321 0322 //Issued to 0323 ui->issuedToCN->setText(showCertInfo(cert.subjectInfo(QSslCertificate::CommonName))); 0324 ui->issuedToO->setText(showCertInfo(cert.subjectInfo(QSslCertificate::Organization))); 0325 ui->issuedToOU->setText(showCertInfo(cert.subjectInfo(QSslCertificate::OrganizationalUnitName))); 0326 ui->issuedToSN->setText(showCertInfo(QString::fromLatin1(cert.serialNumber()))); 0327 //Issued By 0328 ui->issuedByCN->setText(showCertInfo(cert.issuerInfo(QSslCertificate::CommonName))); 0329 ui->issuedByO->setText(showCertInfo(cert.issuerInfo(QSslCertificate::Organization))); 0330 ui->issuedByOU->setText(showCertInfo(cert.issuerInfo(QSslCertificate::OrganizationalUnitName))); 0331 //Validity 0332 QLocale locale = QLocale::system(); 0333 ui->validityIssuedOn->setText(locale.toString(cert.effectiveDate(), QSL("dddd d. MMMM yyyy"))); 0334 ui->validityExpiresOn->setText(locale.toString(cert.expiryDate(), QSL("dddd d. MMMM yyyy"))); 0335 } 0336 0337 CertificateInfoWidget::~CertificateInfoWidget() 0338 { 0339 delete ui; 0340 }