4 Protocol Examples

The following is an annotated hex dump of an ASN.1 encoded NegTokenInit2 (section 2.2.1) message.

 00000000  60 82 01 5d 06 06 2b 06 01 05 05 02 a0 82 01 51  `..]..+........Q
 00000010  30 82 01 4d a0 1a 30 18 06 0a 2b 06 01 04 01 82  0..M..0...+.....
 00000020  37 02 02 1e 06 0a 2b 06 01 04 01 82 37 02 02 0a  7.....+.....7...
 00000030  a2 82 01 01 04 81 fe 4e 45 47 4f 45 58 54 53 01  .......NEGOEXTS.
 00000040  00 00 00 00 00 00 00 60 00 00 00 70 00 00 00 cf  .......`...p....
 00000050  fa 11 76 5e 12 59 9a 34 7d 76 68 52 bf ce 70 97  ..v^.Y.4}vhR..p.
 00000060  45 87 10 bb 82 42 b4 c7 df ba d2 da 89 7a a3 11  E....B.......z..
 00000070  a7 d8 68 46 34 30 95 25 62 dc 13 c5 54 f2 01 00  ..hF40.%b...T...
 00000080  00 00 00 00 00 00 00 60 00 00 00 01 00 00 00 00  .......`........
 00000090  00 00 00 00 00 00 00 5c 33 53 0d ea f9 0d 4d b2  .......\3S....M.
 000000a0  ec 4a e3 78 6e c3 08 4e 45 47 4f 45 58 54 53 03  .J.xn..NEGOEXTS.
 000000b0  00 00 00 01 00 00 00 40 00 00 00 8e 00 00 00 cf  .......@........
 000000c0  fa 11 76 5e 12 59 9a 34 7d 76 68 52 bf ce 70 5c  ..v^.Y.4}vhR..p\
 000000d0  33 53 0d ea f9 0d 4d b2 ec 4a e3 78 6e c3 08 40  3S....M..J.xn..@
 000000e0  00 00 00 4e 00 00 00 30 4c a0 4a 30 48 30 2a 80  ...N...0L.J0H0*.
 000000f0  28 30 26 31 24 30 22 06 03 55 04 03 13 1b 58 4d  (0&1$0"..U....XM
 00000100  4c 50 72 6f 76 69 64 65 72 20 49 6e 74 65 72 6d  LProvider Interm
 00000110  65 64 69 61 74 65 20 43 41 30 1a 80 18 30 16 31  ediate CA0...0.1
 00000120  14 30 12 06 03 55 04 03 13 0b 58 4d 4c 50 72 6f  .0...U....XMLPro
 00000130  76 69 64 65 72 a3 2a 30 28 a0 26 1b 24 6e 6f 74  vider.*0(.&.$not
 00000140  5f 64 65 66 69 6e 65 64 5f 69 6e 5f 52 46 43 34  _defined_in_RFC4
 00000150  31 37 38 40 70 6c 65 61 73 65 5f 69 67 6e 6f 72  178@please_ignor
 00000160  65                                               e

The first part is the ASN.1 encoding of the NegTokenInit2 message. This is the same as for the netTokenInit ([RFC4178] section 4.2) message:

 00000000  60 82 01 5d 06 06 2b 06 01 05 05 02 a0 82 01 51  `..]..+........Q
 00000010  30 82 01 4d a0 1a 30 18                          0..M..0.
  

The mechTypes field is the first field of the NegTokenInit2 message. Since this is a local logon, two types are offered:

  • SPNegoEx: iso(1).org(3).dod(6).internet(1).private(4).enterprise(1).Microsoft(311).security(2).mechanisms(2).snegoex(30)

  • NLMP: iso(1).org(3).dod(6).internet(1).private(4).enterprise(1).Microsoft(311).security(2).mechanisms(2).ntlm(10)

     00000010                          06 0a 2b 06 01 04 01 82          ..+.....
     00000020  37 02 02 1e 06 0a 2b 06 01 04 01 82 37 02 02 0a  7.....+.....7...
      
    

Next is the mechToken field.

 00000030  a2 82 01 01 04 81 fe 4e 45 47 4f 45 58 54 53 01  .......NEGOEXTS.
 00000040  00 00 00 00 00 00 00 60 00 00 00 70 00 00 00 cf  .......`...p....
 00000050  fa 11 76 5e 12 59 9a 34 7d 76 68 52 bf ce 70 97  ..v^.Y.4}vhR..p.
 00000060  45 87 10 bb 82 42 b4 c7 df ba d2 da 89 7a a3 11  E....B.......z..
 00000070  a7 d8 68 46 34 30 95 25 62 dc 13 c5 54 f2 01 00  ..hF40.%b...T...
 00000080  00 00 00 00 00 00 00 60 00 00 00 01 00 00 00 00  .......`........
 00000090  00 00 00 00 00 00 00 5c 33 53 0d ea f9 0d 4d b2  .......\3S....M.
 000000a0  ec 4a e3 78 6e c3 08 4e 45 47 4f 45 58 54 53 03  .J.xn..NEGOEXTS.
 000000b0  00 00 00 01 00 00 00 40 00 00 00 8e 00 00 00 cf  .......@........
 000000c0  fa 11 76 5e 12 59 9a 34 7d 76 68 52 bf ce 70 5c  ..v^.Y.4}vhR..p\
 000000d0  33 53 0d ea f9 0d 4d b2 ec 4a e3 78 6e c3 08 40  3S....M..J.xn..@
 000000e0  00 00 00 4e 00 00 00 30 4c a0 4a 30 48 30 2a 80  ...N...0L.J0H0*.
 000000f0  28 30 26 31 24 30 22 06 03 55 04 03 13 1b 58 4d  (0&1$0"..U....XM
 00000100  4c 50 72 6f 76 69 64 65 72 20 49 6e 74 65 72 6d  LProvider Interm
 00000110  65 64 69 61 74 65 20 43 41 30 1a 80 18 30 16 31  ediate CA0...0.1
 00000120  14 30 12 06 03 55 04 03 13 0b 58 4d 4c 50 72 6f  .0...U....XMLPro
 00000130  76 69 64 65 72 a3 2a 30 28 a0 26 1b 24           vider.*0(.&.$

Finally is the negHints.hintName field, the value of which is the string "not_defined_in_RFC4178@please_ignore".

 00000130                                         6e 6f 74               not
 00000140  5f 64 65 66 69 6e 65 64 5f 69 6e 5f 52 46 43 34  _defined_in_RFC4
 00000150  31 37 38 40 70 6c 65 61 73 65 5f 69 67 6e 6f 72  178@please_ignor
 00000160  65                                               e 
Show: