• Stars
    star
    366
  • Rank 116,547 (Top 3 %)
  • Language
    Go
  • License
    BSD 3-Clause "New...
  • Created almost 13 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An XMPP client with OTR support

xmpp-client setup

go get github.com/agl/xmpp-client

(If you don't have Go already installed then see below.)

xmpp-client use

xmpp-client is a simple XMPP client written in pure Go. It's a terminal program and so probably doesn't work on Windows.

xmpp-client expects a config file in ~/.xmpp-client. You can set the location of the config file with --config-file on the command line. If it fails to parse a config file, it'll enter enrollment: where it'll ask a series of questions to configure itself and will then write a config file from the answers.

The config file is just a JSON file and can be edited by hand. (Although xmpp-client will rewrite it, blowing away any comments or custom formatting.)

xmpp-client will prompt for a password each time it's run. If you want to save the password you have to edit the config file and insert a string element called Password. (This ensures that you understand that the password is stored in plaintext.)

Once the connection has been established, the commands are quite simple. Type /help for a listing.

Messages are sent by entering the JID of a contact and hitting tab to complete the address, followed by a colon. The message can then be entered after the colon, IRC style. Like this:

> [email protected]: Hi there!

On subsequent lines you don't have to enter their address again, unless you want to direct messages to someone else:

> [email protected]: Hi there!
> I was thinking
> about that thing
> [email protected]: I'll be right with you!
> [email protected]: back again

Messages from others are written in a similar fashion: the address is omitted for subsequent lines and replaced with a colon. The colon is red for unencrypted and green for encrypted.

If a contact name isn't recognised before a colon then it's ignored. Don't assume that you're sending a message to who you think you are unless you tab completed the address.

The client functions, but is very rudimentary.

Installation instructions

Build and run instructions for Ubuntu 13.10 (codename Saucy Salamander, go version 1.1.2). Note the version of Go shipped with this distro is very old any may be broken now.

sudo apt-get install git golang mercurial
export GOPATH=$HOME/go
go get github.com/agl/xmpp-client
$GOPATH/bin/xmpp-client

## If you want to set up an alias
echo "alias xmpp-client='$GOPATH/bin/xmpp-client' " >> ~/.bashrc
. ~/.bashrc
xmpp-client

Build and run instructions for Tails (tested on version 1.2, go version 1.2)

## If you don't have already
sudo apt-get update

## Debian old-stable, on which Tails is currently based, doesn't have Go packages
sudo apt-get install -t unstable golang

## Git is already included in tails so we only need to get Mercurial
sudo apt-get install mercurial

## Assuming you have created a persistant volume
export GOPATH=/home/amnesia/Persistent/go/

go get github.com/agl/xmpp-client
$GOPATH/bin/xmpp-client

More Repositories

1

pond

Pond
Go
910
star
2

curve25519-donna

Implementations of a fast Elliptic-curve Diffie-Hellman primitive
C
323
star
3

critbit

Critbit trees in C
C
319
star
4

ed25519

ed25519 for Go
179
star
5

ctgrind

Checking that functions are constant time with Valgrind
C
147
star
6

crlset-tools

Tools for dealing with Chrome's CRLSets
Go
137
star
7

extract-nss-root-certs

Go
134
star
8

dnssec-tls-tools

DNSSEC/TLS tools
Python
35
star
9

dnscurve

Tools for DNS curve implementation
C
23
star
10

certificatetransparency

Certificate Transparency stuff
Go
18
star
11

rwb0fuz1024

This is example code for a Rabin-Williams public-key signature scheme designed to provide high speed verification and small signatures.
C
16
star
12

shamirsplit

The shamirsplit package implements Shamir's cryptographic secret sharing algorithm
Go
16
star
13

libdjb

A massaging of DJB's various client libraries into something that's easy to build and use
C
14
star
14

dclxvi

Naehrig, Niederhagen and Schwabe's pairings code, massaged into a shared library.
Assembly
12
star
15

obstcp

Obfuscated TCP
C
11
star
16

gcmsiv

draft-irtf-cfrg-gcmsiv-00
Go
11
star
17

nullok

Scripts that I used to write a blog post about section 7.24.1(2) of C11
Shell
10
star
18

local-dns-cache

DJB's dnscache made to play nicely with modern distributions
C
10
star
19

panda

PANDA key agreement experiment
Go
8
star
20

transport-security-state-generate

7
star
21

lsmsb

Linux Security Modules based sandboxing scheme
C++
7
star
22

tlsclient

C++
5
star
23

cfrgcurve

CFRG document on elliptic curves
XSLT
5
star
24

tls-chacha20poly1305

IETF draft for ChaCha20+Poly1305 in TLS
HTML
4
star
25

tls-padding

TLS padding draft
XML
4
star
26

harfbuzz

Harfbuzz is a unification of the shaping engines from Pango and Qt4 (fork)
3
star
27

spdy-compliance

SPDY compliance tests (mirror)
Go
3
star
28

aweb

Literate programming scheme targetting C and HTML
Haskell
3
star
29

ACVP-wiki

3
star
30

jbig2enc

JBIG2 Encoder
C++
3
star
31

otc

OpenType Condom
C++
2
star
32

technotes

Automatically exported from code.google.com/p/technotes
HTML
1
star
33

pkits-go

PKI testsuite for Go.
Go
1
star