-
chevron_right
Prosodical Thoughts: Great Invitations
The Prosody Team • news.movim.eu / PlanetJabber • 13 September, 2020
-
rss_feed
add Subscribepeople 159 subscribers • Planet Jabber is an aggregate of personal weblogs of Jabber/XMPP developers and contributors.
-
chevron_right
Monal IM: Monal push server upgrade
Anu • news.movim.eu / PlanetJabber • 11 September, 2020
-
chevron_right
Ignite Realtime Blog: Openfire Monitoring plugin version 2.1.0 has been released
guus • news.movim.eu / PlanetJabber • 10 September, 2020
-
chevron_right
Anmol Chaudhary: GSoC 2020 Ends - Final Words
Anmol Chaudhary • news.movim.eu / PlanetJabber • 10 September, 2020 • 2 minutes
Message Comparision that generates the difference between two strings, in this case, used to generate a difference between the message being typed in real-time to generate necessary action elements. The algorithm is based on “Gestalt pattern matching” (Details, see here )
Sending and receiving real-time texts in both single and multi-user chats. The Real-Time Text has support for all action elements ( insert, erase, wait ) and events ( new, edit, reset, init, cancel ) mentioned in XEP-0301. The RTT are displayed on the conversation view along with traditional messages. In MUC at a given time, only 3 RTT are displayed in order to keep the User Interface clutter-free, the priority for which is determined by the affiliation of the member. (Details : here , here , here , here , and here )
RTT Setting radio toggle to toggle between Off/Receive only/Send and Receive. This is handled by using events “init” and “cancel”. (Details, see here and here )
Handling of stale messages that removes the RTT widget from UI if there is no update in a given time interval. This may be due to peer stopped typing or loss of sync. (Details, see here )
Multi-Device Support to sync input between different instances of Dino. With this, a user can start composing a message on one device and finish on another. (Details, see here )
Compatibility with Last Message Correction. With this, RTT is also displayed for the messages being corrected. The live correction is displayed in place of the old message received.
-
chevron_right
Prosodical Thoughts: Prosody 0.11.6 released
The Prosody Team • news.movim.eu / PlanetJabber • 9 September, 2020
-
chevron_right
Ignite Realtime Blog: New Openfire plugin to help reduce spam!
guus • news.movim.eu / PlanetJabber • 9 September, 2020 • 1 minute
-
chevron_right
Monal IM: Some usage stats for a random day
Anu • news.movim.eu / PlanetJabber • 3 September, 2020
- Total Users: 103,065
- Pushes sent: 56,768
- Server to server (s2s) connections: 1,580
-
chevron_right
Paul Schaub: PGPainless 0.1.0 released
vanitasvitae • news.movim.eu / PlanetJabber • 1 September, 2020 • 2 minutes
-
chevron_right
Ignite Realtime Blog: Spark 2.9.2 Released
wroot • news.movim.eu / PlanetJabber • 30 August, 2020
In preparation for Monal 4.8, the push server has been upgraded. In addition to the usual fixes that come with a software update in this case, people using the Monal 4.8 beta should now see a single notification for every message that comes in with the message text in the notification. For those of you who used Monal in iOS 12 this will be very familiar. This should be functionally similar to how things were in iOS 12. Sorry this took so long, huge thanks to Thilo for doing the heavy lifting here and implementing both the server and the iOS extension that powers this.
The Ignite Realtime community is happy to announce that version 2.1.0 of the Monitoring plugin has been released!
This release is mainly a bugfix release. Message archiving functionality has been improved (fixes have been applied for both XEP-0136 and XEP-0313), full text search has been added to the personal message archives of users, and a variety of smaller bug fixes have been applied.
In this release, the feature of retrieving messages ‘out of order’ has been removed.
The new version of the plugin will become available for installation in the admin console of your instance of Openfire in the next few hours. Alternatively, it can be downloaded from its archive page right now.
Note that for instances that have a lot of archived messages in their database, the initial load of this plugin might require a significant amount of time, as some database updates will be executed. For reference: it took our test instance, that has approximately 11 million archived messages in an external database approximately 9 minutes to perform this update.
For other release announcements and news follow us on Twitter
1 post - 1 participant
With the rise in the usage of the internet, the need for digital communication is increasing day by day, this has only been accelerated by the current COVID-19 pandemic in 2020. More and more people are using chat applications to communicate with each other whether it is their loved ones or for discussing work with colleagues.
This summer I was involved in implementing In-Band Real Time Text (RTT) for Dino . Real Time Text allows transmission of text instantly just as the user is typing. This allows for faster and more engaging textual conversations just as telephonic calls but at the same time keeping the discretion of text-based communication.
To sum it up here’s what I did in order to make RTT work:
The PR for which is available here .
Overall it has been a great 3-month long journey. From working with a completely new language - Vala to fixing a ton of bugs in the process, and from discussions with mentor to the weekly meetings; I enjoyed my time with XSF.
Although GSoC is now officially over, I look forward to contributing more to XSF and Dino in particular in the future. Next I plan on implementing message retraction and message moderation .
Finally, I thank my mentors especially Marvin for guiding me through the summer. They have always been present to solve any problems I faced whether it was regarding discussion on how to implement something or for some bug fix. I also thank the XSF community for having me as a student developer this summer.
The Openfire community is happy to announce the immediate availability of a new plugin: the blacklist spam plugin.
With the growing popularity of XMPP-based solutions, we’re also seeing an increase of a less desirable application of XMPP: the distribution of unsolicited messages over instant messaging (SPAM, or SPIM).
In order to help our Openfire community combat known spam, we have now released a new plugin the “Spam blacklist” plugin . This is configured with a URL that is used to lookup addresses of known SPAM distributors and block all messages sent by these addresses.
By default, the plugin is configured to read from a blacklist that is hosted on the igniterealtime.org website, and block all messages sent by any user on a domain listed there. The blacklist hosted by the Ignite Realtime community is a periodically updated copy of the list that is curated by the https://github.com/JabberSPAM/blacklist project. You can help combat spam by contributing to that project!
In the next few hours, the plugin will pop up in the list of available plugins on all Openfire instances. Alternatively, you can manually download and install the plugin from its archive page .
For other release announcements and news follow us on Twitter
3 posts - 2 participants
I don’t track users in any way but in the process of fixing a server issue I did do a count on the number of messages sent on a given day. Here they are in case anyone was curious. On the scale of modern apps, these are tiny numbers but it is nice to see lots of people using the service.
On a random day, 8/25/20 in a 24 hr period
After two years and a dozen alpha versions I am very glad to announce the first stable release of PGPainless ! The release is available on maven central .
PGPainless aims to make using OpenPGP with Bouncycastle fun again by abstracting away most of the complexity and overhead that normally comes with it. At the same time PGPainless remains configurable by making heavy use of the builder pattern for almost everything.
Lets take a look at how to create a fresh OpenPGP key:
PGPKeyRing keyRing = PGPainless.generateKeyRing() .simpleEcKeyRing("alice@wonderland.lit", "password123");
That is all it takes to generate an OpenPGP keypair that uses ECDH+ECDSA keys for encryption and signatures! You can of course also configure a more complex key pair with different algorithms and attributes:
PGPainless.generateKeyRing() .withSubKey(KeySpec.getBuilder(RSA_ENCRYPT.withLength(RsaLength._4096)) .withKeyFlags(KeyFlag.ENCRYPT_COMMS, KeyFlag.ENCRYPT_STORAGE) .withDefaultAlgorithms()) .withSubKey(KeySpec.getBuilder(ECDH.fromCurve(EllipticCurve._P256)) .withKeyFlags(KeyFlag.ENCRYPT_COMMS, KeyFlag.ENCRYPT_STORAGE) .withDefaultAlgorithms()) .withSubKey(KeySpec.getBuilder(RSA_SIGN.withLength(RsaLength._4096)) .withKeyFlags(KeyFlag.SIGN_DATA) .withDefaultAlgorithms()) .withMasterKey(KeySpec.getBuilder(RSA_SIGN.withLength(RsaLength._8192)) .withKeyFlags(KeyFlag.CERTIFY_OTHER) .withDetailedConfiguration() .withPreferredSymmetricAlgorithms(SymmetricKeyAlgorithm.AES_256) .withPreferredHashAlgorithms(HashAlgorithm.SHA512) .withPreferredCompressionAlgorithms(CompressionAlgorithm.BZIP2) .withFeature(Feature.MODIFICATION_DETECTION) .done()) .withPrimaryUserId("alice@wonderland.lit") .withPassphrase(new Passphrase("password123".toCharArray())) .build();
The API is designed in a way so that the user can very hardly make mistakes. Inputs are typed, so that as an example the user cannot input a wrong key length for an RSA key. The “shortcut” methods (eg. withDefaultAlgorithms()
) uses sane, secure defaults.
Now that we have a key, lets encrypt some data!
byte[] secretMessage = message.getBytes(UTF8); ByteArrayOutputStream envelope = new ByteArrayOutputStream(); EncryptionStream encryptor = PGPainless.createEncryptor() .onOutputStream(envelope) .toRecipients(recipientPublicKey) .usingSecureAlgorithms() .signWith(keyDecryptor, senderSecretKey) .asciiArmor(); Streams.pipeAll(new ByteArrayInputStream(secretMessage), encryptor); encryptor.close(); byte[] encryptedSecretMessage = envelope.toByteArray();
As you can see there is almost no boilerplate code! At the same time, above code will create a stream that will encrypt and sign all the data that is passed through. In the end the envelope stream will contain an ASCII armored message that can only be decrypted by the intended recipients and that is signed using the senders secret key.
Decrypting data and/or verifying signatures works very similar:
ByteArrayInputStream envelopeIn = new ByteArrayInputStream(encryptedSecretMessage); DecryptionStream decryptor = PGPainless.createDecryptor() .onInputStream(envelopeIn) .decryptWith(keyDecryptor, recipientSecretKey) .verifyWith(senderPublicKey) .ignoreMissingPublicKeys() .build(); ByteArrayOutputStream decryptedSecretMessage = new ByteArrayOutputStream(); Streams.pipeAll(decryptor, decryptedSecretMessage); decryptor.close(); OpenPgpMetadata metadata = decryptor.getResult();
The decryptedSecretMessage stream now contains the decrypted message. The metadata object can be used to get information about the message, eg. which keys and algorithms were used to encrypt/sign the data and if those signatures were valid.
In summary, PGPainless is now able to create different types of keys, read encrypted and unencrypted keys, encrypt and/or sign data streams as well as decrypt and/or verify signatures. The latest additions to the API contain support for creating and verifying detached signatures.
PGPainless is already in use in Smacks OpenPGP module which implements XEP-0373: OpenPGP for XMPP and it has been designed primarily with the instant messaging use case in mind. So if you want to add OpenPGP support to your application, feel free to give PGPainless a try!
The Ignite Realtime community is happy to announce the availability of Spark version 2.9.2.
This release fixes offline messages and a few other issues. Full list can be found in the changelog .
We are thankful to all the contributors and encourage developers to get involved with Spark project by providing feedback in the forums or submitting pull requests on our GitHub page.
You can download Spark from the Downloads page. Below are the sha1 checksums:
44bedca5f8c49373e3a3454ae92857612a907714 spark_2_9_2.deb9b2a36cb4bc5b620f6e34d0bbe52ad57f0ff1bee spark_2_9_2.dmg8df94552ada52a8c2a7da68ad596f4acd39d9ac4 spark_2_9_2.exeb1a81744923f4aaf3d39ced95fea233b6077f93c spark-2.9.2.rpm4933144d2812c638effe95344dce304dbf820c0d spark_2_9_2.tar.gz21836f86e101a7e48fcbd44fa400d5862f0840ab spark_2_9_2-with-jre.dmg68e2ed4bd916bab17a0f963f748176d4d8514c29 spark_2_9_2-with-jre.exe
For other release announcements and news follow us on Twitter
1 post - 1 participant
- cloud_queue