summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--leap_cli.gemspec1
-rw-r--r--lib/leap_cli/config/macros.rb12
2 files changed, 13 insertions, 0 deletions
diff --git a/leap_cli.gemspec b/leap_cli.gemspec
index 829309a..d0b9a99 100644
--- a/leap_cli.gemspec
+++ b/leap_cli.gemspec
@@ -70,6 +70,7 @@ spec = Gem::Specification.new do |s|
s.add_runtime_dependency('ya2yaml') # pure ruby yaml, so we can better control output. see https://github.com/afunai/ya2yaml
s.add_runtime_dependency('json_pure') # pure ruby json, so we can better control output.
s.add_runtime_dependency('versionomy') # compare version strings
+ s.add_runtime_dependency('base32') # base32 encoding
##
## DEPENDENCIES for VENDORED GEMS
diff --git a/lib/leap_cli/config/macros.rb b/lib/leap_cli/config/macros.rb
index 63dce97..2eabdd0 100644
--- a/lib/leap_cli/config/macros.rb
+++ b/lib/leap_cli/config/macros.rb
@@ -6,6 +6,8 @@
# This module is included in Config::Object
#
+require 'base32'
+
module LeapCli; module Config
module Macros
##
@@ -130,6 +132,16 @@ module LeapCli; module Config
@manager.secrets.set(name, Util::Secret.generate(length), @node[:environment])
end
+ # inserts a base32 encoded secret
+ def base32_secret(name, length=20)
+ @manager.secrets.set(name, Base32.encode(Util::Secret.generate(length)), @node[:environment])
+ end
+
+ # Picks a random obfsproxy port from given range
+ def rand_range(name, range)
+ @manager.secrets.set(name, rand(range), @node[:environment])
+ end
+
#
# inserts an hexidecimal secret string, generating it if needed.
#