openssl-ccm 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +12 -0
- data/.yardopts +4 -0
- data/Gemfile +2 -0
- data/LICENSE +1 -1
- data/README.md +8 -6
- data/Rakefile +3 -2
- data/lib/openssl/ccm/version.rb +1 -1
- data/test/test_ccm.rb +34 -0
- metadata +44 -4
- data/test/test_ccm_data.rb +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fc374df85e53e6b883aa37e73c3ef794663aa1a
|
4
|
+
data.tar.gz: c91598781b107b3ded956bd29c80ebf898434bad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5421f2e254f941baf00785b8846781231dc66ac8cf6e5f02098fbed9734d5ab982dbfd69e9405c684b5eacda234232af1bdb6a2c140d38b884a749fb44087b25
|
7
|
+
data.tar.gz: 0256e2da4fc6da7f86663730d92643cbfbc8304c25ccd4996146eee0bd5d1184177a0a64a0b47c7dab640e31e2c2ed1c9b7196ffe7390a675279e94a4ffe5623
|
data/.rubocop.yml
ADDED
data/.yardopts
ADDED
data/Gemfile
CHANGED
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2014 Lars Schmertmann
|
3
|
+
Copyright (c) 2014, Lars Schmertmann <SmallLars@t-online.de>
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -1,8 +1,13 @@
|
|
1
|
-
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/openssl-ccm.png)](http://badge.fury.io/rb/openssl-ccm)
|
2
|
+
[![Dependency Status](https://gemnasium.com/SmallLars/openssl-ccm.png)](https://gemnasium.com/SmallLars/openssl-ccm)
|
3
|
+
[![Build Status](https://travis-ci.org/SmallLars/openssl-ccm.png?branch=master)](https://travis-ci.org/SmallLars/openssl-ccm)
|
4
|
+
[![Coverage Status](https://coveralls.io/repos/SmallLars/openssl-ccm/badge.png?branch=master)](https://coveralls.io/r/SmallLars/openssl-ccm)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/SmallLars/openssl-ccm.png)](https://codeclimate.com/github/SmallLars/openssl-ccm)
|
6
|
+
[![Inline docs](http://inch-pages.github.io/github/smalllars/openssl-ccm.png)](http://inch-pages.github.io/github/smalllars/openssl-ccm)
|
2
7
|
|
3
|
-
|
8
|
+
# openssl-ccm
|
4
9
|
|
5
|
-
|
10
|
+
Ruby Gem for [RFC 3610 - Counter with CBC-MAC (CCM)](http://tools.ietf.org/html/rfc3610)
|
6
11
|
|
7
12
|
## Installation
|
8
13
|
|
@@ -23,11 +28,8 @@ Or install it yourself as:
|
|
23
28
|
Example:
|
24
29
|
|
25
30
|
require 'openssl/ccm'
|
26
|
-
|
27
31
|
ccm = OpenSSL::CCM.new('AES', 'My16Byte LongKey', 8)
|
28
|
-
|
29
32
|
ciphertext = ccm.encrypt('The message to encrypt', 'The nonce')
|
30
|
-
|
31
33
|
plaintext = ccm.decrypt(ciphertext, 'The nonce')
|
32
34
|
|
33
35
|
After initialisation, you can use the object as often you need.
|
data/Rakefile
CHANGED
@@ -18,8 +18,9 @@ end
|
|
18
18
|
desc "Uninstall and clean documentation"
|
19
19
|
task :clean do
|
20
20
|
sh "gem uninstall openssl-ccm"
|
21
|
-
begin; sh "rm -R
|
22
|
-
begin; sh "rm -R
|
21
|
+
begin; sh "rm -R ./coverage"; rescue; end
|
22
|
+
begin; sh "rm -R ./.yardoc"; rescue; end
|
23
|
+
begin; sh "rm -R ./doc"; rescue; end
|
23
24
|
end
|
24
25
|
|
25
26
|
desc "Development Dependencies"
|
data/lib/openssl/ccm/version.rb
CHANGED
data/test/test_ccm.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'coveralls'
|
2
|
+
Coveralls.wear!
|
1
3
|
require 'test/unit'
|
2
4
|
require 'openssl/ccm'
|
3
5
|
|
@@ -262,4 +264,36 @@ class CCMTest < Test::Unit::TestCase
|
|
262
264
|
"Wrong ENCRYPT in Vector #{i + 1}")
|
263
265
|
end
|
264
266
|
end
|
267
|
+
|
268
|
+
def test_aes_data
|
269
|
+
key = %W(
|
270
|
+
00000000000000000000000000000000
|
271
|
+
001234567890ABCDEFDCAFFEED3921EE
|
272
|
+
001234567890ABCDEFDCAFFEED3921EE
|
273
|
+
11223344AABB00000000000000000000
|
274
|
+
)
|
275
|
+
nonce = %W(
|
276
|
+
00000000000000000000000000
|
277
|
+
00112233445566778899
|
278
|
+
001122334455667788990000
|
279
|
+
00112233445566778899
|
280
|
+
)
|
281
|
+
mac_len = [16, 8, 14, 8]
|
282
|
+
|
283
|
+
assert(OpenSSL::CCM.ciphers.include?('AES'), 'Missing AES-Cipher')
|
284
|
+
1.upto(3) do |i|
|
285
|
+
open("test/data_#{i}", mode = 'r') do |i_file|
|
286
|
+
input = i_file.read
|
287
|
+
key.length.times do |j|
|
288
|
+
open("test/data_#{i}-#{j + 1}_e", mode = 'r') do |o_file|
|
289
|
+
output = o_file.read
|
290
|
+
ccm = OpenSSL::CCM.new('AES', [key[j]].pack('H*'), mac_len[j])
|
291
|
+
c = ccm.encrypt(input, [nonce[j]].pack('H*'))
|
292
|
+
assert_equal(output.unpack('H*'), c.unpack('H*'),
|
293
|
+
"Wrong ENCRYPT in Vector #{i + 1}")
|
294
|
+
end
|
295
|
+
end
|
296
|
+
end
|
297
|
+
end
|
298
|
+
end
|
265
299
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openssl-ccm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Schmertmann
|
@@ -10,6 +10,26 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2014-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '10.2'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 10.2.2
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '10.2'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 10.2.2
|
13
33
|
- !ruby/object:Gem::Dependency
|
14
34
|
name: rdoc
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,6 +90,26 @@ dependencies:
|
|
70
90
|
- - ">="
|
71
91
|
- !ruby/object:Gem::Version
|
72
92
|
version: 0.18.1
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: coveralls
|
95
|
+
requirement: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0.7'
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 0.7.0
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0.7'
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 0.7.0
|
73
113
|
description: Ruby Gem for RFC 3610 - Counter with CBC-MAC (CCM)
|
74
114
|
email:
|
75
115
|
- SmallLars@t-online.de
|
@@ -79,6 +119,8 @@ extra_rdoc_files:
|
|
79
119
|
- README.md
|
80
120
|
- LICENSE
|
81
121
|
files:
|
122
|
+
- ".rubocop.yml"
|
123
|
+
- ".yardopts"
|
82
124
|
- Gemfile
|
83
125
|
- LICENSE
|
84
126
|
- README.md
|
@@ -101,8 +143,7 @@ files:
|
|
101
143
|
- test/data_3-3_e
|
102
144
|
- test/data_3-4_e
|
103
145
|
- test/test_ccm.rb
|
104
|
-
|
105
|
-
homepage: ''
|
146
|
+
homepage: https://github.com/smalllars/openssl-ccm
|
106
147
|
licenses:
|
107
148
|
- MIT
|
108
149
|
metadata: {}
|
@@ -130,7 +171,6 @@ specification_version: 4
|
|
130
171
|
summary: RFC 3610 - CCM
|
131
172
|
test_files:
|
132
173
|
- test/test_ccm.rb
|
133
|
-
- test/test_ccm_data.rb
|
134
174
|
- test/data_1-3_e
|
135
175
|
- test/data_1-1_e
|
136
176
|
- test/data_3
|
data/test/test_ccm_data.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'openssl/ccm'
|
3
|
-
|
4
|
-
# Additional tests
|
5
|
-
class CCMFilesTest < Test::Unit::TestCase
|
6
|
-
KEY = %W(
|
7
|
-
00000000000000000000000000000000
|
8
|
-
001234567890ABCDEFDCAFFEED3921EE
|
9
|
-
001234567890ABCDEFDCAFFEED3921EE
|
10
|
-
11223344AABB00000000000000000000
|
11
|
-
)
|
12
|
-
NONCE = %W(
|
13
|
-
00000000000000000000000000
|
14
|
-
00112233445566778899
|
15
|
-
001122334455667788990000
|
16
|
-
00112233445566778899
|
17
|
-
)
|
18
|
-
MAC_LEN = [16, 8, 14, 8]
|
19
|
-
|
20
|
-
def test_aes
|
21
|
-
assert(OpenSSL::CCM.ciphers.include?('AES'), 'Missing AES-Cipher')
|
22
|
-
1.upto(3) do |i|
|
23
|
-
open("test/data_#{i}", mode = 'r') do |i_file|
|
24
|
-
input = i_file.read
|
25
|
-
KEY.length.times do |j|
|
26
|
-
open("test/data_#{i}-#{j + 1}_e", mode = 'r') do |o_file|
|
27
|
-
output = o_file.read
|
28
|
-
ccm = OpenSSL::CCM.new('AES', [KEY[j]].pack('H*'), MAC_LEN[j])
|
29
|
-
c = ccm.encrypt(input, [NONCE[j]].pack('H*'))
|
30
|
-
assert_equal(output.unpack('H*'), c.unpack('H*'),
|
31
|
-
"Wrong ENCRYPT in Vector #{i + 1}")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|