rbnacl 4.0.0 → 4.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b98225b2e645925d76a0189adf330c81c7b34f68
4
- data.tar.gz: 8ccf325edde59b1ba96e29ca0c018a3a1cd0abc8
3
+ metadata.gz: 2ad004cd262c6ed52566b6a3a957d8880e468038
4
+ data.tar.gz: 807e63c3416eb1329c105f34be304f0ec0fd3d2d
5
5
  SHA512:
6
- metadata.gz: 2460addc91d22d5f6e846f8a43aa7e4e582a0763482884700f29be44ee48176f5bd3ca492fe78554a2c0c8f3e10be57d9b4b24c32b670b9441440eec6ac5aa86
7
- data.tar.gz: 9d0cc147b8897251d7329aafa78049bd7099fa1726af94249c0c1062a3ff67c069b77d2228983b914d7e6a2b2ae95ca326e64ee2848956b72b91ac6a3c5f4376
6
+ metadata.gz: 576e8ff0844842e967a529c052e89b3c58bfe0b914d890ec69f78f388a6f15162de6605a5cc67bea1ea0a24d58fcc37c03929054b0752d7d0d3fc65cb4c7239e
7
+ data.tar.gz: e0d8b0ffd5a309dee7dd43c1d279c523afd0c3ab497b077d7e3c4e56f3d33c6e1145164ae2ec4dff7e09c108234a52f179f5eb3d066c09fa063b66322221431a
data/CHANGES.md CHANGED
@@ -1,5 +1,12 @@
1
+ 4.0.1 (2016-12-04)
2
+ ------------------
3
+
4
+ * [#148](https://github.com/cryptosphere/rbnacl/pull/148)
5
+ Last minute changes to the ChaCha20Poly1305 API.
6
+ ([@tarcieri])
7
+
1
8
  4.0.0 (2016-12-04)
2
- ----------------------
9
+ ------------------
3
10
 
4
11
  * [#141](https://github.com/cryptosphere/rbnacl/pull/141)
5
12
  Add wrappers for ChaCha20Poly1305 AEAD ciphers.
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![Coverage Status](https://coveralls.io/repos/cryptosphere/rbnacl/badge.svg?branch=master)](https://coveralls.io/r/cryptosphere/rbnacl)
7
7
  [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/cryptosphere/rbnacl/blob/master/LICENSE.txt)
8
8
 
9
- _NOTE: This is the 4.x **development** branch of RbNaCl. For the 3.x **stable**
9
+ _NOTE: This is the 4.x **stable** branch of RbNaCl. For the 3.x **legacy**
10
10
  branch, please see:_
11
11
 
12
12
  https://github.com/cryptosphere/rbnacl/tree/3-x-stable
data/lib/rbnacl.rb CHANGED
@@ -12,7 +12,7 @@ require "rbnacl/random"
12
12
  require "rbnacl/simple_box"
13
13
  require "rbnacl/test_vectors"
14
14
  require "rbnacl/init"
15
- require "rbnacl/aead/aead"
15
+ require "rbnacl/aead/base"
16
16
 
17
17
  # NaCl/libsodium for Ruby
18
18
  module RbNaCl
@@ -79,7 +79,7 @@ module RbNaCl
79
79
  require "rbnacl/hmac/sha512"
80
80
 
81
81
  # AEAD: ChaCha20-Poly1305
82
- require "rbnacl/aead/chacha20poly1305"
82
+ require "rbnacl/aead/chacha20poly1305_legacy"
83
83
  require "rbnacl/aead/chacha20poly1305_ietf"
84
84
 
85
85
  #
@@ -3,14 +3,14 @@
3
3
 
4
4
  module RbNaCl
5
5
  module AEAD
6
- # Authenticated Encryption with Additional Data
6
+ # Abstract base class for Authenticated Encryption with Additional Data
7
7
  #
8
8
  # This construction encrypts a message, and computes an authentication
9
9
  # tag for the encrypted message and some optional additional data
10
10
  #
11
11
  # RbNaCl provides wrappers for both ChaCha20-Poly1305 AEAD implementations
12
12
  # in libsodium: the original, and the IETF version.
13
- class GenericAEAD
13
+ class Base
14
14
  # Number of bytes in a valid key
15
15
  KEYBYTES = 0
16
16
 
@@ -5,7 +5,7 @@ module RbNaCl
5
5
  module AEAD
6
6
  # This class contains wrappers for the IETF implementation of
7
7
  # Authenticated Encryption with Additional Data using ChaCha20-Poly1305
8
- class Chacha20Poly1305IETF < GenericAEAD
8
+ class ChaCha20Poly1305IETF < RbNaCl::AEAD::Base
9
9
  extend Sodium
10
10
  if Sodium::Version.supported_version?("1.0.9")
11
11
  sodium_type :aead
@@ -5,7 +5,7 @@ module RbNaCl
5
5
  module AEAD
6
6
  # This class contains wrappers for the original libsodium implementation of
7
7
  # Authenticated Encryption with Additional Data using ChaCha20-Poly1305
8
- class Chacha20Poly1305 < GenericAEAD
8
+ class ChaCha20Poly1305Legacy < RbNaCl::AEAD::Base
9
9
  extend Sodium
10
10
 
11
11
  sodium_type :aead
@@ -4,5 +4,5 @@
4
4
  # NaCl/libsodium for Ruby
5
5
  module RbNaCl
6
6
  # The library's version
7
- VERSION = "4.0.0"
7
+ VERSION = "4.0.1"
8
8
  end
@@ -1,16 +1,14 @@
1
1
  # encoding: binary
2
2
  # frozen_string_literal: true
3
3
 
4
- RSpec.describe RbNaCl::AEAD::Chacha20Poly1305IETF do
4
+ RSpec.describe RbNaCl::AEAD::ChaCha20Poly1305IETF do
5
5
  if RbNaCl::Sodium::Version.supported_version?("1.0.9")
6
6
  include_examples "aead" do
7
- let(:key) {vector :aead_chacha20poly1305_ietf_key}
8
- let(:message) {vector :aead_chacha20poly1305_ietf_message}
9
- let(:nonce) {vector :aead_chacha20poly1305_ietf_nonce}
10
- let(:ad) {vector :aead_chacha20poly1305_ietf_ad}
11
- let(:ciphertext) {vector :aead_chacha20poly1305_ietf_ciphertext}
12
-
13
- let(:aead) { RbNaCl::AEAD::Chacha20Poly1305IETF.new(key) }
7
+ let(:key) { vector :aead_chacha20poly1305_ietf_key }
8
+ let(:message) { vector :aead_chacha20poly1305_ietf_message }
9
+ let(:nonce) { vector :aead_chacha20poly1305_ietf_nonce }
10
+ let(:ad) { vector :aead_chacha20poly1305_ietf_ad }
11
+ let(:ciphertext) { vector :aead_chacha20poly1305_ietf_ciphertext }
14
12
  end
15
13
  end
16
14
  end
@@ -0,0 +1,12 @@
1
+ # encoding: binary
2
+ # frozen_string_literal: true
3
+
4
+ RSpec.describe RbNaCl::AEAD::ChaCha20Poly1305Legacy do
5
+ include_examples "aead" do
6
+ let(:key) { vector :aead_chacha20poly1305_orig_key }
7
+ let(:message) { vector :aead_chacha20poly1305_orig_message }
8
+ let(:nonce) { vector :aead_chacha20poly1305_orig_nonce }
9
+ let(:ad) { vector :aead_chacha20poly1305_orig_ad }
10
+ let(:ciphertext) { vector :aead_chacha20poly1305_orig_ciphertext }
11
+ end
12
+ end
data/spec/shared/aead.rb CHANGED
@@ -2,13 +2,15 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  RSpec.shared_examples "aead" do
5
- let(:corrupt_ciphertext) { ciphertext.succ}
6
- let(:trunc_ciphertext) { ciphertext[0, 20]}
7
- let(:invalid_nonce) { nonce[0, nonce.bytesize/2] } # too short!
5
+ let(:corrupt_ciphertext) { ciphertext.succ }
6
+ let(:trunc_ciphertext) { ciphertext[0, 20] }
7
+ let(:invalid_nonce) { nonce[0, nonce.bytesize/2] } # too short!
8
8
  let(:invalid_nonce_long) { nonce + nonce } # too long!
9
- let(:nonce_error_regex) { /Nonce.*(Expected #{aead.nonce_bytes})/ }
10
- let(:corrupt_ad) {ad.succ}
11
- let(:trunc_ad) {ad[0, ad.bytesize/2]}
9
+ let(:nonce_error_regex) { %r{Nonce.*(Expected #{aead.nonce_bytes})} }
10
+ let(:corrupt_ad) { ad.succ }
11
+ let(:trunc_ad) { ad[0, ad.bytesize/2] }
12
+
13
+ let(:aead) { described_class.new(key) }
12
14
 
13
15
  context "new" do
14
16
  it "accepts strings" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbnacl
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Arcieri
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-12-23 00:00:00.000000000 Z
12
+ date: 2016-12-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi
@@ -66,9 +66,9 @@ files:
66
66
  - images/hash.png
67
67
  - images/logo.png
68
68
  - lib/rbnacl.rb
69
- - lib/rbnacl/aead/aead.rb
70
- - lib/rbnacl/aead/chacha20poly1305.rb
69
+ - lib/rbnacl/aead/base.rb
71
70
  - lib/rbnacl/aead/chacha20poly1305_ietf.rb
71
+ - lib/rbnacl/aead/chacha20poly1305_legacy.rb
72
72
  - lib/rbnacl/auth.rb
73
73
  - lib/rbnacl/boxes/curve25519xsalsa20poly1305.rb
74
74
  - lib/rbnacl/boxes/curve25519xsalsa20poly1305/private_key.rb
@@ -102,7 +102,7 @@ files:
102
102
  - lib/rbnacl/version.rb
103
103
  - rbnacl.gemspec
104
104
  - spec/rbnacl/aead/chacha20poly1305_ietf_spec.rb
105
- - spec/rbnacl/aead/chacha20poly1305_orig_spec.rb
105
+ - spec/rbnacl/aead/chacha20poly1305_legacy_spec.rb
106
106
  - spec/rbnacl/authenticators/poly1305_spec.rb
107
107
  - spec/rbnacl/boxes/curve25519xsalsa20poly1305/private_key_spec.rb
108
108
  - spec/rbnacl/boxes/curve25519xsalsa20poly1305/public_key_spec.rb
@@ -155,7 +155,7 @@ specification_version: 4
155
155
  summary: Ruby binding to the Networking and Cryptography (NaCl) library
156
156
  test_files:
157
157
  - spec/rbnacl/aead/chacha20poly1305_ietf_spec.rb
158
- - spec/rbnacl/aead/chacha20poly1305_orig_spec.rb
158
+ - spec/rbnacl/aead/chacha20poly1305_legacy_spec.rb
159
159
  - spec/rbnacl/authenticators/poly1305_spec.rb
160
160
  - spec/rbnacl/boxes/curve25519xsalsa20poly1305/private_key_spec.rb
161
161
  - spec/rbnacl/boxes/curve25519xsalsa20poly1305/public_key_spec.rb
@@ -1,14 +0,0 @@
1
- # encoding: binary
2
- # frozen_string_literal: true
3
-
4
- RSpec.describe RbNaCl::AEAD::Chacha20Poly1305 do
5
- include_examples "aead" do
6
- let(:key) {vector :aead_chacha20poly1305_orig_key}
7
- let(:message) {vector :aead_chacha20poly1305_orig_message}
8
- let(:nonce) {vector :aead_chacha20poly1305_orig_nonce}
9
- let(:ad) {vector :aead_chacha20poly1305_orig_ad}
10
- let(:ciphertext) {vector :aead_chacha20poly1305_orig_ciphertext}
11
-
12
- let(:aead) { RbNaCl::AEAD::Chacha20Poly1305.new(key) }
13
- end
14
- end