Punycode questions

Ronald F. Guilmette rfg at tristatelogic.com
Mon Sep 29 01:56:20 UTC 2014

I hope this post won't be considered too far off topic.

I've already sent this same question off to the guy who is the
current maintainer of the Net::IDN::Punycode Perl module, but
while I'm still impatiently awaiting his response I'm thinking
that maybe folks here could enlighten me.

In a nutshell, I'd just like to know whether or not Punycode
encoded strings may ever validly contain either (a) leading
periods or else (b) two consecutive periods.  Would any strings
that contain either of those things be considered to be "valid"
Punycode encoded strings?

To be more specific and concrete about it, here is a small
example Perl program I wrote:


When *I* run this, it prints out several "Invalid punycode!"
errors.  (It may perhaps yield different results for other
people who have different versions of the relevant Perl
modules installed.)

Anyway, this example program is designed and intended to print
out those exact errors whenever it sees a string coming back
from the encode_punycode function that contains either a
leading period or else a pair of consecutive periods.

The short example program (at the URL above) was derived from
portions of the following test set, used for testing applications
that try to make use of the Mozilla Project's so-called Public
Suffix List:


(See also: https://publicsuffix.org/)

So anyway, either the encode_punycode function supplied by the
Net::IDN::Punycode Perl module has a serious bug in it, or else
there must be something really very basic about Punycode that I
just don't understand.  I _thought_ that the whole idea of Punycode
was that random Unicode/UTF-8 strings could be encoded in a way
that wouldn't give name servers, or anything else accustomed to
dealing with traditional domain names heartburn.  Yes?  No?

Anyway, although I haven't actually tried it, I do expect that
my local copy of BIND would be rather unhappy with me if I were
to try to give it a zone file in which some of the labels either
began with periods or else contained any consecutives sequences of
periods.  Am I wrong about that?


More information about the bind-users mailing list