001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 *
019 */
020 package org.apache.directory.server.kerberos.shared.messages.value.types;
021
022
023 /**
024 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
025 * @version $Rev: 540371 $, $Date: 2007-05-22 02:00:43 +0200 (Tue, 22 May 2007) $
026 */
027 public enum PaDataType
028 {
029 /**
030 * Constant for the "null" pre-authentication data type.
031 */
032 NULL( 0 ),
033
034 /**
035 * Constant for the "TGS request" pre-authentication data type.
036 */
037 PA_TGS_REQ( 1 ),
038
039 /**
040 * Constant for the "encrypted timestamp" pre-authentication data type.
041 */
042 PA_ENC_TIMESTAMP( 2 ),
043
044 /**
045 * Constant for the "password salt" pre-authentication data type.
046 */
047 PA_PW_SALT( 3 ),
048
049 /**
050 * Constant for the "enc unix time" pre-authentication data type.
051 */
052 PA_ENC_UNIX_TIME( 5 ),
053
054 /**
055 * Constant for the "sandia secureid" pre-authentication data type.
056 */
057 PA_SANDIA_SECUREID( 6 ),
058
059 /**
060 * Constant for the "sesame" pre-authentication data type.
061 */
062 PA_SESAME( 7 ),
063
064 /**
065 * Constant for the "OSF DCE" pre-authentication data type.
066 */
067 PA_OSF_DCE( 8 ),
068
069 /**
070 * Constant for the "cybersafe secureid" pre-authentication data type.
071 */
072 PA_CYBERSAFE_SECUREID( 9 ),
073
074 /**
075 * Constant for the "ASF3 salt" pre-authentication data type.
076 */
077 PA_ASF3_SALT( 10 ),
078
079 /**
080 * Constant for the "encryption info" pre-authentication data type.
081 */
082 PA_ENCTYPE_INFO( 11 ),
083
084 /**
085 * Constant for the "SAM challenge" pre-authentication data type.
086 */
087 SAM_CHALLENGE( 12 ),
088
089 /**
090 * Constant for the "SAM response" pre-authentication data type.
091 */
092 SAM_RESPONSE( 13 ),
093
094 /**
095 * Constant for the "PK as request" pre-authentication data type.
096 */
097 PA_PK_AS_REQ( 14 ),
098
099 /**
100 * Constant for the "PK as response" pre-authentication data type.
101 */
102 PA_PK_AS_REP( 15 ),
103
104 /**
105 * Constant for the "use specified key version" pre-authentication data type.
106 */
107 PA_USE_SPECIFIED_KVNO( 20 ),
108
109 /**
110 * Constant for the "SAM redirect" pre-authentication data type.
111 */
112 SAM_REDIRECT( 21 ),
113
114 /**
115 * Constant for the "get from typed data" pre-authentication data type.
116 */
117 PA_GET_FROM_TYPED_DATA( 22 );
118
119
120 /**
121 * The value/code for the pre-authentication type.
122 */
123 private final int ordinal;
124
125
126 /**
127 * Private constructor prevents construction outside of this class.
128 */
129 private PaDataType( int ordinal )
130 {
131 this.ordinal = ordinal;
132 }
133
134
135 /**
136 * Returns the number associated with this pre-authentication type.
137 *
138 * @return The pre-authentication type ordinal.
139 */
140 public int getOrdinal()
141 {
142 return ordinal;
143 }
144
145 /**
146 * Returns the pre authentication data type when specified by its ordinal.
147 *
148 * @param type The ordinal
149 * @return The pre authentication type.
150 */
151 public static PaDataType getTypeByOrdinal( int type )
152 {
153 switch ( type )
154 {
155 case 1 : return PA_TGS_REQ;
156 case 2 : return PA_ENC_TIMESTAMP;
157 case 3 : return PA_PW_SALT;
158 case 5 : return PA_ENC_UNIX_TIME;
159 case 6 : return PA_SANDIA_SECUREID;
160 case 7 : return PA_SESAME;
161 case 8 : return PA_OSF_DCE;
162 case 9 : return PA_CYBERSAFE_SECUREID;
163 case 10 : return PA_ASF3_SALT;
164 case 11 : return PA_ENCTYPE_INFO;
165 case 12 : return SAM_CHALLENGE;
166 case 13 : return SAM_RESPONSE;
167 case 14 : return PA_PK_AS_REQ;
168 case 15 : return PA_PK_AS_REQ;
169 case 20 : return PA_USE_SPECIFIED_KVNO;
170 case 21 : return SAM_REDIRECT;
171 case 22 : return PA_GET_FROM_TYPED_DATA;
172 default : return NULL;
173 }
174 }
175
176 /**
177 * @see Object#toString()
178 */
179 public String toString()
180 {
181 switch ( this )
182 {
183 case PA_TGS_REQ :
184 return "TGS request." + "(" + ordinal + ")";
185
186 case PA_ENC_TIMESTAMP :
187 return "Encrypted timestamp." + "(" + ordinal + ")";
188
189 case PA_PW_SALT :
190 return "password salt" + "(" + ordinal + ")";
191
192 case PA_ENC_UNIX_TIME :
193 return "enc unix time" + "(" + ordinal + ")";
194
195 case PA_SANDIA_SECUREID :
196 return "sandia secureid" + "(" + ordinal + ")";
197
198 case PA_SESAME :
199 return "sesame" + "(" + ordinal + ")";
200
201 case PA_OSF_DCE :
202 return "OSF DCE" + "(" + ordinal + ")";
203
204 case PA_CYBERSAFE_SECUREID :
205 return "cybersafe secureid" + "(" + ordinal + ")";
206
207 case PA_ASF3_SALT :
208 return "ASF3 salt" + "(" + ordinal + ")";
209
210 case PA_ENCTYPE_INFO :
211 return "Encryption info." + "(" + ordinal + ")";
212
213 case SAM_CHALLENGE :
214 return "SAM challenge." + "(" + ordinal + ")";
215
216 case SAM_RESPONSE :
217 return "SAM response." + "(" + ordinal + ")";
218
219 case PA_PK_AS_REQ :
220 return "PK as request" + "(" + ordinal + ")";
221
222 case PA_PK_AS_REP :
223 return "PK as response" + "(" + ordinal + ")";
224
225 case PA_USE_SPECIFIED_KVNO :
226 return "use specified key version" + "(" + ordinal + ")";
227
228 case SAM_REDIRECT :
229 return "SAM redirect." + "(" + ordinal + ")";
230
231 case PA_GET_FROM_TYPED_DATA :
232 return "Get from typed data" + "(" + ordinal + ")";
233
234 default :
235 return "null" + "(" + ordinal + ")";
236 }
237 }
238 }