An implementation of MLS (Messaging Layer Security) https://tools.ietf.org/html/draft-barnes-mls-protocol-00
This implementation uses BFTKV (https://github.com/yahoo/bftkv) as the Authentication Service defined in the architecture document (https://datatracker.ietf.org/doc/draft-omara-mls-architecture). See documents in https://github.com/yahoo/bftkv/docs for details.
- Install BFTKV
go get -u github.com/yahoo/bftkv
- Install GnuPG 2.x
- Run
setup.sh
in bftkv/scripts - Run a BFTKV cluster
cd bftkv/scripts/run; ../run.sh
- Build a command line tool
cd bftkv/cmd/bftrw; go get .
- Run Delivery Service (mlsds)
- Build the server
cd mls/cmd; go build mlsds.go
mlsds
- Build the server
- Setup a key pair
cd bftkv/scripts; gen.sh -uid foo@bar.com key
mv key mls/cmd
bftrw -path $GOPATH/src/github.com/yahoo/bftrw/scripts/run/keys -key key register
- Run a MLS client
- Build mlsclient
cd mls/cmd; go build mlsclient.go
mlsclient -key key join mygroup
- Build mlsclient
You can run as many clients as you want by repeating the step 3 and 4. Use the unique uid (e.g., "foo[123...]@bar.com") and the key directory (e.g., "key[123...]").
Copyright 2018, Oath Inc
Licensed under the terms of the Apache license. See LICENSE file in https://github.com/r2ishiguro/mls for terms.