On 12/4/17 8:58 PM, William Fisher wrote:
> On Mon, Dec 4, 2017 at 4:06 PM, Christian Schudt
> <[email protected]> wrote:
>> If a user wishes to create a username with U+212B (Angstrom sign), should an 
>> application reject it (because it’s disallowed) or allow it, because 
>> enforcement converts the character to a valid code point first?
> 
> I implemented enforcement based on the rules in RFC 8264 section 7.
> The behavioral rules (IdentifierClass) are applied last.
> 
>>>> from precis_i18n import get_profile
>>>> ic = get_profile('IdentifierClass')
>>>> ic.enforce('\u212b')
> Traceback (most recent call last):
>  ...
> UnicodeEncodeError: 'IdentifierClass' codec can't encode character
> '\u212b' in position 0: DISALLOWED/has_compat
>>>> un = get_profile('UsernameCasePreserved')
>>>> un.enforce('\u212b')
> 'Å'
> 
> See also:
>   https://www.ietf.org/mail-archive/web/precis/current/msg01225.html
> 
> You're right that the references to preparation in RFC 8265 (sections
> 3.3.2, 3.4.2) are at odds with RFC 8264 and the mailing list.

Sigh.

I'm sorry that we failed to make things clear and consistent.

I agree with Bill that implementations should follow the order of rules
in Section 7 of RFC 8264.

Let me think about how we can clarify things. That might involve filing
an erratum against RFC 8265.

Peter


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
precis mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/precis

Reply via email to