There are a number of algorithms an XMPP developer needs to deal with,
either directly or through a library. Some of these are defined in XEPs,
while some are external specifications which we work with.

These include:

* DIGEST-MD5
* SCRAM
* Entity capabilities hashing
* JID escaping

Over the years, I’ve seen people trying to implement these through trial and
error, and frequently getting them done only partially correctly. After
helping people fix their DIGEST-MD5 implementations at least a dozen times,
I think we have a problem.

I propose that we start a small project to act as an aggregator for existing
open source implementations which could be used as references. Once we have
that going, an implementation selected for its readability could become the
(official?) reference implementation.

What this would achieve:

1. It would save people writing new implementations hours and hours of
guesswork
2. It would make new implementations more interoperable, reducing the chance
of mistakes
3. It would make existing implementations more visible, improving the chance
of mistakes being found and reported, and implementations being reused
4. For experimental XEPs this would give direct evidence of how simple or
complex an algorithm is, what the edge cases are, and if it could be
simplified without losing its important characteristics

In fact I wouldn’t mind it being required that any XEP moving beyond
Experimental have implementations available for the algorithms it defines,
under a permissive license.

I’m hoping to not be the only one who sees this as a problem we should
solve. What does everyone else think?

--
Waqas Hussain
_______________________________________________
JDev mailing list
Forum: http://www.jabberforum.org/forumdisplay.php?f=20
Info: http://mail.jabber.org/mailman/listinfo/jdev
Unsubscribe: jdev-unsubscr...@jabber.org
_______________________________________________

Reply via email to