iiop-openjdk/src/main/java/org/wildfly/iiop/openjdk/csiv2/CSIv2Util.java
public static InitialContextToken decodeInitialContextToken(byte[] encodedToken, Codec codec) {
        if (encodedToken[0] != 0x60)
            return null;

        int encodedLength = 0;
        int n = 0;

        if (encodedToken[1] >= 0)
            encodedLength = encodedToken[1];
        else {
            n = encodedToken[1] & 0x7F;
            for (int i = 1; i <= n; i++) {
                encodedLength += (encodedToken[1 + i] & 0xFF) << (n - i) * 8;
            }
        }

        int length = encodedLength - gssUpMechOidArray.length;
        byte[] encodedInitialContextToken = new byte[length];

        System.arraycopy(encodedToken, 2 + n + gssUpMechOidArray.length,
                encodedInitialContextToken, 0,
                length);
        Any any;
        try {
            any = codec.decode_value(encodedInitialContextToken, InitialContextTokenHelper.type());
        } catch (Exception e) {
            return null;
        }

        return InitialContextTokenHelper.extract(any);
    }
public static InitialContextToken decodeInitialContextToken(byte[] encodedToken, Codec codec) {
        if (encodedToken[0] != 0x60)
            return null;

        int encodedLength = 0;
        int n = 0;

        if (encodedToken[1] >= 0)
            encodedLength = encodedToken[1];
        else {
            n = encodedToken[1] & 0x7F;
            for (int i = 1; i <= n; i++) {
                encodedLength += (encodedToken[1 + i] & 0xFF) << (n - i) * 8;
            }
        }

        int length = encodedLength - gssUpMechOidArray.length;
        byte[] encodedInitialContextToken = new byte[length];

        System.arraycopy(encodedToken, 2 + n + gssUpMechOidArray.length,
                encodedInitialContextToken, 0,
                length);
        Any any;
        try {
            any = codec.decode_value(encodedInitialContextToken, InitialContextTokenHelper.type());
        } catch (Exception e) {
            return null;
        }

        return InitialContextTokenHelper.extract(any);
    }
public static InitialContextToken decodeInitialContextToken ( byte [ ] encodedToken , Codec codec ) { if ( encodedToken [ 0 ] != 0x60 ) return null ; int encodedLength = 0 ; int n = 0 ; if ( encodedToken [ 1 ] >= 0 ) encodedLength = encodedToken [ 1 ] ; else { n = encodedToken [ 1 ] & 0x7F ; for ( int i = 1 ; i <= n ; i ++ ) { encodedLength += ( encodedToken [ 1 + i ] & 0xFF ) << ( n - i ) * 8 ; } } int length = encodedLength - gssUpMechOidArray . length ; byte [ ] encodedInitialContextToken = new byte [ length ] ; System . arraycopy ( encodedToken , 2 + n + gssUpMechOidArray . length , encodedInitialContextToken , 0 , length ) ; Any any ; try { any = codec . decode_value ( encodedInitialContextToken , InitialContextTokenHelper . type ( ) ) ; } catch ( Exception e ) { return null ; } return InitialContextTokenHelper . extract ( any ) ; }
<p>
Decodes an ASN.1-encoded {@code InitialContextToken}. See {@code encodeInitialContextToken} for a description of
the encoded token format.
</p>

@param encodedToken the encoded token.
@param codec        the {@code Codec} used to decode the token.
@return the decoded {@code InitialContextToken} instance.
@see #encodeInitialContextToken(org.omg.GSSUP.InitialContextToken, org.omg.IOP.Codec)
<p > Decodes an ASN . 1 - encoded { @code InitialContextToken } . See { @code encodeInitialContextToken } for a description of the encoded token format . < / p >