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

package org.bouncycastle.oer.its.template.ieee1609dot2dot1;

import org.bouncycastle.oer.its.template.ieee1609dot2.IEEE1609dot2;
import org.bouncycastle.asn1.ASN1Integer;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.oer.its.template.ieee1609dot2.basetypes.Ieee1609Dot2BaseTypes;
import org.bouncycastle.oer.OERDefinition;

public class Ieee1609Dot2Dot1EeRaInterface
{
    public static final OERDefinition.Builder ButterflyExpansion;
    public static final OERDefinition.Builder ButterflyParamsOriginal;
    public static final OERDefinition.Builder AdditionalParams;
    public static final OERDefinition.Builder EeRaCertRequest;
    
    static {
        ButterflyExpansion = OERDefinition.choice(OERDefinition.octets(16).label("aes128"), OERDefinition.extension(new Object[0])).typeName("ButterflyExpansion");
        ButterflyParamsOriginal = OERDefinition.seq(Ieee1609Dot2Dot1EeRaInterface.ButterflyExpansion.label("signingExpansion"), Ieee1609Dot2BaseTypes.PublicEncryptionKey.label("encryptionKey"), Ieee1609Dot2Dot1EeRaInterface.ButterflyExpansion.label("encryptionExpansion")).typeName("ButterflyParamsOriginal");
        AdditionalParams = OERDefinition.choice(Ieee1609Dot2Dot1EeRaInterface.ButterflyParamsOriginal.label("original"), Ieee1609Dot2Dot1EeRaInterface.ButterflyExpansion.label("unified"), Ieee1609Dot2Dot1EeRaInterface.ButterflyExpansion.label("compactUnified"), Ieee1609Dot2BaseTypes.PublicEncryptionKey.label("encryptionKey"), OERDefinition.extension(new Object[0])).typeName("AdditionalParams");
        EeRaCertRequest = OERDefinition.seq(Ieee1609Dot2BaseTypes.UINT8.label("version").validSwitchValue(new ASN1Integer(2L)), Ieee1609Dot2BaseTypes.Time32.label("generationTime"), IEEE1609dot2.CertificateType.label("type"), IEEE1609dot2.ToBeSignedCertificate.label("tbsCert"), OERDefinition.optional(Ieee1609Dot2Dot1EeRaInterface.AdditionalParams.label("additionalParams")), OERDefinition.extension(new Object[0])).typeName("EeRaCertRequest");
    }
}
