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

package org.bouncycastle.crypto.paddings;

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

public class PKCS7Padding implements BlockCipherPadding
{
    @Override
    public void init(final SecureRandom secureRandom) throws IllegalArgumentException {
    }
    
    @Override
    public String getPaddingName() {
        return "PKCS7";
    }
    
    @Override
    public int addPadding(final byte[] array, int i) {
        final byte b = (byte)(array.length - i);
        while (i < array.length) {
            array[i] = b;
            ++i;
        }
        return b;
    }
    
    @Override
    public int padCount(final byte[] array) throws InvalidCipherTextException {
        final byte b = array[array.length - 1];
        final int n = b & 0xFF;
        final int n2 = array.length - n;
        int n3 = (n2 | n - 1) >> 31;
        for (int i = 0; i < array.length; ++i) {
            n3 |= ((array[i] ^ b) & ~(i - n2 >> 31));
        }
        if (n3 != 0) {
            throw new InvalidCipherTextException("pad block corrupted");
        }
        return n;
    }
}
