rubyment 0.4.25420984 → 0.4.25421155

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rubyment.rb +49 -3
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c1f5e291429f28c7d099c4d6ebfebc3699f47e31
4
- data.tar.gz: 0dff8382093905b15535d6596dac3f0865a74176
3
+ metadata.gz: 223806d4e749c22e87f11f4d8ae60bc9fceb30fb
4
+ data.tar.gz: 001a571bbec4ff8541f1df6900991b5fbcc7614e
5
5
  SHA512:
6
- metadata.gz: '0663096e46b2f3b20ae2e3008b4bbdb6eb6e0c92fd518d25755764a887922bf5b783852ebec85946fdd52956a717d8df6f80cb3e8941061c0811c08af68dd896'
7
- data.tar.gz: 5a76242090fe6a181d262061146e165891b0e625ac4222e4f1b80f44518027161275966bec43c3040b2309beb0b259df4772beff6c6901adf4c038f70ef1c38a
6
+ metadata.gz: 0057e911dc8939e732294246c15279618c2e116ca85537d332f4a4fb7030ee0118eb6553eb30577d4fca7559f2033717c91a03d2f9dbb583653d0304fb8d425c
7
+ data.tar.gz: 5bb729c19882a52e50e20fcdbff9f930416c767f1328c4775699c3a431fef83db3996dc968653a543ee359a76eb4b62f5c10127b15ae8f0528326077118bafc3
@@ -754,11 +754,30 @@ class Rubyment
754
754
  # don't output to stdout
755
755
  def test__shell_enc_dec args=ARGV
756
756
  shell_enc ["my secret", "", "", "tijolo22", "", ""]
757
- # shell_dec will read from the output file:
758
757
  judgement = ( shell_dec ["", "", "tijolo22"] || true) rescue false
759
758
  end
760
759
 
761
760
 
761
+ # an alternative interface to dec -- reads password if
762
+ # nil or empty.
763
+ #
764
+ # @param [Array] args Defaults to +ARGV+. Elements:
765
+ # * +data+ [String, nil] data to be encrypted, If empty or nil, read (without
766
+ # echo) from @memory[:stdin], which defaults to STDIN
767
+ # * +password+ [String, nil] password to be used to encryption.
768
+ # If empty or nil, read (without echo) from @memory[:stdin], which defaults to STDIN
769
+ #
770
+ # @return [TrueClass, FalseClass] depending on whether test succeeds.
771
+ def dec_interactive args=ARGV
772
+ stderr = @memory[:stderr]
773
+ iv, encrypted, base64_salt, base64_iter, password = args
774
+ stderr.print "[password]"
775
+ password = (input_single_line_non_echo [password])
776
+ stderr.puts
777
+ dec [password, iv, encrypted, nil, base64_salt, base64_iter]
778
+ end
779
+
780
+
762
781
  # test for enc and dec.
763
782
  # "" and nil are expected to be treated
764
783
  # as the same.
@@ -800,6 +819,7 @@ class Rubyment
800
819
  password = input_single_line_non_echo [password]
801
820
  base64_encrypted, base64_iv, base64_salt, base64_iter, base64_key = enc [password, data]
802
821
  dec_args = [password, base64_iv, base64_encrypted, nil, base64_salt, base64_iter]
822
+ stderr.puts "# WARNING: secrets, including password are printed here. Storing them may be a major security incident."
803
823
  stderr.puts "# programmatically:"
804
824
  stderr.puts "dec " + dec_args.to_s
805
825
  stderr.puts "# shell: "
@@ -812,6 +832,33 @@ class Rubyment
812
832
  end
813
833
 
814
834
 
835
+ # test for enc and dec_interactive.
836
+ # good idea is to use this function once with the desired
837
+ # data, password, and use the stderr output
838
+ def test__enc_dec_interactive args=ARGV
839
+ stderr = @memory[:stderr]
840
+ data, password = args
841
+ stderr.print "[data]"
842
+ data = input_multi_line_non_echo [data]
843
+ stderr.print "[password]"
844
+ password = input_single_line_non_echo [password]
845
+ stderr.puts
846
+ base64_encrypted, base64_iv, base64_salt, base64_iter, base64_key = enc [password, data]
847
+ # the output is supposed to be safe to store,
848
+ # so password is not placed in from dec_interactive_args:
849
+ dec_interactive_args = [base64_iv, base64_encrypted, base64_salt, base64_iter]
850
+ stderr.puts "# programmatically:"
851
+ stderr.puts "dec_interactive " + dec_interactive_args.to_s
852
+ stderr.puts "# shell: "
853
+ stderr.puts "#{$0} invoke_double puts dec_interactive " + (output_array_to_shell dec_interactive_args).to_s
854
+ data_plain = dec_interactive(dec_interactive_args + [password])
855
+ judgement =
856
+ [
857
+ [data, data_plain, "data"]
858
+ ].map(&method("expect_equal")).all?
859
+ end
860
+
861
+
815
862
  # gem_spec
816
863
  # args (Array like the one returned by rubyment_gem_defaults)
817
864
  # returns: a gem spec string accordingly to args
@@ -1020,8 +1067,7 @@ end
1020
1067
  # console output of gem push (String)
1021
1068
  def gem_push args=ARGV
1022
1069
  gem_spec, future_arg = args
1023
- p "gem push #{gem_spec}`"
1024
- p `gem push #{gem_spec}`
1070
+ `gem push #{gem_spec}`
1025
1071
  end
1026
1072
 
1027
1073
  # gem_uninstall
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyment
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.25420984
4
+ version: 0.4.25421155
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribamar Santarosa