1. If most cryptographers and one prominent NSA whistle-blower are to be believed, Signal by Open Whisper Systems - branded TextSecure on Android before it recently got merged with RedPhone  - is the most secure traditional messaging app in use today - that is, not counting those that require Tor, the Bitcoin blockchain or other tech out of the reach of regular users.

    I am pleased to say that a TextSecure compatible client for the Ubuntu phone has been in the store for a while, and today it is stable enough to be used regularly. The basics are all working - end-to-end encrypted texts and group chats, photo, audio, video and contact attachments.

    Note that this is not a replacement for the standard messaging app as it does not send or handle SMS.

    On first run you will be prompted for your phone number, will need to manually confirm the received SMS verification code, then asked to import your address book contacts to see which of them is already using Signal.

    There are still enough bugs lurking and major features missing - encrypted message store, push notifications that require server side work, support for multiple devices synced with the same phone, even encrypted phone calls, which aside from the large amount of work involved may or may not be possible depending on what the Ubuntu phone SDK exposes.

    While new features are being added it is very likely that backwards incompatible changes will be introduced to the way message storage is handled, and while attempts will be made to make migration painless, do not yet store any important information solely in the application's database.
    Both the conversation SQLite database and the attachments are under /home/phablet/.local/share/textsecure.jani in case you need to access them independently of the app.

    The project is written entirely in Go. Working with Go for the backend library and with go-qml for the UI has been a mainly positive experience, although I wish go-qml were more actively maintained and had a more complete coverage of the common APIs and use cases that C++ Qt/QML developers are used to.

    If you try it out, file issues on github. If you know QML and feel like contributing, check out the project at github.com/janimo/textsecure-qml and get it touch on the mailing list

    0

    Add a comment

  2. Cross compiling Go packages to ARM is easy unless they rely on C libraries via cgo, in which case C cross-compilers and libraries built for the target are required on the host, and the invocation is not straightforward at all.

    Dimitri's post shows a way to do it using armhf chroots, and inspired by it I put together a docker image that does slightly more and can be used as if it were a simple command. The image uses a Go
    package built from a PPA , since the one in the archive does not have a CGO enabled ARM cross compiler.

    Install the image

        $ docker pull janimo/goqml-cross

    Set up an alias for convenience

       alias goqml-cross='docker run --rm -it -v $(pwd):/home/developer -v $GOPATH:/home/developer/gopath -w $(pwd|sed "s,$GOPATH,/home/developer/gopath,") janimo/goqml-cross'

    Go to the source tree

      $ cd $GOPATH/src/your/package

    Run the container as if it were the go tool (which in fact it is, /usr/bin/go being the docker container's default entry point)

     $ goqml-cross version
     $ goqml-cross build -i

    This will reuse your host environment's GOPATH and place the resulting Go packages under $GOPATH/pkg/linux_arm/ to be available in subsequent fast incremental builds.

    Check the docker registry for details on how to use it and the project on github if you want to build your image from source.

    0

    Add a comment

Blog Archive
About Me
About Me
Loading