[AFS3-std] rxgk CombineTokens and enctypes

Benjamin Kaduk kaduk@MIT.EDU
Tue, 11 Dec 2012 21:12:11 -0500 (EST)


Replying to myself with some comments, trawling for other input...

On Wed, 28 Nov 2012, Benjamin Kaduk wrote:

> On Tue, 27 Nov 2012, Simon Wilkinson wrote:
>
>> I haven't reviewed the series completely yet, but I wonder if initial error 
>> list for CombineTokens is far too verbose. It isn't clear to me the 
>> situation in which many of the suggested errors would occur, and I'm wary 
>> of over specifying here.
>
> It's quite possible that the current list is too large.  I was essentially 
> brainstorming when coming up with it, and some of the scenarios may be 
> application-specific (and thus end up in the high half of the range).
> I consider the list quite flexible at the moment and welcome more input.
> I'll include the current list below for the mailing list to comment.
>
> -Ben
>
>
>   RXGK_CT_SUCCESS  The CombineTokens operation completed successfully.
>
>   RXGK_CT_NOT_IMPL  The server will refuse all CombineTokens requests.
>
>   RXGK_CT_BAD_ENCTYPE  None of the enctypes supplied by the client are
>         acceptable to the server.
>
>   RXGK_CT_BAD_LEVEL  None of the security levels supplied by the client
>         are acceptable to the server.

These first four seem pretty straightforward.  (I added things in the 
order I thought of them, so this is not terribly surprising.)

>   RXGK_CT_RECURSE  One or more of the supplied tokens was the result of
>         a previous CombineTokens operation, and the server will refuse
>         to perform the CombineTokens operation recursively.

This could plausibly be application-specific, as it delves into the 
territory of what combined identities mean.  On the other hand, one could 
imagine multiple applications that forbid the combination of combined 
tokens.

>   RXGK_CT_EXPIRED  One or more of the input tokens was already expired.

This seems similar to BAD_{LEVEL,ENCTYPE}.

>   RXGK_CT_ENCTYPE_MISMATCH  The client supplied a list of enctypes
>         disjoint from the enctypes used by the two input tokens, and
>         the server is configured to reject such enctype renegotiation.
>
>   RXGK_CT_LEVEL_MISMATCH  The client supplied a list of security levels
>         disjoint from the security levels used by the two input tokens,
>         and the server is configured to reject such security level
>         renegotiation.

These two are for use if an application wants to enforce a policy that 
enctype or security level cannot be renegotiated to something different 
from an input token or tokens.  They are probably better off in 
application-specific territory.

>   RXGK_CT_TOPOLOGY  The compound identity of the two input tokens
>         cannot be represented in the application's scheme because the
>         topology of the tree of CombineTokens operations involved is
>         too complicated.

Again, this delves into application-specific territory of compound 
identity representation.  It should probably be relegated to the 
application-specific block.

-Ben