A Go implementation of the OTR 3 protocol, with libotr 4.1.0 feature parity
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
compat twstrike -> coyim Oct 2, 2017
libotr-test fixed cloning of libotr Jan 7, 2019
sexp Add full test coverage for the sexp package. Also uncovered a nasty Jul 10, 2015
test_resources Even more tests and fixing for errors from keys Jul 20, 2015
vendor/github.com/coyim/gotrax Extract some common OTR functions to a separate package Aug 17, 2018
.gitignore Removes .envrc from repository Aug 8, 2017
.travis.yml Run tests on latest Golang releases Jan 8, 2019
AUTHORS Add author information Jul 3, 2015
Gopkg.lock Extract some common OTR functions to a separate package Aug 17, 2018
Gopkg.toml Extract some common OTR functions to a separate package Aug 17, 2018
LICENSE Initial structure Jul 3, 2015
Makefile Update build matrix to latest supported Go releases May 28, 2018
README.md twstrike -> coyim Oct 2, 2017
SECURITY_ASSUMPTIONS.md fix some typos Sep 6, 2015
ake.go Fix #55 - It seems Go 1.11 changed some details in how randomness is … Jan 6, 2019
ake_test.go Fix #55 - It seems Go 1.11 changed some details in how randomness is … Jan 6, 2019
auth_state_machine.go Extract some common OTR functions to a separate package Aug 17, 2018
auth_state_machine_test.go
authenticate.go Exposes ability to use SMP Abort messages Aug 8, 2017
authenticate_test.go Exposes ability to use SMP Abort messages Aug 8, 2017
b64.go Add support for message event received for other instance. Also add s… Aug 5, 2015
bn_test.go Add some tests for bignum utilities Jul 10, 2015
bn_utils.go Add error handling/status information from all relevant functions in Jul 19, 2015
bytes.go fix some typos Sep 6, 2015
bytes_test.go refactor FragmentedMessage away, and rename messageFragment to ValidM… Aug 5, 2015
conversation.go Make sure the ake doesn't stop us from immediately starting a new ses… Sep 24, 2016
conversation_test.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
data.go Extract some common OTR functions to a separate package Aug 17, 2018
data_message.go Exposes ability to use SMP Abort messages Aug 8, 2017
data_message_test.go Add support for tracking of resent messages using opaque data. This w… Sep 1, 2016
debug.go Remove the whole DefaultFingerprint mess and just go with basic calls… Dec 4, 2015
debug_test.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
dh.go Add a table driven approach for TLV handling Jul 31, 2015
dh_test.go Add helpers to check that parameters are in range. Jul 7, 2015
disconnect.go Make sure the ake doesn't stop us from immediately starting a new ses… Sep 24, 2016
disconnect_test.go Fix #38 - wipe SMP state when moving away from encrypted msg state Aug 14, 2015
doc.go type fix Feb 17, 2018
error_codes.go We should in fact generate an error if we receive an encrypted messag… Oct 23, 2015
error_codes_test.go We should in fact generate an error if we receive an encrypted messag… Oct 23, 2015
errors.go Exposes ability to use SMP Abort messages Aug 8, 2017
errors_test.go Add some tests for errors and policies Jul 28, 2015
extra_key.go Extract some common OTR functions to a separate package Aug 17, 2018
extra_key_test.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
fixtures_test.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
fragmentation.go godoc Aug 13, 2015
fragmentation_test.go Should ignore the fragment if it has a version not allowed by the policy Aug 13, 2015
full_conversation_test.go Fix test Sep 10, 2016
hash.go Remove the whole DefaultFingerprint mess and just go with basic calls… Dec 4, 2015
heartbeat.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
heartbeat_test.go Remove all the annoying ErrGPG things and provide with better error m… Aug 16, 2015
helpers_test.go Extract some common OTR functions to a separate package Aug 17, 2018
inject_message.go Add final support for injecting messages. Also add support for error … Aug 6, 2015
key_management.go Extract some common OTR functions to a separate package Aug 17, 2018
key_management_test.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
keys.go
keys_test.go Fix issue with reading libpurple files where the account name is a sy… Oct 15, 2016
message_events.go Add another type of event for when a message is sent the first time, … Sep 1, 2016
message_events_test.go Add support for tracking of resent messages using opaque data. This w… Sep 1, 2016
message_type.go refactor FragmentedMessage away, and rename messageFragment to ValidM… Aug 5, 2015
message_type_test.go Add support for identifying message types completely Aug 5, 2015
messages.go Extract some common OTR functions to a separate package Aug 17, 2018
messages_test.go Extract some common OTR functions to a separate package Aug 17, 2018
otrv2.go Extract some common OTR functions to a separate package Aug 17, 2018
otrv2_test.go add some more tests Aug 15, 2015
otrv3.go Extract some common OTR functions to a separate package Aug 17, 2018
otrv3_test.go Use the same behavior when verifying instance tags from fragmented an… Aug 13, 2015
padding.go Implement correct processing of symmetric key TLV Aug 13, 2015
policy.go export policy functions for client to choose Aug 11, 2015
policy_test.go Fix some more test coverage Aug 15, 2015
query.go So yeah, we dont really want to ignore fast query messages when runni… Aug 8, 2017
query_test.go Add support for a friendly query message Jan 15, 2016
random.go
random_test.go Make newConversation usage explicit regarding the random number gener… Aug 4, 2015
receive.go Fix most of the coyim#301 - stop the OTR flood from happening. Mar 31, 2016
receive_test.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
resend.go Simplify copy of MessagePlaintext Jan 24, 2017
resend_test.go Add another type of event for when a message is sent the first time, … Sep 1, 2016
security_events.go Update all combining event handlers and all debug event handlers to b… Aug 14, 2015
security_events_test.go Update all combining event handlers and all debug event handlers to b… Aug 14, 2015
send.go Add support for tracking of resent messages using opaque data. This w… Sep 1, 2016
send_test.go Add support for tracking of resent messages using opaque data. This w… Sep 1, 2016
smp.go Extract some common OTR functions to a separate package Aug 17, 2018
smp_data_test.go Store pb in SMP state after generating msg 2 Aug 11, 2015
smp_events.go Update all combining event handlers and all debug event handlers to b… Aug 14, 2015
smp_events_test.go Update all combining event handlers and all debug event handlers to b… Aug 14, 2015
smp_msg1.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
smp_msg1_test.go randMPI returns errShortRandomRead if fails Aug 3, 2015
smp_msg2.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
smp_msg2_test.go randMPI returns errShortRandomRead if fails Aug 3, 2015
smp_msg3.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
smp_msg3_test.go randMPI returns errShortRandomRead if fails Aug 3, 2015
smp_msg4.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
smp_msg4_test.go randMPI returns errShortRandomRead if fails Aug 3, 2015
smp_msg_abort.go moving tlv to its file and use const types in tlv Jul 29, 2015
smp_protocol_test.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
smp_state_machine.go Exposes ability to use SMP Abort messages Aug 8, 2017
smp_state_machine_test.go Exposes ability to use SMP Abort messages Aug 8, 2017
smp_test.go
smp_tlv_test.go Fix another TODO, dealing with errors for parsing of 1Q messages (#27) Aug 6, 2015
ssid.go Expose SSID for display to the user (#42) Aug 14, 2015
ssid_test.go Expose SSID for display to the user (#42) Aug 14, 2015
tlv.go Extract some common OTR functions to a separate package Aug 17, 2018
version.go Extract some common OTR functions to a separate package Aug 17, 2018
version_test.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
whitespace.go Make the whitespace tags a bit more explicit Dec 16, 2015
whitespace_test.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
wipe.go Merge branch 3x, in order to extract length and algorithm decisions f… Nov 19, 2015
wipe_test.go Separate AKE keys from conversation keys context Aug 17, 2015

README.md

OTR3 Build Status

Implements version 3 of the OTR standard. Implements feature parity with libotr 4.1.0.

API Documentation

GoDoc

Developing

Before doing any work, if you want to separate out your GOPATH from other projects, install direnv

$ brew update
$ brew install direnv
$ echo 'eval "$(direnv hook bash)"' >> ~/.bashrc

Then, create a symbolic link to the OTR3 repository

ln -s /PathToMyGoPackages/.gopkgs/otr3/src/github.com/coyim/ .

Install all dependencies:

./deps.sh