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

package org.bouncycastle.crypto.paddings;

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

public class TBCPadding implements BlockCipherPadding
{
    @Override
    public void init(final SecureRandom secureRandom) throws IllegalArgumentException {
    }
    
    @Override
    public String getPaddingName() {
        return "TBC";
    }
    
    @Override
    public int addPadding(final byte[] array, int i) {
        final int n = array.length - i;
        byte b;
        if (i > 0) {
            b = (byte)(((array[i - 1] & 0x1) == 0x0) ? 255 : 0);
        }
        else {
            b = (byte)(((array[array.length - 1] & 0x1) == 0x0) ? 255 : 0);
        }
        while (i < array.length) {
            array[i] = b;
            ++i;
        }
        return n;
    }
    
    @Override
    public int padCount(final byte[] array) throws InvalidCipherTextException {
        int length = array.length;
        final int n = array[--length] & 0xFF;
        int n2 = 1;
        int n3 = -1;
        while (--length >= 0) {
            n3 &= ((array[length] & 0xFF) ^ n) - 1 >> 31;
            n2 -= n3;
        }
        return n2;
    }
}
