[#1] Add additional security

Signed-off-by: Ori Bruk <o.bruk@yadro.com>
This commit is contained in:
Ori Bruk 2024-07-24 14:41:42 +03:00
parent bf2f19f08d
commit 1be65c63ae
62 changed files with 670 additions and 281 deletions

View file

@ -1,5 +1,7 @@
package info.frostfs.sdk;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import static info.frostfs.sdk.ArrayHelper.concat;
@ -18,8 +20,11 @@ public class Base58 {
}
}
private Base58() {
}
public static byte[] base58CheckDecode(String input) {
if (isNull(input) || input.isEmpty()) {
if (StringUtils.isEmpty(input)) {
throw new IllegalArgumentException("Input value is missing");
}
@ -30,10 +35,9 @@ public class Base58 {
byte[] decode = Arrays.copyOfRange(buffer, 0, buffer.length - 4);
byte[] checksum = getSha256(getSha256(decode));
if (!Arrays.equals(
Arrays.copyOfRange(buffer, buffer.length - 4, buffer.length),
Arrays.copyOfRange(checksum, 0, 4)
)) {
var bufferEnd = Arrays.copyOfRange(buffer, buffer.length - 4, buffer.length);
var checksumStart = Arrays.copyOfRange(checksum, 0, 4);
if (!Arrays.equals(bufferEnd, checksumStart)) {
throw new IllegalArgumentException();
}
@ -41,6 +45,10 @@ public class Base58 {
}
public static String base58CheckEncode(byte[] data) {
if (isNull(data)) {
throw new IllegalArgumentException("Input value is missing");
}
byte[] checksum = getSha256(getSha256(data));
var buffer = concat(data, Arrays.copyOfRange(checksum, 0, 4));
var ret = encode(buffer);