keybox 1.0.0
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/CHANGES +14 -0
- data/COPYING +22 -0
- data/README +132 -0
- data/bin/keybox +18 -0
- data/bin/kpg +19 -0
- data/data/chargrams.txt +8432 -0
- data/lib/keybox.rb +29 -0
- data/lib/keybox/application/base.rb +114 -0
- data/lib/keybox/application/password_generator.rb +131 -0
- data/lib/keybox/application/password_safe.rb +410 -0
- data/lib/keybox/cipher.rb +6 -0
- data/lib/keybox/convert.rb +1 -0
- data/lib/keybox/convert/csv.rb +96 -0
- data/lib/keybox/digest.rb +13 -0
- data/lib/keybox/entry.rb +200 -0
- data/lib/keybox/error.rb +5 -0
- data/lib/keybox/password_hash.rb +33 -0
- data/lib/keybox/randomizer.rb +193 -0
- data/lib/keybox/storage.rb +2 -0
- data/lib/keybox/storage/container.rb +307 -0
- data/lib/keybox/storage/record.rb +103 -0
- data/lib/keybox/string_generator.rb +194 -0
- data/lib/keybox/term_io.rb +163 -0
- data/lib/keybox/uuid.rb +86 -0
- data/spec/base_app_spec.rb +56 -0
- data/spec/convert_csv_spec.rb +46 -0
- data/spec/entry_spec.rb +63 -0
- data/spec/keybox_app_spec.rb +268 -0
- data/spec/kpg_app_spec.rb +132 -0
- data/spec/password_hash_spec.rb +11 -0
- data/spec/randomizer_spec.rb +116 -0
- data/spec/storage_container_spec.rb +99 -0
- data/spec/storage_record_spec.rb +63 -0
- data/spec/string_generator_spec.rb +114 -0
- data/spec/uuid_spec.rb +74 -0
- metadata +83 -0
    
        data/spec/uuid_spec.rb
    ADDED
    
    | @@ -0,0 +1,74 @@ | |
| 1 | 
            +
            require 'keybox/uuid'
         | 
| 2 | 
            +
            context "UUID class" do
         | 
| 3 | 
            +
                specify "should have 16 bytes" do
         | 
| 4 | 
            +
                    uuid = Keybox::UUID.new
         | 
| 5 | 
            +
                    uuid.bytes.size.should == 16 
         | 
| 6 | 
            +
                end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                specify "as an array should have 16 members" do
         | 
| 9 | 
            +
                    uuid = Keybox::UUID.new
         | 
| 10 | 
            +
                    uuid.to_a.size.should == 16
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                specify "array elements should have values between 0 and 256 " do
         | 
| 14 | 
            +
                    uuid = Keybox::UUID.new
         | 
| 15 | 
            +
                    uuid.to_a.each do |b|
         | 
| 16 | 
            +
                        b.should_satisfy { |s| s.between?(0,256) }
         | 
| 17 | 
            +
                    end
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                specify "as a string should match regex" do
         | 
| 21 | 
            +
                    regex = Keybox::UUID::REGEX
         | 
| 22 | 
            +
                    uuid  = Keybox::UUID.new
         | 
| 23 | 
            +
                    uuid.to_s.should_match(regex)
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                specify "initialized with a string should give a valid uuid" do
         | 
| 27 | 
            +
                    s      = "0123456789abcdef"
         | 
| 28 | 
            +
                    s_a    = s.unpack("C*")
         | 
| 29 | 
            +
                    s_uuid = sprintf(Keybox::UUID::FORMAT,*s_a)
         | 
| 30 | 
            +
                    uuid = Keybox::UUID.new(s)
         | 
| 31 | 
            +
                    uuid.to_s.should == s_uuid
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                specify "initialized with a string in the format of a uuid is valid " do
         | 
| 35 | 
            +
                    s = "c8b5a23a-2507-4834-ab19-60f2cb2a5271"
         | 
| 36 | 
            +
                    uuid = Keybox::UUID.new(s)
         | 
| 37 | 
            +
                    uuid.to_s.should == s
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
                
         | 
| 40 | 
            +
                specify "not enough bytes should throw an expeption" do
         | 
| 41 | 
            +
                    s = "0123456789"
         | 
| 42 | 
            +
                    lambda { Keybox::UUID.new(s) }.should_raise ArgumentError
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                specify "invalid uuid string should throw an exception" do
         | 
| 46 | 
            +
                    s = "z8b5a23a-2507-4834-ab19-60f2cb2a5271"
         | 
| 47 | 
            +
                    lambda { Keybox::UUID.new(s) }.should_raise ArgumentError
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                specify "initialing with a non-string raises an exception" do
         | 
| 51 | 
            +
                    lambda { Keybox::UUID.new(42) }.should_raise ArgumentError
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                specify "should equal another keybox created with same data" do
         | 
| 55 | 
            +
                    s = "c8b5a23a-2507-4834-ab19-60f2cb2a5271"
         | 
| 56 | 
            +
                    one = Keybox::UUID.new(s)
         | 
| 57 | 
            +
                    two = Keybox::UUID.new(s)
         | 
| 58 | 
            +
                    one.should == two
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                specify "should equal a string that is the same uuid" do
         | 
| 62 | 
            +
                    s = "c8b5a23a-2507-4834-ab19-60f2cb2a5271"
         | 
| 63 | 
            +
                    one = Keybox::UUID.new(s)
         | 
| 64 | 
            +
                    one.should == s
         | 
| 65 | 
            +
                end
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                specify "should not equal some other uuid or random string" do
         | 
| 68 | 
            +
                    s = "c8b5a23a-2507-4834-ab19-60f2cb2a5271"
         | 
| 69 | 
            +
                    one = Keybox::UUID.new(s)
         | 
| 70 | 
            +
                    one.should_not_eql Keybox::UUID.new
         | 
| 71 | 
            +
                    one.should_not_eql "i love ruby"
         | 
| 72 | 
            +
                    one.should_not_eql 4
         | 
| 73 | 
            +
                end
         | 
| 74 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,83 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification 
         | 
| 2 | 
            +
            rubygems_version: 0.9.0
         | 
| 3 | 
            +
            specification_version: 1
         | 
| 4 | 
            +
            name: keybox
         | 
| 5 | 
            +
            version: !ruby/object:Gem::Version 
         | 
| 6 | 
            +
              version: 1.0.0
         | 
| 7 | 
            +
            date: 2007-01-14 00:00:00 -07:00
         | 
| 8 | 
            +
            summary: Keybox is a set of command line applications and ruby libraries for secure password storage and password generation.
         | 
| 9 | 
            +
            require_paths: 
         | 
| 10 | 
            +
            - lib
         | 
| 11 | 
            +
            - lib
         | 
| 12 | 
            +
            email: jeremy@hinegardner.org
         | 
| 13 | 
            +
            homepage: http://keybox.rubyforge.org
         | 
| 14 | 
            +
            rubyforge_project: keybox
         | 
| 15 | 
            +
            description: Keybox is a set of command line applications and ruby libraries for secure password storage and password generation.
         | 
| 16 | 
            +
            autorequire: 
         | 
| 17 | 
            +
            default_executable: 
         | 
| 18 | 
            +
            bindir: bin
         | 
| 19 | 
            +
            has_rdoc: true
         | 
| 20 | 
            +
            required_ruby_version: !ruby/object:Gem::Version::Requirement 
         | 
| 21 | 
            +
              requirements: 
         | 
| 22 | 
            +
              - - ">"
         | 
| 23 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 24 | 
            +
                  version: 0.0.0
         | 
| 25 | 
            +
              version: 
         | 
| 26 | 
            +
            platform: ruby
         | 
| 27 | 
            +
            signing_key: 
         | 
| 28 | 
            +
            cert_chain: 
         | 
| 29 | 
            +
            post_install_message: Try `keybox --help` for more information
         | 
| 30 | 
            +
            authors: 
         | 
| 31 | 
            +
            - Jeremy Hinegardner
         | 
| 32 | 
            +
            files: 
         | 
| 33 | 
            +
            - data/chargrams.txt
         | 
| 34 | 
            +
            - spec/kpg_app_spec.rb
         | 
| 35 | 
            +
            - spec/convert_csv_spec.rb
         | 
| 36 | 
            +
            - spec/storage_record_spec.rb
         | 
| 37 | 
            +
            - spec/storage_container_spec.rb
         | 
| 38 | 
            +
            - spec/uuid_spec.rb
         | 
| 39 | 
            +
            - spec/base_app_spec.rb
         | 
| 40 | 
            +
            - spec/entry_spec.rb
         | 
| 41 | 
            +
            - spec/keybox_app_spec.rb
         | 
| 42 | 
            +
            - spec/string_generator_spec.rb
         | 
| 43 | 
            +
            - spec/password_hash_spec.rb
         | 
| 44 | 
            +
            - spec/randomizer_spec.rb
         | 
| 45 | 
            +
            - README
         | 
| 46 | 
            +
            - CHANGES
         | 
| 47 | 
            +
            - COPYING
         | 
| 48 | 
            +
            - lib/keybox.rb
         | 
| 49 | 
            +
            - lib/keybox/cipher.rb
         | 
| 50 | 
            +
            - lib/keybox/term_io.rb
         | 
| 51 | 
            +
            - lib/keybox/error.rb
         | 
| 52 | 
            +
            - lib/keybox/randomizer.rb
         | 
| 53 | 
            +
            - lib/keybox/uuid.rb
         | 
| 54 | 
            +
            - lib/keybox/digest.rb
         | 
| 55 | 
            +
            - lib/keybox/convert.rb
         | 
| 56 | 
            +
            - lib/keybox/entry.rb
         | 
| 57 | 
            +
            - lib/keybox/string_generator.rb
         | 
| 58 | 
            +
            - lib/keybox/password_hash.rb
         | 
| 59 | 
            +
            - lib/keybox/storage.rb
         | 
| 60 | 
            +
            - lib/keybox/storage/container.rb
         | 
| 61 | 
            +
            - lib/keybox/storage/record.rb
         | 
| 62 | 
            +
            - lib/keybox/convert/csv.rb
         | 
| 63 | 
            +
            - lib/keybox/application/base.rb
         | 
| 64 | 
            +
            - lib/keybox/application/password_generator.rb
         | 
| 65 | 
            +
            - lib/keybox/application/password_safe.rb
         | 
| 66 | 
            +
            - bin/keybox
         | 
| 67 | 
            +
            - bin/kpg
         | 
| 68 | 
            +
            test_files: []
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            rdoc_options: 
         | 
| 71 | 
            +
            - --line-numbers
         | 
| 72 | 
            +
            - --inline-source
         | 
| 73 | 
            +
            extra_rdoc_files: []
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            executables: 
         | 
| 76 | 
            +
            - keybox
         | 
| 77 | 
            +
            - kpg
         | 
| 78 | 
            +
            extensions: []
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            requirements: []
         | 
| 81 | 
            +
             | 
| 82 | 
            +
            dependencies: []
         | 
| 83 | 
            +
             |