slosilo 3.0.0 → 3.0.2.pre.2
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/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
|