diff --git a/Gemfile b/Gemfile index bf103c0a6..f0e44e632 100644 --- a/Gemfile +++ b/Gemfile @@ -26,6 +26,7 @@ gem 'smbhash' gem 'digest-sha3' gem 'digest-whirlpool' gem 'digest-siphash' +gem 'scrypt' #development only gems go here group :test, :development do diff --git a/Gemfile.lock b/Gemfile.lock index 880a651bd..89e1a12db 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,6 +27,10 @@ GEM faraday_middleware (0.12.2) faraday (>= 0.7.4, < 1.0) fast_gettext (1.1.2) + ffi (1.9.25) + ffi-compiler (1.0.1) + ffi (>= 1.0.0) + rake forgery (0.7.0) gettext (3.2.9) locale (>= 2.0.5) @@ -88,6 +92,8 @@ GEM chunky_png (~> 1.0) rsync (1.0.9) rubyzip (1.2.2) + scrypt (3.0.6) + ffi-compiler (>= 1.0, < 2.0) semantic_puppet (1.0.2) smbhash (1.0.2) spidr (0.6.0) @@ -130,6 +136,7 @@ DEPENDENCIES redcarpet rmagick rqrcode + scrypt smbhash sshkey wordlist diff --git a/modules/encoders/hash/scrypt/manifests/.no_puppet b/modules/encoders/hash/scrypt/manifests/.no_puppet new file mode 100644 index 000000000..e69de29bb diff --git a/modules/encoders/hash/scrypt/scrypt.pp b/modules/encoders/hash/scrypt/scrypt.pp new file mode 100644 index 000000000..e69de29bb diff --git a/modules/encoders/hash/scrypt/secgen_local/local.rb b/modules/encoders/hash/scrypt/secgen_local/local.rb new file mode 100644 index 000000000..4abbc92d4 --- /dev/null +++ b/modules/encoders/hash/scrypt/secgen_local/local.rb @@ -0,0 +1,16 @@ +#!/usr/bin/ruby +require_relative '../../../../../lib/objects/local_hash_encoder.rb' + +class SCryptEncoder < HashEncoder + def initialize + super + self.module_name = 'SCrypt Encoder' + end + + def hash_function(string) + require 'scrypt' + SCrypt::Password.create(string) + end +end + +SCryptEncoder.new.run \ No newline at end of file diff --git a/modules/encoders/hash/scrypt/secgen_metadata.xml b/modules/encoders/hash/scrypt/secgen_metadata.xml new file mode 100644 index 000000000..a7301343d --- /dev/null +++ b/modules/encoders/hash/scrypt/secgen_metadata.xml @@ -0,0 +1,22 @@ + + + + SCrypt Encoder + Thomas Shaw + MIT + Generates an SCrypt hash for each of the strings. + + hash + scrypt + linux + windows + + strings_to_encode + salt + return_salts + + string + + \ No newline at end of file