coyim

command module
v0.3.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2016 License: GPL-3.0 Imports: 14 Imported by: 0

README

coyim - a safe and secure chat client

Build Status Build status Coverage Status Download

CoyIM is a new client for the XMPP protocol. It is built upon https://github.com/agl/xmpp-client and https://github.com/twstrike/otr3. It adds a graphical user interface and tries to be safe and secure by default. Our ambition is that it should be possible for even the most high-risk people on the planet to safely use CoyIM, without having to make any configuration changes.

To do this, we enable OTR by default, we default to use Tor and we will use the Tor Onion Service for a server if we know it, and also to use TLS and TLS certificates to verify the connection - no configuration necessary. The implementation is written in the Go language, to avoid many common types of vulnerabilities that come from using unsafe languages.

Security warning

CoyIM is currently under active development. There have been no security audits of the code, and you should currently not use this for anything sensitive.

Getting started

Using CoyIM is very simple: you just need to download the executable file from the project's home page and then run it.

When you first launch CoyIM, a wizard will appear. If you already have a Jabber client installed and configured for OTR encryption in your computer, you can use this wizard to import your account settings as well as your OTR keys and your contacts' fingerprints. By importing them, you won't have to do anything else to use CoyIM just as you used your former client.

If you don't import your account settings, keys and fingerprints through the wizard that opens at the first launch, you can still import them by going to Accounts -> Import at a later stage.

If the client you have been using so far is Pidgin, you will find the files you need to import in the .purple directory in your home.

If you want to know more about the features you will and will not find in CoyIM, read this page.

Building CoyIM

GUI version

Please note: Important requirements for building CoyIM are also git and golang (at least version 1.4).

The GUI version requires GTK+ >= 3.6.16, which installation depends on your OS:

Ubuntu:

sudo apt-get install gtk+3.0 libgtk-3-dev

Mac:

brew install gtk+3

Then install coyim:

export GTK_VERSION=$(pkg-config --modversion gtk+-3.0 | tr . _ | cut -d '_' -f 1-2)
go get -u -tags "gtk_${GTK_VERSION}" github.com/twstrike/coyim
CLI version (xmpp-client)
go get -u -tags cli github.com/twstrike/coyim

Contributing to Coy

We have instructions to help you get started contributing to CoyIM.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/github.com/DHowett/go-plist
Package plist implements encoding and decoding of Apple's "property list" format.
Package plist implements encoding and decoding of Apple's "property list" format.
_workspace/src/github.com/TheCreeper/go-notify
Package notify provides an implementation of the Gnome DBus notifications specification.
Package notify provides an implementation of the Gnome DBus notifications specification.
_workspace/src/github.com/godbus/dbus
Package dbus implements bindings to the D-Bus message bus system.
Package dbus implements bindings to the D-Bus message bus system.
_workspace/src/github.com/gotk3/gotk3/cairo
Package cairo implements Go bindings for Cairo.
Package cairo implements Go bindings for Cairo.
Go bindings for GDK 3.
_workspace/src/github.com/gotk3/gotk3/glib
Package glib provides Go bindings for GLib 2.
Package glib provides Go bindings for GLib 2.
Go bindings for GTK+ 3.
Go bindings for Pango.
_workspace/src/github.com/hydrogen18/stalecucumber
This package reads and writes pickled data.
This package reads and writes pickled data.
_workspace/src/github.com/miekg/dns
Package dns implements a full featured interface to the Domain Name System.
Package dns implements a full featured interface to the Domain Name System.
_workspace/src/github.com/twstrike/otr3
Package otr3 implements the Off The Record protocol as specified in: https://otr.cypherpunks.ca/Protocol-v3-4.0.0.html Introduction Off-the-Record (OTR) Messaging allows you to have private conversations over instant messaging by providing: Encryption Authentication Deniability Perfect forward secrecy Getting Started OTR library provides a Conversation API for Receiving and Sending messages import "otr3" c := &otr3.Conversation{} // You will need to prepare a long-term PrivateKey for otr conversation handshakes.
Package otr3 implements the Off The Record protocol as specified in: https://otr.cypherpunks.ca/Protocol-v3-4.0.0.html Introduction Off-the-Record (OTR) Messaging allows you to have private conversations over instant messaging by providing: Encryption Authentication Deniability Perfect forward secrecy Getting Started OTR library provides a Conversation API for Receiving and Sending messages import "otr3" c := &otr3.Conversation{} // You will need to prepare a long-term PrivateKey for otr conversation handshakes.
_workspace/src/golang.org/x/crypto/pbkdf2
Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 2898 / PKCS #5 v2.0.
Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 2898 / PKCS #5 v2.0.
_workspace/src/golang.org/x/crypto/scrypt
Package scrypt implements the scrypt key derivation function as defined in Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard Functions" (http://www.tarsnap.com/scrypt/scrypt.pdf).
Package scrypt implements the scrypt key derivation function as defined in Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard Functions" (http://www.tarsnap.com/scrypt/scrypt.pdf).
_workspace/src/golang.org/x/crypto/sha3
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.
_workspace/src/golang.org/x/crypto/ssh/terminal
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
_workspace/src/golang.org/x/net/html
Package html implements an HTML5-compliant tokenizer and parser.
Package html implements an HTML5-compliant tokenizer and parser.
_workspace/src/golang.org/x/net/html/atom
Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and "id".
Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and "id".
_workspace/src/golang.org/x/net/proxy
Package proxy provides support for a variety of protocols to proxy network data.
Package proxy provides support for a variety of protocols to proxy network data.
_workspace/src/golang.org/x/text/transform
Package transform provides reader and writer wrappers that transform the bytes passing through as well as various transformations.
Package transform provides reader and writer wrappers that transform the bytes passing through as well as various transformations.
_workspace/src/golang.org/x/text/unicode/norm
Package norm contains types and functions for normalizing Unicode strings.
Package norm contains types and functions for normalizing Unicode strings.
_workspace/src/gopkg.in/check.v1
Package check is a rich testing extension for Go's testing package.
Package check is a rich testing extension for Go's testing package.
cli
gui
digestmd5
Package digestmd5 implements the Digest Authentication as a SASL Mechanism according to RFC 2831.
Package digestmd5 implements the Digest Authentication as a SASL Mechanism according to RFC 2831.
plain
Package plain implements the Plain Simple Authentication Mechanism according to RFC 4616
Package plain implements the Plain Simple Authentication Mechanism according to RFC 4616
scram
Package scram implements the Salted Challenge Response Authentication Mechanism according to RFC 5802.
Package scram implements the Salted Challenge Response Authentication Mechanism according to RFC 5802.
Package xmpp implements the XMPP IM protocol, as specified in RFC 6120 and 6121.
Package xmpp implements the XMPP IM protocol, as specified in RFC 6120 and 6121.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL