Skip to content

Commit a7d12e6

Browse files
[FIX] fn:hash: Normalize algorithm string
1 parent b3e49d2 commit a7d12e6

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

  • basex-core/src/main/java/org/basex/query/func/fn

basex-core/src/main/java/org/basex/query/func/fn/FnHash.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import java.io.*;
66
import java.security.*;
7+
import java.util.*;
78
import java.util.zip.*;
89

910
import org.basex.io.*;
@@ -39,7 +40,8 @@ public Item item(final QueryContext qc, final InputInfo ii) throws QueryExceptio
3940
private byte[] hash(final Item value, final String algorithm, final QueryContext qc)
4041
throws QueryException {
4142

42-
if("CRC-32".equals(algorithm)) {
43+
final String alg = algorithm != null ? algorithm.trim().toUpperCase(Locale.ENGLISH) : "MD5";
44+
if(alg.equals("CRC-32")) {
4345
final CRC32 crc = new CRC32();
4446
crc.update(toBytes(value));
4547
final byte[] result = new byte[4];
@@ -48,13 +50,13 @@ private byte[] hash(final Item value, final String algorithm, final QueryContext
4850
return result;
4951
}
5052

51-
if("BLAKE3".equals(algorithm)) {
53+
if(alg.equals("BLAKE3")) {
5254
return new Blake3().digest(toBytes(value));
5355
}
5456

5557
final MessageDigest md;
5658
try {
57-
md = MessageDigest.getInstance(algorithm != null ? algorithm : "MD5");
59+
md = MessageDigest.getInstance(alg);
5860
} catch(final NoSuchAlgorithmException ex) {
5961
Util.debug(ex);
6062
throw HASH_ALGORITHM_X.get(info, algorithm);

0 commit comments

Comments
 (0)