salsa20 0.1.1 → 0.1.2
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.
- checksums.yaml +5 -13
- data/.travis.yml +5 -3
- data/CHANGELOG +4 -0
- data/README.rdoc +1 -1
- data/salsa20.gemspec +2 -1
- data/test/salsa20_test.rb +20 -20
- metadata +33 -17
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
MmI5NDkyMjdjY2RmODllYTk3M2RmNjFjZTM2MDg5NmJjZmU5ZjBiYQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5d966534c16ad97b8054b7c1ebb287c7543e6ea2
|
4
|
+
data.tar.gz: b963cde653fa19981b09cd435dc573e257efa267
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
MmIxMmFjNzE5ZTIwZGEyZDc3ZjA1YjQxZDZhNmY2YTg3MGU4YzY3ODg1NzRj
|
11
|
-
MjJhNjRiZDcwNDEzOTNiOWYwZWZlMDljNmM5MjBlMGUzYmY4NzA=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MmE3NTVlNTU3N2FhYjllZDU4ODRiYmMxN2ExMDRjYTZhMTk3ODY0YWUxZTE4
|
14
|
-
ZmRmNDJlYWNjYmQ1YjBhNmViNzg1NDIzMzgzZDU1ZDJmNzk4YTk2NmFmYWFm
|
15
|
-
OTc3OTRhMzIzMjhiMDE2YmEyNjdjNjM0OGVlYjg0NmQwNGE2NjY=
|
6
|
+
metadata.gz: ee0265ac7eb9b5bf4e2d3ac77530e031b097937ed565b2d9dd30d1340170c19117180733d82ddd1e549900425f4c244609074e1f56de5fdd65c345b15e884bdb
|
7
|
+
data.tar.gz: 1c17f1ac17617fc45d72e77d4eb6bc29e834e325cd79de443c62e677c4499c3eeffeb5aa99affb8723c80a608546d803d722bf51d90b591c34b352571b005cf1
|
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
data/salsa20.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'salsa20'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.2'
|
4
4
|
|
5
5
|
s.summary = "Salsa20 stream cipher algorithm."
|
6
6
|
s.description = <<-EOF
|
@@ -13,6 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
|
14
14
|
s.test_files = `git ls-files test`.split("\n")
|
15
15
|
|
16
|
+
s.add_development_dependency 'minitest', "~> 5.0"
|
16
17
|
s.add_development_dependency 'rake', '~> 10.0'
|
17
18
|
s.add_development_dependency 'rake-compiler', '~> 0.9'
|
18
19
|
s.add_development_dependency 'rdoc', '~> 4.0'
|
data/test/salsa20_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path(File.join(File.dirname(__FILE__), "..", "lib", "salsa20"))
|
2
|
-
require '
|
2
|
+
require 'minitest/autorun'
|
3
3
|
|
4
|
-
class Salsa20Test < Test
|
4
|
+
class Salsa20Test < MiniTest::Test
|
5
5
|
def test_salsa20_keystream
|
6
6
|
expected = "@\x8D\x94\xF48f9Z)\e\xBD\xB8?\xCC\xEC\xD6g\xB3;\xC7ev\v\xCA]\xEE\x19I;\xA2<\\^\xCEFQn\x94B{+\x06\xE2\x85\x9F\xEC\xBBp@\xA4\x8F\xD8~\xD3\x12\x197\f\xD7'\x8C\xC8\xEF\xFC"
|
7
7
|
if expected.respond_to?(:force_encoding)
|
@@ -11,31 +11,31 @@ class Salsa20Test < Test::Unit::TestCase
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_bad_number_of_arguments_for_new_should_raise_exception
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
assert_raises(ArgumentError) { Salsa20.new }
|
15
|
+
assert_raises(ArgumentError) { Salsa20.new("K"*32) }
|
16
|
+
assert_raises(ArgumentError) { Salsa20.new("K"*32, "I"*8, "third") }
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_non_string_arguments_for_new_should_raise_exception
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
assert_raises(TypeError) { Salsa20.new([1,2,3], "I"*8) }
|
21
|
+
assert_raises(TypeError) { Salsa20.new("K"*32, { "a" => "b"}) }
|
22
|
+
assert_raises(TypeError) { Salsa20.new([1,2,3], { "a" => "b"}) }
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_invalid_key_length_should_raise_exception
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
26
|
+
assert_raises(Salsa20::InvalidKeyError) { Salsa20.new("K"*15, "I"*8) }
|
27
|
+
Salsa20.new("K"*16, "I"*8) # No exception
|
28
|
+
assert_raises(Salsa20::InvalidKeyError) { Salsa20.new("K"*17, "I"*8) }
|
29
|
+
assert_raises(Salsa20::InvalidKeyError) { Salsa20.new("K"*31, "I"*8) }
|
30
|
+
Salsa20.new("K"*32, "I"*8) # No exception
|
31
|
+
assert_raises(Salsa20::InvalidKeyError) { Salsa20.new("K"*33, "I"*8) }
|
32
32
|
end
|
33
33
|
|
34
34
|
def test_invalid_iv_length_should_raise_exception
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
35
|
+
assert_raises(Salsa20::InvalidKeyError) { Salsa20.new("K"*32, "I"*7) }
|
36
|
+
Salsa20.new("K"*32, "I"*8) # No exception
|
37
|
+
assert_raises(Salsa20::InvalidKeyError) { Salsa20.new("K"*32, "I"*9) }
|
38
|
+
assert_raises(Salsa20::InvalidKeyError) { Salsa20.new("K"*32, "I"*16) }
|
39
39
|
end
|
40
40
|
|
41
41
|
def test_accessors
|
@@ -106,7 +106,7 @@ class Salsa20Test < Test::Unit::TestCase
|
|
106
106
|
assert_equal false, encryptor.closed?
|
107
107
|
encryptor.encrypt(part1)
|
108
108
|
assert_equal true, encryptor.closed?
|
109
|
-
|
109
|
+
assert_raises(Salsa20::EngineClosedError) { encryptor.encrypt(part2) }
|
110
110
|
end
|
111
111
|
|
112
112
|
def test_seek
|
@@ -128,7 +128,7 @@ class Salsa20Test < Test::Unit::TestCase
|
|
128
128
|
the_key = "K"*32
|
129
129
|
the_iv = "L"*8
|
130
130
|
encryptor = Salsa20.new(the_key, the_iv)
|
131
|
-
|
131
|
+
assert_raises(Salsa20::IllegalSeekError) { encryptor.seek(65) }
|
132
132
|
end
|
133
133
|
|
134
134
|
def test_seek_and_position_to_large_positions
|
metadata
CHANGED
@@ -1,59 +1,74 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: salsa20
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dov Murik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: minitest
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rake
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
|
-
- - ~>
|
31
|
+
- - "~>"
|
18
32
|
- !ruby/object:Gem::Version
|
19
33
|
version: '10.0'
|
20
34
|
type: :development
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
|
-
- - ~>
|
38
|
+
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '10.0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake-compiler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
|
-
- - ~>
|
45
|
+
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
47
|
version: '0.9'
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
|
-
- - ~>
|
52
|
+
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '0.9'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rdoc
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- - ~>
|
59
|
+
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: '4.0'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- - ~>
|
66
|
+
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '4.0'
|
55
|
-
description:
|
56
|
-
|
69
|
+
description: |2
|
70
|
+
Salsa20 is a stream cipher algorithm designed by Daniel Bernstein. salsa20-ruby provides
|
71
|
+
a simple Ruby wrapper.
|
57
72
|
email: dov.murik@gmail.com
|
58
73
|
executables: []
|
59
74
|
extensions:
|
@@ -64,8 +79,8 @@ extra_rdoc_files:
|
|
64
79
|
- CHANGELOG
|
65
80
|
- lib/salsa20.rb
|
66
81
|
files:
|
67
|
-
- .gitignore
|
68
|
-
- .travis.yml
|
82
|
+
- ".gitignore"
|
83
|
+
- ".travis.yml"
|
69
84
|
- CHANGELOG
|
70
85
|
- Gemfile
|
71
86
|
- LICENSE
|
@@ -87,27 +102,28 @@ licenses:
|
|
87
102
|
metadata: {}
|
88
103
|
post_install_message:
|
89
104
|
rdoc_options:
|
90
|
-
- --title
|
105
|
+
- "--title"
|
91
106
|
- salsa20
|
92
|
-
- --main
|
107
|
+
- "--main"
|
93
108
|
- README.rdoc
|
94
109
|
require_paths:
|
95
110
|
- lib
|
96
111
|
required_ruby_version: !ruby/object:Gem::Requirement
|
97
112
|
requirements:
|
98
|
-
- -
|
113
|
+
- - ">="
|
99
114
|
- !ruby/object:Gem::Version
|
100
115
|
version: '0'
|
101
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
117
|
requirements:
|
103
|
-
- -
|
118
|
+
- - ">="
|
104
119
|
- !ruby/object:Gem::Version
|
105
120
|
version: '0'
|
106
121
|
requirements: []
|
107
122
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
123
|
+
rubygems_version: 2.4.8
|
109
124
|
signing_key:
|
110
125
|
specification_version: 4
|
111
126
|
summary: Salsa20 stream cipher algorithm.
|
112
127
|
test_files:
|
113
128
|
- test/salsa20_test.rb
|
129
|
+
has_rdoc: true
|