// 
// Decompiled by Procyon v0.6.0
// 

package com.google.crypto.tink.subtle;

public final class Hex
{
    public static String encode(final byte[] bytes) {
        final String chars = "0123456789abcdef";
        final StringBuilder result = new StringBuilder(2 * bytes.length);
        for (final byte b : bytes) {
            final int val = b & 0xFF;
            result.append(chars.charAt(val / 16));
            result.append(chars.charAt(val % 16));
        }
        return result.toString();
    }
    
    public static byte[] decode(final String hex) {
        if (hex.length() % 2 != 0) {
            throw new IllegalArgumentException("Expected a string of even length");
        }
        final int size = hex.length() / 2;
        final byte[] result = new byte[size];
        for (int i = 0; i < size; ++i) {
            final int hi = Character.digit(hex.charAt(2 * i), 16);
            final int lo = Character.digit(hex.charAt(2 * i + 1), 16);
            if (hi == -1 || lo == -1) {
                throw new IllegalArgumentException("input is not hexadecimal");
            }
            result[i] = (byte)(16 * hi + lo);
        }
        return result;
    }
    
    private Hex() {
    }
}
