Example usage for org.apache.commons.codec.binary Hex decodeHex

List of usage examples for org.apache.commons.codec.binary Hex decodeHex

Introduction

In this page you can find the example usage for org.apache.commons.codec.binary Hex decodeHex.

Prototype

public static byte[] decodeHex(char[] data) throws IllegalArgumentException 

Source Link

Document

Converts an array of characters representing hexadecimal values into an array of bytes of those same values.

Usage

From source file:nl.minvenj.pef.pseudo.IPPseudonymizer.java

private IPPseudonymizer(final String key, final int mask, final int bitCount) throws InvalidKeyException {
    try {//ww  w  .  j a  va2  s .  c  om
        _encrypter = new FFX(Hex.decodeHex(key.toCharArray()), RADIX);
    } catch (final DecoderException e) {
        throw new InvalidKeyException(key);
    }
    _bitCount = bitCount;
    _mask = mask;
    _changeBitCount = bitCount - mask;
}

From source file:nl.minvenj.pef.pseudo.IPPseudonymizerTest.java

@Test
public void testIPv6Mask9() throws InvalidKeyException, DecoderException {
    final int mask = 9;
    final IPPseudonymizer ipv6Pseudonymizer = IPPseudonymizer
            .initIPv6Pseudonymizer("3AE1E5F99DD4FF7196FE64ACDE688C89", mask);
    final byte[] ip = Hex.decodeHex("123465a4d5f4e55511bb96a864a01201".toCharArray());

    final byte[] newIp = ipv6Pseudonymizer.pseudonymize(ip.clone());

    assertThat(newIp[0], is(equalTo(ip[0])));
    assertThat(newIp[1] & 0b1000, is(equalTo(ip[1] & 0b1000)));

    for (int i = mask / 8; i < 16; i++) {
        assertThat(newIp[i], is(not(equalTo(ip[i]))));
    }//from ww w  .  ja  v a 2s . co m
}

From source file:nl.minvenj.pef.pseudo.IPPseudonymizerTest.java

@Test
public void testIPv6Mask48() throws InvalidKeyException, DecoderException {
    final int mask = 48;
    final IPPseudonymizer ipv6Pseudonymizer = IPPseudonymizer
            .initIPv6Pseudonymizer("3AE1E5F99DD4FA894D45D6FFDE688EE0", mask);
    final byte[] ip = Hex.decodeHex("fd7376ae803033ddb942d98a864e8743".toCharArray());

    final byte[] newIp = ipv6Pseudonymizer.pseudonymize(ip.clone());

    for (int i = 0; i < mask / 8; i++) {
        assertThat(newIp[i], is(equalTo(ip[i])));
    }/* w  w  w .j av a 2 s .  c  om*/

    for (int i = mask / 8; i < 16; i++) {
        assertThat(newIp[i], is(not(equalTo(ip[i]))));
    }
}

From source file:nl.minvenj.pef.pseudo.IPPseudonymizerTest.java

@Test
public void testIPv6Mask120() throws InvalidKeyException, DecoderException {
    final int mask = 120;
    final IPPseudonymizer ipv6Pseudonymizer = IPPseudonymizer
            .initIPv6Pseudonymizer("3AE1E5F99DD4FF7196FE64ACDE688C89", mask);
    final byte[] ip = Hex.decodeHex("97010a9b423def694d2aa231011d1210".toCharArray());

    final byte[] newIp = ipv6Pseudonymizer.pseudonymize(ip.clone());

    for (int i = 0; i < mask / 8; i++) {
        assertThat(newIp[i], is(equalTo(ip[i])));
    }//from ww  w . j  a  v a  2s . co  m

    for (int i = mask / 8; i < 16; i++) {
        assertThat(newIp[i], is(not(equalTo(ip[i]))));
    }
}

From source file:nl.minvenj.pef.serialize.transform.IPv6PseudoTransformerTest.java

public void test(final IPv6AddressPseudonymizer ipv6AddressPseudonymizer) throws IOException, DecoderException {
    final byte[] bytes = Data.IPV6_UDP_MDNS;
    final ParseResult originalResult = Util.parse(bytes, Ethernet2Frame.FORMAT);
    assertTrue(originalResult.succeeded);

    final TransformConstraint constraint = new TransformConstraint(IPv6.FORMAT);
    final CopyTokenSerializer outSerializer = new CopyTokenSerializer(bytes.length);

    new Processor().addTransformer(constraint, "sourceaddress", ipv6AddressPseudonymizer)
            .addTransformer(constraint, "destinationaddress", ipv6AddressPseudonymizer)
            .transformAndProcess(originalResult, outSerializer);

    final byte[] newBytes = outSerializer.outputData();
    final ParseResult newResult = Util.parse(newBytes, Ethernet2Frame.FORMAT);
    assertTrue(newResult.succeeded);//w w w .j a  va 2  s  .  co m

    final ParseGraph originalValues = originalResult.environment.order;
    final ParseGraph newValues = newResult.environment.order;

    assertThat(originalValues.get("sourceaddress").getValue(),
            is(equalTo(Hex.decodeHex("fe800000000000001cff02448da631d6".toCharArray()))));
    assertThat(originalValues.get("destinationaddress").getValue(),
            is(equalTo(Hex.decodeHex("ff0200000000000000000000000000fb".toCharArray()))));

    assertThat(newValues.get("sourceaddress").getValue(),
            is(equalTo(Hex.decodeHex("fe80000000000000b6de673148cda5be".toCharArray()))));
    assertThat(newValues.get("destinationaddress").getValue(),
            is(equalTo(Hex.decodeHex("ff02000000000000f00dda65997efb75".toCharArray()))));
}

From source file:nl.minvenj.pef.serialize.transform.IPv6PseudoTransformerTest.java

private IPv6AddressPseudonymizer mockPseudo() {
    final IPv6AddressPseudonymizer ipv6AddressPseudonymizer = mock(IPv6AddressPseudonymizer.class);
    when(ipv6AddressPseudonymizer.context()).thenReturn(tokens(ParseGraph.NONE));
    when(ipv6AddressPseudonymizer.transform(any(ParseValue.class), any(Environment.class)))
            .then(new Answer<ParseValue>() {

                @Override//from  www.  j  av a  2 s .co m
                public ParseValue answer(final InvocationOnMock invocation) throws Throwable {
                    final ParseValue value = ((ParseValue) invocation.getArguments()[0]);
                    if (Arrays.equals(value.getValue(),
                            Hex.decodeHex("fe800000000000001cff02448da631d6".toCharArray()))) {
                        return new ParseValue(value.name, value.getDefinition(), value.getOffset(),
                                Hex.decodeHex("fe80000000000000b6de673148cda5be".toCharArray()), value.enc);
                    }
                    return new ParseValue(value.name, value.getDefinition(), value.getOffset(),
                            Hex.decodeHex("ff02000000000000f00dda65997efb75".toCharArray()), value.enc);
                }
            });
    return ipv6AddressPseudonymizer;
}

From source file:nl.minvenj.pef.util.TestUtil.java

/**
 * Convert a String of bytes to a byte array.
 *
 * @param hexString the string in hex format (e.g. "E5D34F")
 * @return a byte array containing the bytes represented by the String characters
 * @throws IllegalArgumentException thrown if an odd number or illegal of characters is supplied
 *///from  www  . j a  v a2 s  .  c  o m
public static byte[] hexStringToBytes(final String hexString) {
    try {
        return Hex.decodeHex(hexString.toCharArray());
    } catch (final DecoderException e) {
        throw new IllegalArgumentException(e);
    }
}

From source file:org.abstracthorizon.proximity.HashMapItemPropertiesImpl.java

/**
 * Decode hex./*from w w  w.ja va2 s  . c om*/
 * 
 * @param hexEncoded the hex encoded
 * 
 * @return the byte[]
 */
protected byte[] decodeHex(String hexEncoded) {
    try {
        return Hex.decodeHex(hexEncoded.toCharArray());
    } catch (DecoderException ex) {
        return null;
    }
}

From source file:org.adempiere.pipo2.IDFinder.java

/**
 * Get ID from column value for a table.
 *
 * @param tableName//from   w w  w .j a  v a 2 s.c o m
 * @param columName
 * @param value
 * @param AD_Client_ID
 * @param trxName
 */
public static int findIdByColumn(String tableName, String columnName, Object value, int AD_Client_ID,
        boolean ignorecase, String trxName) {
    int id = 0;

    if (value == null)
        return id;

    //construct cache key
    StringBuilder key = new StringBuilder();
    key.append(tableName).append(".").append(columnName).append("=").append(value.toString())
            .append(" AND AD_Client_ID=").append(AD_Client_ID);

    //check cache
    if (idCache.containsKey(key.toString()))
        return idCache.get(key.toString());

    StringBuffer sqlB = new StringBuffer("SELECT ").append(tableName).append("_ID FROM ").append(tableName)
            .append(" WHERE ").append(" AD_Client_ID IN (0, ?) AND ");

    Object[] params = null;
    String[] columns = null;
    if (columnName.indexOf(",") > 0 && value instanceof String) {
        columns = columnName.split("[,]");
        String[] values = ((String) value).split("[,]");
        List<Object> paramList = new ArrayList<Object>();
        for (int i = 0; i < columns.length; i++) {
            if (i > 0)
                sqlB.append(" AND ");
            if (ignorecase) {
                sqlB.append("UPPER(").append(columns[i]).append(")=? ");
            } else {
                sqlB.append(columns[i]).append("=? ");
            }
            try {
                byte[] bytes = Hex.decodeHex(values[i].toCharArray());
                String s = new String(bytes, "UTF-8");
                if (ignorecase) {
                    paramList.add(s.toUpperCase());
                } else {
                    paramList.add(s);
                }
            } catch (DecoderException e) {
                throw new RuntimeException(e);
            } catch (UnsupportedEncodingException e) {
                throw new RuntimeException(e);
            }
        }
        params = paramList.toArray();
    } else {
        if (ignorecase && value != null && value instanceof String) {
            sqlB.append("UPPER(").append(columnName).append(") =? ");
            params = new Object[] { ((String) value).toUpperCase() };
        } else {
            sqlB.append(columnName).append(" =? ");
            params = new Object[] { value };
        }
        columns = new String[] { columnName };
    }

    sqlB.append(" Order By AD_Client_ID Desc, ").append(tableName).append("_ID");

    MTable table = MTable.get(Env.getCtx(), tableName);
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
        pstmt = DB.prepareStatement(sqlB.toString(), trxName);
        pstmt.setInt(1, AD_Client_ID);
        for (int i = 0; i < params.length; i++) {
            Object param = params[i];
            if (param instanceof String) {
                String s = (String) param;
                MColumn column = table.getColumn(columns[i]);
                if (column.getAD_Reference_ID() == DisplayType.Amount
                        || column.getAD_Reference_ID() == DisplayType.Number
                        || column.getAD_Reference_ID() == DisplayType.CostPrice
                        || column.getAD_Reference_ID() == DisplayType.Quantity)
                    pstmt.setBigDecimal(i + 2, new BigDecimal(s));
                else if (column.getAD_Reference_ID() == DisplayType.Date
                        || column.getAD_Reference_ID() == DisplayType.DateTime)
                    pstmt.setTimestamp(i + 2, Timestamp.valueOf(s));
                else if (column.getAD_Reference_ID() == DisplayType.Integer)
                    pstmt.setInt(i + 2, Integer.parseInt(s));
                else
                    pstmt.setString(i + 2, s);
            } else if (param instanceof Integer) {
                pstmt.setInt(i + 2, ((Integer) param).intValue());
            } else {
                pstmt.setObject(i + 2, param);
            }
        }

        rs = pstmt.executeQuery();
        if (rs.next())
            id = rs.getInt(1);
    } catch (Exception e) {
        throw new DatabaseAccessException(e);
    } finally {
        DB.close(rs, pstmt);
    }

    //update cache
    if (id > 0)
        idCache.put(key.toString(), id);

    return id;
}

From source file:org.alfresco.repo.security.authentication.MD4PasswordEncoderImpl.java

public byte[] decodeHash(String encodedHash) {
    if (!getEncodeHashAsBase64()) {
        try {/*from   w ww  .  j av a 2 s  .c  om*/
            return Hex.decodeHex(encodedHash.toCharArray());
        } catch (DecoderException e) {
            throw new RuntimeException("Unable to decode password hash");
        }
    } else {
        return Base64.decodeBase64(encodedHash.getBytes());
    }
}