PROXY  WHOIS  RQUOTE  TEXTS  SOFT  FOREX  BBOARD
 Music  Philosophy  Code  Literature  Russian

= ROOT|Technical|Code_Examples|Java|org|ietf|jgss|Oid.java =

page 1 of 2



/*
 * @(#)Oid.java	1.10 06/06/22
 *
 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
 
package org.ietf.jgss;

import java.io.InputStream;
import java.io.IOException;
import sun.security.util.DerValue;
import sun.security.util.DerOutputStream;
import sun.security.util.ObjectIdentifier;

/** 
 * This class represents Universal Object Identifiers (Oids) and their
 * associated operations.<p>
 *
 * Oids are hierarchically globally-interpretable identifiers used
 * within the GSS-API framework to identify mechanisms and name formats.<p>
 *
 * The structure and encoding of Oids is defined in ISOIEC-8824 and
 * ISOIEC-8825.  For example the Oid representation of Kerberos V5
 * mechanism is "1.2.840.113554.1.2.2"<p>
 *
 * The GSSName name class contains public static Oid objects
 * representing the standard name types defined in GSS-API.
 *
 * @author Mayank Upadhyay
 * @version 1.10, 06/22/06
 * @since 1.4
 */
public class Oid {

    private ObjectIdentifier oid;
    private byte[] derEncoding;

    /** 
     * Constructs an Oid object from a string representation of its
     * integer components.
     * 
     * @param strOid the dot separated string representation of the oid.
     * For instance, "1.2.840.113554.1.2.2".
     * @exception GSSException may be thrown when the string is incorrectly 
     *     formatted
     */
    public Oid(String strOid) throws GSSException {

        try {
	    oid = new ObjectIdentifier(strOid);
	    derEncoding = null;
        } catch (Exception e) {
            throw new GSSException(GSSException.FAILURE, 
                          "Improperly formatted Object Identifier String - "
                          + strOid);  
	}
    }

    /** 
     * Creates an Oid object from its ASN.1 DER encoding.  This refers to
     * the full encoding including tag and length.  The structure and
     * encoding of Oids is defined in ISOIEC-8824 and ISOIEC-8825.  This
     * method is identical in functionality to its byte array counterpart.
     * 
     * @param derOid stream containing the DER encoded oid
     * @exception GSSException may be thrown when the DER encoding does not 
     *  follow the prescribed format.
     */
    public Oid(InputStream derOid) throws GSSException {
	try {
	    DerValue derVal = new DerValue(derOid);
	    derEncoding = derVal.toByteArray();
	    oid = derVal.getOID();
	} catch (IOException e) {
            throw new GSSException(GSSException.FAILURE, 
                          "Improperly formatted ASN.1 DER encoding for Oid");
	}
    }


    /** 
     * Creates an Oid object from its ASN.1 DER encoding.  This refers to
     * the full encoding including tag and length.  The structure and
     * encoding of Oids is defined in ISOIEC-8824 and ISOIEC-8825.  This
     * method is identical in functionality to its InputStream conterpart.
     * 
     * @param data byte array containing the DER encoded oid
     * @exception GSSException may be thrown when the DER encoding does not 
     *     follow the prescribed format.
     */
    public Oid(byte [] data) throws GSSException {
	try {
	    DerValue derVal = new DerValue(data);
	    derEncoding = derVal.toByteArray();
	    oid = derVal.getOID();
	} catch (IOException e) {
            throw new GSSException(GSSException.FAILURE, 
                          "Improperly formatted ASN.1 DER encoding for Oid");
	}
=1=

= PAGE 1 = NEXT > |2

UP TO ROOT | UP TO DIR

Google
 


E-mail Facebook Google Digg del.icio.us BlinkList Fark Furl Ma.gnolia Netscape NewsVine Reddit Slashdot Spurl StumbleUpon Technorati YahooMyWeb LiveJournal Blogmarks TwitThis Live News2.ru BobrDobr.ru Memori.ru MoeMesto.ru

0.0476129 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU)