========================================

tenrus - Travis Encryption in Rust

.. contents:: Table of Contents

Installation

From crate.io <https://crates.io/>_

.. code-block:: sh

$ cargo install tenrus

From GitHub

.. code-block:: sh

$ cargo install --git https://github.com/wdv4758h/tenrus/

Download Prebuilt Binary

.. code-block:: sh

# by curl
$ curl -O -J -L https://github.com/wdv4758h/tenrus/releases/download/v0.1.0/tenrus-v0.1.0-x86_64-unknown-linux-gnu.tar.gz

# by wget
$ wget https://github.com/wdv4758h/tenrus/releases/download/v0.1.0/tenrus-v0.1.0-x86_64-unknown-linux-gnu.tar.gz

Usage

.. code-block:: sh

$ tenrus
tenrus 0.1.0
Chiu-Hsiang Hsu <wdv4758h@gmail.com>
Travis Encryption in Rust

USAGE:
    tenrus [ARGS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

ARGS:
    <repo>    repository slug (USERNAME/PROJECT) e.g. "wdv4758h/tenrus"
    <data>    data to encrypt

.. code-block:: sh

$ tenrus wdv4758h/tenrus MYSECRET
secure: "p9BUpUjJiet+MX84SiAPd0xt4Gczmma67N2RPiCuyGHdz+7Blmtgra85SF1TZocy6RyXykMp354fHcbfu29mwArEaaPwALvybmCTIcE66ZvFWSp2k5LJHDJiIu15OUrTrZGvSAd1//rmmeFklRIVGBaE4rP5vuKpNx4VXwaz+X8RAz+OnHCEWJkpZkb2gBsQMiApsG2dF5KKdvogRHv22HMi2XIWzTRojhigNoS7AaUsZEwbgm2psyZRoKSEqdCMSaf/qYDzhIZUIlb0GqOAnkT+97SRGFDpYpl2bQQ7qyGdQ1SnZZo9WaU1+DdNPFtA63BVyEajOQXSlaJ98ulGk9v/jrqSzYFHp4Mp/trrlC7BBRXxn9uuBTKZMOBWukKi3Ve3XQfTcUMY7S/EPjtyeL26fTCs2dCTPD/IUKlgyW8cczYbbwV6as6sdU6ErtA6WpWRms23x13IZSaiJ5Ne4TiaNfxJtC/k35Q1gRtC9HWcusvKZFVGPtFSAxGbzLAmJHUS2yQOD2lY/Np8xFNG8WgvMaf9BguZct99H07bDTaIgRtGvt9IazDlbTKHGdGMPi/islr8NpXvZNyThqObj58K/s1e9JTwyKksg4nCQioTnvpjXsb3C6g9NKOisXlZmbso8MkhQlevuESpC11eIOvkO4prrJZ5Bjts4aiBtLw="

Information About Binary

Size

x86_64, Linux (build on Arch Linux)

+----------+---------+------------+--------------+-----------+ | Filename | Version | Stripped ? | Size (Bytes) | Size (MB) | +----------+---------+------------+--------------+-----------+ | tenrus | v0.1.0 | No | 2843768 | 2.8M | +----------+---------+------------+--------------+-----------+ | tenrus | v0.1.0 | Yes | 2159288 | 2.1M | +----------+---------+------------+--------------+-----------+

Shared Library Dependency

x86_64, Linux (build on Arch Linux)

.. code-block:: sh

$ ldd ./target/release/tenrus
        linux-vdso.so.1 (0x00007ffef6ce5000)
        libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007f3426482000)
        libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007f342600b000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f3425e07000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f3425bea000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f34259d4000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f3425633000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f34266f3000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f342532f000)

Changelog

Not Implemented Yet (Plan)

Notice

I've only tested on my x86_64 Linux. Other platforms are built by CI. If they don't work properly, please tell me.

Developement

Making Release

  1. update version in src/arguments.yml
  2. update version in Cargo.toml
  3. update version in Cargo.lock
  4. add git tag

Special Thanks

License

tenrus is licensed under the AGPL License - see the LICENSE file for details


I hope I can use serde for both json and base64, but it doesn't have base64. maybe I should add any missing feature that rustc_serialize have to serde ...

public key cache ? mutiple data encrypt at once ?

  1. go to https://travis-ci.org/profile/USERNAME to open the repo you want to use Travis CI
  2. now you can get your public key from https://api.travis-ci.org/repos/USERNAME/PROJECTNAME/key

like this ::

{
    "key": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqRqfeW4bjNjOxo96gkJr\n25Tv+v5PNoRViPUhztg2BKgNpkV/cSieVOQQ3LzKRTTAlmd9TdKCi9TDGRYA/SI4\nMi/9Q+yCjGhhb3b9JgRi7mCXWvDZlNYW7zTKMbaKdwU4W4bxMk3HntmOFBrY9OeN\n5ZoI3UH5kH3EJ+vUD89AojrqQ1Vd+eJhpKkjAXB6kZEd00ptCCUJv1RYH9MSynYu\nlOe7QShXwFLZrlhaXjyinPV9Uq0aJkjcOiHBWXWp7kwTn528AWDAtPC6sx987BPe\niKwfrUexJ88x2/cv/h9ljKnGbqEhRNyl3AJrIT8JHUXCNpihzJ4tPfMuf5DPKp8U\nQXNKrDhCX8sTnOXFu9akLyIBw2aFefESQI8U/AR3tblT1EHIxvrKE/zh6ndvkykW\nayYP6TlmFaBaksxG976weJfb1ZfdB5clpe9tCNHXPiNyv2DOUyQILB7hjWZ0tbWJ\nLsbQIRKbQ22isuufGGkq1BvmV7LixHYdep2YZkrxdUcxRXc0tmk/L8CgVIM+A1/T\nuCupYI2bv6GaAuVrLm+qPSdqbBxpRHnAvTRl+mGwid+jC/6JuDZTXoqlb+dksHij\nk43ldNY7ifnJTcWDvwmuR78dj8zoutoEwakHsOMXZxeXvY8WZklSOrpW0Iob1HuF\nHg7MqxgSEhEovlb+EADJHjECAwEAAQ==\n-----END PUBLIC KEY-----\n",
    "fingerprint": "35:7a:85:d6:df:ad:e0:23:9e:33:65:87:38:66:54:ac"
}

This project's .travis.yml's key is encrypted by itself