Skip to content

Commit fd80067

Browse files
committed
Fix #232 Make Fingerprint check case insensitive
1 parent e43459b commit fd80067

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

core/src/main/java/com/onelogin/saml2/util/Util.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1014,7 +1014,7 @@ public static Boolean validateSignNode(Node signNode, X509Certificate cert, Stri
10141014
X509Certificate providedCert = keyInfo.getX509Certificate();
10151015
String calculatedFingerprint = calculateX509Fingerprint(providedCert, alg);
10161016
for (String fingerprintStr : fingerprint.split(",")) {
1017-
if (calculatedFingerprint.equals(fingerprintStr.trim())) {
1017+
if (calculatedFingerprint.equalsIgnoreCase(fingerprintStr.trim())) {
10181018
res = signature.checkSignatureValue(providedCert);
10191019
}
10201020
}

core/src/test/java/com/onelogin/saml2/test/util/UtilsTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,6 +1092,8 @@ public void testValidateSign() throws URISyntaxException, IOException, Certifica
10921092
X509Certificate cert = Util.loadCert(certString);
10931093
String fingerprint_sha1 = "afe71c28ef740bc87425be13a2263d37971da1f9";
10941094
String fingerprint_sha256 = "c51cfa06c7a49767f6eab18238eae1c56708e29264da3d11f538a12cd2c357ba";
1095+
String fingerprint_sha1_uppercase = "AFE71C28EF740BC87425BE13A2263D37971DA1F9";
1096+
String fingerprint_sha256_uppercase = "C51CFA06C7A49767F6EAB18238EAE1C56708E29264DA3D11F538A12CD2C357BA";
10951097

10961098
// Signed Response
10971099
String signedResponseStr = Util.getFileAsString("data/responses/signed_message_response.xml.base64");
@@ -1102,6 +1104,8 @@ public void testValidateSign() throws URISyntaxException, IOException, Certifica
11021104
assertTrue(Util.validateSign(samlSignedResponseDocument, (X509Certificate) null, fingerprint_sha1, null, RESPONSE_SIGNATURE_XPATH));
11031105
assertTrue(Util.validateSign(samlSignedResponseDocument, (X509Certificate) null, fingerprint_sha1, "SHA-1", RESPONSE_SIGNATURE_XPATH));
11041106
assertTrue(Util.validateSign(samlSignedResponseDocument, (X509Certificate) null, fingerprint_sha256, "SHA-256", RESPONSE_SIGNATURE_XPATH));
1107+
assertTrue(Util.validateSign(samlSignedResponseDocument, (X509Certificate) null, fingerprint_sha1_uppercase, "SHA-1", RESPONSE_SIGNATURE_XPATH));
1108+
assertTrue(Util.validateSign(samlSignedResponseDocument, (X509Certificate) null, fingerprint_sha256_uppercase, "SHA-256", RESPONSE_SIGNATURE_XPATH));
11051109
assertFalse(Util.validateSign(samlSignedResponseDocument, (X509Certificate) null, fingerprint_sha256, "SHA-256", ASSERTION_SIGNATURE_XPATH));
11061110
assertFalse(Util.validateSign(samlSignedResponseDocument, cert, null, null, ""));
11071111
assertFalse(Util.validateSign(samlSignedResponseDocument, (X509Certificate) null, null, null, ""));
@@ -1114,6 +1118,7 @@ public void testValidateSign() throws URISyntaxException, IOException, Certifica
11141118
assertTrue(Util.validateSign(samlSignedAssertionDocument, cert, null, null, ASSERTION_SIGNATURE_XPATH));
11151119
assertTrue(Util.validateSign(samlSignedAssertionDocument, (X509Certificate) null, fingerprint_sha1, null, ASSERTION_SIGNATURE_XPATH));
11161120
assertTrue(Util.validateSign(samlSignedAssertionDocument, (X509Certificate) null, fingerprint_sha1, "SHA-1", ASSERTION_SIGNATURE_XPATH));
1121+
assertTrue(Util.validateSign(samlSignedAssertionDocument, (X509Certificate) null, fingerprint_sha1_uppercase, "SHA-1", ASSERTION_SIGNATURE_XPATH));
11171122
assertFalse(Util.validateSign(samlSignedAssertionDocument, (X509Certificate) null, fingerprint_sha1, "SHA-1", RESPONSE_SIGNATURE_XPATH));
11181123

11191124
// Double Signed Response
@@ -1127,8 +1132,12 @@ public void testValidateSign() throws URISyntaxException, IOException, Certifica
11271132
assertTrue(Util.validateSign(samlDoubleSignedResponseDocument, (X509Certificate) null, fingerprint_sha1, null, RESPONSE_SIGNATURE_XPATH));
11281133
assertTrue(Util.validateSign(samlDoubleSignedResponseDocument, (X509Certificate) null, fingerprint_sha1, "SHA-1", ASSERTION_SIGNATURE_XPATH));
11291134
assertTrue(Util.validateSign(samlDoubleSignedResponseDocument, (X509Certificate) null, fingerprint_sha1, "SHA-1", RESPONSE_SIGNATURE_XPATH));
1135+
assertTrue(Util.validateSign(samlDoubleSignedResponseDocument, (X509Certificate) null, fingerprint_sha1_uppercase, "SHA-1", ASSERTION_SIGNATURE_XPATH));
1136+
assertTrue(Util.validateSign(samlDoubleSignedResponseDocument, (X509Certificate) null, fingerprint_sha1_uppercase, "SHA-1", RESPONSE_SIGNATURE_XPATH));
11301137
assertTrue(Util.validateSign(samlDoubleSignedResponseDocument, (X509Certificate) null, fingerprint_sha256, "SHA-256", ASSERTION_SIGNATURE_XPATH));
11311138
assertTrue(Util.validateSign(samlDoubleSignedResponseDocument, (X509Certificate) null, fingerprint_sha256, "SHA-256", RESPONSE_SIGNATURE_XPATH));
1139+
assertTrue(Util.validateSign(samlDoubleSignedResponseDocument, (X509Certificate) null, fingerprint_sha256_uppercase, "SHA-256", ASSERTION_SIGNATURE_XPATH));
1140+
assertTrue(Util.validateSign(samlDoubleSignedResponseDocument, (X509Certificate) null, fingerprint_sha256_uppercase, "SHA-256", RESPONSE_SIGNATURE_XPATH));
11321141
}
11331142

11341143
/**

0 commit comments

Comments
 (0)