A note about X500::DN and X500::DN::Marpa
Firstly, some history:
Many, many years ago, I released a module called X500::DN. It was very crudely written,
and only handled the few DNs I had personally seen.
Around 2002, Robert Joop wrote one based on the now-obsolete RFC2253, and wanted to release it under the same name as mine.
After he complained about the low quality of my code, I voluntarily removed my module
from CPAN, and he uploaded his. That's the one on CPAN these days.
And now:
I've released X500::DN::Marpa based on RFC4514. It's also
available on github. It has 229 tests, in t/dn.t.
I've used V 0.80 to indicate it's not ready for production, due to the issues listed below.
That is, there is plenty of scope for modifications before I release my favourite V, 1.00.
You can examine and run scripts/(synopsis,tiny).pl to get an idea of how this module works.
I include a back-compat layer implemented with X500::DN::Marpa::DN and X500::DN::Marpa::RDN. These have 24 tests, in t/back.compat.t. Tony Cook please note! Some of that test code is also in scripts/back.compat.pl, without any reference to Test::More.
I did not want to release these latter 2 modules as X500::DN and X500::RDN in case of
incompatibility problems.
Issues on which I want feedback:
(1) Robert's code numbered RDNs within a DN from 0 up. I've numbered them from 1 since that seems rather more natural to me.
(2) Does my code handle escaping the way you expect?
(3) Does it handle hex strings properly? There is already an option to have cases such as '#616263' returned as 'abc'.
(4) Does it handle encoded utf8 the way you expect?
Tell me what you think.
It always seems amazing that people propose standards that require some intense amount of parsing just to get basic values. :)
Ahh. That's driven me to invent RFC\x00, the null RFC, whose content is null, and which can thereby be parsed by anyone!