1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.shared.kerberos.codec.adKdcIssued;
21
22
23 import org.apache.directory.api.asn1.actions.CheckNotNullLength;
24 import org.apache.directory.api.asn1.ber.grammar.AbstractGrammar;
25 import org.apache.directory.api.asn1.ber.grammar.Grammar;
26 import org.apache.directory.api.asn1.ber.grammar.GrammarTransition;
27 import org.apache.directory.api.asn1.ber.tlv.UniversalTag;
28 import org.apache.directory.shared.kerberos.KerberosConstants;
29 import org.apache.directory.shared.kerberos.codec.adKdcIssued.actions.AdKdcIssuedInit;
30 import org.apache.directory.shared.kerberos.codec.adKdcIssued.actions.StoreChecksum;
31 import org.apache.directory.shared.kerberos.codec.adKdcIssued.actions.StoreElements;
32 import org.apache.directory.shared.kerberos.codec.adKdcIssued.actions.StoreIRealm;
33 import org.apache.directory.shared.kerberos.codec.adKdcIssued.actions.StoreISName;
34 import org.slf4j.Logger;
35 import org.slf4j.LoggerFactory;
36
37
38
39
40
41
42
43
44
45 public final class AdKDCIssuedGrammar extends AbstractGrammar<AdKdcIssuedContainer>
46 {
47
48 static final Logger LOG = LoggerFactory.getLogger( AdKDCIssuedGrammar.class );
49
50
51 static final boolean IS_DEBUG = LOG.isDebugEnabled();
52
53
54 private static Grammar<AdKdcIssuedContainer> instance = new AdKDCIssuedGrammar();
55
56
57
58
59
60 @SuppressWarnings("unchecked")
61 private AdKDCIssuedGrammar()
62 {
63 setName( AdKDCIssuedGrammar.class.getName() );
64
65
66 super.transitions = new GrammarTransition[AdKDCIssuedStatesEnum.LAST_AD_KDC_ISSUED_STATE.ordinal()][256];
67
68
69
70
71
72
73
74
75 super.transitions[AdKDCIssuedStatesEnum.START_STATE.ordinal()][UniversalTag.SEQUENCE.getValue()] =
76 new GrammarTransition<AdKdcIssuedContainer>(
77 AdKDCIssuedStatesEnum.START_STATE,
78 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_SEQ_STATE,
79 UniversalTag.SEQUENCE,
80 new AdKdcIssuedInit() );
81
82 super.transitions[AdKDCIssuedStatesEnum.AD_KDC_ISSUED_SEQ_STATE.ordinal()][KerberosConstants.AD_KDC_ISSUED_AD_CHECKSUM_TAG] =
83 new GrammarTransition<AdKdcIssuedContainer>(
84 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_SEQ_STATE,
85 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_AD_CHECKSUM_TAG_STATE,
86 KerberosConstants.AD_KDC_ISSUED_AD_CHECKSUM_TAG,
87 new StoreChecksum() );
88
89 super.transitions[AdKDCIssuedStatesEnum.AD_KDC_ISSUED_AD_CHECKSUM_TAG_STATE.ordinal()][KerberosConstants.AD_KDC_ISSUED_I_REALM_TAG] =
90 new GrammarTransition<AdKdcIssuedContainer>(
91 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_AD_CHECKSUM_TAG_STATE,
92 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_REALM_TAG_STATE,
93 KerberosConstants.AD_KDC_ISSUED_I_REALM_TAG,
94 new CheckNotNullLength<AdKdcIssuedContainer>() );
95
96 super.transitions[AdKDCIssuedStatesEnum.AD_KDC_ISSUED_AD_CHECKSUM_TAG_STATE.ordinal()][KerberosConstants.AD_KDC_ISSUED_I_SNAME_TAG] =
97 new GrammarTransition<AdKdcIssuedContainer>(
98 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_AD_CHECKSUM_TAG_STATE,
99 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_SNAME_TAG_STATE,
100 KerberosConstants.AD_KDC_ISSUED_I_SNAME_TAG,
101 new StoreISName() );
102
103 super.transitions[AdKDCIssuedStatesEnum.AD_KDC_ISSUED_AD_CHECKSUM_TAG_STATE.ordinal()][KerberosConstants.AD_KDC_ISSUED_ELEMENTS_TAG] =
104 new GrammarTransition<AdKdcIssuedContainer>(
105 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_AD_CHECKSUM_TAG_STATE,
106 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_ELEMENTS_TAG_STATE,
107 KerberosConstants.AD_KDC_ISSUED_ELEMENTS_TAG,
108 new StoreElements() );
109
110 super.transitions[AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_REALM_TAG_STATE.ordinal()][UniversalTag.GENERAL_STRING
111 .getValue()] =
112 new GrammarTransition<AdKdcIssuedContainer>(
113 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_REALM_TAG_STATE,
114 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_REALM_STATE,
115 UniversalTag.GENERAL_STRING,
116 new StoreIRealm() );
117
118 super.transitions[AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_REALM_STATE.ordinal()][KerberosConstants.AD_KDC_ISSUED_I_SNAME_TAG] =
119 new GrammarTransition<AdKdcIssuedContainer>(
120 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_REALM_STATE,
121 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_SNAME_TAG_STATE,
122 KerberosConstants.AD_KDC_ISSUED_I_SNAME_TAG,
123 new StoreISName() );
124
125 super.transitions[AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_REALM_STATE.ordinal()][KerberosConstants.AD_KDC_ISSUED_ELEMENTS_TAG] =
126 new GrammarTransition<AdKdcIssuedContainer>(
127 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_REALM_STATE,
128 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_ELEMENTS_TAG_STATE,
129 KerberosConstants.AD_KDC_ISSUED_ELEMENTS_TAG,
130 new StoreElements() );
131
132 super.transitions[AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_SNAME_TAG_STATE.ordinal()][KerberosConstants.AD_KDC_ISSUED_ELEMENTS_TAG] =
133 new GrammarTransition<AdKdcIssuedContainer>(
134 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_I_SNAME_TAG_STATE,
135 AdKDCIssuedStatesEnum.AD_KDC_ISSUED_ELEMENTS_TAG_STATE,
136 KerberosConstants.AD_KDC_ISSUED_ELEMENTS_TAG,
137 new StoreElements() );
138 }
139
140
141
142
143
144
145
146 public static Grammar<AdKdcIssuedContainer> getInstance()
147 {
148 return instance;
149 }
150 }