### Question:
KeyUtils { public static String toHexPadded(byte[] data) { BigInteger bi = new BigInteger(1, data); String s = bi.toString(16); while(s.length() < (data.length*2)) { s = "0" + s; } return s; }  static String getRsaPublicKeyFingerprint(RSAPublicKey pubKey, Provider provider); static String toHexPadded(byte[] data); static byte[] derEncodeBigInteger(BigInteger value); static byte[] derEncodeValue(byte type, byte[] bytes); static byte[] derEncodeRSAPublicKey(RSAPublicKey pubkey); static byte[] derEncodeSequence(List<byte[]> objects); static KeyPair rsaKeyPairFromBase64(String publicKey, String privateKey); static SecretKey decryptKey(String encodedKey, String algorithm, Provider provider, PrivateKey privateKey); static String encryptKey(SecretKey key, Provider provider, PublicKey publicKey); static String urlSafeEncodeBase64(byte[] data); static byte[] urlSafeDecodeBase64(String b64Data); static String signMetadata(Map<String, String> metadata,
            RSAPrivateKey privateKey, Provider provider); static byte[] extractSubjectKeyIdentifier(byte[] derSki);  }### Answer:
@Test public void testToHexPadded() { byte[] dataWithoutZeroes = new byte[] { 0x11, 0x22, 0x33 }; assertEquals("Without zeroes incorrect", "112233", KeyUtils.toHexPadded(dataWithoutZeroes)); byte[] dataWithLeadingZero = new byte[] { 0x01, 0x22, 0x33 }; assertEquals("With leading zero incorrect", "012233", KeyUtils.toHexPadded(dataWithLeadingZero)); byte[] dataWithLeadingZeroBytes = new byte[] { 0x00, 0x00, 0x11, 0x22, 0x33 }; assertEquals("Data with leading zero bytes incorrect", "0000112233", KeyUtils.toHexPadded(dataWithLeadingZeroBytes)); }