Announcing the XMPP-Strings Testframework

Florian Schmaus <[email protected]> Thu, 22 Aug 2019 17:52:17 +0200
Newsgroups gmane.network.jabber.devel
Message-ID <[email protected]>
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============0270693410==
Content-Type: multipart/signed; micalg=pgp-sha512;
 protocol="application/pgp-signature";
 boundary="ucnODh91ysPd2L0dPj9OZSvOvEgEQS425"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--ucnODh91ysPd2L0dPj9OZSvOvEgEQS425
Content-Type: multipart/mixed; boundary="q9J23LRHE9kyBjm3sYjHwibu4hull6tMZ";
 protected-headers="v1"
From: Florian Schmaus <[email protected]>
To: Jabber/XMPP software development list <[email protected]>
Message-ID: <[email protected]>
Subject: Announcing the XMPP-Strings Testframework

--q9J23LRHE9kyBjm3sYjHwibu4hull6tMZ
Content-Type: text/plain; charset=utf-8
Content-Language: en-GB
Content-Transfer-Encoding: quoted-printable

jXMPP [1], a FOSS XMPP-base library, has just been extended by a
testframework for "XMPP-Strings". Currently, this is limited to Local-,
Domain- and Resourceparts and the various XMPP address types, but may be
extended to future Strings found in XMPP-land.

The testframework comes with a corpus of known valid and invalid XMPP
addresses (JIDs). I am happy about feedback and contributions to the
corpus. Hopefully it becomes a useful resource for XMPP developers. You
can find the corpus under

-
https://github.com/igniterealtime/jxmpp/tree/master/jxmpp-strings-testfra=
mework/src/main/resources/xmpp-strings/jids/valid/main
-
https://github.com/igniterealtime/jxmpp/blob/master/jxmpp-strings-testfra=
mework/src/main/resources/xmpp-strings/jids/invalid/main

The testframework currently uses the following libraries to prepare and
enforce the Strings:

- ICU4J
- GNU libidn
- xmpp.rocks's PRECIS

a further minimalistic implementation, called "simple", is part of jXMPP.=


You can run the testframework simply by

``` bash
git clone https://github.com/igniterealtime/jxmpp.git
cd jxmpp
=2E/test-xmpp-strings
```

if you have `gradle` and `python3` in your path.

Please note that ICU4J and libidn (and "simple") do not currently
provide the required PRECIS profile and hence the older Stringprep
profiles are used.

Feel free to use the provided infrastructure to test your own
implementation. Thanks to JNI and the polyglot programming feature of
the GraalVM, it should be easily possible even if you implementation is
not written in a JVM-based language. Please contact me if you need
assistance.

- Florian

1: https://github.com/igniterealtime/jxmpp


--q9J23LRHE9kyBjm3sYjHwibu4hull6tMZ--

--ucnODh91ysPd2L0dPj9OZSvOvEgEQS425
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQGTBAEBCgB9FiEEl3UFnzoh3OFr5PuuIjmn6PWFIFIFAl1eujFfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDk3
NzUwNTlGM0EyMURDRTE2QkU0RkJBRTIyMzlBN0U4RjU4NTIwNTIACgkQIjmn6PWF
IFKbgAf+IdK1roDVqWTAzIMfk/1JS/YHFWz57qRh1E6dV2dYsWyfMDl0S37klchh
gH4NNS2lJEOmvkFq9OJn4geTW72LbUvc52EKU7CzXZlmnlwtX4Pk93A78EZ+PW+i
H/rI3s7W1rODePG3FsRyMi0D5UZ+YKOAMa04d7Jc/GMduk8rdyoXKVMRGXsKoVMB
yZ8f1OyzyxqQ/9dKYuFmeg/YMzovXfxWQ26NSc+IILRn9UWCAcu9SPAMZ+J/Iysi
poFimGcl9P1DDxKzdfiJrkhvyzgQOdLAFBWwREfI1ILZ4EQIZJbysA9WNdZrled8
TXmYrgqFWe5oHk6o0yF63eQd30DjUg==
=Bgon
-----END PGP SIGNATURE-----

--ucnODh91ysPd2L0dPj9OZSvOvEgEQS425--

--===============0270693410==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
JDev mailing list
Info: https://mail.jabber.org/mailman/listinfo/jdev
Unsubscribe: [email protected]
_______________________________________________

--===============0270693410==--