fastlane-plugin-cryptex 0.1.3 → 0.1.4
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/bin/cryptex +1 -1
- data/lib/fastlane/plugin/cryptex.rb +1 -1
- data/lib/fastlane/plugin/cryptex/actions/cryptex_generate_keystore.rb +1 -1
- data/lib/fastlane/plugin/cryptex/change_password.rb +2 -2
- data/lib/fastlane/plugin/cryptex/commands_generator.rb +1 -2
- data/lib/fastlane/plugin/cryptex/encrypt.rb +10 -7
- data/lib/fastlane/plugin/cryptex/git_helper.rb +6 -6
- data/lib/fastlane/plugin/cryptex/options.rb +7 -1
- data/lib/fastlane/plugin/cryptex/runner.rb +3 -3
- data/lib/fastlane/plugin/cryptex/version.rb +1 -1
- metadata +18 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e7e52be1d3bf837c665852e86e4dce1dfaaf4aa
|
4
|
+
data.tar.gz: 8efee788f405cccd7b5e10489417aa74c2cd0d56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f8e4e6fc4492c29add0fd73b1a4d779cb4cddad4af97d5f9c8a305d4f41624ed9948090fd1b9d36f018745b437112d719bfc48546f29c237da04371877022be
|
7
|
+
data.tar.gz: 693215239f21ce0c622924f9efbd43a176157dbb9ea4e7d3b8d1b1988a9cdad86524aa28c994cae4628e1636750a0c0a243a11f739e9d221fc58ed7793b9154d
|
data/bin/cryptex
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
module Fastlane
|
3
3
|
module Cryptex
|
4
|
-
ROOT = Pathname.new(File.expand_path('
|
4
|
+
ROOT = Pathname.new(File.expand_path('cryptex', __dir__))
|
5
5
|
# Return all .rb files inside the "actions" and "helper" directory
|
6
6
|
def self.all_classes
|
7
7
|
Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
|
@@ -3,7 +3,7 @@ module Fastlane
|
|
3
3
|
class CryptexGenerateKeystoreAction < Action
|
4
4
|
def self.run(params)
|
5
5
|
require "fileutils"
|
6
|
-
cmd = "keytool -genkey -v -keystore #{File.expand_path(params[:destination])} -storepass #{params[:password]} -keypass #{params[:password]} -alias #{params[:alias]} -dname 'CN=#{params[:fullname]},L=#{params[:city]}' -validity
|
6
|
+
cmd = "keytool -genkey -v -keystore #{File.expand_path(params[:destination])} -storepass #{params[:password]} -keypass #{params[:password]} -alias #{params[:alias]} -dname 'CN=#{params[:fullname]},L=#{params[:city]}' -validity 10000"
|
7
7
|
FastlaneCore::CommandExecutor.execute(command: cmd,
|
8
8
|
print_all: true,
|
9
9
|
print_command: true)
|
@@ -5,12 +5,12 @@ module Fastlane
|
|
5
5
|
to ||= ChangePassword.ask_password(message: "New passphrase for Git Repo: ", confirm: false)
|
6
6
|
from ||= ChangePassword.ask_password(message: "Old passphrase for Git Repo: ", confirm: true)
|
7
7
|
GitHelper.clear_changes
|
8
|
-
workspace = GitHelper.clone(params[:git_url], params[:shallow_clone], manual_password: from, skip_docs: params[:skip_docs], branch: params[:git_branch])
|
8
|
+
workspace = GitHelper.clone(params[:git_url], params[:shallow_clone], manual_password: from, skip_docs: params[:skip_docs], branch: params[:git_branch], digest: params[:digest])
|
9
9
|
Encrypt.new.clear_password(params[:git_url])
|
10
10
|
Encrypt.new.store_password(params[:git_url], to)
|
11
11
|
|
12
12
|
message = "[fastlane] Changed passphrase"
|
13
|
-
GitHelper.commit_changes(workspace, message, params[:git_url], params[:git_branch])
|
13
|
+
GitHelper.commit_changes(workspace, message, params[:git_url], params[:git_branch], digest: params[:digest])
|
14
14
|
end
|
15
15
|
|
16
16
|
def self.ask_password(message: "Passphrase for Git Repo: ", confirm: true)
|
@@ -11,7 +11,6 @@ module Fastlane
|
|
11
11
|
FastlaneCore::UpdateChecker.start_looking_for_update('cryptex')
|
12
12
|
self.new.run
|
13
13
|
ensure
|
14
|
-
|
15
14
|
FastlaneCore::UpdateChecker.show_update_status('cryptex', Cryptex::VERSION)
|
16
15
|
end
|
17
16
|
|
@@ -67,7 +66,7 @@ module Fastlane
|
|
67
66
|
c.action do |args, options|
|
68
67
|
params = FastlaneCore::Configuration.create(Match::Options.available_options, options.__hash__)
|
69
68
|
params.load_configuration_file("Cryptexfile")
|
70
|
-
decrypted_repo = Cryptex::GitHelper.clone(params[:git_url], params[:shallow_clone], branch: params[:git_branch])
|
69
|
+
decrypted_repo = Cryptex::GitHelper.clone(params[:git_url], params[:shallow_clone], branch: params[:git_branch], digest: params[:digest])
|
71
70
|
UI.success "Repo is at: '#{decrypted_repo}'"
|
72
71
|
end
|
73
72
|
end
|
@@ -35,27 +35,29 @@ module Fastlane
|
|
35
35
|
Security::InternetPassword.delete(server: server_name(git_url))
|
36
36
|
end
|
37
37
|
|
38
|
-
def encrypt_repo(path: nil, git_url: nil)
|
38
|
+
def encrypt_repo(path: nil, git_url: nil, digest: nil)
|
39
39
|
iterate(path) do |current|
|
40
40
|
crypt(path: current,
|
41
41
|
password: password(git_url),
|
42
|
-
encrypt: true
|
42
|
+
encrypt: true,
|
43
|
+
digest: digest)
|
43
44
|
UI.success "🔒 Encrypted '#{File.basename(current)}'" if $verbose
|
44
45
|
end
|
45
46
|
UI.success "🔒 Successfully encrypted certificates repo"
|
46
47
|
end
|
47
48
|
|
48
|
-
def decrypt_repo(path: nil, git_url: nil, manual_password: nil)
|
49
|
+
def decrypt_repo(path: nil, git_url: nil, manual_password: nil, digest: nil)
|
49
50
|
iterate(path) do |current|
|
50
51
|
begin
|
51
52
|
crypt(path: current,
|
52
53
|
password: manual_password || password(git_url),
|
53
|
-
encrypt: false
|
54
|
-
|
54
|
+
encrypt: false,
|
55
|
+
digest: digest)
|
56
|
+
rescue StandardError
|
55
57
|
UI.error "Couldn't decrypt the repo, please make sure you enter the right password!"
|
56
58
|
UI.user_error!("Invalid password passed via 'CRYPTEX_PASSWORD'") if ENV["CRYPTEX_PASSWORD"]
|
57
59
|
clear_password(git_url)
|
58
|
-
decrypt_repo(path: path, git_url: git_url)
|
60
|
+
decrypt_repo(path: path, git_url: git_url, digest: digest)
|
59
61
|
return
|
60
62
|
end
|
61
63
|
UI.success "🔓 Decrypted '#{File.basename(current)}'" if $verbose
|
@@ -72,7 +74,7 @@ module Fastlane
|
|
72
74
|
|
73
75
|
private
|
74
76
|
|
75
|
-
def crypt(path: nil, password: nil, encrypt: true)
|
77
|
+
def crypt(path: nil, password: nil, encrypt: true, digest: 'sha256')
|
76
78
|
if password.to_s.strip.length.zero? && encrypt
|
77
79
|
UI.user_error!("No password supplied")
|
78
80
|
end
|
@@ -80,6 +82,7 @@ module Fastlane
|
|
80
82
|
tmpfile = File.join(Dir.mktmpdir, "temporary")
|
81
83
|
command = ["openssl aes-256-cbc"]
|
82
84
|
command << "-k #{password.shellescape}"
|
85
|
+
command << "-md #{digest}"
|
83
86
|
command << "-in #{path.shellescape}"
|
84
87
|
command << "-out #{tmpfile.shellescape}"
|
85
88
|
command << "-a"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Cryptex
|
3
3
|
class GitHelper
|
4
|
-
def self.clone(git_url, shallow_clone, manual_password: nil, skip_docs: false, branch: "master")
|
4
|
+
def self.clone(git_url, shallow_clone, manual_password: nil, skip_docs: false, branch: "master", digest: nil)
|
5
5
|
return @dir if @dir
|
6
6
|
|
7
7
|
@dir = Dir.mktmpdir
|
@@ -14,7 +14,7 @@ module Fastlane
|
|
14
14
|
FastlaneCore::CommandExecutor.execute(command: "GIT_TERMINAL_PROMPT=0 #{command}",
|
15
15
|
print_all: $verbose,
|
16
16
|
print_command: $verbose)
|
17
|
-
rescue
|
17
|
+
rescue StandardError
|
18
18
|
UI.error("Error cloning Repo")
|
19
19
|
UI.error("Run the following command manually to make sure you're properly authenticated:")
|
20
20
|
UI.command(command)
|
@@ -26,7 +26,7 @@ module Fastlane
|
|
26
26
|
checkout_branch(branch) unless branch == "master"
|
27
27
|
|
28
28
|
copy_readme(@dir) unless skip_docs
|
29
|
-
Cryptex::Encrypt.new.decrypt_repo(path: @dir, git_url: git_url, manual_password: manual_password)
|
29
|
+
Cryptex::Encrypt.new.decrypt_repo(path: @dir, git_url: git_url, manual_password: manual_password, digest: digest)
|
30
30
|
|
31
31
|
return @dir
|
32
32
|
end
|
@@ -46,11 +46,11 @@ module Fastlane
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
def self.commit_changes(path, message, git_url, branch = "master")
|
49
|
+
def self.commit_changes(path, message, git_url, branch = "master", digest: nil)
|
50
50
|
Dir.chdir(path) do
|
51
51
|
return if `git status`.include?("nothing to commit")
|
52
52
|
|
53
|
-
Cryptex::Encrypt.new.encrypt_repo(path: path, git_url: git_url)
|
53
|
+
Cryptex::Encrypt.new.encrypt_repo(path: path, git_url: git_url, digest: digest)
|
54
54
|
File.write("cryptex_version.txt", Cryptex::VERSION) # unencrypted
|
55
55
|
|
56
56
|
commands = []
|
@@ -68,7 +68,7 @@ module Fastlane
|
|
68
68
|
end
|
69
69
|
FileUtils.rm_rf(path)
|
70
70
|
@dir = nil
|
71
|
-
rescue => ex
|
71
|
+
rescue StandardError => ex
|
72
72
|
UI.error("Couldn't commit or push changes back to git...")
|
73
73
|
UI.error(ex)
|
74
74
|
end
|
@@ -77,7 +77,13 @@ module Fastlane
|
|
77
77
|
env_name: "CRYPTEX_SKIP_DOCS",
|
78
78
|
description: "Skip generation of a README.md for the created git repository",
|
79
79
|
is_string: false,
|
80
|
-
default_value: false)
|
80
|
+
default_value: false),
|
81
|
+
FastlaneCore::ConfigItem.new(key: :digest,
|
82
|
+
short_option: "-m",
|
83
|
+
env_name: "CRYPTEX_DIGEST",
|
84
|
+
description: "Specify the Message Digest to use for crypt routines",
|
85
|
+
is_string: true,
|
86
|
+
default_value: "md5")
|
81
87
|
]
|
82
88
|
end
|
83
89
|
end
|
@@ -11,7 +11,7 @@ module Fastlane
|
|
11
11
|
if params[:hash].kind_of?(String)
|
12
12
|
begin
|
13
13
|
params[:hash] = JSON.parse(params[:hash])
|
14
|
-
rescue
|
14
|
+
rescue StandardError
|
15
15
|
# might contain sensitive informatio
|
16
16
|
UI.user_error!("Supplied :hash isn't in json format")
|
17
17
|
end
|
@@ -86,7 +86,7 @@ module Fastlane
|
|
86
86
|
hide_keys: [],
|
87
87
|
title: "Summary for cryptex #{Cryptex::VERSION}")
|
88
88
|
@git_changed = false
|
89
|
-
params[:workspace] = GitHelper.clone(params[:git_url], params[:shallow_clone], skip_docs: params[:skip_docs], branch: params[:git_branch])
|
89
|
+
params[:workspace] = GitHelper.clone(params[:git_url], params[:shallow_clone], skip_docs: params[:skip_docs], branch: params[:git_branch], digest: params[:digest])
|
90
90
|
@params = params
|
91
91
|
if params[:type] == "import_env"
|
92
92
|
return import_env(params)
|
@@ -113,7 +113,7 @@ module Fastlane
|
|
113
113
|
ensure
|
114
114
|
if git_changed
|
115
115
|
message = GitHelper.generate_commit_message(params)
|
116
|
-
GitHelper.commit_changes(params[:workspace], message, params[:git_url], params[:git_branch])
|
116
|
+
GitHelper.commit_changes(params[:workspace], message, params[:git_url], params[:git_branch], digest: params[:digest])
|
117
117
|
end
|
118
118
|
GitHelper.clear_changes
|
119
119
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-cryptex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Helmut Januschka
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 4.3.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,35 +39,35 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: fastlane
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.105.2
|
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:
|
54
|
+
version: 1.105.2
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: match
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.8.1
|
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:
|
68
|
+
version: 0.8.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: pry
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -95,33 +95,33 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: '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:
|
110
|
+
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: rubocop
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0
|
117
|
+
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0
|
124
|
+
version: '0'
|
125
125
|
description:
|
126
126
|
email: h.januschka@krone.at
|
127
127
|
executables:
|
@@ -171,3 +171,4 @@ signing_key:
|
|
171
171
|
specification_version: 4
|
172
172
|
summary: fastlane Crypt Store Git repo
|
173
173
|
test_files: []
|
174
|
+
has_rdoc:
|