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

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

import org.bouncycastle.oer.its.template.etsi103097.EtsiTs103097Module;
import org.bouncycastle.oer.its.template.etsi102941.basetypes.EtsiTs102941BaseTypes;
import org.bouncycastle.oer.its.template.ieee1609dot2.basetypes.Ieee1609Dot2BaseTypes;
import org.bouncycastle.oer.OERDefinition;

public class EtsiTs102941TrustLists
{
    public static final OERDefinition.Builder CrlEntry;
    public static final OERDefinition.Builder SequenceOfCrlEntry;
    public static final OERDefinition.Builder ToBeSignedCrl;
    public static final OERDefinition.Builder Url;
    public static final OERDefinition.Builder DcDelete;
    public static final OERDefinition.Builder DcEntry;
    public static final OERDefinition.Builder AaEntry;
    public static final OERDefinition.Builder EaEntry;
    public static final OERDefinition.Builder RootCaEntry;
    public static final OERDefinition.Builder TlmEntry;
    public static final OERDefinition.Builder CtlDelete;
    public static final OERDefinition.Builder CtlEntry;
    public static final OERDefinition.Builder CtlCommand;
    public static final OERDefinition.Builder SequenceOfCtlCommand;
    public static final OERDefinition.Builder CtlFormat;
    public static final OERDefinition.Builder DeltaCtl;
    public static final OERDefinition.Builder FullCtl;
    public static final OERDefinition.Builder ToBeSignedTlmCtl;
    public static final OERDefinition.Builder ToBeSignedRcaCtl;
    
    static {
        CrlEntry = Ieee1609Dot2BaseTypes.HashedId8.typeName("CrlEntry");
        SequenceOfCrlEntry = OERDefinition.seqof(EtsiTs102941TrustLists.CrlEntry).typeName("SequenceOfCrlEntry");
        ToBeSignedCrl = OERDefinition.seq(EtsiTs102941BaseTypes.Version.label("version"), Ieee1609Dot2BaseTypes.Time32.label("thisUpdate"), Ieee1609Dot2BaseTypes.Time32.label("nextUpdate"), EtsiTs102941TrustLists.SequenceOfCrlEntry.label("entries"), OERDefinition.extension(new Object[0])).typeName("ToBeSignedCrl");
        Url = OERDefinition.ia5String().typeName("Url");
        DcDelete = EtsiTs102941TrustLists.Url.typeName("DcDelete");
        DcEntry = OERDefinition.seq(EtsiTs102941TrustLists.Url.label("url"), Ieee1609Dot2BaseTypes.SequenceOfHashedId8.label("cert")).typeName("DcEntry");
        AaEntry = OERDefinition.seq(EtsiTs103097Module.EtsiTs103097Certificate.label("aaCertificate"), EtsiTs102941TrustLists.Url.label("accessPoint")).typeName("AaEntry");
        EaEntry = OERDefinition.seq(EtsiTs103097Module.EtsiTs103097Certificate.label("eaCertificate"), EtsiTs102941TrustLists.Url.label("aaAccessPoint"), OERDefinition.optional(EtsiTs102941TrustLists.Url.label("itsAccessPoint"))).typeName("EaEntry");
        RootCaEntry = OERDefinition.seq(EtsiTs103097Module.EtsiTs103097Certificate.label("selfsignedRootCa"), OERDefinition.optional(EtsiTs103097Module.EtsiTs103097Certificate.label("successorTo"))).typeName("RootCaEntry");
        TlmEntry = OERDefinition.seq(EtsiTs103097Module.EtsiTs103097Certificate.label("selfSignedTLMCertificate"), OERDefinition.optional(EtsiTs103097Module.EtsiTs103097Certificate.label("successorTo")), EtsiTs102941TrustLists.Url.label("accessPoint")).typeName("TlmEntry");
        CtlDelete = OERDefinition.choice(Ieee1609Dot2BaseTypes.HashedId8.label("cert"), EtsiTs102941TrustLists.DcDelete.label("dc"), OERDefinition.extension(new Object[0])).typeName("CtlDelete");
        CtlEntry = OERDefinition.choice(EtsiTs102941TrustLists.RootCaEntry.label("rca"), EtsiTs102941TrustLists.EaEntry.label("ea"), EtsiTs102941TrustLists.AaEntry.label("aa"), EtsiTs102941TrustLists.DcEntry.label("dc"), EtsiTs102941TrustLists.TlmEntry.label("tlm"), OERDefinition.extension(new Object[0])).typeName("CtlEntry");
        CtlCommand = OERDefinition.choice(EtsiTs102941TrustLists.CtlEntry.label("add"), EtsiTs102941TrustLists.CtlDelete.label("delete"), OERDefinition.extension(new Object[0])).typeName("CtlCommand");
        SequenceOfCtlCommand = OERDefinition.seqof(EtsiTs102941TrustLists.CtlCommand).typeName("SequenceOfCtlCommand");
        CtlFormat = OERDefinition.seq(EtsiTs102941BaseTypes.Version.label("version"), Ieee1609Dot2BaseTypes.Time32.label("nextUpdate"), OERDefinition.bool().label("isFullCtl"), OERDefinition.integer(0L, 255L).label("ctlSequence"), EtsiTs102941TrustLists.SequenceOfCtlCommand.label("ctlCommands"), OERDefinition.extension(new Object[0])).typeName("CtlFormat");
        DeltaCtl = EtsiTs102941TrustLists.CtlFormat.typeName("DeltaCtl");
        FullCtl = EtsiTs102941TrustLists.CtlFormat.typeName("FullCtl");
        ToBeSignedTlmCtl = EtsiTs102941TrustLists.CtlFormat.typeName("ToBeSignedRcaCtl");
        ToBeSignedRcaCtl = EtsiTs102941TrustLists.CtlFormat.typeName("ToBeSignedRcaCtl");
    }
}
