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. :)

Leave a comment

About Ron Savage

user-pic I try to write all code in Perl, but find I end up writing in bash, CSS, HTML, JS, and SQL, and doing database design, just to get anything done...