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

package org.bouncycastle.pkcs;

import java.util.Enumeration;
import org.bouncycastle.asn1.pkcs.CertificationRequestInfo;
import org.bouncycastle.asn1.pkcs.CertificationRequest;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DERSet;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.pkcs.Attribute;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.operator.ContentVerifierProvider;

public class DeltaCertAttributeUtils
{
    public static boolean isDeltaRequestSignatureValid(final PKCS10CertificationRequest pkcs10CertificationRequest, final ContentVerifierProvider contentVerifierProvider) throws PKCSException {
        final DeltaCertificateRequestAttributeValue deltaCertificateRequestAttributeValue = new DeltaCertificateRequestAttributeValue(pkcs10CertificationRequest.getAttributes(new ASN1ObjectIdentifier("2.16.840.1.114027.80.6.2"))[0]);
        final Attribute[] attributes = pkcs10CertificationRequest.getAttributes(new ASN1ObjectIdentifier("2.16.840.1.114027.80.6.3"));
        final CertificationRequestInfo certificationRequestInfo = pkcs10CertificationRequest.toASN1Structure().getCertificationRequestInfo();
        final ASN1EncodableVector asn1EncodableVector = new ASN1EncodableVector();
        asn1EncodableVector.add(certificationRequestInfo.getVersion());
        asn1EncodableVector.add(certificationRequestInfo.getSubject());
        asn1EncodableVector.add(certificationRequestInfo.getSubjectPublicKeyInfo());
        final ASN1EncodableVector asn1EncodableVector2 = new ASN1EncodableVector();
        final Enumeration objects = certificationRequestInfo.getAttributes().getObjects();
        while (objects.hasMoreElements()) {
            final Attribute instance = Attribute.getInstance(objects.nextElement());
            if (!instance.getAttrType().equals(new ASN1ObjectIdentifier("2.16.840.1.114027.80.6.3"))) {
                asn1EncodableVector2.add(instance);
            }
        }
        asn1EncodableVector.add(new DERTaggedObject(false, 0, new DERSet(asn1EncodableVector2)));
        final ASN1EncodableVector asn1EncodableVector3 = new ASN1EncodableVector();
        asn1EncodableVector3.add(new DERSequence(asn1EncodableVector));
        asn1EncodableVector3.add(deltaCertificateRequestAttributeValue.getSignatureAlgorithm());
        asn1EncodableVector3.add(attributes[0].getAttributeValues()[0]);
        return new PKCS10CertificationRequest(CertificationRequest.getInstance(new DERSequence(asn1EncodableVector3))).isSignatureValid(contentVerifierProvider);
    }
}
