close

Profanity is a console based XMPP client written in C using ncurses and libstrophe, inspired by Irssi.

Homepage: https://profanity-im.github.io/

Release notes: https://github.com/profanity-im/profanity/releases/tag/0.11.1

#profanity #xmpp #jabber #chat #messenger #ncurses

  • favorite

    2 Like

    Timothée Jaussoin , debacle

  • chevron_right

    Profanity und OpenPGP for XMPP (OX)

    DebXWoody · Tuesday, 21 September - 18:42 · 2 minutes

In Debian 11 ("Bullseye") ist Profanity 0.10.0 verfügbar. Installiert werden kann es mit dem Befehl apt install profanity. Profanity ist ein ncurses basierter XMPP Client.

Lust mal auf ein Experiment? Profanity OX experimental Implementierung! Wir nehmen an, deine XMPP-Adresse ist alice@domain.tld und du willst OpenPGP als Verschlüsselung für deine XMPP Nachrichten verwenden.

OpenPGP Schlüsselpaar erzeugen

Im ersten Schritt muss man, wie wir es bei OMEMO auch kennen, ein Schlüssel erzeugen. Der Schlüssel wird in unserem Fall mit dem Programm gpg erstellt und sieht wie folgt aus:

gpg --quick-generate-key xmpp:alice@domain.tld future-default default 3y

Was passiert hier? Mit diesem Befehl wird ein Schlüsselpaar mit der UID xmpp:alice@domain.tld erzeugt. Die Option future-default wird verwendet, damit ein ed25519/cv25519 Schlüssel erzeugt wird. Der Schlüssel wird nach 3 Jahren ablaufen, wenn dieser nicht verlängert wurde.

pub   ed25519 2021-09-21 [SC] [verfällt: 2024-09-20]
      583BAE703A801095B6B71A56BD801174B1A0B84A
uid                      xmpp:alice@domain.tld
sub   cv25519 2021-09-21 [E]

Öffentlichen Schlüssel exportieren

Damit andere die Möglichkeiten haben dir verschlüsselte Nachrichten zu schicken, musst du deinen öffentlichen Teil deines Schlüssels mit Freunden austauschen. Der folgende Befehl exportiert einen minimalen Schlüssel und speichert diesen in die Datei tmp/pep-key.gpg. XMPP Adresse und Key-ID müssen natürlich angepasst werden.

gpg --export \
  --export-options export-minimal \
  --export-filter 'keep-uid=uid =~ xmpp:alice@domain.tld' \
  --export-filter 'drop-subkey=usage =~ a' \
  583BAE703A801095B6B71A56BD801174B1A0B84A \
  > /tmp/pep-key.gpg

Der Key kann vor dem veröffentlichen wie folgt geprüft werden: gpg --show-key --with-sig-list /tmp/pep-key.gpg

Schlüssel veröffentlichen

Nachdem man sich mit profanity angemeldet hat, kann man seinen Schlüssel in PEP hochladen. Dies geht mit dem /ox announce Befehl.

/ox announce /tmp/pep-key.gpg
Annonuce OpenPGP Key for OX /tmp/pep-key.gpg ... 

Es werden im PEP zwei Einträge vorgenommen.

Schlüssel von Kontakten abfragen

Du kannst die Schlüssel deiner Kontaktpersonen abfragen und diese importieren.

/ox discover buddy@domain.tld
Discovering Public Key for buddy@domain.tld 
1234567890ABCDEF1234567890ABCDEF12345678

Die Schlüssel können dann mit dem folgenden Befehl importiert werden.

/ox request buddy@domain.tld 1234567890ABCDEF1234567890ABCDEF12345678
Requesting Public Key 1234567890ABCDEF1234567890ABCDEF12345678 for buddy@domain.tld
Public Key imported 

Schlüssel zertifizieren

Der Schlüssel lässt sich mit dem gpg Befehl gpg -k buddy@domain.tld anzeigen. Jetzt werden wir den Schlüssel noch unterschreiben.

gpg --ask-cert-level --default-key 583BAE703A801095B6B71A56BD801174B1A0B84A --sign-key 1234567890ABCDEF1234567890ABCDEF12345678

Der default-key ist unser Schlüssel und sign-key der des Kommunikationspartners.

Kontakte mit einem OpenPGP-Key für XMPP lassen sich via /ox contacts anzeigen, während /ox keys alle Schlüssel anzeigt.

Chatten

In einem Chat Fenster kann OX mit dem Befehl /ox start gestartet werden. Beendet wird es mit dem Befehl /ox end.

Die Nachrichten werden verschlüsselt und signiert übertragen.

#Debian #XMPP #Profanity #OX

  • favorite

    1 Like

    debacle

  • 1 Comments

  • 3 October debacle

    Profanity 0.11.0-1~bpo11+1 ist nun in Debian bullseye-backports.

  • chevron_right

    gemini client - ledag

    DebXWoody · Saturday, 18 September - 07:23

Im Moment gibt es zwei "User-Dateien" ~/.local/share/ledag/home.gmi und ~/.local/share/ledag/bookmarks.gmi.

home.gmi

Dies ist die Startseite und wird beim starten von ledag geladen und im ersten Tab angezeigt.

bookmarks.gmi

Die Seite mit Bookmarks kann über den Button mit dem Stern oben links aufgerufen werden.

Für alles andere hat man das Eingabefeld, welches eine germini-URL öffnet.

Next Steps

Das Parsen der URLs etc geht noch nicht so richtig. Damit habe ich angefangen, bin aber noch nicht fertig. Es muss auch noch ein Konzept geben, wie man aus relativen Pfaden einen absoluten macht. Hiermit habe ich schon angefangen. https://codeberg.org/Leda/ledag/src/branch/main/src/url.cpp

Ich habe ein Tipp bekommen, wie ich ein schließen der Tabs umsetzen kann. Das ist vielleicht auch noch ganz wichtig,... damit es nicht zu voll wird bei den Reitern ;)

Screenshot von ledag

#gemini #ledag

  • Pictures 1 image

  • visibility
  • chevron_right

    Debian - Profanity - OMEMO

    DebXWoody · Saturday, 18 September - 06:35 edit · 1 minute

Profanity in Debian GNU/Linux

In Debian 11 ("Bullseye") ist Profanity 0.10.0 verfügbar. Installiert werden kann es mit dem Befehl apt install profanity. Profanity ist ein ncurses basierter XMPP Client.

Schlüssel generieren

Hat man sich in profanity erfolgreich mit seinem XMPP Account angemeldet, muss man zur Verwendung von OMEMO das Schlüsselmaterial erzeugen lassen. Dies kann mit dem Befehl /omemo gen erstellt werden.

Jedes OMEMO fähiges Gerät hat eine accountweite eindeutige Device-ID sowie einen Fingerabdruck. In der Profanity Console (/win 1) lassen sich mit dem Befehl /omemo fingerprint alle eigenen Fingerabdrücke anzeigen.

07:58:17 - Your OMEMO fingerprint: 5284ea0c-42d698b8-9e8bc07d-daa9c4fb-d9d02814-53847b59-7b85479a-e03fca20
07:58:17 - user@domain.tld's OMEMO fingerprint:                                                       
           3cb71f98-3e167abf-ae8352d3-3dd5f6d9-bc9f74fa-95e787af-fed55fa5-0a62315b (trusted)              
07:58:17 - user@domain.tld's OMEMO fingerprint:                                                       
           3641e6ba-fddd542f-cfd69a4c-e5907193-d0682001-28a4c1b5-4971b4ea-a057b717   

Schlüssel vertrauen

Vielleicht möchtest du Nachrichten, die du verschickst, auch auf deinen anderen Geräten lesen? Dann kannst du mit folgendem Befehl deinem Schlüssel vertrauen.

/omemo trust user@domain.tld 3641e6ba-fddd542f-cfd69a4c-e5907193-d0682001-28a4c1b5-4971b4ea-a057b717

PS: Du musst den Key nicht per Hand eintragen. profanity kann Autovervollständigung via [TAB]-Taste.

Dieses vorgehen lässt sich auch auf die Schlüsselverwaltung deiner Kontaktpersonen anwenden.

/omemo fingerprint buddy@domain.tld 

Chatten

Ein Fenster zu deinem Chatpartner lässt sich mit dem Befehl /msg Nickname oder /msg buddy@domain.tld starten. Im geöffneten Chatdialog kann auf die JID bei der Abfrage der Fingerabdrücke verzichtet werden. Ein einfaches /omemo fingerprint ist ausreichen, um noch mal über die Schüssel des Partners drüber zu gucken.

Mit dem Befehl /omemo start wird die OMEMO Verschlüsselung aktiviert. Wurde eine OMEMO für einen Kontakt aktiviert, wird diese Informationen in den Account-Einstellungen gespeichert, um in Zukunft auch OMEMO direkt zu aktivieren. Beendet werden kann sich Session mit /omemo end. Das Verhalten kann mit dem Befehl /omemo policy beeinflusst werden.

Dateitransfer

Dateitransfer via OMEMO lässt sich normal mit /sendfile und /url save bzw. /url open verwenden.

Ausblick

Debian bookworm verfügt über die Version 0.11 von profanity. Hierzu werde ich einen eigenen Beitrag machen.

Viel Spaß beim chatten!

#Debian #Profanity #OMEMO #Bullseye #XMPP

  • favorite

    1 Like

    debacle

  • chevron_right

    PARTY POPPER Profanity 0.11.0 has been released PARTY POPPER

    DebXWoody · Sunday, 25 July - 06:06

🎉 Profanity 0.11.0 has been released 🎉

Profanity is a console based XMPP client written in C using ncurses and libstrophe, inspired by Irssi. 🤩

Six months and 242 commits after 0.10.0 we are happy to release 0.11.0.

🙏 🙏 🙏 🙏

  • Command for bookmark details
  • Add XEP-0377 Spam Reporting
  • OMEMO related fixes
  • attention flag
  • launch external editor to write (multiline) messages
  • request 'voice' in MUCs (XEP-0045)
  • ...

#profanity #xmpp #ncurses #messenger

  • Release 0.11.0 · profanity-im/profanity

    Six months and 242 commits after 0.10.0 we are happy to release 0.11.0. 10 people contributed code to it: @DebXWoody, @xenrox, @mwuttke97, @dustinlagoy, @kaffeekanne, @CIacademic, @rjc, @raspbeguy,...

  • favorite

    3 Like

    Arne , Timothée Jaussoin , debacle

  • 1 Comments

  • 25 July Timothée Jaussoin

    Congrats !

  • chevron_right

    Warum ich XMPP nutze

    DebXWoody · Saturday, 3 July - 16:58 edit · 1 minute

Meine Entscheidung

Es ist meine Entscheidung wo ich meinen Account zum chatten erstelle. Auf einem Server von Freunden, von einem Verein oder Unternehmen oder irgendeinem öffentlichen Server. Für Techniker ist das betreiben eines eigenen Servers auch ein Option.

Ich kann mir einen Client aussuchen, der mir am besten gefällt. Es gibt verschiedene Clients die unter einer Freien Lizenz zur Verfügung gestellt werden.

Nix Telefonnummer oder E-Mail

Eine XMPP Adresse ist unabhängig von Telefonnummer und E-Mail Adresse. Ich kann mehrere Accounts haben und diese unterschiedlich nutzen. Viele Clients sind auch Multi-Account fähig. Privater und beruflicher Account können sich so unabhängige voneinander aktivieren, unterschiedlichen Status und Kontakte haben.

Verschlüsselung

Wenn man verschlüsselte Kommunikation bevorzugt, der kann die OMEMO oder OpenPGP Verschlüsselung nutzen. Beides sind Erweiterungen von XMPP und bieten so E2EE. Die Client-Server und Server-Server Kommunikation ist in den meisten Fällen via TLS abgesichert.

Offener Standard

XMPP ist ein offener Standard. Jeder kann sich die Spezifikation des Protokolls ansehen und Programm auf Basis des Protokolls schreiben. Dies ist eine wichtige Voraussetzung, damit jeder Programme schreiben kann, welche dann miteinander kompatibel sind.

Erweiterbar

Das Protokoll ist erweiterbar. I.d.R. werden hierfür XEPs definiert, welche das Protokoll um neue Funktionen erweitert.

XMPP macht Spass

Sowohl die Entwicklung, aber auch Teil der XMPP Community zu sein macht Spass! Ich denke viele verfolgen gemeinsam ein Ziel. Freie und unabhängig Kommunikation. Ob beim betreiben von Server, bei der Entwicklung oder sich gegenseitig zu helfen.

  • favorite

    3 Like

    Thomas Klein-Hitpaß , Arne , debacle

  • 2 Comments

  • 3 July debacle

    "n" zu viel im Titel?

  • 4 July DebXWoody

    Danke! Deswegen movim und nicht Mastodon :-)

  • chevron_right

    C Beispiel struct und Zeiger

    DebXWoody · Wednesday, 30 June - 05:11

Hier ein Beispiel wegen einer Frage aus dem C/C++ Gruppenchat

#include <stdlib.h>
#include <stdio.h>
#include <assert.h>

typedef struct {
	int x;
	int y;
} C;

static void _set(C* c, int x, int y);

int main( int argc, char argv[]) {
	C* c = malloc(sizeof(C));
	_set(c, 10, 20);
	printf("c: x=%d y=%d\n", c->x, c->y);
	_set(c, ++(c->x), ++(c->y));
	printf("c: x=%d y=%d\n", c->x, c->y);
	free(c);
	return EXIT_SUCCESS;

}

static void _set(C* c, int x, int y) {
	assert(c);
	c->x = x;
	c->y = y;
}
  • favorite

    1 Like

    Arne