diff --git a/gamutils/src/main/java/com/genexus/gam/GamUtilsEO.java b/gamutils/src/main/java/com/genexus/gam/GamUtilsEO.java index 597df0a23..2e2ba6e3b 100644 --- a/gamutils/src/main/java/com/genexus/gam/GamUtilsEO.java +++ b/gamutils/src/main/java/com/genexus/gam/GamUtilsEO.java @@ -98,6 +98,8 @@ public static String base64ToBase64Url(String base64) { public static String base64ToHexa(String base64) { return Encoding.base64ToHexa(base64); } + public static boolean isHexadecimal(String hexa) { return Encoding.isHexa(hexa); } + //**PKCE**// public static String pkce_create(int len, String option) { return Pkce.create(len, option); } diff --git a/gamutils/src/main/java/com/genexus/gam/utils/Encoding.java b/gamutils/src/main/java/com/genexus/gam/utils/Encoding.java index 7b25fd0e3..0ccd2b079 100644 --- a/gamutils/src/main/java/com/genexus/gam/utils/Encoding.java +++ b/gamutils/src/main/java/com/genexus/gam/utils/Encoding.java @@ -71,4 +71,16 @@ public static String base64ToHexa(String base64) return ""; } } + + public static boolean isHexa(String hexa) + { + try { + Hex.decode(hexa); + }catch (Exception e) + { + logger.error("isHexa", e); + return false; + } + return true; + } } diff --git a/gamutils/src/test/java/com/genexus/gam/utils/test/EncodingTest.java b/gamutils/src/test/java/com/genexus/gam/utils/test/EncodingTest.java index 1aaed898c..cacd85817 100644 --- a/gamutils/src/test/java/com/genexus/gam/utils/test/EncodingTest.java +++ b/gamutils/src/test/java/com/genexus/gam/utils/test/EncodingTest.java @@ -76,5 +76,19 @@ private static String b64ToHexa(String base64) { } } + @Test + public void testIsHexa() + { + int i = 0; + do { + String randomHexa = GamUtilsEO.randomHexaBits(128); + boolean hexa = GamUtilsEO.isHexadecimal(randomHexa); + Assert.assertTrue("testIsHexa_true", hexa); + String randomAlphanumeric = GamUtilsEO.randomAlphanumeric(128); + boolean notHexa = GamUtilsEO.isHexadecimal(randomAlphanumeric); + Assert.assertFalse("testIsHexa_false", notHexa); + i++; + } while (i < 50); + } }