I was created SHA3-512 using Java and run under pathway server:
.properties
-----------------
# Type for algorithm
# sha3-224
# sha3-256
# sha3-384
# sha3-512
sha3.algorithm=sha3-512
sha3.uppercase=N
sha3.cutover=2200
sha3.trace=off
---------------------------------------------------------------------------------------
protected String calculateSHA3( String filename, EnscribeFile ef ) {
I_Data iData = new I_Data();
Sha3 sha3 = null;
EnscribeOpenOptions opt = new EnscribeOpenOptions();
String result = null;
StringBuilder sb = new StringBuilder();
String lf = "";
String cr = "";
if (MyProperties.isTrace()) {
logger.info(String.format("Trace on: Filename: %s", filename));
}
switch (MyProperties.getAlgorithm().toUpperCase()) {
case "SHA3-224":
sha3 = new Sha3(Type.SHA3_224);
break;
case "SHA3-256":
sha3 = new Sha3(Type.SHA3_256);
break;
case "SHA3-384":
sha3 = new Sha3(Type.SHA3_384);
break;
case "SHA3-512":
sha3 = new Sha3(Type.SHA3_512);
break;
default:
sha3 = new Sha3(Type.SHA3_512);
break;
}
opt.setAccess(EnscribeOpenOptions.READ_ONLY);
opt.setExclusion(EnscribeOpenOptions.SHARED);
try {
ef.open( opt );
if ( ef.getFileInfo().getFileType() != 0) {
if (MyProperties.isCrChar())
{
cr = "\r";
}
iData.set_bufferLen(ef.getFileInfo().getRecordLength());
lf = "\n";
}
else
{
/*
* For unstructured data, we need to use buffer as 1024 bytes to read the data
*/
opt.setUnstructuredAccess(true);
opt.setSequentialBlockBufferLength(1024);
}
int countread = 0;
do {
try {
countread = ef.read(iData);
if ( countread != -1 ) {
sb.append(iData.getSdata());
sb.append(cr).append(lf);
}
} catch (DataConversionException e) {
// TODO Auto-generated catch block
logger.log(Level.SEVERE, "Filename: " +
ef.getFileName() + ". " +
e.getLocalizedMessage(), e);
}
} while (countread != -1);
/*
* Compute SHA3
*/
result = HexTools.convertToHex(sha3.encode(
sb.toString().getBytes(StandardCharsets.UTF_8)));
if (MyProperties.isUppercase())
{
result = result.toUpperCase();
}
else
{
result = result.toLowerCase();
}
} catch (EnscribeFileException e) {
// TODO Auto-generated catch block
logger.log(Level.SEVERE, "Filename: " +
ef.getFileName() + ". " +
e.getLocalizedMessage(), e);
} finally {
ef.close();
sb.setLength(0);
}
return result;
}