| 3.1. Specification Changes
Section 3.5 titled Optional Client Request Header Fields needs to be modified to add support for the new header:
RETS-UA-Authorization ::= RETS-UA-Authorization: ua-method ua-digest-response
ua-method ::= "Digest"
ua-digest-response ::= <">*LHEX<">
The ua-digest-response value is computed as:
ua-digest-response ::= <MD5( product ":" UserAgent-Password ":" RETS-Request-ID ":" session-id ":" version-info )>
where the product is the first product value taken from the User-Agent header, the UserAgent-Password is a secret shared between the server software and the client software, the RETS-Request-ID is the value taken from the RETS-Request-ID header (missing or empty at the discretion of the client), the session-id is the value taken from the RETS-Session-ID in the Cookie header (missing or empty at the discretion of the server), and version-info is the value taken from the RETS-Version header. Leading and trailing spaces are removed from all values.
The UserAgent-Password secret is shared between the client software and server software by a method outside the scope of this specification.
A server MAY require a valid RETS-UA-Authorization header on any transaction. The 20037 error response code specified for Login MAY be sent in response to any transaction.
3.2 Implementation Notes
Both clients and servers MAY implement this new feature without discarding the previous cnonce based authorization scheme. Servers MAY choose to require the new scheme. Clients SHOULD implement the new scheme. |