Skip to content

Commit 0db4f67

Browse files
committed
Add SHA256 Fingerprint to certificate output
1 parent dd55b3f commit 0db4f67

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ public interface CertificateReport {
2121

2222
public Certificate getCertificate();
2323

24+
public String getSHA256Fingerprint();
25+
2426
public String getSubject();
2527

2628
public String getCommonNames();

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,16 @@
99
package de.rub.nds.tlsscanner.probe.certificate;
1010

1111
import de.rub.nds.tlsattacker.core.constants.SignatureAndHashAlgorithm;
12+
13+
import java.io.IOException;
14+
import java.security.NoSuchAlgorithmException;
1215
import java.security.PublicKey;
16+
import java.security.MessageDigest;
1317
import java.util.Date;
1418
import org.bouncycastle.asn1.x509.Certificate;
1519

20+
import javax.xml.bind.DatatypeConverter;
21+
1622
/**
1723
*
1824
* @author Robert Merget - [email protected]
@@ -37,6 +43,8 @@ class CertificateReportImplementation implements CertificateReport {
3743
private Boolean dnsCAA;
3844
private Boolean trusted;
3945
private Certificate certificate;
46+
private String sha256FingerprintHex;
47+
4048

4149
public CertificateReportImplementation() {
4250
}
@@ -46,8 +54,21 @@ public Certificate getCertificate() {
4654
return certificate;
4755
}
4856

57+
@Override
58+
public String getSHA256Fingerprint() {
59+
return sha256FingerprintHex;
60+
}
61+
4962
public void setCertificate(Certificate certificate) {
5063
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+
}
5172
}
5273

5374
@Override
@@ -206,6 +227,7 @@ public void setTrusted(Boolean trusted) {
206227
@Override
207228
public String toString() {
208229
StringBuilder builder = new StringBuilder();
230+
builder.append("Fingerprint: ").append(sha256FingerprintHex).append("\n");
209231
if (subject != null) {
210232
builder.append("Subject: ").append(subject).append("\n");
211233
}

0 commit comments

Comments
 (0)