sym 2.7.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +61 -0
- data/.document +1 -1
- data/.gitignore +1 -0
- data/.rspec +1 -0
- data/.travis.yml +11 -6
- data/CHANGELOG.md +11 -0
- data/README.md +18 -9
- data/Rakefile +11 -3
- data/SYM-CLI.md +9 -132
- data/bin/sym.completion +64 -2
- data/bin/sym.symit +442 -139
- data/design/ascii-cinema.png +0 -0
- data/design/sym-examples.png +0 -0
- data/design/sym-help.png +0 -0
- data/design/sym-symit-help.png +0 -0
- data/exe/sym +2 -1
- data/lib/sym/app.rb +2 -2
- data/lib/sym/app/cli.rb +1 -1
- data/lib/sym/app/commands/bash_completion.rb +19 -5
- data/lib/sym/version.rb +1 -1
- data/sym.gemspec +9 -8
- metadata +18 -14
- data/sym-3.0-cli.md +0 -168
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 6053432fc439cae6524efafc83f10ef5eba1478b
         | 
| 4 | 
            +
              data.tar.gz: 07a5849debd54dbbbe0716ec72ce21de69b8947e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 05dd00292348432a11a38fa22964016c949148e093ad8f0f5d71927455024aaf4d7b7ed113f71024d12e62858b9dceb75994f1281b7d0ee09eed4498c6238d6d
         | 
| 7 | 
            +
              data.tar.gz: 9f69a6b471db6173ff6e7f57d43e99340ddd3e68805e24374233048c686ed04bbb9bc79c7d2ae0eb5f32ab078c1abd2fdc43d907ba7a65b33dea160fc6a69007
         | 
| @@ -0,0 +1,61 @@ | |
| 1 | 
            +
            # Ruby CircleCI 2.0 configuration file
         | 
| 2 | 
            +
            #
         | 
| 3 | 
            +
            # Check https://circleci.com/docs/2.0/language-ruby/ for more details
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            version: 2
         | 
| 6 | 
            +
            jobs:
         | 
| 7 | 
            +
              build:
         | 
| 8 | 
            +
                docker:
         | 
| 9 | 
            +
                  # specify the version you desire here
         | 
| 10 | 
            +
                   - image: circleci/ruby:2.4.1-node-browsers
         | 
| 11 | 
            +
                  
         | 
| 12 | 
            +
                working_directory: ~/repo
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                steps:
         | 
| 15 | 
            +
                  - checkout
         | 
| 16 | 
            +
                  - restore_cache:
         | 
| 17 | 
            +
                      keys:
         | 
| 18 | 
            +
                      - v1-dependencies-{{ checksum "Gemfile.lock" }}
         | 
| 19 | 
            +
                      - v1-dependencies-
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                  - run:
         | 
| 22 | 
            +
                      name: install dependencies
         | 
| 23 | 
            +
                      command: |
         | 
| 24 | 
            +
                        bundle install --jobs=4 --retry=3 --path vendor/bundle
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  - save_cache:
         | 
| 27 | 
            +
                      paths:
         | 
| 28 | 
            +
                        - ./vendor/bundle
         | 
| 29 | 
            +
                      key: v1-dependencies-{{ checksum "Gemfile.lock" }}
         | 
| 30 | 
            +
                    
         | 
| 31 | 
            +
                  - run: 
         | 
| 32 | 
            +
                      name: install memcached
         | 
| 33 | 
            +
                      command: |
         | 
| 34 | 
            +
                        sudo apt-get update && sudo apt-get install -y memcached
         | 
| 35 | 
            +
                        sudo service start memcached || true
         | 
| 36 | 
            +
                        memcached -d || true
         | 
| 37 | 
            +
                        echo "checking if memcached is running...."
         | 
| 38 | 
            +
                        ps -ef | grep [m]emcached
         | 
| 39 | 
            +
                        # echo 'stats' | nc localhost 11211
         | 
| 40 | 
            +
                        # echo "if we see the stats, memcached is running!"
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                  - run:
         | 
| 43 | 
            +
                      name: install sym bash helpers
         | 
| 44 | 
            +
                      command: |
         | 
| 45 | 
            +
                        bundle exec exe/sym -B ~/.bash_profile
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                  - run:
         | 
| 48 | 
            +
                      name: run tests
         | 
| 49 | 
            +
                      command: |
         | 
| 50 | 
            +
                        [[ -z ${_bash} && -x /usr/local/bin/bash ]] && _bash=/usr/local/bin/bash
         | 
| 51 | 
            +
                        [[ -z ${_bash} && -x /usr/bin/bash ]] && _bash=/usr/bin/bash
         | 
| 52 | 
            +
                        [[ -z ${_bash} && -x /bin/bash ]] && _bash=/bin/bash
         | 
| 53 | 
            +
                        ${_bash} -l -c "
         | 
| 54 | 
            +
                          export USER=circleci 
         | 
| 55 | 
            +
                          export HOME=/home/${USER}/repo
         | 
| 56 | 
            +
                          ruby --version
         | 
| 57 | 
            +
                          bundle exec rspec --version
         | 
| 58 | 
            +
                          bundle exec exe/sym --version
         | 
| 59 | 
            +
                          bundle exec rspec --backtrace --format documentation
         | 
| 60 | 
            +
                        "
         | 
| 61 | 
            +
                  
         | 
    
        data/.document
    CHANGED
    
    | @@ -1,2 +1,2 @@ | |
| 1 | 
            -
            lib/ exe/ - README.md LICENSE | 
| 1 | 
            +
            lib/ exe/ - README.md LICENSE
         | 
| 2 2 |  | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/.rspec
    CHANGED
    
    
    
        data/.travis.yml
    CHANGED
    
    | @@ -1,14 +1,11 @@ | |
| 1 1 | 
             
            language: ruby
         | 
| 2 | 
            -
            cache: bundler
         | 
| 3 2 | 
             
            env:
         | 
| 4 | 
            -
            - CODECLIMATE_REPO_TOKEN=c71874cc22acffe1e2543d3388d3a96c73a65f0cfe17169dadd8de4a6c062c39 TEST_DRB=true
         | 
| 3 | 
            +
            - CODECLIMATE_REPO_TOKEN=c71874cc22acffe1e2543d3388d3a96c73a65f0cfe17169dadd8de4a6c062c39 TEST_DRB=true HOME=/home/travis USER=travis
         | 
| 5 4 | 
             
            services:
         | 
| 6 5 | 
             
            - memcached
         | 
| 7 6 | 
             
            rvm:
         | 
| 8 | 
            -
            - 2. | 
| 9 | 
            -
            - 2. | 
| 10 | 
            -
            - 2.4.1
         | 
| 11 | 
            -
            - jruby-9.1.9.0
         | 
| 7 | 
            +
            - 2.3.5
         | 
| 8 | 
            +
            - 2.4.2
         | 
| 12 9 | 
             
            notifications:
         | 
| 13 10 | 
             
              email:
         | 
| 14 11 | 
             
                recipients:
         | 
| @@ -24,3 +21,11 @@ addons: | |
| 24 21 | 
             
            # regular test configuration
         | 
| 25 22 | 
             
            after_success:
         | 
| 26 23 | 
             
              - bundle exec codeclimate-test-reporter
         | 
| 24 | 
            +
            before_script:
         | 
| 25 | 
            +
              - echo stats | nc localhost 11211
         | 
| 26 | 
            +
            script:
         | 
| 27 | 
            +
              - bundle exec exe/sym -B ~/.bash_profile -vTD
         | 
| 28 | 
            +
              - ls -alF ~/.sym*
         | 
| 29 | 
            +
              - ls -alF .
         | 
| 30 | 
            +
              - mkdir -p temp
         | 
| 31 | 
            +
              - bundle exec rspec --format documentation
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -4,6 +4,17 @@ | |
| 4 4 |  | 
| 5 5 | 
             
            [Changes since the last tag](https://github.com/kigster/sym/compare/v2.7.0...HEAD)
         | 
| 6 6 |  | 
| 7 | 
            +
            ## [v2.8.0](https://github.com/kigster/sym/tree/v2.8.0) (2018-01-05)
         | 
| 8 | 
            +
            [Full Changelog](https://github.com/kigster/sym/compare/v2.7.0...v2.8.0)
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            Version 2.8.0 with several key changes below:
         | 
| 11 | 
            +
             | 
| 12 | 
            +
             - Ensuring that Sym exits with a non-zero code when errors occur
         | 
| 13 | 
            +
             - Ensuring that coverage, and doc folders are removed before release
         | 
| 14 | 
            +
             - Adding sym-encrypt() and sym-decrypt() BASH helpers 
         | 
| 15 | 
            +
             - Major update to `sym.symit` to provide easier access to commands.
         | 
| 16 | 
            +
             - Cleaning up output of the errors
         | 
| 17 | 
            +
             | 
| 7 18 | 
             
            ## [v2.7.0](https://github.com/kigster/sym/tree/v2.7.0) (2017-06-23)
         | 
| 8 19 | 
             
            [Full Changelog](https://github.com/kigster/sym/compare/v2.6.3...v2.7.0)
         | 
| 9 20 |  | 
    
        data/README.md
    CHANGED
    
    | @@ -1,13 +1,15 @@ | |
| 1 1 | 
             
            # Sym — Light-weight Symmetric Encryption for Humans
         | 
| 2 2 |  | 
| 3 3 | 
             
            [](https://badge.fury.io/rb/sym)
         | 
| 4 | 
            -
            [](https://rubygems.org/gems/sym)
         | 
| 5 5 |  | 
| 6 6 | 
             
            [](https://travis-ci.org/kigster/sym)
         | 
| 7 7 | 
             
            [](https://codeclimate.com/github/kigster/sym)
         | 
| 8 8 | 
             
            [](https://codeclimate.com/github/kigster/sym/coverage)
         | 
| 9 9 | 
             
            [](https://codeclimate.com/github/kigster/sym)
         | 
| 10 10 |  | 
| 11 | 
            +
            **Discuss Sym on Gitter**:
         | 
| 12 | 
            +
             | 
| 11 13 | 
             
            [](https://gitter.im/kigster/sym)
         | 
| 12 14 |  | 
| 13 15 | 
             
            ---
         | 
| @@ -30,10 +32,24 @@ Your donation of absolutely any amount is very much appreciated. | |
| 30 32 |  | 
| 31 33 | 
             
            <p><strong>sym</strong> uses the <em><a href="https://en.wikipedia.org/wiki/Symmetric-key_algorithm">Symmetric Encryption</a></em> algorithm. This means that the same key is used to encrypt and decrypt data. In addition to the key, the encryption uses a randomized IV vector, which is automatically generated  per each encryption and serialized with the data. Result of encryption is zlib-compressed, and base64 encoded, to be suitable for storage as string. The generated keys are also base64-encoded for convenience.</p>
         | 
| 32 34 |  | 
| 33 | 
            -
            <p>Finally, the library offers encryption using any regular password, and in particular supports password-protected encryption keys.  | 
| 35 | 
            +
            <p>Finally, the library offers encryption using any regular password, and in particular supports password-protected encryption keys. Automatic key detection algorithm attempts to resolve a provided key as a filename, an environment variable name, an OS-X Keychain password entry name, a key itself, or a default key file.</p>
         | 
| 34 36 |  | 
| 35 37 | 
             
            </div>
         | 
| 36 38 |  | 
| 39 | 
            +
            ### Quick Demo of the CLI in Action
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            [](https://asciinema.org/a/106737)
         | 
| 42 | 
            +
             | 
| 43 | 
            +
             | 
| 44 | 
            +
            #### Help Screens, Examples and Symit Bash Wrapper
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            This may be a good time to take a look at the full help message for the `sym` tool, shown naturally with a `-h` or `--help` option. Examples can be shown with `-E/--examples` flag. 
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            Additionally, Sym comes with a helpful BASH wrapper `symit`. 
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            **Help screens for `sym` and `symit` are shown in full on another page — [Sym Help Screens and Symit](SYM-CLI.md). Please refer to it for complete help screens and the examples.**
         | 
| 51 | 
            +
             | 
| 52 | 
            +
             | 
| 37 53 | 
             
            ## Supported Ruby Versions
         | 
| 38 54 |  | 
| 39 55 | 
             
            [](https://travis-ci.org/kigster/sym)
         | 
| @@ -501,12 +517,6 @@ sym -Adf file.enc -o file.original | |
| 501 517 | 
             
            sym -Atf file.enc
         | 
| 502 518 | 
             
            ```
         | 
| 503 519 |  | 
| 504 | 
            -
            #### CLI Help Screen and Examples
         | 
| 505 | 
            -
             | 
| 506 | 
            -
            This may be a good time to take a look at the full help message for the `sym` tool, shown naturally with a `-h` or `--help` option. Examples can be shown with `-E/--examples` flag.
         | 
| 507 | 
            -
             | 
| 508 | 
            -
            Please take a look at the [SYM-CLI](SYM-CLI.md) for a complete help screen and the examples.
         | 
| 509 | 
            -
             | 
| 510 520 | 
             
            ## Fine Tuning
         | 
| 511 521 |  | 
| 512 522 | 
             
            <a name="rubyapi-config"></a>
         | 
| @@ -611,4 +621,3 @@ Please submit feature requests, bugs, or donations :) | |
| 611 621 | 
             
             * [Barry Anderson](https://twitter.com/z3ndrag0n) (sanity checking, review)
         | 
| 612 622 |  | 
| 613 623 |  | 
| 614 | 
            -
             | 
    
        data/Rakefile
    CHANGED
    
    | @@ -2,13 +2,21 @@ require 'bundler/gem_tasks' | |
| 2 2 | 
             
            require 'rspec/core/rake_task'
         | 
| 3 3 | 
             
            require 'yard'
         | 
| 4 4 |  | 
| 5 | 
            +
             | 
| 5 6 | 
             
            def shell(*args)
         | 
| 6 7 | 
             
              puts "running: #{args.join(' ')}"
         | 
| 7 8 | 
             
              system(args.join(' '))
         | 
| 8 9 | 
             
            end
         | 
| 9 10 |  | 
| 10 | 
            -
            task : | 
| 11 | 
            -
              shell('rm -rf pkg/')
         | 
| 11 | 
            +
            task :clean do
         | 
| 12 | 
            +
              shell('rm -rf pkg/ tmp/ coverage/ doc/ ' )
         | 
| 13 | 
            +
            end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            task :gem => [:build] do
         | 
| 16 | 
            +
              shell('gem install pkg/*')
         | 
| 17 | 
            +
            end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            task :permissions => [ :clean ] do
         | 
| 12 20 | 
             
              shell("chmod -v o+r,g+r * */* */*/* */*/*/* */*/*/*/* */*/*/*/*/*")
         | 
| 13 21 | 
             
              shell("find . -type d -exec chmod o+x,g+x {} \\;")
         | 
| 14 22 | 
             
            end
         | 
| @@ -16,7 +24,7 @@ end | |
| 16 24 | 
             
            task :build => :permissions
         | 
| 17 25 |  | 
| 18 26 | 
             
            YARD::Rake::YardocTask.new(:doc) do |t|
         | 
| 19 | 
            -
              t.files = %w(lib/**/*.rb exe/*.rb - README.md LICENSE | 
| 27 | 
            +
              t.files = %w(lib/**/*.rb exe/*.rb - README.md LICENSE)
         | 
| 20 28 | 
             
              t.options.unshift('--title','"Sym – Symmetric Key Encryption for Your Data"')
         | 
| 21 29 | 
             
              t.after = ->() { exec('open doc/index.html') }
         | 
| 22 30 | 
             
            end
         | 
    
        data/SYM-CLI.md
    CHANGED
    
    | @@ -1,143 +1,20 @@ | |
| 1 1 | 
             
            # Sym CLI Help Screen
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
            Sym (2.5.1) – encrypt/decrypt data with a private key
         | 
| 3 | 
            +
            ### Sym Help
         | 
| 5 4 |  | 
| 6 | 
            -
             | 
| 7 | 
            -
               Generate a new key, optionally password protected, and save it
         | 
| 8 | 
            -
               in one of: keychain, file, or STDOUT (-q turns off STDOUT) 
         | 
| 9 | 
            -
             
         | 
| 10 | 
            -
                   sym -g [ -p/--password ] [-c] [-x keychain | -o file | ] [-q]
         | 
| 5 | 
            +
            Below is the HELP screen for Sym:
         | 
| 11 6 |  | 
| 12 | 
            -
             | 
| 13 | 
            -
                  1) a string, 2) a file path, 3) an OS-X Keychain, 4) env variable name 
         | 
| 14 | 
            -
                  5) use -i to paste/type the key interactively
         | 
| 15 | 
            -
                  6) default key file (if present) at /Users/kig/.sym.key
         | 
| 16 | 
            -
             
         | 
| 17 | 
            -
                   KEY-SPEC = -k/--key [ key | file | keychain | env variable name ]
         | 
| 18 | 
            -
                              -i/--interactive
         | 
| 7 | 
            +
            
         | 
| 19 8 |  | 
| 20 | 
            -
             | 
| 21 | 
            -
             
         | 
| 22 | 
            -
                   sym -e/--encrypt KEY-SPEC [-f [file | - ] | -s string ] [-o file] 
         | 
| 23 | 
            -
                   sym -d/--decrypt KEY-SPEC [-f [file | - ] | -s string ] [-o file] 
         | 
| 9 | 
            +
            ### Additional Sym Examples
         | 
| 24 10 |  | 
| 25 | 
            -
             | 
| 26 | 
            -
             
         | 
| 27 | 
            -
                   sym -n/--negate  KEY-SPEC file[.enc] 
         | 
| 28 | 
            -
             
         | 
| 29 | 
            -
               Edit an encrypted file in $EDITOR 
         | 
| 30 | 
            -
             
         | 
| 31 | 
            -
                   sym -t/--edit    KEY-SPEC -f file [ -b/--backup ]
         | 
| 32 | 
            -
             
         | 
| 33 | 
            -
               Save commonly used flags in a BASH variable. Below we save the KeyChain 
         | 
| 34 | 
            -
               "staging" as the default key name, and enable password caching.
         | 
| 35 | 
            -
             
         | 
| 36 | 
            -
                   export SYM_ARGS="-ck staging"
         | 
| 37 | 
            -
             
         | 
| 38 | 
            -
               Then activate $SYM_ARGS by using -A/--sym-args flag:
         | 
| 39 | 
            -
             
         | 
| 40 | 
            -
                   sym -Aef file
         | 
| 41 | 
            -
             
         | 
| 42 | 
            -
            Modes:
         | 
| 43 | 
            -
              -e, --encrypt                     encrypt mode
         | 
| 44 | 
            -
              -d, --decrypt                     decrypt mode
         | 
| 45 | 
            -
              -t, --edit                        edit encrypted file in an $EDITOR
         | 
| 46 | 
            -
              -n, --negate           [file]     encrypts any regular file into file.enc
         | 
| 47 | 
            -
                                                conversely decrypts file.enc into file.
         | 
| 48 | 
            -
             
         | 
| 49 | 
            -
            Create a new private key:
         | 
| 50 | 
            -
              -g, --generate                    generate a new private key
         | 
| 51 | 
            -
              -p, --password                    encrypt the key with a password
         | 
| 52 | 
            -
              -x, --keychain         [key-name] write the key to OS-X Keychain
         | 
| 53 | 
            -
             
         | 
| 54 | 
            -
            Read existing private key from:
         | 
| 55 | 
            -
              -k, --key              [key-spec] private key, key file, or keychain
         | 
| 56 | 
            -
              -i, --interactive                 Paste or type the key interactively
         | 
| 57 | 
            -
             
         | 
| 58 | 
            -
            Password Cache:
         | 
| 59 | 
            -
              -c, --cache-passwords             enable password cache
         | 
| 60 | 
            -
              -u, --cache-timeout    [seconds]  expire passwords after
         | 
| 61 | 
            -
              -r, --cache-provider   [provider] cache provider, one of memcached, drb
         | 
| 62 | 
            -
             
         | 
| 63 | 
            -
            Data to Encrypt/Decrypt:
         | 
| 64 | 
            -
              -s, --string           [string]   specify a string to encrypt/decrypt
         | 
| 65 | 
            -
              -f, --file             [file]     filename to read from
         | 
| 66 | 
            -
              -o, --output           [file]     filename to write to
         | 
| 67 | 
            -
             
         | 
| 68 | 
            -
            Flags:
         | 
| 69 | 
            -
              -b, --backup                      create a backup file in the edit mode
         | 
| 70 | 
            -
              -v, --verbose                     show additional information
         | 
| 71 | 
            -
              -q, --quiet                       do not print to STDOUT
         | 
| 72 | 
            -
              -T, --trace                       print a backtrace of any errors
         | 
| 73 | 
            -
              -D, --debug                       print debugging information
         | 
| 74 | 
            -
              -V, --version                     print library version
         | 
| 75 | 
            -
              -N, --no-color                    disable color output
         | 
| 76 | 
            -
              -A, --sym-args                    read more CLI arguments from $SYM_ARGS
         | 
| 77 | 
            -
             
         | 
| 78 | 
            -
            Utility:
         | 
| 79 | 
            -
              -B, --bash-support     [file]     append bash completion & utils to a file
         | 
| 80 | 
            -
                                                such as ~/.bash_profile or ~/.bashrc
         | 
| 81 | 
            -
             
         | 
| 82 | 
            -
            Help & Examples:
         | 
| 83 | 
            -
              -E, --examples                    show several examples
         | 
| 84 | 
            -
              -h, --help                        show help
         | 
| 85 | 
            -
            ```
         | 
| 11 | 
            +
            
         | 
| 86 12 |  | 
| 87 | 
            -
             | 
| 13 | 
            +
            ### Symit BASH Wrapper
         | 
| 88 14 |  | 
| 89 | 
            -
             | 
| 90 | 
            -
             | 
| 91 | 
            -
            export mykey=$(sym -g)
         | 
| 92 | 
            -
            echo $mykey
         | 
| 93 | 
            -
            75ngenJpB6zL47/8Wo7Ne6JN1pnOsqNEcIqblItpfg4=
         | 
| 94 | 
            -
            ————————————————————————————————————————————————————————————————————————————————
         | 
| 95 | 
            -
            # generate a new key with a cached password & save to the default key file
         | 
| 96 | 
            -
            sym -gcpqo /Users/kig/.sym.key
         | 
| 97 | 
            -
            New Password     : ••••••••••
         | 
| 98 | 
            -
            Confirm Password : ••••••••••
         | 
| 99 | 
            -
            ————————————————————————————————————————————————————————————————————————————————
         | 
| 100 | 
            -
            # encrypt a plain text string with default key file, and immediately decrypt it
         | 
| 101 | 
            -
            sym -es "secret string" | sym -d
         | 
| 102 | 
            -
            secret string
         | 
| 103 | 
            -
            ————————————————————————————————————————————————————————————————————————————————
         | 
| 104 | 
            -
            # encrypt secrets file using key in the environment, and --negate option:
         | 
| 105 | 
            -
            export PRIVATE_KEY="75ngenJpB6zL47/8Wo7Ne6JN1pnOsqNEcIqblItpfg4="
         | 
| 106 | 
            -
            sym -ck PRIVATE_KEY -n secrets.yml
         | 
| 15 | 
            +
            Sym comes with the bash wrapper `symit` which is installed whenever you run `sym -B ~/.bash_profile`. 
         | 
| 16 | 
            +
            Below is the help screen with some of the examples:
         | 
| 107 17 |  | 
| 108 | 
            -
             | 
| 109 | 
            -
            # encrypt a secrets file using the key in the keychain:
         | 
| 110 | 
            -
            sym -gqx keychain.key
         | 
| 111 | 
            -
            sym -ck keychain.key -n secrets.yml
         | 
| 112 | 
            -
            secret string
         | 
| 113 | 
            -
            ————————————————————————————————————————————————————————————————————————————————
         | 
| 114 | 
            -
            # encrypt/decrypt sym.yml using the default key file
         | 
| 115 | 
            -
            sym -gcq > /Users/kig/.sym.key
         | 
| 116 | 
            -
            sym -n secrets.yml
         | 
| 117 | 
            -
            sym -df secrets.yml.enc
         | 
| 118 | 
            -
            ————————————————————————————————————————————————————————————————————————————————
         | 
| 119 | 
            -
            # decrypt an encrypted file and print it to STDOUT:
         | 
| 120 | 
            -
            sym -ck production.key -df secrets.yml.enc
         | 
| 121 | 
            -
            ————————————————————————————————————————————————————————————————————————————————
         | 
| 122 | 
            -
            # edit an encrypted file in $EDITOR, use default key file, create file backup
         | 
| 123 | 
            -
            sym -tbf secrets.enc
         | 
| 18 | 
            +
            
         | 
| 124 19 |  | 
| 125 | 
            -
            Private Key: ••••••••••••••••••••••••••••••••••••••••••••
         | 
| 126 | 
            -
            Saved encrypted content to sym.enc.
         | 
| 127 20 |  | 
| 128 | 
            -
            Diff:
         | 
| 129 | 
            -
            3c3
         | 
| 130 | 
            -
            # (c) 2015 Konstantin Gredeskoul.  All rights reserved.
         | 
| 131 | 
            -
            ---
         | 
| 132 | 
            -
            # (c) 2016 Konstantin Gredeskoul.  All rights reserved.
         | 
| 133 | 
            -
            ————————————————————————————————————————————————————————————————————————————————
         | 
| 134 | 
            -
            # generate a new password-encrypted key, save it to your Keychain:
         | 
| 135 | 
            -
            sym -gpcx staging.key
         | 
| 136 | 
            -
            ————————————————————————————————————————————————————————————————————————————————
         | 
| 137 | 
            -
            # use the new key to encrypt a file:
         | 
| 138 | 
            -
            sym -e -c -k staging.key -n etc/passwords.enc
         | 
| 139 | 
            -
            ————————————————————————————————————————————————————————————————————————————————
         | 
| 140 | 
            -
            # use the new key to inline-edit the encrypted file:
         | 
| 141 | 
            -
            sym -k mykey -t sym.yml.enc
         | 
| 142 | 
            -
            ————————————————————————————————————————————————————————————————————————————————
         | 
| 143 | 
            -
            ```
         | 
    
        data/bin/sym.completion
    CHANGED
    
    | @@ -1,10 +1,25 @@ | |
| 1 1 | 
             
            #!/usr/bin/env bash
         | 
| 2 2 | 
             
            #
         | 
| 3 | 
            -
            # Sym  | 
| 3 | 
            +
            # Sym Command Line completion and other utilities
         | 
| 4 | 
            +
            # 
         | 
| 5 | 
            +
            # © 2015-2018, Konstantin Gredeskoul,  https://github.com/kigster/sym
         | 
| 4 6 | 
             
            #
         | 
| 5 | 
            -
            # © 2015-2016, Konstantin Gredeskoul,  https://github.com/kigster/sym
         | 
| 6 7 | 
             
            # MIT LICENSE
         | 
| 7 8 | 
             
            #
         | 
| 9 | 
            +
            ###########################################################################
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            ( [[ -n $ZSH_EVAL_CONTEXT && $ZSH_EVAL_CONTEXT =~ :file$ ]] || \
         | 
| 12 | 
            +
              [[ -n $BASH_VERSION && $0 != "$BASH_SOURCE" ]]) && _s_=1 || _s_=0
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            bash_version=$(/usr/bin/env bash --version | awk '{FS="version"}{print $4}')
         | 
| 15 | 
            +
            bash_version=${bash_version:0:1}
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            if [[ "${bash_version}" -lt 4 ]]; then 
         | 
| 18 | 
            +
                echo "Sym BASH helpers are incompatible with BASH version 3 or older."
         | 
| 19 | 
            +
                echo "Please upgrade your BASH to version 4+ released in 2009. Srsly."
         | 
| 20 | 
            +
                (( $_s_ )) && return 1
         | 
| 21 | 
            +
                (( $_s_ )) || exit 1
         | 
| 22 | 
            +
            fi
         | 
| 8 23 |  | 
| 9 24 | 
             
            declare -a bash_completion_locations=(/usr/local/etc/bash_completion /usr/etc/bash_completion /etc/bash_completion)
         | 
| 10 25 | 
             
            loaded=false
         | 
| @@ -64,6 +79,53 @@ _sym() | |
| 64 79 | 
             
                return 0
         | 
| 65 80 | 
             
            } && complete -F _sym $nospace $filenames sym
         | 
| 66 81 |  | 
| 82 | 
            +
            sym-encrypt() {
         | 
| 83 | 
            +
              local key=$1
         | 
| 84 | 
            +
              local from=$2
         | 
| 85 | 
            +
              local to=$3
         | 
| 86 | 
            +
              local args=
         | 
| 87 | 
            +
             | 
| 88 | 
            +
              [[ -n $key ]] && args="${args} -ck ${key}"
         | 
| 89 | 
            +
             | 
| 90 | 
            +
              if [[ -n $to ]]; then
         | 
| 91 | 
            +
                args="${args} -o ${to}"
         | 
| 92 | 
            +
                [[ -n $from ]] && args="${args} -f ${from}"
         | 
| 93 | 
            +
              else
         | 
| 94 | 
            +
                [[ -n $from ]] && args="${args} -n ${from}"
         | 
| 95 | 
            +
              fi
         | 
| 96 | 
            +
             | 
| 97 | 
            +
              if [[ -z $args ]]; then
         | 
| 98 | 
            +
                echo "usage: sym-encrypt key file [ outfile ]"
         | 
| 99 | 
            +
              else
         | 
| 100 | 
            +
                sym -e ${args}
         | 
| 101 | 
            +
              fi
         | 
| 102 | 
            +
            }
         | 
| 103 | 
            +
             | 
| 104 | 
            +
            sym-decrypt() {
         | 
| 105 | 
            +
              local key=$1
         | 
| 106 | 
            +
              local from=$2
         | 
| 107 | 
            +
              local to=$3
         | 
| 108 | 
            +
              local args=
         | 
| 109 | 
            +
             | 
| 110 | 
            +
              [[ -n $key ]] && args="${args} -ck ${key}"
         | 
| 111 | 
            +
             | 
| 112 | 
            +
              if [[ -n $to ]]; then
         | 
| 113 | 
            +
                args="${args} -o ${to}"
         | 
| 114 | 
            +
                [[ -n $from ]] && args="${args} -f ${from}"
         | 
| 115 | 
            +
              else
         | 
| 116 | 
            +
                [[ -n $from ]] && args="${args} -n ${from}"
         | 
| 117 | 
            +
              fi
         | 
| 118 | 
            +
             | 
| 119 | 
            +
              if [[ -z $args ]]; then
         | 
| 120 | 
            +
                echo "usage: sym-decrypt key file [ outfile ]"
         | 
| 121 | 
            +
              else
         | 
| 122 | 
            +
                sym -d ${args}
         | 
| 123 | 
            +
              fi
         | 
| 124 | 
            +
            }
         | 
| 125 | 
            +
             | 
| 126 | 
            +
            alias syme="sym-encrypt"
         | 
| 127 | 
            +
            alias symd="sym-decrypt"
         | 
| 128 | 
            +
             | 
| 67 129 | 
             
            # Local variables:
         | 
| 68 130 | 
             
            # mode: shell-script
         | 
| 69 131 | 
             
            # sh-basic-offset: 4
         |