diff options
| author | Micah <micah@leap.se> | 2016-05-10 14:48:26 -0400 | 
|---|---|---|
| committer | Micah <micah@leap.se> | 2016-05-10 14:48:26 -0400 | 
| commit | 86c85582065c391aa13c0b9b397dfd1aa2e2ac7b (patch) | |
| tree | 7c027409a517d862864bf3650f4a8a66f615162d /lib/leap_cli/macros/secrets.rb | |
| parent | 70b1c648b94e6c007b9241a4661f33881e74485f (diff) | |
| parent | 66b4c6b5ec6fe2f242020845fe92715ae2cdcc1e (diff) | |
Merge tag '0.8.0'
Release 0.8.0
Diffstat (limited to 'lib/leap_cli/macros/secrets.rb')
| -rw-r--r-- | lib/leap_cli/macros/secrets.rb | 39 | 
1 files changed, 39 insertions, 0 deletions
| diff --git a/lib/leap_cli/macros/secrets.rb b/lib/leap_cli/macros/secrets.rb new file mode 100644 index 00000000..8d1feb55 --- /dev/null +++ b/lib/leap_cli/macros/secrets.rb @@ -0,0 +1,39 @@ +# encoding: utf-8 + +require 'base32' + +module LeapCli +  module Macro + +    # +    # inserts a named secret, generating it if needed. +    # +    # manager.export_secrets should be called later to capture any newly generated secrets. +    # +    # +length+ is the character length of the generated password. +    # +    def secret(name, length=32) +      manager.secrets.set(name, @node.environment) { Util::Secret.generate(length) } +    end + +    # inserts a base32 encoded secret +    def base32_secret(name, length=20) +      manager.secrets.set(name, @node.environment) { Base32.encode(Util::Secret.generate(length)) } +    end + +    # Picks a random obfsproxy port from given range +    def rand_range(name, range) +      manager.secrets.set(name, @node.environment) { rand(range) } +    end + +    # +    # inserts an hexidecimal secret string, generating it if needed. +    # +    # +bit_length+ is the bits in the secret, (ie length of resulting hex string will be bit_length/4) +    # +    def hex_secret(name, bit_length=128) +      manager.secrets.set(name, @node.environment) { Util::Secret.generate_hex(bit_length) } +    end + +  end +end
\ No newline at end of file | 
