Skip to content

Commit 3814edf

Browse files
mrtssvenzik
authored andcommitted
fix: use correct JSON property names in SignatureAlgorithmDTO, add dash to digestAlgorithmName already during construction
Signed-off-by: Mart Somermaa <mrts@users.noreply.github.com>
1 parent cc6f5b6 commit 3814edf

File tree

4 files changed

+18
-25
lines changed

4 files changed

+18
-25
lines changed

example/src/main/java/eu/webeid/example/service/SigningService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
import javax.xml.bind.DatatypeConverter;
5151
import java.io.IOException;
5252
import java.io.InputStream;
53-
import java.security.MessageDigest;
5453
import java.security.NoSuchAlgorithmException;
5554
import java.security.cert.CertificateException;
5655
import java.security.cert.X509Certificate;
@@ -103,10 +102,11 @@ public DigestDTO prepareContainer(CertificateDTO certificateDTO, WebEidAuthentic
103102
LOG.info("Preparing container for signing for file '{}'", containerName);
104103

105104
final DigestAlgorithm signatureDigestAlgorithm = TokenAlgorithmSupport.determineSignatureDigestAlgorithm(certificate);
106-
final String digestAlgorithmName = signatureDigestAlgorithm.uri().getRef().toUpperCase();
107-
if (!certificateDTO.getSupportedAlgorithmNames().contains(digestAlgorithmName)) {
105+
final String digestAlgorithmName = signatureDigestAlgorithm.uri().getRef()
106+
.toUpperCase().replace("SHA", "SHA-"); // SHA256 -> SHA-256
107+
if (!certificateDTO.getSupportedHashFunctionNames().contains(digestAlgorithmName)) {
108108
throw new IllegalArgumentException("Determined signature digest algorithm '" + digestAlgorithmName +
109-
"' is not supported. Supported algorithms are: " + String.join(", ", certificateDTO.getSupportedAlgorithmNames()));
109+
"' is not supported. Supported algorithms are: " + String.join(", ", certificateDTO.getSupportedHashFunctionNames()));
110110
}
111111

112112
DataToSign dataToSign = SignatureBuilder
@@ -125,7 +125,7 @@ public DigestDTO prepareContainer(CertificateDTO certificateDTO, WebEidAuthentic
125125

126126
DigestDTO digestDTO = new DigestDTO();
127127
digestDTO.setHash(DatatypeConverter.printBase64Binary(digest));
128-
digestDTO.setHashFunction(digestAlgorithmName.replace("SHA", "SHA-")); // SHA256 -> SHA-256
128+
digestDTO.setHashFunction(digestAlgorithmName);
129129

130130
return digestDTO;
131131
}

example/src/main/java/eu/webeid/example/service/dto/CertificateDTO.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222

2323
package eu.webeid.example.service.dto;
2424

25-
import com.fasterxml.jackson.annotation.JsonProperty;
26-
2725
import java.io.ByteArrayInputStream;
2826
import java.io.InputStream;
2927
import java.security.cert.CertificateException;
@@ -62,10 +60,10 @@ public X509Certificate toX509Certificate() throws CertificateException {
6260
return (X509Certificate) cf.generateCertificate(inStream);
6361
}
6462

65-
public List<String> getSupportedAlgorithmNames() {
63+
public List<String> getSupportedHashFunctionNames() {
6664
return supportedSignatureAlgorithms == null ? new ArrayList<>() : supportedSignatureAlgorithms
6765
.stream()
68-
.map(SignatureAlgorithmDTO::getHashAlgorithm)
66+
.map(SignatureAlgorithmDTO::getHashFunction)
6967
.distinct()
7068
.collect(Collectors.toList());
7169
}

example/src/main/java/eu/webeid/example/service/dto/SignatureAlgorithmDTO.java

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,13 @@
2222

2323
package eu.webeid.example.service.dto;
2424

25-
import com.fasterxml.jackson.annotation.JsonProperty;
26-
2725
public class SignatureAlgorithmDTO {
2826

29-
@JsonProperty("crypto-algo")
3027
private String cryptoAlgorithm;
3128

32-
@JsonProperty("hash-algo")
33-
private String hashAlgorithm;
29+
private String hashFunction;
3430

35-
@JsonProperty("padding-algo")
36-
private String paddingAlgorithm;
31+
private String paddingScheme;
3732

3833
public String getCryptoAlgorithm() {
3934
return cryptoAlgorithm;
@@ -43,19 +38,19 @@ public void setCryptoAlgorithm(String cryptoAlgorithm) {
4338
this.cryptoAlgorithm = cryptoAlgorithm;
4439
}
4540

46-
public String getHashAlgorithm() {
47-
return hashAlgorithm;
41+
public String getHashFunction() {
42+
return hashFunction;
4843
}
4944

50-
public void setHashAlgorithm(String hashAlgorithm) {
51-
this.hashAlgorithm = hashAlgorithm;
45+
public void setHashFunction(String hashFunction) {
46+
this.hashFunction = hashFunction;
5247
}
5348

54-
public String getPaddingAlgorithm() {
55-
return paddingAlgorithm;
49+
public String getPaddingScheme() {
50+
return paddingScheme;
5651
}
5752

58-
public void setPaddingAlgorithm(String paddingAlgorithm) {
59-
this.paddingAlgorithm = paddingAlgorithm;
53+
public void setPaddingScheme(String paddingScheme) {
54+
this.paddingScheme = paddingScheme;
6055
}
6156
}

example/src/test/java/eu/webeid/example/testutil/ObjectMother.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public static CertificateDTO mockPrepareRequest() {
9797
CertificateDTO certificateDTO = new CertificateDTO();
9898
certificateDTO.setCertificate(mockCertificateInBase64());
9999
final SignatureAlgorithmDTO signatureAlgorithmDTO = new SignatureAlgorithmDTO();
100-
signatureAlgorithmDTO.setHashAlgorithm("SHA256");
100+
signatureAlgorithmDTO.setHashFunction("SHA-256");
101101
certificateDTO.setSupportedSignatureAlgorithms(List.of(signatureAlgorithmDTO));
102102
return certificateDTO;
103103
}

0 commit comments

Comments
 (0)