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

package org.bouncycastle.math.ec.rfc8032;

abstract class Codec
{
    static int decode16(final byte[] array, int n) {
        return (array[n] & 0xFF) | (array[++n] & 0xFF) << 8;
    }
    
    static int decode24(final byte[] array, int n) {
        return (array[n] & 0xFF) | (array[++n] & 0xFF) << 8 | (array[++n] & 0xFF) << 16;
    }
    
    static int decode32(final byte[] array, int n) {
        return (array[n] & 0xFF) | (array[++n] & 0xFF) << 8 | (array[++n] & 0xFF) << 16 | array[++n] << 24;
    }
    
    static void decode32(final byte[] array, final int n, final int[] array2, final int n2, final int n3) {
        for (int i = 0; i < n3; ++i) {
            array2[n2 + i] = decode32(array, n + i * 4);
        }
    }
    
    static void encode24(final int n, final byte[] array, int n2) {
        array[n2] = (byte)n;
        array[++n2] = (byte)(n >>> 8);
        array[++n2] = (byte)(n >>> 16);
    }
    
    static void encode32(final int n, final byte[] array, int n2) {
        array[n2] = (byte)n;
        array[++n2] = (byte)(n >>> 8);
        array[++n2] = (byte)(n >>> 16);
        array[++n2] = (byte)(n >>> 24);
    }
    
    static void encode32(final int[] array, final int n, final int n2, final byte[] array2, final int n3) {
        for (int i = 0; i < n2; ++i) {
            encode32(array[n + i], array2, n3 + i * 4);
        }
    }
    
    static void encode56(final long n, final byte[] array, final int n2) {
        encode32((int)n, array, n2);
        encode24((int)(n >>> 32), array, n2 + 4);
    }
}
