aead 1.5.1 → 1.6.1
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/VERSION +1 -1
- data/ext/openssl/cipher/aead/aead.c +2 -2
- data/lib/aead/nonce.rb +4 -1
- data/spec/aead/cipher/aes_256_cbc_hmac_sha_256_spec.rb +8 -8
- data/spec/aead/cipher/aes_256_ctr_hmac_sha_256_spec.rb +9 -9
- data/spec/aead/cipher/aes_256_gcm_spec.rb +9 -9
- data/spec/aead/nonce_spec.rb +4 -4
- metadata +182 -190
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.6.1
|
@@ -72,7 +72,7 @@ ossl_cipher_set_aad(VALUE self, VALUE data)
|
|
72
72
|
StringValue(data);
|
73
73
|
|
74
74
|
in = (unsigned char *) RSTRING_PTR(data);
|
75
|
-
in_len =
|
75
|
+
in_len = RSTRING_LEN(data);
|
76
76
|
|
77
77
|
GetCipher(self, ctx);
|
78
78
|
|
@@ -112,7 +112,7 @@ ossl_cipher_set_tag(VALUE self, VALUE data)
|
|
112
112
|
StringValue(data);
|
113
113
|
|
114
114
|
in = (unsigned char *) RSTRING_PTR(data);
|
115
|
-
in_len =
|
115
|
+
in_len = RSTRING_LEN(data);
|
116
116
|
|
117
117
|
GetCipher(self, ctx);
|
118
118
|
|
data/lib/aead/nonce.rb
CHANGED
@@ -51,7 +51,10 @@ class AEAD::Nonce
|
|
51
51
|
#
|
52
52
|
def self.stub_for_testing!(file = Tempfile.new('ruby-aead'))
|
53
53
|
define_method :state_file_with_stub_for_testing do
|
54
|
-
|
54
|
+
path = file.path rescue file.to_s
|
55
|
+
path = Pathname.new(path)
|
56
|
+
|
57
|
+
@state_file_stubbed_for_testing ||= Pathname.new(path)
|
55
58
|
end
|
56
59
|
|
57
60
|
alias_method :state_file_without_stub_for_testing, :state_file unless
|
@@ -23,7 +23,7 @@ describe AEAD::Cipher::AES_256_CBC_HMAC_SHA_256 do
|
|
23
23
|
good_keys = [ 64, 65, 10_000 ].map {|size| SecureRandom.random_bytes(size) }
|
24
24
|
|
25
25
|
bad_keys.each do |key|
|
26
|
-
|
26
|
+
lambda { self.cipher.new(key) }.must_raise ArgumentError
|
27
27
|
end
|
28
28
|
|
29
29
|
good_keys.each do |key|
|
@@ -36,7 +36,7 @@ describe AEAD::Cipher::AES_256_CBC_HMAC_SHA_256 do
|
|
36
36
|
good_nonces = [ 16 ] .map {|size| SecureRandom.random_bytes(size) }
|
37
37
|
|
38
38
|
bad_nonces.each do |nonce|
|
39
|
-
|
39
|
+
lambda { self.subject.encrypt(nonce, self.plaintext, self.aad) }.
|
40
40
|
must_raise ArgumentError
|
41
41
|
end
|
42
42
|
|
@@ -47,8 +47,8 @@ describe AEAD::Cipher::AES_256_CBC_HMAC_SHA_256 do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'must require a non-empty plaintext' do
|
50
|
-
|
51
|
-
|
50
|
+
lambda { self.subject.encrypt(nonce, self.aad, nil) }.must_raise ArgumentError
|
51
|
+
lambda { self.subject.encrypt(nonce, self.aad, '') }.must_raise ArgumentError
|
52
52
|
end
|
53
53
|
|
54
54
|
it 'must encrypt plaintexts correctly' do
|
@@ -67,7 +67,7 @@ describe AEAD::Cipher::AES_256_CBC_HMAC_SHA_256 do
|
|
67
67
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
68
68
|
cipher = self.cipher.new key[0, 32] << twiddle(key[32, 32])
|
69
69
|
|
70
|
-
|
70
|
+
lambda { cipher.decrypt(self.nonce, self.aad, ciphertext) }.
|
71
71
|
must_raise ArgumentError
|
72
72
|
end
|
73
73
|
|
@@ -75,7 +75,7 @@ describe AEAD::Cipher::AES_256_CBC_HMAC_SHA_256 do
|
|
75
75
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
76
76
|
nonce = twiddle(self.nonce)
|
77
77
|
|
78
|
-
|
78
|
+
lambda { self.subject.decrypt(nonce, self.aad, ciphertext) }.
|
79
79
|
must_raise ArgumentError
|
80
80
|
end
|
81
81
|
|
@@ -83,7 +83,7 @@ describe AEAD::Cipher::AES_256_CBC_HMAC_SHA_256 do
|
|
83
83
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
84
84
|
ciphertext = twiddle(ciphertext)
|
85
85
|
|
86
|
-
|
86
|
+
lambda { self.subject.decrypt(self.nonce, self.aad, ciphertext) }.
|
87
87
|
must_raise ArgumentError
|
88
88
|
end
|
89
89
|
|
@@ -91,7 +91,7 @@ describe AEAD::Cipher::AES_256_CBC_HMAC_SHA_256 do
|
|
91
91
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
92
92
|
aad = twiddle(self.aad)
|
93
93
|
|
94
|
-
|
94
|
+
lambda { self.subject.decrypt(self.nonce, aad, ciphertext) }.
|
95
95
|
must_raise ArgumentError
|
96
96
|
end
|
97
97
|
|
@@ -23,7 +23,7 @@ describe AEAD::Cipher::AES_256_CTR_HMAC_SHA_256 do
|
|
23
23
|
good_keys = [ 64, 65, 10_000 ].map {|size| SecureRandom.random_bytes(size) }
|
24
24
|
|
25
25
|
bad_keys.each do |key|
|
26
|
-
|
26
|
+
lambda { self.cipher.new(key) }.must_raise ArgumentError
|
27
27
|
end
|
28
28
|
|
29
29
|
good_keys.each do |key|
|
@@ -36,7 +36,7 @@ describe AEAD::Cipher::AES_256_CTR_HMAC_SHA_256 do
|
|
36
36
|
good_nonces = [ 16 ] .map {|size| SecureRandom.random_bytes(size) }
|
37
37
|
|
38
38
|
bad_nonces.each do |nonce|
|
39
|
-
|
39
|
+
lambda { self.subject.encrypt(nonce, self.plaintext, self.aad) }.
|
40
40
|
must_raise ArgumentError
|
41
41
|
end
|
42
42
|
|
@@ -47,8 +47,8 @@ describe AEAD::Cipher::AES_256_CTR_HMAC_SHA_256 do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'must require a non-empty plaintext' do
|
50
|
-
|
51
|
-
|
50
|
+
lambda { self.subject.encrypt(nonce, self.aad, nil) }.must_raise ArgumentError
|
51
|
+
lambda { self.subject.encrypt(nonce, self.aad, '') }.must_raise ArgumentError
|
52
52
|
end
|
53
53
|
|
54
54
|
it 'must encrypt plaintexts correctly' do
|
@@ -67,7 +67,7 @@ describe AEAD::Cipher::AES_256_CTR_HMAC_SHA_256 do
|
|
67
67
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
68
68
|
cipher = self.cipher.new key[0, 32] << twiddle(key[32, 32])
|
69
69
|
|
70
|
-
|
70
|
+
lambda { cipher.decrypt(self.nonce, self.aad, ciphertext) }.
|
71
71
|
must_raise ArgumentError
|
72
72
|
end
|
73
73
|
|
@@ -75,7 +75,7 @@ describe AEAD::Cipher::AES_256_CTR_HMAC_SHA_256 do
|
|
75
75
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
76
76
|
nonce = twiddle(self.nonce)
|
77
77
|
|
78
|
-
|
78
|
+
lambda { self.subject.decrypt(nonce, self.aad, ciphertext) }.
|
79
79
|
must_raise ArgumentError
|
80
80
|
end
|
81
81
|
|
@@ -83,7 +83,7 @@ describe AEAD::Cipher::AES_256_CTR_HMAC_SHA_256 do
|
|
83
83
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
84
84
|
ciphertext = twiddle(ciphertext)
|
85
85
|
|
86
|
-
|
86
|
+
lambda { self.subject.decrypt(self.nonce, self.aad, ciphertext) }.
|
87
87
|
must_raise ArgumentError
|
88
88
|
end
|
89
89
|
|
@@ -91,7 +91,7 @@ describe AEAD::Cipher::AES_256_CTR_HMAC_SHA_256 do
|
|
91
91
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
92
92
|
aad = twiddle(self.aad)
|
93
93
|
|
94
|
-
|
94
|
+
lambda { self.subject.decrypt(self.nonce, aad, ciphertext) }.
|
95
95
|
must_raise ArgumentError
|
96
96
|
end
|
97
97
|
|
@@ -139,4 +139,4 @@ describe AEAD::Cipher::AES_256_CTR_HMAC_SHA_256 do
|
|
139
139
|
|
140
140
|
cipher.update(ciphertext) + cipher.final
|
141
141
|
end
|
142
|
-
end
|
142
|
+
end if OpenSSL::Cipher.ciphers.include?('aes-256-ctr')
|
@@ -23,7 +23,7 @@ describe AEAD::Cipher::AES_256_GCM do
|
|
23
23
|
good_keys = [ 32, 33, 256 ].map {|size| SecureRandom.random_bytes(size) }
|
24
24
|
|
25
25
|
bad_keys.each do |key|
|
26
|
-
|
26
|
+
lambda { self.cipher.new(key) }.must_raise ArgumentError
|
27
27
|
end
|
28
28
|
|
29
29
|
good_keys.each do |key|
|
@@ -36,7 +36,7 @@ describe AEAD::Cipher::AES_256_GCM do
|
|
36
36
|
good_nonces = [ 12 ] .map {|size| SecureRandom.random_bytes(size) }
|
37
37
|
|
38
38
|
bad_nonces.each do |nonce|
|
39
|
-
|
39
|
+
lambda { self.subject.encrypt(nonce, self.plaintext, self.aad) }.
|
40
40
|
must_raise ArgumentError
|
41
41
|
end
|
42
42
|
|
@@ -47,8 +47,8 @@ describe AEAD::Cipher::AES_256_GCM do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'must require a non-empty plaintext' do
|
50
|
-
|
51
|
-
|
50
|
+
lambda { self.subject.encrypt(nonce, self.aad, nil) }.must_raise ArgumentError
|
51
|
+
lambda { self.subject.encrypt(nonce, self.aad, '') }.must_raise ArgumentError
|
52
52
|
end
|
53
53
|
|
54
54
|
it 'must encrypt plaintexts correctly' do
|
@@ -67,7 +67,7 @@ describe AEAD::Cipher::AES_256_GCM do
|
|
67
67
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
68
68
|
cipher = self.cipher.new twiddle(key)
|
69
69
|
|
70
|
-
|
70
|
+
lambda { cipher.decrypt(self.nonce, self.aad, ciphertext) }.
|
71
71
|
must_raise ArgumentError
|
72
72
|
end
|
73
73
|
|
@@ -75,7 +75,7 @@ describe AEAD::Cipher::AES_256_GCM do
|
|
75
75
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
76
76
|
nonce = twiddle(self.nonce)
|
77
77
|
|
78
|
-
|
78
|
+
lambda { self.subject.decrypt(nonce, self.aad, ciphertext) }.
|
79
79
|
must_raise ArgumentError
|
80
80
|
end
|
81
81
|
|
@@ -83,7 +83,7 @@ describe AEAD::Cipher::AES_256_GCM do
|
|
83
83
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
84
84
|
ciphertext = twiddle(ciphertext)
|
85
85
|
|
86
|
-
|
86
|
+
lambda { self.subject.decrypt(self.nonce, self.aad, ciphertext) }.
|
87
87
|
must_raise ArgumentError
|
88
88
|
end
|
89
89
|
|
@@ -91,7 +91,7 @@ describe AEAD::Cipher::AES_256_GCM do
|
|
91
91
|
ciphertext = subject.encrypt(self.nonce, self.aad, self.plaintext)
|
92
92
|
aad = twiddle(self.aad)
|
93
93
|
|
94
|
-
|
94
|
+
lambda { self.subject.decrypt(self.nonce, aad, ciphertext) }.
|
95
95
|
must_raise ArgumentError
|
96
96
|
end
|
97
97
|
|
@@ -130,4 +130,4 @@ describe AEAD::Cipher::AES_256_GCM do
|
|
130
130
|
|
131
131
|
cipher.update(ciphertext).tap { cipher.verify }
|
132
132
|
end
|
133
|
-
end
|
133
|
+
end if OpenSSL::Cipher.ciphers.include?('aes-256-gcm')
|
data/spec/aead/nonce_spec.rb
CHANGED
@@ -59,7 +59,7 @@ describe AEAD::Nonce do
|
|
59
59
|
|
60
60
|
it 'must be thread-safe' do
|
61
61
|
count = subject.class::COUNTER_BATCH_SIZE * 5
|
62
|
-
thread =
|
62
|
+
thread = lambda { Set.new.tap {|s| count.times { s << subject.shift } } }
|
63
63
|
threads = 5.times.map { Thread.new(&thread) }
|
64
64
|
|
65
65
|
threads.map(&:value).inject(&:+).length.must_equal(count * 5)
|
@@ -76,7 +76,7 @@ describe AEAD::Nonce do
|
|
76
76
|
|
77
77
|
subject.shift(5)
|
78
78
|
|
79
|
-
|
79
|
+
lambda { subject.shift }.must_raise ArgumentError
|
80
80
|
end
|
81
81
|
|
82
82
|
it 'must reserve chunks of nonces in the state file' do
|
@@ -98,7 +98,7 @@ describe AEAD::Nonce do
|
|
98
98
|
io.write SecureRandom.random_bytes(count)
|
99
99
|
end
|
100
100
|
|
101
|
-
|
101
|
+
lambda { subject.shift }.must_raise ArgumentError
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
@@ -113,7 +113,7 @@ describe AEAD::Nonce do
|
|
113
113
|
].pack(subject.class::PACK_FORMAT)
|
114
114
|
end
|
115
115
|
|
116
|
-
|
116
|
+
lambda { subject.shift }.must_raise ArgumentError
|
117
117
|
end
|
118
118
|
|
119
119
|
it 'must not abort when the nonce contains a pseudo MAC address' do
|
metadata
CHANGED
@@ -1,231 +1,214 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: aead
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 6
|
9
|
+
- 1
|
10
|
+
version: 1.6.1
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Stephen Touset
|
9
14
|
autorequire:
|
10
15
|
bindir: script
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-12-11 00:00:00 -08:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
15
22
|
name: macaddr
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '1'
|
22
|
-
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
|
-
requirements:
|
26
|
+
requirements:
|
27
27
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 1
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
version: "1"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
31
36
|
name: bundler
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
38
|
-
type: :development
|
39
37
|
prerelease: false
|
40
|
-
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: cane
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
|
-
requirements:
|
51
|
-
- -
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
54
47
|
type: :development
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: cane
|
55
51
|
prerelease: false
|
56
|
-
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: guard
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
65
53
|
none: false
|
66
|
-
requirements:
|
67
|
-
- -
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
70
61
|
type: :development
|
62
|
+
version_requirements: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: guard
|
71
65
|
prerelease: false
|
72
|
-
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
67
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
version: "0"
|
86
75
|
type: :development
|
76
|
+
version_requirements: *id004
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
name: guard-minitest
|
87
79
|
prerelease: false
|
88
|
-
|
80
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
81
|
none: false
|
90
|
-
requirements:
|
91
|
-
- -
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ! '>='
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
version: "0"
|
102
89
|
type: :development
|
90
|
+
version_requirements: *id005
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: guard-yard
|
103
93
|
prerelease: false
|
104
|
-
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: markdown
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
113
95
|
none: false
|
114
|
-
requirements:
|
115
|
-
- -
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
version: "0"
|
118
103
|
type: :development
|
104
|
+
version_requirements: *id006
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: markdown
|
119
107
|
prerelease: false
|
120
|
-
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ! '>='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: minitest
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
108
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
129
109
|
none: false
|
130
|
-
requirements:
|
131
|
-
- -
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
hash: 3
|
114
|
+
segments:
|
115
|
+
- 0
|
116
|
+
version: "0"
|
134
117
|
type: :development
|
118
|
+
version_requirements: *id007
|
119
|
+
- !ruby/object:Gem::Dependency
|
120
|
+
name: minitest
|
135
121
|
prerelease: false
|
136
|
-
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ! '>='
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '0'
|
142
|
-
- !ruby/object:Gem::Dependency
|
143
|
-
name: rake
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
122
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
145
123
|
none: false
|
146
|
-
requirements:
|
147
|
-
- -
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
|
124
|
+
requirements:
|
125
|
+
- - ">="
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
hash: 3
|
128
|
+
segments:
|
129
|
+
- 0
|
130
|
+
version: "0"
|
150
131
|
type: :development
|
132
|
+
version_requirements: *id008
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
name: rake
|
151
135
|
prerelease: false
|
152
|
-
|
136
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
153
137
|
none: false
|
154
|
-
requirements:
|
155
|
-
- -
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
none: false
|
162
|
-
requirements:
|
163
|
-
- - ! '>='
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: '0'
|
138
|
+
requirements:
|
139
|
+
- - ">="
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
hash: 3
|
142
|
+
segments:
|
143
|
+
- 0
|
144
|
+
version: "0"
|
166
145
|
type: :development
|
146
|
+
version_requirements: *id009
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
name: redcarpet
|
167
149
|
prerelease: false
|
168
|
-
|
150
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
169
151
|
none: false
|
170
|
-
requirements:
|
171
|
-
- -
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
none: false
|
178
|
-
requirements:
|
179
|
-
- - ! '>='
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
version: '0'
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
hash: 3
|
156
|
+
segments:
|
157
|
+
- 0
|
158
|
+
version: "0"
|
182
159
|
type: :development
|
160
|
+
version_requirements: *id010
|
161
|
+
- !ruby/object:Gem::Dependency
|
162
|
+
name: simplecov
|
183
163
|
prerelease: false
|
184
|
-
|
185
|
-
none: false
|
186
|
-
requirements:
|
187
|
-
- - ! '>='
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
version: '0'
|
190
|
-
- !ruby/object:Gem::Dependency
|
191
|
-
name: yard
|
192
|
-
requirement: !ruby/object:Gem::Requirement
|
164
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
193
165
|
none: false
|
194
|
-
requirements:
|
195
|
-
- -
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
hash: 3
|
170
|
+
segments:
|
171
|
+
- 0
|
172
|
+
version: "0"
|
198
173
|
type: :development
|
174
|
+
version_requirements: *id011
|
175
|
+
- !ruby/object:Gem::Dependency
|
176
|
+
name: yard
|
199
177
|
prerelease: false
|
200
|
-
|
201
|
-
none: false
|
202
|
-
requirements:
|
203
|
-
- - ! '>='
|
204
|
-
- !ruby/object:Gem::Version
|
205
|
-
version: '0'
|
206
|
-
- !ruby/object:Gem::Dependency
|
207
|
-
name: version
|
208
|
-
requirement: !ruby/object:Gem::Requirement
|
178
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
209
179
|
none: false
|
210
|
-
requirements:
|
211
|
-
- -
|
212
|
-
- !ruby/object:Gem::Version
|
213
|
-
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
hash: 3
|
184
|
+
segments:
|
185
|
+
- 0
|
186
|
+
version: "0"
|
214
187
|
type: :development
|
188
|
+
version_requirements: *id012
|
189
|
+
- !ruby/object:Gem::Dependency
|
190
|
+
name: version
|
215
191
|
prerelease: false
|
216
|
-
|
192
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
217
193
|
none: false
|
218
|
-
requirements:
|
219
|
-
- -
|
220
|
-
- !ruby/object:Gem::Version
|
221
|
-
|
194
|
+
requirements:
|
195
|
+
- - ">="
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
hash: 3
|
198
|
+
segments:
|
199
|
+
- 0
|
200
|
+
version: "0"
|
201
|
+
type: :development
|
202
|
+
version_requirements: *id013
|
222
203
|
description: Ruby library to generate AEADs
|
223
204
|
email: stephen@touset.org
|
224
205
|
executables: []
|
225
|
-
|
206
|
+
|
207
|
+
extensions:
|
226
208
|
- ext/openssl/cipher/aead/extconf.rb
|
227
209
|
extra_rdoc_files: []
|
228
|
-
|
210
|
+
|
211
|
+
files:
|
229
212
|
- .gitignore
|
230
213
|
- .travis.yml
|
231
214
|
- .yardopts
|
@@ -253,35 +236,44 @@ files:
|
|
253
236
|
- spec/aead/cipher_spec.rb
|
254
237
|
- spec/aead/nonce_spec.rb
|
255
238
|
- spec/spec_helper.rb
|
239
|
+
has_rdoc: true
|
256
240
|
homepage: https://github.com/onelogin/aead
|
257
241
|
licenses: []
|
242
|
+
|
258
243
|
post_install_message:
|
259
244
|
rdoc_options: []
|
260
|
-
|
245
|
+
|
246
|
+
require_paths:
|
261
247
|
- lib
|
262
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
248
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
263
249
|
none: false
|
264
|
-
requirements:
|
265
|
-
- -
|
266
|
-
- !ruby/object:Gem::Version
|
267
|
-
|
268
|
-
|
250
|
+
requirements:
|
251
|
+
- - ">="
|
252
|
+
- !ruby/object:Gem::Version
|
253
|
+
hash: 3
|
254
|
+
segments:
|
255
|
+
- 0
|
256
|
+
version: "0"
|
257
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
269
258
|
none: false
|
270
|
-
requirements:
|
271
|
-
- -
|
272
|
-
- !ruby/object:Gem::Version
|
273
|
-
|
259
|
+
requirements:
|
260
|
+
- - ">="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
hash: 3
|
263
|
+
segments:
|
264
|
+
- 0
|
265
|
+
version: "0"
|
274
266
|
requirements: []
|
267
|
+
|
275
268
|
rubyforge_project:
|
276
|
-
rubygems_version: 1.
|
269
|
+
rubygems_version: 1.6.2
|
277
270
|
signing_key:
|
278
271
|
specification_version: 3
|
279
272
|
summary: Ruby library to generate AEADs
|
280
|
-
test_files:
|
273
|
+
test_files:
|
281
274
|
- spec/aead/cipher/aes_256_cbc_hmac_sha_256_spec.rb
|
282
275
|
- spec/aead/cipher/aes_256_ctr_hmac_sha_256_spec.rb
|
283
276
|
- spec/aead/cipher/aes_256_gcm_spec.rb
|
284
277
|
- spec/aead/cipher_spec.rb
|
285
278
|
- spec/aead/nonce_spec.rb
|
286
279
|
- spec/spec_helper.rb
|
287
|
-
has_rdoc:
|