rubyment 0.4.25420984 → 0.4.25421155

Sign up to get free protection for your applications and to get access to all the features.
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