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

package org.bouncycastle.crypto.constraints;

import org.bouncycastle.crypto.CryptoServiceConstraintsException;
import org.bouncycastle.crypto.CryptoServiceProperties;
import java.util.Set;
import java.util.Collections;

public class BitsOfSecurityConstraint extends ServicesConstraint
{
    private final int requiredBitsOfSecurity;
    
    public BitsOfSecurityConstraint(final int requiredBitsOfSecurity) {
        super(Collections.EMPTY_SET);
        this.requiredBitsOfSecurity = requiredBitsOfSecurity;
    }
    
    public BitsOfSecurityConstraint(final int requiredBitsOfSecurity, final Set<String> set) {
        super(set);
        this.requiredBitsOfSecurity = requiredBitsOfSecurity;
    }
    
    @Override
    public void check(final CryptoServiceProperties cryptoServiceProperties) {
        if (this.isException(cryptoServiceProperties.getServiceName())) {
            return;
        }
        if (cryptoServiceProperties.bitsOfSecurity() < this.requiredBitsOfSecurity) {
            throw new CryptoServiceConstraintsException("service does not provide " + this.requiredBitsOfSecurity + " bits of security only " + cryptoServiceProperties.bitsOfSecurity());
        }
    }
}
