Skip to content

Commit 1c9dff5

Browse files
metsmamrts
authored andcommitted
Format subject info
WE2-738 Signed-off-by: Raul Metsma <[email protected]>
1 parent 80485b8 commit 1c9dff5

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

src/controller/command-handlers/certificatereader.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,23 @@ CardCertificateAndPinInfo getCertificateWithStatusAndInfo(const CardInfo::ptr& c
4545
"Invalid certificate returned by electronic ID " + card->eid().name());
4646
}
4747

48+
auto subject = certificate.subjectInfo(QSslCertificate::CommonName).join(' ');
49+
auto givenName = certificate.subjectInfo("GN").join(' ');
50+
auto surName = certificate.subjectInfo("SN").join(' ');
51+
auto serialNumber = certificate.subjectInfo(QSslCertificate::SerialNumber).join(' ');
52+
53+
// http://www.etsi.org/deliver/etsi_en/319400_319499/31941201/01.01.01_60/en_31941201v010101p.pdf
54+
if(serialNumber.size() > 6 && serialNumber.startsWith(QStringLiteral("PNO")) && serialNumber[5] == '-')
55+
serialNumber.remove(0, 6);
56+
57+
if (!givenName.isEmpty() || !surName.isEmpty() || !serialNumber.isEmpty()) {
58+
subject = QStringLiteral("%1, %2, %3").arg(surName, givenName, serialNumber);
59+
}
60+
4861
auto certInfo = CertificateInfo {certificateType,
4962
certificate.expiryDate() < QDateTime::currentDateTimeUtc(),
5063
certificate.effectiveDate() > QDateTime::currentDateTimeUtc(),
51-
certificate.subjectInfo(QSslCertificate::CommonName).join(' '),
64+
subject,
5265
certificate.issuerInfo(QSslCertificate::CommonName).join(' '),
5366
certificate.effectiveDate().date().toString(Qt::ISODate),
5467
certificate.expiryDate().date().toString(Qt::ISODate)};

tests/tests/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ void WebEidTests::getCertificate_validCertificateHasExpectedCertificateSubject()
122122

123123
// assert
124124
const auto certInfo = getCertAndPinInfoFromSignalSpy(certificateReadySpy);
125-
QCOMPARE(certInfo.subject, QStringLiteral("M\u00C4NNIK,MARI-LIIS,61709210125"));
125+
QCOMPARE(certInfo.subject, QStringLiteral("M\u00C4NNIK, MARI-LIIS, 61709210125"));
126126

127127
const auto certBytes =
128128
QByteArray::fromBase64(controller->result()["certificate"].toString().toUtf8());
@@ -149,7 +149,7 @@ void WebEidTests::getCertificate_expiredCertificateHasExpectedCertificateSubject
149149

150150
// assert
151151
const auto certInfo = getCertAndPinInfoFromSignalSpy(certificateReadySpy);
152-
QCOMPARE(certInfo.subject, QStringLiteral("M\u00C4NNIK,MARI-LIIS,61709210125"));
152+
QCOMPARE(certInfo.subject, QStringLiteral("M\u00C4NNIK, MARI-LIIS, 61709210125"));
153153

154154
const auto certBytes =
155155
QByteArray::fromBase64(controller->result()["certificate"].toString().toUtf8());
@@ -191,7 +191,7 @@ void WebEidTests::authenticate_validArgumentsResultInValidToken()
191191

192192
// assert
193193
const auto certInfo = getCertAndPinInfoFromSignalSpy(authenticateSpy);
194-
QCOMPARE(certInfo.subject, QStringLiteral("M\u00C4NNIK,MARI-LIIS,61709210125"));
194+
QCOMPARE(certInfo.subject, QStringLiteral("M\u00C4NNIK, MARI-LIIS, 61709210125"));
195195

196196
QCOMPARE(controller->result()["unverifiedCertificate"].toString().left(25),
197197
QStringLiteral("MIIGRzCCBC+gAwIBAgIQRA7X0"));

0 commit comments

Comments
 (0)