slosilo 3.0.0 → 3.0.2.pre.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +4 -4
- data/.gitignore +1 -1
- data/CHANGELOG.md +40 -10
- data/Jenkinsfile +89 -30
- data/dev/Dockerfile.dev +7 -0
- data/dev/docker-compose.yml +8 -0
- data/lib/slosilo/symmetric.rb +26 -17
- data/lib/slosilo/version.rb +21 -2
- data/publish.sh +5 -0
- data/secrets.yml +1 -0
- data/slosilo.gemspec +13 -10
- data/spec/symmetric_spec.rb +23 -2
- data/test.sh +4 -23
- metadata +52 -36
- data/.dockerignore +0 -2
- data/publish-rubygem.sh +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1075a35a45e236bad68485de1ceb215799e5eb7172832edd6c8fff01b7e8fa2f
|
4
|
+
data.tar.gz: 9ae748a89c1daf20563290d7616f543e0c6ffc3f38bd4e934278f21b5f064d4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20f934fccce50a269d2f01a58bc50b2a4c2689a1db667eceaafd1f8be7a582d7af7b632057f27ceeb097fdea9bd4ab113edd7897b6312fa31425faa555819cda
|
7
|
+
data.tar.gz: 03e1d13e0c6ff3229365da59640440772eb8cb7114ca58c95def135eb41ec48a3919a84244238e2d6a2c9df32e66ab3d43bfb37e8bf40783a241561ca112c81d
|
data/.github/CODEOWNERS
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
* @cyberark/conjur-core-team @conjurinc/conjur-core-team @conjurdemos/conjur-core-team
|
1
|
+
* @cyberark/conjur-core-team @conjurinc/conjur-core-team @conjurdemos/conjur-core-team @conjur-enterprise/community-and-integrations
|
2
2
|
|
3
3
|
# Changes to .trivyignore require Security Architect approval
|
4
|
-
.trivyignore @cyberark/security-architects @conjurinc/security-architects @conjurdemos/security-architects
|
4
|
+
.trivyignore @cyberark/security-architects @conjurinc/security-architects @conjurdemos/security-architects @conjur-enterprise/conjur-security
|
5
5
|
|
6
6
|
# Changes to .codeclimate.yml require Quality Architect approval
|
7
|
-
.codeclimate.yml @cyberark/quality-architects @conjurinc/quality-architects @conjurdemos/quality-architects
|
7
|
+
.codeclimate.yml @cyberark/quality-architects @conjurinc/quality-architects @conjurdemos/quality-architects @conjur-enterprise/conjur-quality
|
8
8
|
|
9
9
|
# Changes to SECURITY.md require Security Architect approval
|
10
|
-
SECURITY.md @cyberark/security-architects @conjurinc/security-architects @conjurdemos/security-architects
|
10
|
+
SECURITY.md @cyberark/security-architects @conjurinc/security-architects @conjurdemos/security-architects @conjur-enterprise/conjur-security
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,20 +1,50 @@
|
|
1
|
-
#
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
2
3
|
|
3
|
-
|
4
|
+
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
5
|
+
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
4
6
|
|
5
|
-
|
7
|
+
## [3.0.2] - 2023-11-14
|
6
8
|
|
7
|
-
|
9
|
+
### Changed
|
10
|
+
|
11
|
+
- Moved slosilo to Github Enterprise.
|
12
|
+
- Updated to use Ruby 3+ and conjur-enterprise/release-tools' publish-rubygem.
|
13
|
+
|
14
|
+
## [3.0.1] - 2023-02-10
|
15
|
+
|
16
|
+
### Fixed
|
17
|
+
|
18
|
+
- The symmetric cipher class now encrypts and decrypts in a thread-safe manner.
|
19
|
+
[cyberark/slosilo#31](https://github.com/cyberark/slosilo/pull/31)
|
20
|
+
|
21
|
+
## [3.0.0] - 2022-02-01
|
22
|
+
|
23
|
+
### Changed
|
24
|
+
|
25
|
+
- Transition to Ruby 3. Consuming projects based on Ruby 2 shall use slosilo V2.X.X.
|
26
|
+
|
27
|
+
## [2.2.2] - 2014-01-01
|
28
|
+
|
29
|
+
## Added
|
30
|
+
|
31
|
+
- Add rake task `slosilo:recalculate_fingerprints` which rehashes the fingerprints in the keystore.
|
8
32
|
**Note**: After migrating the slosilo keystore, run the above rake task to ensure the fingerprints are correctly hashed.
|
9
33
|
|
10
|
-
|
34
|
+
## [2.2.1] - 2014-01-01
|
35
|
+
|
36
|
+
### Changed
|
37
|
+
|
38
|
+
- Use SHA256 algorithm instead of MD5 for public key fingerprints.
|
39
|
+
|
40
|
+
## [2.1.1] - 2014-01-01
|
11
41
|
|
12
|
-
|
42
|
+
### Added
|
13
43
|
|
14
|
-
|
44
|
+
- Add support for JWT-formatted tokens, with arbitrary expiration.
|
15
45
|
|
16
|
-
|
46
|
+
## [2.0.1] - 2014-01-01
|
17
47
|
|
18
|
-
|
48
|
+
### Fixed
|
19
49
|
|
20
|
-
|
50
|
+
- Fixes a bug that occurs when signing tokens containing Unicode data
|
data/Jenkinsfile
CHANGED
@@ -1,7 +1,46 @@
|
|
1
1
|
#!/usr/bin/env groovy
|
2
|
+
@Library("product-pipelines-shared-library") _
|
3
|
+
|
4
|
+
// Automated release, promotion and dependencies
|
5
|
+
properties([
|
6
|
+
// Include the automated release parameters for the build
|
7
|
+
release.addParams(),
|
8
|
+
// Dependencies of the project that should trigger builds
|
9
|
+
dependencies([])
|
10
|
+
])
|
11
|
+
|
12
|
+
// Performs release promotion. No other stages will be run
|
13
|
+
if (params.MODE == "PROMOTE") {
|
14
|
+
release.promote(params.VERSION_TO_PROMOTE) { infrapool, sourceVersion, targetVersion, assetDirectory ->
|
15
|
+
// Any assets from sourceVersion Github release are available in assetDirectory
|
16
|
+
// Any version number updates from sourceVersion to targetVersion occur here
|
17
|
+
// Any publishing of targetVersion artifacts occur here
|
18
|
+
// Anything added to assetDirectory will be attached to the Github Release
|
19
|
+
|
20
|
+
//Note: assetDirectory is on the infrapool agent, not the local Jenkins agent.
|
21
|
+
|
22
|
+
// Publish container images to internal registry
|
23
|
+
//INFRAPOOL_EXECUTORV2_AGENT_0.agentSh "summon --yaml 'RUBYGEMS_API_KEY: !var rubygems/api-key' ${toolsDirectory}/bin/publish-rubygem slosilo"
|
24
|
+
|
25
|
+
INFRAPOOL_EXECUTORV2_AGENT_0.agentSh "./publish.sh"
|
26
|
+
|
27
|
+
INFRAPOOL_EXECUTORV2_AGENT_0.agentSh "cp slosilo*.gem ${assetDirectory}"
|
28
|
+
}
|
29
|
+
release.copyEnterpriseRelease(params.VERSION_TO_PROMOTE)
|
30
|
+
return
|
31
|
+
}
|
2
32
|
|
3
33
|
pipeline {
|
4
|
-
agent { label '
|
34
|
+
agent { label 'conjur-enterprise-common-agent' }
|
35
|
+
|
36
|
+
triggers {
|
37
|
+
cron(getDailyCronString())
|
38
|
+
}
|
39
|
+
|
40
|
+
environment {
|
41
|
+
// Sets the MODE to the specified or autocalculated value as appropriate
|
42
|
+
MODE = release.canonicalizeMode()
|
43
|
+
}
|
5
44
|
|
6
45
|
options {
|
7
46
|
timestamps()
|
@@ -9,52 +48,73 @@ pipeline {
|
|
9
48
|
}
|
10
49
|
|
11
50
|
stages {
|
51
|
+
stage('Get InfraPool Agent') {
|
52
|
+
steps {
|
53
|
+
script {
|
54
|
+
INFRAPOOL_EXECUTORV2_AGENT_0 = getInfraPoolAgent.connected(type: "ExecutorV2", quantity: 1, duration: 1)[0]
|
55
|
+
INFRAPOOL_EXECUTORV2_RHEL_EE_AGENT_0 = getInfraPoolAgent.connected(type: "ExecutorV2RHELEE", quantity: 1, duration: 1)[0]
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
// Generates a VERSION file based on the current build number and latest version in CHANGELOG.md
|
61
|
+
stage('Validate Changelog and set version') {
|
62
|
+
steps {
|
63
|
+
script {
|
64
|
+
updateVersion(INFRAPOOL_EXECUTORV2_AGENT_0, "CHANGELOG.md", "${BUILD_NUMBER}")
|
65
|
+
INFRAPOOL_EXECUTORV2_AGENT_0.agentStash name: 'version_file', includes: "VERSION"
|
66
|
+
INFRAPOOL_EXECUTORV2_RHEL_EE_AGENT_0.agentUnstash name: 'version_file'
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
12
71
|
stage('Test') {
|
13
72
|
parallel {
|
73
|
+
|
14
74
|
stage('Run tests on EE') {
|
15
|
-
agent { label 'executor-v2-rhel-ee' }
|
16
75
|
steps {
|
17
|
-
|
76
|
+
script {
|
77
|
+
INFRAPOOL_EXECUTORV2_RHEL_EE_AGENT_0.agentSh './test.sh'
|
78
|
+
}
|
18
79
|
}
|
19
80
|
post { always {
|
20
|
-
|
81
|
+
script {
|
82
|
+
INFRAPOOL_EXECUTORV2_RHEL_EE_AGENT_0.agentStash name: 'eeTestResults', includes: 'spec/reports/*.xml', allowEmpty:true
|
83
|
+
}
|
21
84
|
}}
|
22
85
|
}
|
23
86
|
|
24
87
|
stage('Run tests') {
|
25
88
|
steps {
|
26
|
-
|
89
|
+
script {
|
90
|
+
INFRAPOOL_EXECUTORV2_AGENT_0.agentSh './test.sh'
|
91
|
+
INFRAPOOL_EXECUTORV2_AGENT_0.agentStash name: 'TestResults', includes: 'spec/coverage/*.xml', allowEmpty:true
|
92
|
+
}
|
27
93
|
}
|
28
94
|
}
|
95
|
+
|
29
96
|
}
|
30
97
|
}
|
31
98
|
|
32
|
-
stage('
|
33
|
-
agent { label 'executor-v2' }
|
99
|
+
stage('Release') {
|
34
100
|
when {
|
35
|
-
|
36
|
-
|
37
|
-
expression {
|
38
|
-
boolean publish = false
|
39
|
-
|
40
|
-
try {
|
41
|
-
timeout(time: 5, unit: 'MINUTES') {
|
42
|
-
input(message: 'Publish to RubyGems?')
|
43
|
-
publish = true
|
44
|
-
}
|
45
|
-
} catch (final ignore) {
|
46
|
-
publish = false
|
47
|
-
}
|
48
|
-
|
49
|
-
return publish
|
50
|
-
}
|
101
|
+
expression {
|
102
|
+
MODE == "RELEASE"
|
51
103
|
}
|
52
104
|
}
|
53
105
|
|
54
106
|
steps {
|
55
|
-
|
56
|
-
|
57
|
-
|
107
|
+
script {
|
108
|
+
release(INFRAPOOL_EXECUTORV2_AGENT_0) { billOfMaterialsDirectory, assetDirectory, toolsDirectory ->
|
109
|
+
// Publish release artifacts to all the appropriate locations
|
110
|
+
// Copy any artifacts to assetDirectory to attach them to the Github release
|
111
|
+
|
112
|
+
// Publish container images to internal registry
|
113
|
+
INFRAPOOL_EXECUTORV2_AGENT_0.agentSh "summon ${toolsDirectory}/bin/publish-rubygem slosilo"
|
114
|
+
|
115
|
+
INFRAPOOL_EXECUTORV2_AGENT_0.agentSh "cp slosilo*.gem ${assetDirectory}"
|
116
|
+
}
|
117
|
+
}
|
58
118
|
}
|
59
119
|
}
|
60
120
|
}
|
@@ -64,12 +124,11 @@ pipeline {
|
|
64
124
|
dir('ee-results'){
|
65
125
|
unstash 'eeTestResults'
|
66
126
|
}
|
127
|
+
unstash 'TestResults'
|
67
128
|
junit 'spec/reports/*.xml, ee-results/spec/reports/*.xml'
|
68
129
|
cobertura coberturaReportFile: 'spec/coverage/coverage.xml'
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
cleanupAndNotify(currentBuild.currentResult)
|
130
|
+
codacy action: 'reportCoverage', filePath: "spec/coverage/coverage.xml"
|
131
|
+
releaseInfraPoolAgent(".infrapool/release_agents")
|
73
132
|
}
|
74
133
|
}
|
75
134
|
}
|
data/dev/Dockerfile.dev
ADDED
data/lib/slosilo/symmetric.rb
CHANGED
@@ -5,6 +5,7 @@ module Slosilo
|
|
5
5
|
|
6
6
|
def initialize
|
7
7
|
@cipher = OpenSSL::Cipher.new 'aes-256-gcm' # NB: has to be lower case for whatever reason.
|
8
|
+
@cipher_mutex = Mutex.new
|
8
9
|
end
|
9
10
|
|
10
11
|
# This lets us do a final sanity check in migrations from older encryption versions
|
@@ -13,14 +14,18 @@ module Slosilo
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def encrypt plaintext, opts = {}
|
16
|
-
|
17
|
-
|
18
|
-
@
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
# All of these operations in OpenSSL must occur atomically, so we
|
18
|
+
# synchronize their access to make this step thread-safe.
|
19
|
+
@cipher_mutex.synchronize do
|
20
|
+
@cipher.reset
|
21
|
+
@cipher.encrypt
|
22
|
+
@cipher.key = (opts[:key] or raise("missing :key option"))
|
23
|
+
@cipher.iv = iv = random_iv
|
24
|
+
@cipher.auth_data = opts[:aad] || "" # Nothing good happens if you set this to nil, or don't set it at all
|
25
|
+
ctext = @cipher.update(plaintext) + @cipher.final
|
26
|
+
tag = @cipher.auth_tag(TAG_LENGTH)
|
27
|
+
"#{VERSION_MAGIC}#{tag}#{iv}#{ctext}"
|
28
|
+
end
|
24
29
|
end
|
25
30
|
|
26
31
|
def decrypt ciphertext, opts = {}
|
@@ -28,19 +33,23 @@ module Slosilo
|
|
28
33
|
|
29
34
|
raise "Invalid version magic: expected #{VERSION_MAGIC} but was #{version}" unless version == VERSION_MAGIC
|
30
35
|
|
31
|
-
|
32
|
-
|
33
|
-
@
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
36
|
+
# All of these operations in OpenSSL must occur atomically, so we
|
37
|
+
# synchronize their access to make this step thread-safe.
|
38
|
+
@cipher_mutex.synchronize do
|
39
|
+
@cipher.reset
|
40
|
+
@cipher.decrypt
|
41
|
+
@cipher.key = opts[:key]
|
42
|
+
@cipher.iv = iv
|
43
|
+
@cipher.auth_tag = tag
|
44
|
+
@cipher.auth_data = opts[:aad] || ""
|
45
|
+
@cipher.update(ctext) + @cipher.final
|
46
|
+
end
|
38
47
|
end
|
39
|
-
|
48
|
+
|
40
49
|
def random_iv
|
41
50
|
@cipher.random_iv
|
42
51
|
end
|
43
|
-
|
52
|
+
|
44
53
|
def random_key
|
45
54
|
@cipher.random_key
|
46
55
|
end
|
data/lib/slosilo/version.rb
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
# Copyright 2013-2021 Conjur Inc.
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4
|
+
# this software and associated documentation files (the "Software"), to deal in
|
5
|
+
# the Software without restriction, including without limitation the rights to
|
6
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
7
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
8
|
+
# subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
15
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
16
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
17
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
18
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
19
|
+
|
1
20
|
module Slosilo
|
2
|
-
VERSION =
|
3
|
-
end
|
21
|
+
VERSION = File.read(File.expand_path('../../VERSION', __dir__))
|
22
|
+
end
|
data/publish.sh
ADDED
data/secrets.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
RUBYGEMS_API_KEY: !var rubygems/api-key
|
data/slosilo.gemspec
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
begin
|
3
3
|
require File.expand_path('../lib/slosilo/version', __FILE__)
|
4
|
+
# require File.expand_path('./lib/slosilo/version.rb', __FILE__)
|
4
5
|
rescue LoadError
|
5
6
|
# so that bundle can be run without the app code
|
6
7
|
module Slosilo
|
@@ -13,7 +14,7 @@ Gem::Specification.new do |gem|
|
|
13
14
|
gem.email = ["divided.mind@gmail.com"]
|
14
15
|
gem.description = %q{This gem provides an easy way of storing and retrieving encryption keys in the database.}
|
15
16
|
gem.summary = %q{Store SSL keys in a database}
|
16
|
-
gem.homepage = ""
|
17
|
+
gem.homepage = "https://github.cyberng.com/Conjur-Enterprise/slosilo/"
|
17
18
|
gem.license = "MIT"
|
18
19
|
|
19
20
|
gem.files = `git ls-files`.split($\)
|
@@ -24,13 +25,15 @@ Gem::Specification.new do |gem|
|
|
24
25
|
gem.version = Slosilo::VERSION
|
25
26
|
gem.required_ruby_version = '>= 3.0.0'
|
26
27
|
|
27
|
-
gem.add_development_dependency 'rake'
|
28
|
-
gem.add_development_dependency 'rspec', '~> 3.0'
|
29
|
-
gem.add_development_dependency 'ci_reporter_rspec'
|
30
|
-
gem.add_development_dependency 'simplecov'
|
31
|
-
gem.add_development_dependency 'simplecov-cobertura'
|
32
|
-
gem.add_development_dependency 'io-grab', '~> 0.0.1'
|
33
|
-
gem.add_development_dependency 'sequel' # for sequel tests
|
34
|
-
gem.add_development_dependency 'sqlite3' # for sequel tests
|
35
|
-
gem.add_development_dependency '
|
28
|
+
gem.add_development_dependency 'rake', '~> 13.0'
|
29
|
+
gem.add_development_dependency 'rspec', '~> 3.0' ###
|
30
|
+
gem.add_development_dependency 'ci_reporter_rspec', '~> 1.0'
|
31
|
+
gem.add_development_dependency 'simplecov', '~> 0.22'
|
32
|
+
gem.add_development_dependency 'simplecov-cobertura', '~> 2.0'
|
33
|
+
gem.add_development_dependency 'io-grab', '~> 0.0.1' ###
|
34
|
+
gem.add_development_dependency 'sequel', '~> 5.0' # for sequel tests
|
35
|
+
gem.add_development_dependency 'sqlite3', '~> 1.6' # for sequel tests
|
36
|
+
gem.add_development_dependency 'bigdecimal', '~> 3.0' # for activesupport
|
37
|
+
gem.add_development_dependency 'activesupport', '~> 7.0' # for convenience in specs
|
36
38
|
end
|
39
|
+
|
data/spec/symmetric_spec.rb
CHANGED
@@ -14,8 +14,29 @@ describe Slosilo::Symmetric do
|
|
14
14
|
expect(subject.encrypt(plaintext, key: key, aad: auth_data)).to eq(ciphertext)
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
describe '#decrypt' do
|
19
|
+
|
20
|
+
it "doesn't fail when called by multiple threads" do
|
21
|
+
threads = []
|
22
|
+
|
23
|
+
begin
|
24
|
+
# Verify we can successfuly decrypt using many threads without OpenSSL
|
25
|
+
# errors.
|
26
|
+
1000.times do
|
27
|
+
threads << Thread.new do
|
28
|
+
100.times do
|
29
|
+
expect(
|
30
|
+
subject.decrypt(ciphertext, key: key, aad: auth_data)
|
31
|
+
).to eq(plaintext)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
ensure
|
36
|
+
threads.each(&:join)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
19
40
|
it "decrypts with AES-256-GCM" do
|
20
41
|
expect(subject.decrypt(ciphertext, key: key, aad: auth_data)).to eq(plaintext)
|
21
42
|
end
|
@@ -56,7 +77,7 @@ describe Slosilo::Symmetric do
|
|
56
77
|
end
|
57
78
|
end
|
58
79
|
end
|
59
|
-
|
80
|
+
|
60
81
|
describe '#random_iv' do
|
61
82
|
it "generates a random iv" do
|
62
83
|
expect_any_instance_of(OpenSSL::Cipher).to receive(:random_iv).and_return :iv
|
data/test.sh
CHANGED
@@ -1,27 +1,8 @@
|
|
1
1
|
#!/bin/bash -xe
|
2
2
|
|
3
|
-
iid=slosilo-test-$(date +%s)
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
WORKDIR /app
|
8
|
-
COPY Gemfile slosilo.gemspec ./
|
9
|
-
RUN bundle
|
10
|
-
COPY . ./
|
11
|
-
RUN bundle
|
12
|
-
EOF
|
4
|
+
echo "==> Docker Run"
|
5
|
+
docker run --rm --volume $PWD:/app --workdir /app cyberark/ubuntu-ruby-builder bash -c 'git config --global --add safe.directory /app && bundle && ls -ltra && bundle exec rake jenkins' || :
|
13
6
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
cid=$(cat $cidfile)
|
18
|
-
|
19
|
-
docker cp $cid:/app/spec/reports spec/
|
20
|
-
docker cp $cid:/app/coverage spec
|
21
|
-
|
22
|
-
docker rm $cid
|
23
|
-
|
24
|
-
# untag, will use cache next time if available but no junk will be left
|
25
|
-
docker rmi $iid
|
26
|
-
|
27
|
-
rm $cidfile
|
7
|
+
echo "==> CP Coverage to Spec"
|
8
|
+
cp -r coverage spec
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slosilo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.2.pre.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rafał Rzepecki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '13.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '13.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,44 +42,44 @@ dependencies:
|
|
42
42
|
name: ci_reporter_rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
47
|
+
version: '1.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
54
|
+
version: '1.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: simplecov
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '0.22'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '0.22'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: simplecov-cobertura
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
75
|
+
version: '2.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
82
|
+
version: '2.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: io-grab
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,44 +98,58 @@ dependencies:
|
|
98
98
|
name: sequel
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
103
|
+
version: '5.0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
110
|
+
version: '5.0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: sqlite3
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.6'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.6'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: bigdecimal
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
131
|
+
version: '3.0'
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- - "
|
136
|
+
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
138
|
+
version: '3.0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: activesupport
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - "
|
143
|
+
- - "~>"
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
145
|
+
version: '7.0'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - "
|
150
|
+
- - "~>"
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
152
|
+
version: '7.0'
|
139
153
|
description: This gem provides an easy way of storing and retrieving encryption keys
|
140
154
|
in the database.
|
141
155
|
email:
|
@@ -144,7 +158,6 @@ executables: []
|
|
144
158
|
extensions: []
|
145
159
|
extra_rdoc_files: []
|
146
160
|
files:
|
147
|
-
- ".dockerignore"
|
148
161
|
- ".github/CODEOWNERS"
|
149
162
|
- ".gitignore"
|
150
163
|
- ".gitleaks.toml"
|
@@ -157,6 +170,8 @@ files:
|
|
157
170
|
- README.md
|
158
171
|
- Rakefile
|
159
172
|
- SECURITY.md
|
173
|
+
- dev/Dockerfile.dev
|
174
|
+
- dev/docker-compose.yml
|
160
175
|
- lib/slosilo.rb
|
161
176
|
- lib/slosilo/adapters/abstract_adapter.rb
|
162
177
|
- lib/slosilo/adapters/file_adapter.rb
|
@@ -173,7 +188,8 @@ files:
|
|
173
188
|
- lib/slosilo/symmetric.rb
|
174
189
|
- lib/slosilo/version.rb
|
175
190
|
- lib/tasks/slosilo.rake
|
176
|
-
- publish
|
191
|
+
- publish.sh
|
192
|
+
- secrets.yml
|
177
193
|
- slosilo.gemspec
|
178
194
|
- spec/encrypted_attributes_spec.rb
|
179
195
|
- spec/file_adapter_spec.rb
|
@@ -186,7 +202,7 @@ files:
|
|
186
202
|
- spec/spec_helper.rb
|
187
203
|
- spec/symmetric_spec.rb
|
188
204
|
- test.sh
|
189
|
-
homepage:
|
205
|
+
homepage: https://github.cyberng.com/Conjur-Enterprise/slosilo/
|
190
206
|
licenses:
|
191
207
|
- MIT
|
192
208
|
metadata: {}
|
@@ -201,11 +217,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
201
217
|
version: 3.0.0
|
202
218
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
203
219
|
requirements:
|
204
|
-
- - "
|
220
|
+
- - ">"
|
205
221
|
- !ruby/object:Gem::Version
|
206
|
-
version:
|
222
|
+
version: 1.3.1
|
207
223
|
requirements: []
|
208
|
-
rubygems_version: 3.
|
224
|
+
rubygems_version: 3.4.10
|
209
225
|
signing_key:
|
210
226
|
specification_version: 4
|
211
227
|
summary: Store SSL keys in a database
|
data/.dockerignore
DELETED
data/publish-rubygem.sh
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
#!/bin/bash -e
|
2
|
-
|
3
|
-
docker pull registry.tld/conjurinc/publish-rubygem
|
4
|
-
|
5
|
-
docker run -i --rm -v $PWD:/src -w /src alpine/git clean -fxd
|
6
|
-
|
7
|
-
summon --yaml "RUBYGEMS_API_KEY: !var rubygems/api-key" \
|
8
|
-
docker run --rm --env-file @SUMMONENVFILE -v "$(pwd)":/opt/src \
|
9
|
-
registry.tld/conjurinc/publish-rubygem slosilo
|
10
|
-
|
11
|
-
docker run -i --rm -v $PWD:/src -w /src alpine/git clean -fxd
|