001: /*
002: * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
003: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004: *
005: * This code is free software; you can redistribute it and/or modify it
006: * under the terms of the GNU General Public License version 2 only, as
007: * published by the Free Software Foundation. Sun designates this
008: * particular file as subject to the "Classpath" exception as provided
009: * by Sun in the LICENSE file that accompanied this code.
010: *
011: * This code is distributed in the hope that it will be useful, but WITHOUT
012: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014: * version 2 for more details (a copy is included in the LICENSE file that
015: * accompanied this code).
016: *
017: * You should have received a copy of the GNU General Public License version
018: * 2 along with this work; if not, write to the Free Software Foundation,
019: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020: *
021: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022: * CA 95054 USA or visit www.sun.com if you need additional information or
023: * have any questions.
024: */
025:
026: package sun.security.jgss.krb5;
027:
028: import java.io.IOException;
029: import sun.security.util.*;
030: import sun.security.jgss.*;
031:
032: /**
033: * This class represents a base class for all Kerberos v5 GSS-API
034: * tokens. It contains commonly used definitions and utilities.
035: *
036: * @author Mayank Upadhyay
037: * @version 1.19, 05/05/07
038: */
039:
040: abstract class Krb5Token extends GSSToken {
041:
042: /**
043: * The token id defined for the token emitted by the initSecContext call
044: * carrying the AP_REQ .
045: */
046: public static final int AP_REQ_ID = 0x0100;
047:
048: /**
049: * The token id defined for the token emitted by the acceptSecContext call
050: * carrying the AP_REP .
051: */
052: public static final int AP_REP_ID = 0x0200;
053:
054: /**
055: * The token id defined for any token carrying a KRB-ERR message.
056: */
057: public static final int ERR_ID = 0x0300;
058:
059: /**
060: * The token id defined for the token emitted by the getMIC call.
061: */
062: public static final int MIC_ID = 0x0101;
063:
064: /**
065: * The token id defined for the token emitted by the wrap call.
066: */
067: public static final int WRAP_ID = 0x0201;
068:
069: // new token ID draft-ietf-krb-wg-gssapi-cfx-07.txt
070: public static final int MIC_ID_v2 = 0x0404;
071: public static final int WRAP_ID_v2 = 0x0504;
072:
073: /**
074: * The object identifier corresponding to the Kerberos v5 GSS-API
075: * mechanism.
076: */
077: public static ObjectIdentifier OID;
078:
079: static {
080: try {
081: OID = new ObjectIdentifier(
082: Krb5MechFactory.GSS_KRB5_MECH_OID.toString());
083: } catch (IOException ioe) {
084: // should not happen
085: }
086: }
087:
088: /**
089: * Returns a strign representing the token type.
090: *
091: * @param tokenId the token id for which a string name is desired
092: * @return the String name of this token type
093: */
094: public static String getTokenName(int tokenId) {
095: String retVal = null;
096: switch (tokenId) {
097: case AP_REQ_ID:
098: case AP_REP_ID:
099: retVal = "Context Establishment Token";
100: break;
101: case MIC_ID:
102: retVal = "MIC Token";
103: break;
104: case MIC_ID_v2:
105: retVal = "MIC Token (new format)";
106: break;
107: case WRAP_ID:
108: retVal = "Wrap Token";
109: break;
110: case WRAP_ID_v2:
111: retVal = "Wrap Token (new format)";
112: break;
113: default:
114: retVal = "Kerberos GSS-API Mechanism Token";
115: break;
116: }
117: return retVal;
118: }
119: }
|