Skip to content

Commit 761551f

Browse files
committed
Moved the code around
1 parent 0db4f67 commit 761551f

File tree

2 files changed

+40
-31
lines changed

2 files changed

+40
-31
lines changed

src/main/java/de/rub/nds/tlsscanner/probe/certificate/CertificateReportGenerator.java

Lines changed: 36 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,14 @@
1111
import de.rub.nds.tlsattacker.core.constants.HashAlgorithm;
1212
import de.rub.nds.tlsattacker.core.constants.SignatureAlgorithm;
1313
import de.rub.nds.tlsattacker.core.constants.SignatureAndHashAlgorithm;
14+
import java.io.IOException;
15+
import java.security.MessageDigest;
16+
import java.security.NoSuchAlgorithmException;
1417
import java.security.cert.CertificateParsingException;
1518
import java.security.cert.X509Certificate;
1619
import java.util.LinkedList;
1720
import java.util.List;
21+
import javax.xml.bind.DatatypeConverter;
1822
import org.apache.logging.log4j.LogManager;
1923
import org.apache.logging.log4j.Logger;
2024
import org.bouncycastle.asn1.x500.RDN;
@@ -29,9 +33,9 @@
2933
* @author Robert Merget - [email protected]
3034
*/
3135
public class CertificateReportGenerator {
32-
36+
3337
private static final Logger LOGGER = LogManager.getLogger(CertificateReportGenerator.class.getName());
34-
38+
3539
public static List<CertificateReport> generateReports(Certificate certs) {
3640
List<CertificateReport> reportList = new LinkedList<>();
3741
if (certs != null) {
@@ -41,7 +45,7 @@ public static List<CertificateReport> generateReports(Certificate certs) {
4145
}
4246
return reportList;
4347
}
44-
48+
4549
public static CertificateReport generateReport(org.bouncycastle.asn1.x509.Certificate cert) {
4650
CertificateReportImplementation report = new CertificateReportImplementation();
4751
setSubject(report, cert);
@@ -61,36 +65,37 @@ public static CertificateReport generateReport(org.bouncycastle.asn1.x509.Certif
6165
setRevoked(report, cert);
6266
setDnsCCA(report, cert);
6367
setTrusted(report, cert);
68+
setSha256Hash(report, cert);
6469
report.setCertificate(cert);
6570
return report;
6671
}
67-
72+
6873
private static void setSubject(CertificateReportImplementation report, org.bouncycastle.asn1.x509.Certificate cert) {
6974
X500Name x500name = cert.getSubject();
7075
RDN cn = x500name.getRDNs(BCStyle.CN)[0];
7176
report.setCommonNames(IETFUtils.valueToString(cn.getFirst().getValue()));
7277
}
73-
78+
7479
private static void setCommonNames(CertificateReportImplementation report,
7580
org.bouncycastle.asn1.x509.Certificate cert) {
7681
X500Name x500name = cert.getSubject();
7782
RDN cn = x500name.getRDNs(BCStyle.CN)[0];
7883
report.setCommonNames(IETFUtils.valueToString(cn.getFirst().getValue()));
7984
}
80-
85+
8186
private static void setAlternativeNames(CertificateReportImplementation report,
8287
org.bouncycastle.asn1.x509.Certificate cert) {
83-
88+
8489
}
85-
90+
8691
private static void setValidFrom(CertificateReportImplementation report, org.bouncycastle.asn1.x509.Certificate cert) {
8792
report.setValidFrom(cert.getStartDate().getDate());
8893
}
89-
94+
9095
private static void setValidTo(CertificateReportImplementation report, org.bouncycastle.asn1.x509.Certificate cert) {
9196
report.setValidTo(cert.getEndDate().getDate());
9297
}
93-
98+
9499
private static void setPubkey(CertificateReportImplementation report, org.bouncycastle.asn1.x509.Certificate cert) {
95100
try {
96101
X509Certificate x509Cert = new X509CertificateObject(cert);
@@ -99,15 +104,15 @@ private static void setPubkey(CertificateReportImplementation report, org.bouncy
99104
// TODO log could not set public key
100105
}
101106
}
102-
107+
103108
private static void setWeakDebianKey(CertificateReportImplementation report,
104109
org.bouncycastle.asn1.x509.Certificate cert) {
105110
}
106-
111+
107112
private static void setIssuer(CertificateReportImplementation report, org.bouncycastle.asn1.x509.Certificate cert) {
108113
report.setIssuer(cert.getIssuer().toString());
109114
}
110-
115+
111116
private static void setSignatureAndHashAlgorithm(CertificateReportImplementation report,
112117
org.bouncycastle.asn1.x509.Certificate cert) {
113118
String sigAndHashString = null;
@@ -129,34 +134,43 @@ private static void setSignatureAndHashAlgorithm(CertificateReportImplementation
129134
LOGGER.debug("Could not extraxt SignatureAndHashAlgorithm from String:" + sigAndHashString, E);
130135
}
131136
}
132-
137+
133138
private static void setExtendedValidation(CertificateReportImplementation report,
134139
org.bouncycastle.asn1.x509.Certificate cert) {
135-
140+
136141
}
137-
142+
138143
private static void setCeritifcateTransparency(CertificateReportImplementation report,
139144
org.bouncycastle.asn1.x509.Certificate cert) {
140145
}
141-
146+
142147
private static void setOcspMustStaple(CertificateReportImplementation report,
143148
org.bouncycastle.asn1.x509.Certificate cert) {
144149
}
145-
150+
146151
private static void setCRLSupported(CertificateReportImplementation report,
147152
org.bouncycastle.asn1.x509.Certificate cert) {
148153
}
149-
154+
150155
private static void setOcspSupported(CertificateReportImplementation report,
151156
org.bouncycastle.asn1.x509.Certificate cert) {
152157
}
153-
158+
154159
private static void setRevoked(CertificateReportImplementation report, org.bouncycastle.asn1.x509.Certificate cert) {
155160
}
156-
161+
157162
private static void setDnsCCA(CertificateReportImplementation report, org.bouncycastle.asn1.x509.Certificate cert) {
158163
}
159-
164+
160165
private static void setTrusted(CertificateReportImplementation report, org.bouncycastle.asn1.x509.Certificate cert) {
161166
}
167+
168+
private static void setSha256Hash(CertificateReportImplementation report, org.bouncycastle.asn1.x509.Certificate cert) {
169+
try {
170+
report.setSha256FingerprintHex(DatatypeConverter.printHexBinary(
171+
MessageDigest.getInstance("SHA-256").digest(cert.getEncoded())).toLowerCase());
172+
} catch (IOException | NoSuchAlgorithmException e) {
173+
LOGGER.warn("Could not create SHA-256 Hash", e);
174+
}
175+
}
162176
}

src/main/java/de/rub/nds/tlsscanner/probe/certificate/CertificateReportImplementation.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ class CertificateReportImplementation implements CertificateReport {
4545
private Certificate certificate;
4646
private String sha256FingerprintHex;
4747

48-
4948
public CertificateReportImplementation() {
5049
}
5150

@@ -59,16 +58,12 @@ public String getSHA256Fingerprint() {
5958
return sha256FingerprintHex;
6059
}
6160

61+
public void setSha256FingerprintHex(String sha256FingerprintHex) {
62+
this.sha256FingerprintHex = sha256FingerprintHex;
63+
}
64+
6265
public void setCertificate(Certificate certificate) {
6366
this.certificate = certificate;
64-
try {
65-
this.sha256FingerprintHex = DatatypeConverter.printHexBinary(
66-
MessageDigest.getInstance("SHA-256").digest(certificate.getEncoded())).toLowerCase();
67-
} catch (NoSuchAlgorithmException e) {
68-
e.printStackTrace();
69-
} catch (IOException e) {
70-
e.printStackTrace();
71-
}
7267
}
7368

7469
@Override

0 commit comments

Comments
 (0)