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.encTicketPart;
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.encTicketPart.actions.EncTicketPartInit;
30 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreAuthTime;
31 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreAuthorizationData;
32 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreCName;
33 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreCRealm;
34 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreCaddr;
35 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreEndTime;
36 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreFlags;
37 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreKey;
38 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreRenewtill;
39 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreStartTime;
40 import org.apache.directory.shared.kerberos.codec.encTicketPart.actions.StoreTransited;
41 import org.slf4j.Logger;
42 import org.slf4j.LoggerFactory;
43
44
45
46
47
48
49
50
51
52 public final class EncTicketPartGrammar extends AbstractGrammar<EncTicketPartContainer>
53 {
54
55 static final Logger LOG = LoggerFactory.getLogger( EncTicketPartGrammar.class );
56
57
58 static final boolean IS_DEBUG = LOG.isDebugEnabled();
59
60
61 private static Grammar<EncTicketPartContainer> instance = new EncTicketPartGrammar();
62
63
64
65
66
67 @SuppressWarnings("unchecked")
68 private EncTicketPartGrammar()
69 {
70 setName( EncTicketPartGrammar.class.getName() );
71
72
73 super.transitions = new GrammarTransition[EncTicketPartStatesEnum.LAST_ENC_TICKET_PART_STATE.ordinal()][256];
74
75
76
77
78 super.transitions[EncTicketPartStatesEnum.START_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_TAG] =
79 new GrammarTransition<EncTicketPartContainer>(
80 EncTicketPartStatesEnum.START_STATE,
81 EncTicketPartStatesEnum.ENC_TICKET_PART_TAG_STATE,
82 KerberosConstants.ENC_TICKET_PART_TAG,
83 new EncTicketPartInit() );
84
85 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_TAG_STATE.ordinal()][UniversalTag.SEQUENCE.getValue()] =
86 new GrammarTransition<EncTicketPartContainer>(
87 EncTicketPartStatesEnum.ENC_TICKET_PART_TAG_STATE,
88 EncTicketPartStatesEnum.ENC_TICKET_PART_SEQ_STATE,
89 UniversalTag.SEQUENCE,
90 new CheckNotNullLength<EncTicketPartContainer>() );
91
92 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_SEQ_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_FLAGS_TAG] =
93 new GrammarTransition<EncTicketPartContainer>(
94 EncTicketPartStatesEnum.ENC_TICKET_PART_SEQ_STATE,
95 EncTicketPartStatesEnum.ENC_TICKET_PART_FLAGS_TAG_STATE,
96 KerberosConstants.ENC_TICKET_PART_FLAGS_TAG,
97 new CheckNotNullLength<EncTicketPartContainer>() );
98
99 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_FLAGS_TAG_STATE.ordinal()][UniversalTag.BIT_STRING
100 .getValue()] =
101 new GrammarTransition<EncTicketPartContainer>(
102 EncTicketPartStatesEnum.ENC_TICKET_PART_FLAGS_TAG_STATE,
103 EncTicketPartStatesEnum.ENC_TICKET_PART_FLAGS_STATE,
104 UniversalTag.BIT_STRING,
105 new StoreFlags() );
106
107 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_FLAGS_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_KEY_TAG] =
108 new GrammarTransition<EncTicketPartContainer>(
109 EncTicketPartStatesEnum.ENC_TICKET_PART_FLAGS_STATE,
110 EncTicketPartStatesEnum.ENC_TICKET_PART_KEY_TAG_STATE,
111 KerberosConstants.ENC_TICKET_PART_KEY_TAG,
112 new StoreKey() );
113
114 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_KEY_TAG_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_CREALM_TAG] =
115 new GrammarTransition<EncTicketPartContainer>(
116 EncTicketPartStatesEnum.ENC_TICKET_PART_KEY_TAG_STATE,
117 EncTicketPartStatesEnum.ENC_TICKET_PART_CREALM_TAG_STATE,
118 KerberosConstants.ENC_TICKET_PART_CREALM_TAG,
119 new CheckNotNullLength<EncTicketPartContainer>() );
120
121 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_CREALM_TAG_STATE.ordinal()][UniversalTag.GENERAL_STRING
122 .getValue()] =
123 new GrammarTransition<EncTicketPartContainer>(
124 EncTicketPartStatesEnum.ENC_TICKET_PART_CREALM_TAG_STATE,
125 EncTicketPartStatesEnum.ENC_TICKET_PART_CREALM_STATE,
126 UniversalTag.GENERAL_STRING,
127 new StoreCRealm() );
128
129 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_CREALM_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_CNAME_TAG] =
130 new GrammarTransition<EncTicketPartContainer>(
131 EncTicketPartStatesEnum.ENC_TICKET_PART_CREALM_STATE,
132 EncTicketPartStatesEnum.ENC_TICKET_PART_CNAME_TAG_STATE,
133 KerberosConstants.ENC_TICKET_PART_CNAME_TAG,
134 new StoreCName() );
135
136 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_CNAME_TAG_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_TRANSITED_TAG] =
137 new GrammarTransition<EncTicketPartContainer>(
138 EncTicketPartStatesEnum.ENC_TICKET_PART_CNAME_TAG_STATE,
139 EncTicketPartStatesEnum.ENC_TICKET_PART_TRANSITED_TAG_STATE,
140 KerberosConstants.ENC_TICKET_PART_TRANSITED_TAG,
141 new StoreTransited() );
142
143 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_TRANSITED_TAG_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_AUTHTIME_TAG] =
144 new GrammarTransition<EncTicketPartContainer>(
145 EncTicketPartStatesEnum.ENC_TICKET_PART_TRANSITED_TAG_STATE,
146 EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHTIME_TAG_STATE,
147 KerberosConstants.ENC_TICKET_PART_AUTHTIME_TAG,
148 new CheckNotNullLength<EncTicketPartContainer>() );
149
150 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHTIME_TAG_STATE.ordinal()][UniversalTag.GENERALIZED_TIME
151 .getValue()] =
152 new GrammarTransition<EncTicketPartContainer>(
153 EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHTIME_TAG_STATE,
154 EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHTIME_STATE,
155 UniversalTag.GENERALIZED_TIME,
156 new StoreAuthTime() );
157
158 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHTIME_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_STARTTIME_TAG] =
159 new GrammarTransition<EncTicketPartContainer>(
160 EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHTIME_STATE,
161 EncTicketPartStatesEnum.ENC_TICKET_PART_STARTTIME_TAG_STATE,
162 KerberosConstants.ENC_TICKET_PART_STARTTIME_TAG,
163 new CheckNotNullLength<EncTicketPartContainer>() );
164
165 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_STARTTIME_TAG_STATE.ordinal()][UniversalTag.GENERALIZED_TIME
166 .getValue()] =
167 new GrammarTransition<EncTicketPartContainer>(
168 EncTicketPartStatesEnum.ENC_TICKET_PART_STARTTIME_TAG_STATE,
169 EncTicketPartStatesEnum.ENC_TICKET_PART_STARTTIME_STATE,
170 UniversalTag.GENERALIZED_TIME,
171 new StoreStartTime() );
172
173 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_STARTTIME_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_ENDTIME_TAG] =
174 new GrammarTransition<EncTicketPartContainer>(
175 EncTicketPartStatesEnum.ENC_TICKET_PART_STARTTIME_STATE,
176 EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_TAG_STATE,
177 KerberosConstants.ENC_TICKET_PART_ENDTIME_TAG,
178 new CheckNotNullLength<EncTicketPartContainer>() );
179
180 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_TAG_STATE.ordinal()][UniversalTag.GENERALIZED_TIME
181 .getValue()] =
182 new GrammarTransition<EncTicketPartContainer>(
183 EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_TAG_STATE,
184 EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_STATE,
185 UniversalTag.GENERALIZED_TIME,
186 new StoreEndTime() );
187
188 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_RENEWTILL_TAG] =
189 new GrammarTransition<EncTicketPartContainer>(
190 EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_STATE,
191 EncTicketPartStatesEnum.ENC_TICKET_PART_RENEWTILL_TAG_STATE,
192 KerberosConstants.ENC_TICKET_PART_RENEWTILL_TAG,
193 new CheckNotNullLength<EncTicketPartContainer>() );
194
195 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_RENEWTILL_TAG_STATE.ordinal()][UniversalTag.GENERALIZED_TIME
196 .getValue()] =
197 new GrammarTransition<EncTicketPartContainer>(
198 EncTicketPartStatesEnum.ENC_TICKET_PART_RENEWTILL_TAG_STATE,
199 EncTicketPartStatesEnum.ENC_TICKET_PART_RENEWTILL_STATE,
200 UniversalTag.GENERALIZED_TIME,
201 new StoreRenewtill() );
202
203 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_RENEWTILL_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_CADDR_TAG] =
204 new GrammarTransition<EncTicketPartContainer>(
205 EncTicketPartStatesEnum.ENC_TICKET_PART_RENEWTILL_STATE,
206 EncTicketPartStatesEnum.ENC_TICKET_PART_CADDR_TAG_STATE,
207 KerberosConstants.ENC_TICKET_PART_CADDR_TAG,
208 new StoreCaddr() );
209
210 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_CADDR_TAG_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_AUTHORIZATION_DATA_TAG] =
211 new GrammarTransition<EncTicketPartContainer>(
212 EncTicketPartStatesEnum.ENC_TICKET_PART_CADDR_TAG_STATE,
213 EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHZ_DATA_TAG_STATE,
214 KerberosConstants.ENC_TICKET_PART_AUTHORIZATION_DATA_TAG,
215 new StoreAuthorizationData() );
216
217 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHTIME_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_ENDTIME_TAG] =
218 new GrammarTransition<EncTicketPartContainer>(
219 EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHTIME_STATE,
220 EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_TAG_STATE,
221 KerberosConstants.ENC_TICKET_PART_ENDTIME_TAG,
222 new CheckNotNullLength<EncTicketPartContainer>() );
223
224 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_CADDR_TAG] =
225 new GrammarTransition<EncTicketPartContainer>(
226 EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_STATE,
227 EncTicketPartStatesEnum.ENC_TICKET_PART_CADDR_TAG_STATE,
228 KerberosConstants.ENC_TICKET_PART_CADDR_TAG,
229 new StoreCaddr() );
230
231 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_AUTHORIZATION_DATA_TAG] =
232 new GrammarTransition<EncTicketPartContainer>(
233 EncTicketPartStatesEnum.ENC_TICKET_PART_ENDTIME_STATE,
234 EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHZ_DATA_TAG_STATE,
235 KerberosConstants.ENC_TICKET_PART_AUTHORIZATION_DATA_TAG,
236 new StoreAuthorizationData() );
237
238 super.transitions[EncTicketPartStatesEnum.ENC_TICKET_PART_RENEWTILL_STATE.ordinal()][KerberosConstants.ENC_TICKET_PART_AUTHORIZATION_DATA_TAG] =
239 new GrammarTransition<EncTicketPartContainer>(
240 EncTicketPartStatesEnum.ENC_TICKET_PART_RENEWTILL_STATE,
241 EncTicketPartStatesEnum.ENC_TICKET_PART_AUTHZ_DATA_TAG_STATE,
242 KerberosConstants.ENC_TICKET_PART_AUTHORIZATION_DATA_TAG,
243 new StoreAuthorizationData() );
244 }
245
246
247
248
249
250
251
252 public static Grammar<EncTicketPartContainer> getInstance()
253 {
254 return instance;
255 }
256 }