Re: Re: Issue 281: Backward compatibility problem
From: Jari Arkko (jari.arkkopiuha.net)
Date: Tue, 7 Dec 2004 06:00:29 -0500 (EST)
Bernard, Farid,

2) Modify the grammar to allow the NAIRealms to be placed anywhere after displayable message.

I'd prefer this. It's more consistent with RFC 3748, as well as existing implementations.

I would prefer #2 as well.


identity-request-data = [ displayable-string ] %0x00 [ Network-Info ]

displayable-string = *CHAR

Network-Info = *OCTET ["," "NAIRealms=" realm-list "," ] *OCTET

The general approach is correct, but I'd prefer making the NAIRealms data start with either directly after the NUL character or after a comma -- not always with a comma. How about this:

Network-Info     =   "NAIRealms=" realm-list
Network-Info     =/  1*OCTET ",NAIRealms=" realm-list
Network-Info     =/  "NAIRealms=" realm-list "," 1*OCTET
Network-Info     =/  1*OCTET ",NAIRealms=" realm-list "," 1*OCTET

Note that this still allows multiple %0x00's to be present
at various places. For instance, the following would all be
legal

    foo\0NAIRealms=snaap.com
    bar\0NAIRealms=fryyp.com\0\0\0\0
    foobar\0\0\0\0,NAIRealms=example.com
    \0APQuality=0,NAIRealms=arkko.com

realm-list            = realm /
                        ( realm-list ";" realm )

The "OCTET" and "CHAR" rules are defined in [RFC2234] and the "realm"
rule is defined in [rfc2486bis].

A sample hex dump of an EAP-Request/Identity packet is shown below.

      01                        ; Code: Request
      00                        ; Identifier: 0
      00 43                     ; Length: 67 octets
      01                        ; Type: Identity
      48 65 6c 6c 6f 00 2C 4e   ; "Hello\0,NAIRealms=example.com;mnc014.
      41 49 52 65 61 6c 6d 73   ; mcc310.3gppnetwork.org,"
      3d 69 73 70 2e 65 78 61
      6d 70 6c 65 2e 63 6f 6d
      3b 6d 6e 63 30 31 34 2e
      6d 63 63 33 31 30 2e 33
      67 70 70 6e 65 74 77 6f
      72 6b 2e 6f 72 67 2C

Ok otherwise but I'd prefer getting rid of the "," after "\0".

The Network-Info can contain NAIRealms list in addition to proprietary
information. The proprietary information can be placed before or after
NAIRealms list.  To extract NAIRelams list, an implementation can parse
the data after a NUL and look for "NAIRealms=" and then check whether
the previous character was a comma.  Once "NAIRealms=" immediately
followed by a comma is found, the implementation can read the realms
until it encounters a comma character.

Slightly revised:


  The Network-Info can contain NAIRealms list in addition to proprietary
  information. The proprietary information can be placed before or after
  NAIRealms list.  To extract NAIRelams list, an implementation either
  finds the "NAIRealms=" immediately after the NUL or seeks forward to
  find ",NAIRealms" somewhere in the string. The realms data ends either
  at first "," or at the end of the string, whichever comes first.

--Jari

Results generated by Tiger Technologies using MHonArc.