ncypher 1.1.0 → 1.3.1
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/.github/workflows/main.yml +44 -0
- data/README.md +11 -5
- data/exe/ncypher +2 -4
- data/lib/ncypher/version.rb +1 -1
- data/lib/ncypher.rb +2 -1
- data/ncypher.gemspec +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77245507ddd567cc836702a8a3bef443a6c8a935f1609c5c2cde7dce87ac14ca
|
4
|
+
data.tar.gz: 905b47d4f2cbe7b795d0434fd7acf26ad9961e0c11d8bcc7c0b87813ceed951b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8309bcfe3731ff257c75e6a4d6ef7688b9d81cb5352d25d4c36576a8cca4a61cf25eceba4e22b8d5c1ed44f46c7f8d056339829116db54b1200531bdc2250a8
|
7
|
+
data.tar.gz: 5373a0ebe1771ceb457806773a4947fd183eed235de9f359eb8c52ab6cfc2f208a7be3ef41e3d86ded6f16be2de69fb10e8aba31081884ea7ed93bed68129b24
|
@@ -0,0 +1,44 @@
|
|
1
|
+
name: Ruby CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
tags:
|
7
|
+
- v*
|
8
|
+
pull_request:
|
9
|
+
branches: [ master ]
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
test:
|
13
|
+
runs-on: ubuntu-20.04
|
14
|
+
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v2
|
17
|
+
|
18
|
+
- name: Install bundler
|
19
|
+
run: sudo gem install bundler -v 2.0
|
20
|
+
|
21
|
+
- name: Install dependencies
|
22
|
+
run: |
|
23
|
+
sudo apt-get update -y
|
24
|
+
sudo apt-get install -y libsodium23
|
25
|
+
bundle install
|
26
|
+
|
27
|
+
- name: Run tests
|
28
|
+
run: bundle exec rake
|
29
|
+
|
30
|
+
deploy:
|
31
|
+
needs: test
|
32
|
+
runs-on: ubuntu-20.04
|
33
|
+
if: startsWith(github.ref, 'refs/tags/')
|
34
|
+
|
35
|
+
steps:
|
36
|
+
- uses: actions/checkout@v2
|
37
|
+
|
38
|
+
- name: Build and publish gem
|
39
|
+
env:
|
40
|
+
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
41
|
+
run: |
|
42
|
+
gem build ncypher.gemspec
|
43
|
+
gem push ncypher-*.gem
|
44
|
+
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
# Ncypher
|
5
5
|
|
6
|
-
Ncypher is a gem to help you to encrypt your credentials in your
|
6
|
+
Ncypher is a gem to help you to encrypt your credentials in your projects in a safe manner.
|
7
7
|
|
8
8
|
## Upgrade from versions before 1.0
|
9
9
|
Versions before 1.0 were using rbnacl-libsodium gem which is now deprecated.
|
@@ -40,8 +40,8 @@ You can also set the env variable `NCYPHER_KEY` to that generated key (i.e `expo
|
|
40
40
|
|
41
41
|
To encrypt a new password (or anything else), ncypher supports stdin. So you can do:
|
42
42
|
```
|
43
|
-
$>
|
44
|
-
$>
|
43
|
+
$> ncypher encrypt < secret_file > secret_file.encrypted
|
44
|
+
$> ncypher decrypt < secret_file.encrypted > secret_file
|
45
45
|
$> ncypher encrypt
|
46
46
|
mypassword
|
47
47
|
<CTRL+D>
|
@@ -69,7 +69,7 @@ p4$$w0rd
|
|
69
69
|
|
70
70
|
:)
|
71
71
|
|
72
|
-
And Ncypher::Ncypher.decrypt will magically use your key in `.ncypher_key` to decrypt that password at runtime.
|
72
|
+
And if you are using ruby, Ncypher::Ncypher.decrypt will magically use your key in `.ncypher_key` to decrypt that password at runtime.
|
73
73
|
Now you can directy put in your .yaml files:
|
74
74
|
```
|
75
75
|
defaults: &defaults
|
@@ -94,8 +94,14 @@ $> ncypher derive_key p4$$w0rd > .ncypher_key
|
|
94
94
|
SALT: WKCAkJcS65nx3lA/w1BmBw==
|
95
95
|
```
|
96
96
|
|
97
|
-
Then you have the ncypher\_key in .ncypher\_key. Be sure to save the salt if you want to be able to derive back the exact same key in the future.
|
97
|
+
Then you have the ncypher\_key in .ncypher\_key. Be sure to save the salt if you want to be able to derive back the exact same key in the future.
|
98
|
+
The derive_key command also listen to stdin so for safety you can instead do:
|
98
99
|
|
100
|
+
```
|
101
|
+
$> ncypher derive_key > .ncypher_key
|
102
|
+
```
|
103
|
+
|
104
|
+
And enter your password then CTRL+D.
|
99
105
|
|
100
106
|
## Contributing
|
101
107
|
|
data/exe/ncypher
CHANGED
@@ -7,8 +7,6 @@ rescue NameError
|
|
7
7
|
require "bundler/setup"
|
8
8
|
end
|
9
9
|
|
10
|
-
SUB_COMMANDS = %w(generate_key encrypt decrypt)
|
11
|
-
|
12
10
|
if ARGV.empty?
|
13
11
|
STDERR.puts "Ncypher a credential encryption tool"
|
14
12
|
STDERR.puts "usage: ncypher generate_key"
|
@@ -24,11 +22,11 @@ case cmd
|
|
24
22
|
when "generate_key"
|
25
23
|
puts Ncypher::Ncypher.new.generate_key
|
26
24
|
when "derive_key"
|
27
|
-
password = ARGV.shift
|
25
|
+
password = (ARGV.shift || STDIN.read)
|
28
26
|
unless password
|
29
27
|
abort "ncypher derive_key <password> [salt]"
|
30
28
|
end
|
31
|
-
salt = File.
|
29
|
+
salt = File.exist?(".ncypher_salt") ? File.read(".ncypher_salt")&.strip : ARGV.shift
|
32
30
|
key, used_salt = Ncypher::Ncypher.new.derive_key(password.strip, salt)
|
33
31
|
STDOUT.puts key
|
34
32
|
STDERR.puts "SALT: #{used_salt}" # Put salt on stderr so we can do ncypher deriver_key password > .ncypher_key
|
data/lib/ncypher/version.rb
CHANGED
data/lib/ncypher.rb
CHANGED
@@ -20,7 +20,8 @@ module Ncypher
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def generate_key
|
23
|
-
|
23
|
+
digest_size = 32 # RbNaCl::SecretBox.key_bytes
|
24
|
+
generated_key = RbNaCl::Random.random_bytes(digest_size)
|
24
25
|
Base64.strict_encode64(generated_key)
|
25
26
|
end
|
26
27
|
|
data/ncypher.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.license = 'WTFPL'
|
21
21
|
|
22
22
|
spec.add_development_dependency "bundler", "~> 2.0"
|
23
|
-
spec.add_development_dependency "rake", "~>
|
23
|
+
spec.add_development_dependency "rake", "~> 12.3.3"
|
24
24
|
spec.add_development_dependency "minitest", "~> 5.0"
|
25
25
|
|
26
26
|
spec.add_dependency 'rbnacl', '~> 7.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ncypher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Hagege
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 12.3.3
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 12.3.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,6 +74,7 @@ executables:
|
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
|
+
- ".github/workflows/main.yml"
|
77
78
|
- ".gitignore"
|
78
79
|
- ".travis.yml"
|
79
80
|
- CODE_OF_CONDUCT.md
|
@@ -106,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
107
|
- !ruby/object:Gem::Version
|
107
108
|
version: '0'
|
108
109
|
requirements: []
|
109
|
-
rubygems_version: 3.
|
110
|
+
rubygems_version: 3.1.2
|
110
111
|
signing_key:
|
111
112
|
specification_version: 4
|
112
113
|
summary: Ncypher lets you encrypt/decrypt credentials in a safe and transparent way
|