Class NegTokenInit

  • Direct Known Subclasses:
    NegTokenInit2

    public class NegTokenInit
    extends java.lang.Object
    This class can encode and decode the SPNEGO negTokenInit Token.

    The entire token is an ASN.1 DER encoded sequence of bytes in little endian byte encoding.

    The following is the full ASN.1 specification of the token:

     GSSAPI          ::=  [APPLICATION 0] IMPLICIT SEQUENCE {
       mech                MechType,
       negTokenInit        NegotiationToken
     }
    
     NegotiationToken ::=  CHOICE {
       negTokenInit   [0]  NegTokenInit,
       negTokenTarg   [1]  NegTokenTarg
     }
    
     NegTokenInit     ::=  SEQUENCE {
       mechTypes      [0]  MechTypeList  OPTIONAL,
       reqFlags       [1]  ContextFlags  OPTIONAL,
       mechToken      [2]  OCTET STRING  OPTIONAL,
       mechListMIC    [3]  OCTET STRING  OPTIONAL
     }
    
     MechTypeList     ::=  SEQUENCE of MechType
    
     ContextFlags     ::=  BIT_STRING {
       delegFlag      (0),
       mutualFlag     (1),
       replayFlag     (2),
       sequenceFlag   (3),
       anonFlag       (4),
       confFlag       (5),
       integFlag      (6)
     }
    
     MechType         ::=  OBJECT IDENTIFIER
     

    In the context of this class only the NegTokenInit is covered.

    • When an InitToken is sent, it is prepended by the generic GSSAPI header.
    • The "mech" field of the GSSAPI header is always set to the SPNEGO OID (1.3.6.1.5.5.2)
    • The negTokenInit will have a lead byte of 0xa0 (the CHOICE tagged object).
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected byte[] mechToken  
    • Constructor Summary

      Constructors 
      Constructor Description
      NegTokenInit()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addSupportedMech​(com.hierynomus.asn1.types.primitive.ASN1ObjectIdentifier oid)  
      java.util.List<com.hierynomus.asn1.types.primitive.ASN1ObjectIdentifier> getSupportedMechTypes()  
      protected void parseSpnegoToken​(com.hierynomus.asn1.types.ASN1Object<?> spnegoToken)  
      protected void parseTagged​(com.hierynomus.asn1.types.constructed.ASN1TaggedObject asn1TaggedObject)  
      NegTokenInit read​(byte[] bytes)  
      void setMechToken​(byte[] mechToken)  
      void write​(Buffer<?> buffer)  
      protected void writeGss​(Buffer<?> buffer, com.hierynomus.asn1.types.ASN1Object<?> negToken)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • mechToken

        protected byte[] mechToken
    • Constructor Detail

      • NegTokenInit

        public NegTokenInit()
    • Method Detail

      • parseTagged

        protected void parseTagged​(com.hierynomus.asn1.types.constructed.ASN1TaggedObject asn1TaggedObject)
                            throws SpnegoException
        Throws:
        SpnegoException
      • addSupportedMech

        public void addSupportedMech​(com.hierynomus.asn1.types.primitive.ASN1ObjectIdentifier oid)
      • setMechToken

        public void setMechToken​(byte[] mechToken)
      • getSupportedMechTypes

        public java.util.List<com.hierynomus.asn1.types.primitive.ASN1ObjectIdentifier> getSupportedMechTypes()
      • writeGss

        protected void writeGss​(Buffer<?> buffer,
                                com.hierynomus.asn1.types.ASN1Object<?> negToken)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • parseSpnegoToken

        protected void parseSpnegoToken​(com.hierynomus.asn1.types.ASN1Object<?> spnegoToken)
                                 throws SpnegoException
        Throws:
        SpnegoException