Subject: draft-burdis-cat-srp-sasl-08

From: Ken Murchison <[email-masked]>
Date: Fri, 18 Jul 2003 12:33:14 -0400

Trying to bring Cyrus SASL in to compliance with the latest draft.  Here 
are some notes I put together after a thorough read of the auth 
exchange.  I may have more when I get into integrity and security.

Section 3.8:

>    When such entities travel on the wire, they shall be encoded as
>    4-octet Scalar Numbers.  We shall use the syntax uint(n) to denote
>    the encoding of an Unsigned Integer n.

In what byte-order?  I assume big-endian.

Section 4.5:

>    The server computes its evidence M2, which proves to the client that
>    it knows the shared context key K, as well as U, I and o, as follows:
                                                   ^^^

>             H(   bytes(A)
>                | bytes(M1)
>                | bytes(K)

Was U removed from the calculation on purpose, or was it an oversight? 
If its no longer part of the calculation, then it should be removed from 
the sentence describing M2.

>                | bytes(H( bytes(I) ))
>                | bytes(H( bytes(o) ))
>                | bytes(sid)

If sid is UTF8, should it be hashed, like I and o?

>                | ttl

Shouldn't this be bytes(ttl)?

>             )
> 
>    All parameters received from the client that are used as input to a
>    digest operation MUST be used as received.
> 
>    The server sends:
> 
>       { os(M2) | os(sIV) | sid | ttl }
                             ^^^^^^^^^^

Shouldn't this be utf8(sid) and uint(ttl)?

-- 
Kenneth Murchison     Oceana Matrix Ltd.
Software Engineer     21 Princeton Place
716-662-8973 x26      Orchard Park, NY 14127
--PGP Public Key--    http://www.oceana.com/~ken/ksm.pgp