diff options
Diffstat (limited to 'controllers')
-rw-r--r-- | controllers/interfaces/cli.rb | 23 | ||||
-rw-r--r-- | controllers/security.rb | 19 |
2 files changed, 42 insertions, 0 deletions
diff --git a/controllers/interfaces/cli.rb b/controllers/interfaces/cli.rb index da027f7..5967c75 100644 --- a/controllers/interfaces/cli.rb +++ b/controllers/interfaces/cli.rb @@ -12,6 +12,28 @@ module NanoBot when 'version' puts NanoBot::GEM[:version] exit + when 'security' + result = NanoBot.security + + if result[:encryption] + puts "\n✅ Encryption is enabled and properly working." + puts ' It means that your data is cyrptographed stored in your disk.' + else + puts "\n❌ Encryption is not being utilized to store your content." + puts ' This means that your data can be easily read because it is stored in plaintext.' + end + + if result[:password] + puts "\n✅ A password is being used for the encrypted content." + puts ' This means that only those who possess the password can decrypt your data.' + else + puts "\n❌ No password is being used for the encrypted content." + puts ' This means that anyone can easily decrypt your data.' + end + + puts '' + + exit when 'help', '', nil puts '' puts "Nano Bots #{NanoBot::GEM[:version]}" @@ -34,6 +56,7 @@ module NanoBot puts ' nb - STATE-KEY state' puts ' nb cartridge.yml STATE-KEY state' puts '' + puts ' nb security' puts ' nb version' puts ' nb help' puts '' diff --git a/controllers/security.rb b/controllers/security.rb new file mode 100644 index 0000000..94cc9ff --- /dev/null +++ b/controllers/security.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require_relative '../components/crypto' + +module NanoBot + module Controllers + module Security + def self.check + password = ENV.fetch('NANO_BOTS_ENCRYPTION_PASSWORD', nil) + password = 'UNSAFE' unless password && password != '' + + { + encryption: Components::Crypto.encrypt('SAFE') != 'SAFE', + password: password != 'UNSAFE' + } + end + end + end +end |