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

package org.bouncycastle.crypto.paddings;

import org.bouncycastle.crypto.InvalidCipherTextException;
import java.security.SecureRandom;

public class ISO7816d4Padding implements BlockCipherPadding
{
    @Override
    public void init(final SecureRandom secureRandom) throws IllegalArgumentException {
    }
    
    @Override
    public String getPaddingName() {
        return "ISO7816-4";
    }
    
    @Override
    public int addPadding(final byte[] array, int i) {
        final int n = array.length - i;
        array[i] = -128;
        ++i;
        while (i < array.length) {
            array[i] = 0;
            ++i;
        }
        return n;
    }
    
    @Override
    public int padCount(final byte[] array) throws InvalidCipherTextException {
        int n = -1;
        int n2 = -1;
        int length = array.length;
        while (--length >= 0) {
            final int n3 = array[length] & 0xFF;
            final int n4 = (n3 ^ 0x0) - 1 >> 31;
            n ^= ((length ^ n) & (n2 & (n3 ^ 0x80) - 1 >> 31));
            n2 &= n4;
        }
        if (n < 0) {
            throw new InvalidCipherTextException("pad block corrupted");
        }
        return array.length - n;
    }
}
