safe 0.5 → 0.7

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.
data/README CHANGED
@@ -33,33 +33,11 @@ bar
33
33
  This is a one-time operation.
34
34
 
35
35
  == License ==
36
- Safe is licensed under the BSD License. Copyright (c) 2007, Rob Warner
37
-
38
- All rights reserved.
39
-
40
- Redistribution and use in source and binary forms, with or without modification,
41
- are permitted provided that the following conditions are met:
42
-
43
- * Redistributions of source code must retain the above copyright notice,
44
- this list of conditions and the following disclaimer.
45
- * Redistributions in binary form must reproduce the above copyright notice,
46
- this list of conditions and the following disclaimer in the documentation
47
- and/or other materials provided with the distribution.
48
- * Neither the name of Rob Warner nor the names of its contributors may be
49
- used to endorse or promote products derived from this software without
50
- specific prior written permission.
51
-
52
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
53
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
54
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
55
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
56
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
57
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
58
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
59
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
60
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
61
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
62
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
+ Safe is licensed under the Eclipse Public License. Copyright (c) 2007, 2010 Rob Warner
37
+ All rights reserved. This program and the accompanying materials
38
+ are made available under the terms of the Eclipse Public License v1.0
39
+ which accompanies this distribution, and is available at
40
+ http://www.eclipse.org/legal/epl-v10.html
63
41
 
64
42
  == Installation ==
65
43
  To install safe, you must have Ruby and Ruby Gems installed. From the command
@@ -88,6 +66,8 @@ Windows:
88
66
  0.3 -- September 7, 2007
89
67
  0.4 -- April 4, 2008
90
68
  0.5 -- April 6, 2008
69
+ 0.6 -- December 16, 2010
70
+ 0.7 -- February 18, 2011
91
71
 
92
72
  See Release-Notes.txt for more information
93
73
 
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ gem_spec = Gem::Specification.new do |spec|
7
7
  spec.summary = 'A command-line password storage program'
8
8
  spec.description = %{safe safely stores all your user IDs and passwords,
9
9
  encrypted by a password of your choosing.}
10
- spec.version = '0.5'
10
+ spec.version = '0.7'
11
11
 
12
12
  # Author information
13
13
  spec.author = 'Rob Warner'
@@ -47,7 +47,9 @@ task :web do
47
47
  readme = f.read
48
48
  f.close
49
49
 
50
- # Transform the headings
50
+ # Transform as necessary
51
+ readme.gsub!(/</, '&lt;')
52
+ readme.gsub!(/>/, '&gt;')
51
53
  readme.gsub!(/===(.*?)===/, '<h1>\1</h1>')
52
54
  readme.gsub!(/==(.*?)==/, '<h2>\1</h2>')
53
55
  readme.gsub!(/\n/, '<br />')
@@ -1,5 +1,15 @@
1
1
  Safe Release Notes
2
2
  ------------------
3
+ 0.7 (February 18, 2011)
4
+ -----------------------
5
+ [FIXED] Monkey patch crypt/blowfish so that safe runs under ruby 1.9
6
+
7
+ 0.6 (December 16, 2010)
8
+ -----------------------
9
+ [FIXED] Fix paths for required files to include current directory (1.9)
10
+ [FIXED] Fix when statements to use then instead of : (1.9)
11
+ Note that safe still doesn't work under Ruby 1.9, as the Blowfish gem still doesn't work under 1.9
12
+
3
13
  0.5 (April 6, 2008)
4
14
  -------------------
5
15
  [FIXED] Version number in help output corrected
data/bin/safe CHANGED
@@ -4,7 +4,10 @@
4
4
  # safe: Safe Storage for Passwords.
5
5
  # Stores user IDs and passwords, encrypted by a password.
6
6
  #
7
- # Copyright (c) 2007, Rob Warner
7
+ # Copyright (c) 2007, 2011 Rob Warner
8
+ # rwarner@grailbox.com
9
+ # http://grailbox.com
10
+ # @hoop33
8
11
  #
9
12
  # All rights reserved.
10
13
  #
@@ -34,14 +37,15 @@
34
37
  ########################################################################
35
38
  require 'rubygems'
36
39
  require 'optparse'
37
- require File.join(File.dirname(__FILE__), '..', 'lib', 'safeentry')
38
- require File.join(File.dirname(__FILE__), '..', 'lib', 'safefile')
39
- require File.join(File.dirname(__FILE__), '..', 'lib', 'safeutils')
40
+
41
+ require File.join('.', File.dirname(__FILE__), '..', 'lib', 'safeentry')
42
+ require File.join('.', File.dirname(__FILE__), '..', 'lib', 'safefile')
43
+ require File.join('.', File.dirname(__FILE__), '..', 'lib', 'safeutils')
40
44
 
41
45
  # TODO support list <NAME> without -l flag
42
46
 
43
47
  class Safe
44
- SAFE_VERSION = '0.5'
48
+ SAFE_VERSION = '0.7'
45
49
 
46
50
  # Gets the command line
47
51
  def self.get_command_line
@@ -92,7 +96,7 @@ class Safe
92
96
  def self.run
93
97
  options = get_command_line
94
98
  if options[:action] == 'version'
95
- puts "Safe version #{SAFE_VERSION}, Copyright (C) 2007 Rob Warner"
99
+ puts "Safe version #{SAFE_VERSION}, Copyright (C) 2011 Rob Warner"
96
100
  else
97
101
  begin
98
102
  dir = SafeUtils::get_safe_dir
@@ -100,14 +104,14 @@ class Safe
100
104
 
101
105
  # Perform the requested action
102
106
  case options[:action]
103
- when 'list': file.list(options[:name])
104
- when 'add': file.add(options[:name])
105
- when 'delete': file.delete(options[:name])
106
- when 'count': puts file.count
107
- when 'password': file.change_password
108
- when 'import': SafeUtils::import(file, options[:name])
109
- when 'diff': SafeUtils::diff(file, options[:name])
110
- when 'merge': SafeUtils::merge(file, options[:name])
107
+ when 'list' then file.list(options[:name])
108
+ when 'add' then file.add(options[:name])
109
+ when 'delete' then file.delete(options[:name])
110
+ when 'count' then puts file.count
111
+ when 'password' then file.change_password
112
+ when 'import' then SafeUtils::import(file, options[:name])
113
+ when 'diff' then SafeUtils::diff(file, options[:name])
114
+ when 'merge' then SafeUtils::merge(file, options[:name])
111
115
  end
112
116
  rescue
113
117
  abort $!.message
@@ -0,0 +1,31 @@
1
+ module Crypt
2
+ class Blowfish
3
+ def setup_blowfish()
4
+ @sBoxes = Array.new(4) { |i| INITIALSBOXES[i].clone }
5
+ @pArray = INITIALPARRAY.clone
6
+ keypos = 0
7
+ 0.upto(17) { |i|
8
+ data = 0
9
+ 4.times {
10
+ data = ((data << 8) | @key[keypos].ord) % ULONG
11
+ keypos = (keypos.next) % @key.length
12
+ }
13
+ @pArray[i] = (@pArray[i] ^ data) % ULONG
14
+ }
15
+ l = 0
16
+ r = 0
17
+ 0.step(17, 2) { |i|
18
+ l, r = encrypt_pair(l, r)
19
+ @pArray[i] = l
20
+ @pArray[i+1] = r
21
+ }
22
+ 0.upto(3) { |i|
23
+ 0.step(255, 2) { |j|
24
+ l, r = encrypt_pair(l, r)
25
+ @sBoxes[i][j] = l
26
+ @sBoxes[i][j+1] = r
27
+ }
28
+ }
29
+ end
30
+ end
31
+ end
@@ -1,6 +1,9 @@
1
1
  ########################################################################
2
2
  # safediff.rb
3
- # Copyright (c) 2007, Rob Warner
3
+ # Copyright (c) 2007, 2011 Rob Warner
4
+ # rwarner@grailbox.com
5
+ # http://grailbox.com
6
+ # @hoop33
4
7
  #
5
8
  # All rights reserved.
6
9
  #
@@ -1,6 +1,9 @@
1
1
  ########################################################################
2
2
  # safeentry.rb
3
- # Copyright (c) 2007, Rob Warner
3
+ # Copyright (c) 2007, 2011 Rob Warner
4
+ # rwarner@grailbox.com
5
+ # http://grailbox.com
6
+ # @hoop33
4
7
  #
5
8
  # All rights reserved.
6
9
  #
@@ -1,6 +1,9 @@
1
1
  ########################################################################
2
2
  # safefile.rb
3
- # Copyright (c) 2007, Rob Warner
3
+ # Copyright (c) 2007, 2011 Rob Warner
4
+ # rwarner@grailbox.com
5
+ # http://grailbox.com
6
+ # @hoop33
4
7
  #
5
8
  # All rights reserved.
6
9
  #
@@ -29,11 +32,13 @@
29
32
  # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
33
  ########################################################################
31
34
  require 'rubygems'
32
- require 'crypt/blowfish'
33
- require 'digest/sha2'
34
35
  require 'rexml/document'
35
36
  require 'fileutils'
36
37
  require 'base64'
38
+ require 'digest/sha2'
39
+ require 'crypt/blowfish'
40
+
41
+ require File.join(File.dirname(__FILE__), 'blowfish')
37
42
 
38
43
  include REXML
39
44
 
@@ -1,6 +1,9 @@
1
1
  ########################################################################
2
2
  # safeutils.rb
3
- # Copyright (c) 2007, Rob Warner
3
+ # Copyright (c) 2007, 2011 Rob Warner
4
+ # rwarner@grailbox.com
5
+ # http://grailbox.com
6
+ # @hoop33
4
7
  #
5
8
  # All rights reserved.
6
9
  #
@@ -122,10 +125,8 @@ class SafeUtils
122
125
  def SafeUtils.do_merge(safe_file, diffs, override_master = false)
123
126
  diffs.each do |diff|
124
127
  case diff.operation
125
- when SafeDiff::MASTER: # Do nothing
126
- when SafeDiff::OTHER: # Add to safe file
127
- safe_file.insert(diff.other.name, diff.other.id, diff.other.password)
128
- when SafeDiff::CHANGE: # Update safe file
128
+ when SafeDiff::OTHER then safe_file.insert(diff.other.name, diff.other.id, diff.other.password)
129
+ when SafeDiff::CHANGE then # Update safe file
129
130
  if override_master || replace_master?(diff)
130
131
  safe_file.insert(diff.other.name, diff.other.id, diff.other.password)
131
132
  end
@@ -7,7 +7,7 @@
7
7
  # http://www.eclipse.org/legal/epl-v10.html
8
8
  ########################################################################
9
9
 
10
- require File.join(File.dirname(__FILE__), '..', 'lib', 'safediff')
10
+ require File.join('.', File.dirname(__FILE__), '..', 'lib', 'safediff')
11
11
  require 'test/unit'
12
12
 
13
13
  class SafeDiffTest < Test::Unit::TestCase
@@ -49,4 +49,4 @@ class SafeDiffTest < Test::Unit::TestCase
49
49
  assert_equal diff.operation, SafeDiff::CHANGE
50
50
  assert_equal diff.to_s, "#{SafeDiff::CHANGE}\n< #{e1.to_s}\n---\n> #{e5.to_s}\n"
51
51
  end
52
- end
52
+ end
@@ -7,7 +7,7 @@
7
7
  # http://www.eclipse.org/legal/epl-v10.html
8
8
  ########################################################################
9
9
 
10
- require File.join(File.dirname(__FILE__), '..', 'lib', 'safeentry')
10
+ require File.join('.', File.dirname(__FILE__), '..', 'lib', 'safeentry')
11
11
  require 'test/unit'
12
12
 
13
13
  class SafeDirTest < Test::Unit::TestCase
@@ -7,8 +7,8 @@
7
7
  # http://www.eclipse.org/legal/epl-v10.html
8
8
  ########################################################################
9
9
 
10
- require File.join(File.dirname(__FILE__), '..', 'lib', 'safefile')
11
- require File.join(File.dirname(__FILE__), '..', 'lib', 'safeentry')
10
+ require File.join('.', File.dirname(__FILE__), '..', 'lib', 'safefile')
11
+ require File.join('.', File.dirname(__FILE__), '..', 'lib', 'safeentry')
12
12
  require 'test/unit'
13
13
  require 'fileutils'
14
14
 
@@ -7,7 +7,7 @@
7
7
  # http://www.eclipse.org/legal/epl-v10.html
8
8
  ########################################################################
9
9
 
10
- require File.join(File.dirname(__FILE__), '..', 'lib', 'safeutils')
10
+ require File.join('.', File.dirname(__FILE__), '..', 'lib', 'safeutils')
11
11
  require 'test/unit'
12
12
  require 'fileutils'
13
13
 
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: safe
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.5"
4
+ prerelease:
5
+ version: "0.7"
5
6
  platform: ruby
6
7
  authors:
7
8
  - Rob Warner
@@ -9,28 +10,34 @@ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2008-04-06 00:00:00 -04:00
13
+ date: 2011-02-18 00:00:00 -05:00
13
14
  default_executable: safe
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: crypt
17
- version_requirement:
18
- version_requirements: !ruby/object:Gem::Requirement
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
19
21
  requirements:
20
22
  - - ">="
21
23
  - !ruby/object:Gem::Version
22
24
  version: 1.1.4
23
- version:
25
+ type: :runtime
26
+ version_requirements: *id001
24
27
  - !ruby/object:Gem::Dependency
25
28
  name: highline
26
- version_requirement:
27
- version_requirements: !ruby/object:Gem::Requirement
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
28
32
  requirements:
29
33
  - - ">="
30
34
  - !ruby/object:Gem::Version
31
35
  version: 1.4.0
32
- version:
33
- description: safe safely stores all your user IDs and passwords, encrypted by a password of your choosing.
36
+ type: :runtime
37
+ version_requirements: *id002
38
+ description: |-
39
+ safe safely stores all your user IDs and passwords,
40
+ encrypted by a password of your choosing.
34
41
  email: rwarner@grailbox.com
35
42
  executables:
36
43
  - safe
@@ -40,6 +47,7 @@ extra_rdoc_files: []
40
47
 
41
48
  files:
42
49
  - README
50
+ - lib/blowfish.rb
43
51
  - lib/safediff.rb
44
52
  - lib/safeentry.rb
45
53
  - lib/safefile.rb
@@ -47,31 +55,38 @@ files:
47
55
  - index.html
48
56
  - Rakefile
49
57
  - Release-Notes.txt
50
- has_rdoc: false
58
+ - test/tc_safediff.rb
59
+ - test/tc_safeentry.rb
60
+ - test/tc_safefile.rb
61
+ - test/tc_safeutils.rb
62
+ - bin/safe
63
+ has_rdoc: true
51
64
  homepage: http://safe.rubyforge.org/
65
+ licenses: []
66
+
52
67
  post_install_message:
53
68
  rdoc_options: []
54
69
 
55
70
  require_paths:
56
71
  - lib
57
72
  required_ruby_version: !ruby/object:Gem::Requirement
73
+ none: false
58
74
  requirements:
59
75
  - - ">="
60
76
  - !ruby/object:Gem::Version
61
77
  version: "0"
62
- version:
63
78
  required_rubygems_version: !ruby/object:Gem::Requirement
79
+ none: false
64
80
  requirements:
65
81
  - - ">="
66
82
  - !ruby/object:Gem::Version
67
83
  version: "0"
68
- version:
69
84
  requirements: []
70
85
 
71
86
  rubyforge_project: safe
72
- rubygems_version: 1.0.1
87
+ rubygems_version: 1.5.0
73
88
  signing_key:
74
- specification_version: 2
89
+ specification_version: 3
75
90
  summary: A command-line password storage program
76
91
  test_files:
77
92
  - test/tc_safediff.rb