rbnacl 4.0.2 → 7.1.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.
Files changed (63) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +30 -12
  4. data/.travis.yml +7 -16
  5. data/CHANGES.md +94 -70
  6. data/Gemfile +4 -3
  7. data/Guardfile +2 -0
  8. data/LICENSE.txt +1 -1
  9. data/README.md +35 -53
  10. data/Rakefile +4 -3
  11. data/lib/rbnacl.rb +12 -3
  12. data/lib/rbnacl/aead/base.rb +3 -0
  13. data/lib/rbnacl/aead/chacha20poly1305_ietf.rb +2 -2
  14. data/lib/rbnacl/aead/chacha20poly1305_legacy.rb +2 -2
  15. data/lib/rbnacl/aead/xchacha20poly1305_ietf.rb +44 -0
  16. data/lib/rbnacl/boxes/curve25519xsalsa20poly1305.rb +7 -6
  17. data/lib/rbnacl/boxes/curve25519xsalsa20poly1305/private_key.rb +1 -1
  18. data/lib/rbnacl/boxes/sealed.rb +136 -0
  19. data/lib/rbnacl/group_elements/curve25519.rb +3 -2
  20. data/lib/rbnacl/hash.rb +1 -1
  21. data/lib/rbnacl/hash/blake2b.rb +121 -24
  22. data/lib/rbnacl/hash/sha256.rb +1 -1
  23. data/lib/rbnacl/hash/sha512.rb +1 -1
  24. data/lib/rbnacl/hmac/sha256.rb +73 -8
  25. data/lib/rbnacl/hmac/sha512.rb +73 -8
  26. data/lib/rbnacl/hmac/sha512256.rb +71 -8
  27. data/lib/rbnacl/init.rb +1 -5
  28. data/lib/rbnacl/one_time_auths/poly1305.rb +2 -2
  29. data/lib/rbnacl/password_hash.rb +33 -2
  30. data/lib/rbnacl/password_hash/argon2.rb +43 -24
  31. data/lib/rbnacl/password_hash/scrypt.rb +1 -1
  32. data/lib/rbnacl/random.rb +1 -3
  33. data/lib/rbnacl/secret_boxes/xsalsa20poly1305.rb +2 -2
  34. data/lib/rbnacl/signatures/ed25519.rb +3 -3
  35. data/lib/rbnacl/signatures/ed25519/signing_key.rb +12 -5
  36. data/lib/rbnacl/signatures/ed25519/verify_key.rb +18 -4
  37. data/lib/rbnacl/sodium.rb +24 -15
  38. data/lib/rbnacl/sodium/version.rb +3 -1
  39. data/lib/rbnacl/test_vectors.rb +104 -44
  40. data/lib/rbnacl/util.rb +92 -8
  41. data/lib/rbnacl/version.rb +1 -1
  42. data/rbnacl.gemspec +7 -11
  43. data/spec/rbnacl/aead/xchacha20poly1305_ietf_spec.rb +14 -0
  44. data/spec/rbnacl/authenticators/poly1305_spec.rb +21 -1
  45. data/spec/rbnacl/boxes/curve25519xsalsa20poly1305_spec.rb +18 -6
  46. data/spec/rbnacl/boxes/sealed_spec.rb +63 -0
  47. data/spec/rbnacl/hash/blake2b_spec.rb +70 -0
  48. data/spec/rbnacl/hmac/sha256_spec.rb +6 -1
  49. data/spec/rbnacl/hmac/sha512256_spec.rb +6 -1
  50. data/spec/rbnacl/hmac/sha512_spec.rb +6 -1
  51. data/spec/rbnacl/password_hash/argon2_spec.rb +56 -14
  52. data/spec/rbnacl/signatures/ed25519/signing_key_spec.rb +10 -4
  53. data/spec/rbnacl/signatures/ed25519/verify_key_spec.rb +16 -0
  54. data/spec/rbnacl/sodium_spec.rb +53 -0
  55. data/spec/rbnacl/util_spec.rb +63 -4
  56. data/spec/shared/aead.rb +33 -13
  57. data/spec/shared/authenticator.rb +0 -19
  58. data/spec/shared/box.rb +18 -6
  59. data/spec/shared/hmac.rb +46 -0
  60. data/spec/shared/sealed_box.rb +29 -0
  61. data/spec/spec_helper.rb +4 -1
  62. metadata +18 -8
  63. data/.ruby-version +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 06b62936ca905b101e22418710c37dfc78cd5d11
4
- data.tar.gz: 0b8b8ba5efb7e6673bb8811e19695a7fbb714fbd
2
+ SHA256:
3
+ metadata.gz: b4d92c7a609efebd94247e98d2ede88a057b5325f6cdb0e00baa5896cd5051f6
4
+ data.tar.gz: 4d9e65d468bd0b813817b0e1bb63327bbf450505e6e47f818fc5921886d69110
5
5
  SHA512:
6
- metadata.gz: 69a6b4e5aaeee71020409df122943399ba64c1b46a76c4a75b4abaf113fb6d3d93c553f128f8b42e2a52d57a7e8081e45749b6c585b6aca434cbda1eea972fb7
7
- data.tar.gz: 20d228a8f6a56e5c710288fb6e73b16ad39d0185f369bd29b519f8742c1da1b5523388ea6bdfea8e1d21df892019761cc99e6e920f44bfdae8e671fa2cb00fe3
6
+ metadata.gz: 23a083b6a009719564e5f87b1f179f1e70b8a0233118491e88cea60e34f7f64bfbb30efe5aab94f90e691f109b2820c29adaffd0ec27e79bdf3cf7466d9ff977
7
+ data.tar.gz: '02915f7b4c44c3d3d12350bc23380450ee6ea51323bcbcee74b01009a307887043da71631beb12ab43b45c3299dd2a47bac847f4ba6b3e1aae33541edb9d7351'
data/.gitignore CHANGED
@@ -17,3 +17,4 @@ test/version_tmp
17
17
  tmp
18
18
  libsodium
19
19
  libsodium-*.tar.gz
20
+ .rakeTasks
data/.rubocop.yml CHANGED
@@ -1,11 +1,8 @@
1
1
  AllCops:
2
+ TargetRubyVersion: 2.3
2
3
  DisplayCopNames: true
3
- Include:
4
- - '**/Rakefile'
5
4
  Exclude:
6
- - 'spec/**/*'
7
5
  - 'vendor/**/*'
8
- - 'lib/rbnacl/test_vectors.rb'
9
6
 
10
7
  #
11
8
  # Metrics
@@ -14,24 +11,45 @@ AllCops:
14
11
  Metrics/AbcSize:
15
12
  Max: 20
16
13
 
14
+ Metrics/BlockLength:
15
+ Max: 128
16
+ ExcludedMethods: [ 'describe' ]
17
+
17
18
  Metrics/ClassLength:
18
- Max: 150
19
+ Max: 128
20
+
21
+ Metrics/LineLength:
22
+ Max: 128
19
23
 
20
24
  Metrics/MethodLength:
21
- Max: 25
25
+ CountComments: false
26
+ Max: 50
27
+
28
+ Metrics/CyclomaticComplexity:
29
+ Max: 15
30
+
31
+ Metrics/PerceivedComplexity:
32
+ Max: 15
22
33
 
23
34
  #
24
- # Style
35
+ # Naming
25
36
  #
26
37
 
27
- LineLength:
28
- Max: 128
38
+ Naming/UncommunicativeMethodParamName:
39
+ Enabled: false
29
40
 
30
- Style/StringLiterals:
31
- EnforcedStyle: double_quotes
41
+ #
42
+ # Style
43
+ #
32
44
 
33
- Style/SpaceBeforeFirstArg:
45
+ Style/AccessModifierDeclarations:
34
46
  Enabled: false
35
47
 
36
48
  Style/GlobalVars:
37
49
  Enabled: false
50
+
51
+ Style/SafeNavigation:
52
+ Enabled: false
53
+
54
+ Style/StringLiterals:
55
+ EnforcedStyle: double_quotes
data/.travis.yml CHANGED
@@ -1,25 +1,16 @@
1
1
  language: ruby
2
- sudo: false
3
2
  cache: bundler
4
- script: bundle exec rake ci
5
- bundler_args: --without development
6
3
 
7
- branches:
8
- only:
9
- - master
4
+ before_install: sudo apt-get install libsodium18
10
5
 
11
6
  rvm:
12
- - jruby-9.1.6.0
13
- - 2.2.6
14
- - 2.3.3
15
- - 2.4.0
16
-
17
- env:
18
- - LIBSODIUM_VERSION=1.0.0 # Minimum supported
19
- - LIBSODIUM_VERSION=1.0.11 # Latest released
7
+ - jruby-9.2.8.0
8
+ - 2.5
9
+ - 2.6
20
10
 
21
11
  matrix:
22
12
  fast_finish: true
23
13
 
24
- notifications:
25
- irc: "irc.freenode.org#cryptosphere"
14
+ branches:
15
+ only:
16
+ - master
data/CHANGES.md CHANGED
@@ -1,114 +1,138 @@
1
- ## 4.0.2 (2016-03-12)
1
+ ## [7.1.0] (2019-09-07)
2
2
 
3
- * [#157](https://github.com/cryptosphere/rbnacl/pull/157)
4
- Raise error on degenerate keys (fixes #152).
5
- ([@paragonie-scott], [@tarcieri])
3
+ - Attached signature API ([#197], [#202])
4
+ - Fix the `generichash` state definition ([#200])
6
5
 
7
- ## 4.0.1 (2016-12-04)
6
+ ## [7.0.0] (2019-05-23)
8
7
 
9
- * [#148](https://github.com/cryptosphere/rbnacl/pull/148)
10
- Last minute changes to the ChaCha20Poly1305 API.
11
- ([@tarcieri])
8
+ - Drop support for Ruby 2.2 ([#194])
12
9
 
13
- ## 4.0.0 (2016-12-04)
10
+ ## [6.0.1] (2019-01-27)
14
11
 
15
- * [#141](https://github.com/cryptosphere/rbnacl/pull/141)
16
- Add wrappers for ChaCha20Poly1305 AEAD ciphers.
17
- ([@aadavids])
12
+ - Add fallback `sodium_constants` for Argon2 ([#189])
13
+ - Support libsodium versions used by Heroku ([#186])
14
+ - Sealed boxes ([#184])
18
15
 
19
- * [#142](https://github.com/cryptosphere/rbnacl/pull/142)
20
- Added support for Argon2 password hash.
21
- ([@elijh])
16
+ ## [6.0.0] (2018-11-08)
22
17
 
23
- * [#143](https://github.com/cryptosphere/rbnacl/pull/143)
24
- Require Ruby 2.2.6+.
25
- ([@tarcieri])
18
+ - Deprecate rbnacl-libsodium ([#180])
19
+ - Add support for XChaCha20-Poly1305 ([#176])
20
+ - Fix buffer size type in `randombytes_buf` binding ([#174])
21
+ - Add support for argon2id digest ([#174])
22
+ - Support for non-32-byte HMAC-SHA256/512 keys ([#166])
26
23
 
27
- ## 3.4.0 (2015-05-07)
24
+ ## 5.0.0 (2017-06-13)
28
25
 
29
- * [#135](https://github.com/cryptosphere/rbnacl/pull/135)
30
- Expose `RbNaCl::Signatures::Ed25519#keypair_bytes`.
31
- ([@grempe])
26
+ - Support the BLAKE2b Initialize-Update-Finalize API ([#159])
32
27
 
33
- * [#137](https://github.com/cryptosphere/rbnacl/pull/137)
34
- Expose HMAC-SHA512 (with 64-byte keys)
35
- ([@mwpastore])
28
+ ## 4.0.2 (2017-03-12)
36
29
 
37
- ## 3.3.0 (2015-12-29)
30
+ - Raise error on degenerate keys. Fixes #152 ([#157])
38
31
 
39
- * [#105](https://github.com/cryptosphere/rbnacl/pull/105)
40
- Add salt/personalisation strings for Blake2b.
41
- ([@namelessjon])
32
+ ## 4.0.1 (2016-12-04)
33
+
34
+ - Last minute changes to the ChaCha20Poly1305 API ([#148])
35
+
36
+ ## 4.0.0 (2016-12-04)
42
37
 
43
- * [#128](https://github.com/cryptosphere/rbnacl/pull/128)
44
- Remove use of Thread.exclusive when initializing library.
45
- ([@tarcieri])
38
+ - Add wrappers for ChaCha20Poly1305 AEAD ciphers ([#141])
39
+ - Added support for Argon2 password hash ([#142])
40
+ - Require Ruby 2.2.6+ ([#143])
41
+
42
+ ## 3.4.0 (2015-05-07)
43
+
44
+ - Expose `RbNaCl::Signatures::Ed25519#keypair_bytes` ([#135])
45
+ - Expose HMAC-SHA512 with 64-byte keys ([#137])
46
+
47
+ ## 3.3.0 (2015-12-29)
48
+
49
+ - Remove use of Thread.exclusive when initializing library ([#128])
50
+ - Add salt/personalisation strings for Blake2b ([#105])
46
51
 
47
52
  ## 3.2.0 (2015-05-31)
48
53
 
49
- * Fix method signature for blake2b
50
- * RuboCop-friendly codebase
54
+ - Fix method signature for blake2b
55
+ - RuboCop-friendly codebase
51
56
 
52
57
  ## 3.1.2 (2014-08-30)
53
58
 
54
- * Fix scrypt support with libsodium 0.7.0 (scryptsalsa208sha256)
59
+ - Fix scrypt support with libsodium 0.7.0 (scryptsalsa208sha256)
55
60
 
56
61
  ## 3.1.1 (2014-06-14)
57
62
 
58
- * Fix undefined variable warning
59
- * RSpec 3 fixups
60
- * RuboCop
63
+ - Fix undefined variable warning
64
+ - RSpec 3 fixups
65
+ - RuboCop
61
66
 
62
67
  ## 3.1.0 (2014-05-22)
63
68
 
64
- * The scrypt password hashing function: `RbNaCl::PasswordHash.scrypt`
69
+ - The scrypt password hashing function: `RbNaCl::PasswordHash.scrypt`
65
70
 
66
71
  ## 3.0.1 (2014-05-12)
67
72
 
68
- * Load gem from `RBNACL_LIBSODIUM_GEM_LIB_PATH` if set. Used by rbnacl-libsodium
73
+ - Load gem from `RBNACL_LIBSODIUM_GEM_LIB_PATH` if set. Used by rbnacl-libsodium
69
74
  gem to use libsodium compiled from a gem.
70
75
 
71
76
  ## 3.0.0 (2014-04-22)
72
77
 
73
- * Rename RandomNonceBox to SimpleBox (backwards compatibility preserved)
74
- * Reverse documented order of SimpleBox/RandomNonceBox initialize parameters.
78
+ - Rename RandomNonceBox to SimpleBox (backwards compatibility preserved)
79
+ - Reverse documented order of SimpleBox/RandomNonceBox initialize parameters.
75
80
  Technically backwards compatible, but confusing.
76
- * Ensure all strings are ASCII-8BIT/BINARY encoding prior to use
81
+ - Ensure all strings are ASCII-8BIT/BINARY encoding prior to use
77
82
 
78
83
  ## 2.0.0 (2013-11-07)
79
84
 
80
- * Add encrypt/decrypt aliases for Crypto::RandomNonceBox
81
- * Rename Crypto module to RbNaCl module
82
- * RbNaCl::VerifyKey#verify operand order was reversed. New operand order is
85
+ - Rename Crypto module to RbNaCl module
86
+ - Add encrypt/decrypt aliases for `Crypto::RandomNonceBox`
87
+ - `RbNaCl::VerifyKey#verify` operand order was reversed. New operand order is
83
88
  signature, message instead of message, signature
84
- * RbNaCL::SecretBox#open, RbNaCl::Box#open, Auth#verify and VerifyKey#verify
85
- all now raise a (descendent of) CryptoError if the check fails. This ensures
86
- failures are handled by the program.
87
- * RbNaCl::SecretBox, Box, etc. are all now aliases for the real implementations,
88
- which are named after the primitives they provide
89
- * Encoders have now gone.
90
- * Add support for the Blake2b cryptographic hash algorithm.
91
- * Add checks that we have a sufficiently recent version of libsodium (0.4.3+)
92
- * Dropped ruby-1.8 support
93
- * Call the `sodium_init()` function, to select the best algorithms.
94
- * Fix some typos in the documentation
95
- * Changes in the low level binding for libsodium and removal of the NaCl module
96
- * Add a mutex around calls to randombytes in libsodium
89
+ - `RbNaCL::SecretBox#open`, `RbNaCl::Box#open`, `Auth#verify` and
90
+ `VerifyKey#verify` all now raise a (descendent of) CryptoError if the check
91
+ fails. This ensures failures are handled by the program.
92
+ - `RbNaCl::SecretBox`, Box, etc. are all now aliases for the real
93
+ implementations, which are named after the primitives they provide
94
+ - Removed encoder functionality.
95
+ - Add support for the Blake2b cryptographic hash algorithm.
96
+ - Add checks that we have a sufficiently recent version of libsodium (0.4.3+)
97
+ - Dropped ruby-1.8 support
98
+ - Call the `sodium_init()` function, to select the best algorithms.
99
+ - Fix some typos in the documentation
100
+ - Changes in the low level binding for libsodium and removal of the NaCl module
101
+ - Add a mutex around calls to randombytes in libsodium
97
102
 
98
103
  ## 1.1.0 (2013-04-19)
99
104
 
100
- * Provide API for querying primitives and details about them, such as key
105
+ - Provide API for querying primitives and details about them, such as key
101
106
  lengths, nonce lengths, etc.
102
- * Fixed bug on passing null bytes to sha256, sha512 functions.
107
+ - Fixed bug on passing null bytes to sha256, sha512 functions.
103
108
 
104
109
  ## 1.0.0 (2013-03-08)
105
110
 
106
- * Initial release
107
-
108
- [@namelessjon]: https://github.com/namelessjon
109
- [@tarcieri]: https://github.com/tarcieri
110
- [@aadavids]: https://github.com/aadavids
111
- [@grempe]: https://github.com/grempe
112
- [@mwpastore]: https://github.com/mwpastore
113
- [@elijh]: https://github.com/elijh
114
- [@paragonie-scott]: https://github.com/paragonie-scott
111
+ - Initial release
112
+
113
+ [7.1.0]: https://github.com/crypto-rb/rbnacl/pull/203
114
+ [#202]: https://github.com/crypto-rb/rbnacl/pull/202
115
+ [#200]: https://github.com/crypto-rb/rbnacl/pull/200
116
+ [#197]: https://github.com/crypto-rb/rbnacl/pull/197
117
+ [7.0.0]: https://github.com/crypto-rb/rbnacl/pull/195
118
+ [#194]: https://github.com/crypto-rb/rbnacl/pull/194
119
+ [6.0.1]: https://github.com/crypto-rb/rbnacl/pull/191
120
+ [#189]: https://github.com/crypto-rb/rbnacl/pull/189
121
+ [#186]: https://github.com/crypto-rb/rbnacl/pull/186
122
+ [#184]: https://github.com/crypto-rb/rbnacl/pull/184
123
+ [6.0.0]: https://github.com/crypto-rb/rbnacl/pull/182
124
+ [#180]: https://github.com/crypto-rb/rbnacl/pull/180
125
+ [#176]: https://github.com/crypto-rb/rbnacl/pull/176
126
+ [#174]: https://github.com/crypto-rb/rbnacl/pull/174
127
+ [#172]: https://github.com/crypto-rb/rbnacl/pull/172
128
+ [#166]: https://github.com/crypto-rb/rbnacl/pull/166
129
+ [#159]: https://github.com/crypto-rb/rbnacl/pull/159
130
+ [#157]: https://github.com/crypto-rb/rbnacl/pull/157
131
+ [#148]: https://github.com/crypto-rb/rbnacl/pull/148
132
+ [#143]: https://github.com/crypto-rb/rbnacl/pull/143
133
+ [#142]: https://github.com/crypto-rb/rbnacl/pull/142
134
+ [#141]: https://github.com/crypto-rb/rbnacl/pull/141
135
+ [#137]: https://github.com/crypto-rb/rbnacl/pull/137
136
+ [#135]: https://github.com/crypto-rb/rbnacl/pull/135
137
+ [#128]: https://github.com/crypto-rb/rbnacl/pull/128
138
+ [#105]: https://github.com/crypto-rb/rbnacl/pull/105
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  gemspec
@@ -7,10 +9,9 @@ group :development do
7
9
  end
8
10
 
9
11
  group :test do
10
- gem "rspec"
11
- gem "rubocop", "0.46.0"
12
12
  gem "coveralls", require: false
13
- gem "rbnacl-libsodium", ENV["LIBSODIUM_VERSION"]
13
+ gem "rspec"
14
+ gem "rubocop", "= 0.70.0"
14
15
  end
15
16
 
16
17
  group :development, :test do
data/Guardfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # A sample Guardfile
2
4
  # More info at https://github.com/guard/guard#readme
3
5
 
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012-2017 Tony Arcieri, Jonathan Stott
1
+ Copyright (c) 2012-2018 Tony Arcieri, Jonathan Stott
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,31 +1,19 @@
1
- ![RbNaCl](https://raw.github.com/cryptosphere/rbnacl/master/images/logo.png)
1
+ ![RbNaCl](https://raw.github.com/crypto-rb/rbnacl/master/images/logo.png)
2
2
  ======
3
3
  [![Gem Version](https://badge.fury.io/rb/rbnacl.svg)](http://badge.fury.io/rb/rbnacl)
4
- [![Build Status](https://travis-ci.org/cryptosphere/rbnacl.svg?branch=master)](https://travis-ci.org/cryptosphere/rbnacl)
5
- [![Code Climate](https://codeclimate.com/github/cryptosphere/rbnacl.svg)](https://codeclimate.com/github/cryptosphere/rbnacl)
6
- [![Coverage Status](https://coveralls.io/repos/cryptosphere/rbnacl/badge.svg?branch=master)](https://coveralls.io/r/cryptosphere/rbnacl)
7
- [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/cryptosphere/rbnacl/blob/master/LICENSE.txt)
4
+ [![Build Status](https://travis-ci.org/crypto-rb/rbnacl.svg?branch=master)](https://travis-ci.org/crypto-rb/rbnacl)
5
+ [![Code Climate](https://codeclimate.com/github/crypto-rb/rbnacl.svg)](https://codeclimate.com/github/crypto-rb/rbnacl)
6
+ [![Coverage Status](https://coveralls.io/repos/crypto-rb/rbnacl/badge.svg?branch=master)](https://coveralls.io/r/crypto-rb/rbnacl)
7
+ [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/crypto-rb/rbnacl/blob/master/LICENSE.txt)
8
+ [![Gitter Chat](https://badges.gitter.im/badge.svg)](https://gitter.im/crypto-rb/Lobby)
8
9
 
9
- _NOTE: This is the 4.x **stable** branch of RbNaCl. For the 3.x **legacy**
10
- branch, please see:_
11
-
12
- https://github.com/cryptosphere/rbnacl/tree/3-x-stable
13
-
14
- A Ruby binding to the state-of-the-art [Networking and Cryptography][nacl]
15
- library by [Daniel J. Bernstein][djb]. This is **NOT** Google Native Client.
16
- This is a crypto library.
17
-
18
- On a completely unrelated topic, RbNaCl is also the empirical formula for
19
- Rubidium Sodium Chloride.
20
-
21
- Need help with RbNaCl? Join the [RbNaCl Google Group][group].
22
- We're also on IRC at #cryptosphere on irc.freenode.net
10
+ Ruby binding for [libsodium], a fork of the [Networking and Cryptography][nacl]
11
+ library.
23
12
 
13
+ [libsodium]: https://libsodium.org
24
14
  [nacl]: http://nacl.cr.yp.to/
25
- [djb]: http://cr.yp.to/djb.html
26
- [group]: http://groups.google.com/group/rbnacl
27
15
 
28
- ## Why NaCl?
16
+ ## Why libsodium/NaCl?
29
17
 
30
18
  NaCl is a different kind of cryptographic library. In the past crypto
31
19
  libraries were kitchen sinks of little bits and pieces, like ciphers,
@@ -49,13 +37,21 @@ curves and the XSalsa20 stream cipher. This means with NaCl you not only get
49
37
  a system which is designed to be secure-by-default, you also get one which
50
38
  is extremely fast with comparatively small cryptographic keys.
51
39
 
52
- For more information on NaCl's goals, see Dan Bernstein's presentation
53
- [Blaming the Cryptographic User](http://cr.yp.to/talks/2012.08.08/slides.pdf)
54
-
55
40
  ### Is it any good?
56
41
 
57
42
  [Yes.](http://news.ycombinator.com/item?id=3067434)
58
43
 
44
+ ## Help and Discussion
45
+
46
+ Have questions? Want to suggest a feature or change? Join a discussion group:
47
+
48
+ * [Crypto.rb Gitter]: web-based chat about Ruby crypto projects including **RbNaCl**.
49
+ * [Crypto.rb Google Group]: join via web or email ([crypto-rb+subscribe@googlegroups.com])
50
+
51
+ [Crypto.rb Gitter]: https://gitter.im/crypto-rb/Lobby
52
+ [Crypto.rb Google Group]: https://groups.google.com/forum/#!forum/crypto-rb
53
+ [crypto-rb+subscribe@googlegroups.com]: mailto:crypto-rb+subscribe@googlegroups.com?subject=subscribe
54
+
59
55
  ## Supported platforms
60
56
 
61
57
  You can use RbNaCl on platforms libsodium is supported (see below).
@@ -63,34 +59,20 @@ You can use RbNaCl on platforms libsodium is supported (see below).
63
59
  This library aims to support and is [tested against][travis] the following Ruby
64
60
  versions:
65
61
 
66
- * Ruby 2.2.6+
67
- * Ruby 2.3.0+
68
- * JRuby 9.1.6.0+
62
+ * Ruby 2.5
63
+ * Ruby 2.6
64
+ * JRuby 9.2
69
65
 
70
66
  If something doesn't work on one of these versions, it's a bug.
71
67
 
72
- This library may inadvertently work (or seem to work) on other Ruby versions,
73
- however support will only be provided for the versions listed above.
74
-
75
- If you would like this library to support another Ruby version or
76
- implementation, you may volunteer to be a maintainer. Being a maintainer
77
- entails making sure all tests run and pass on that implementation. When
78
- something breaks on your implementation, you will be responsible for providing
79
- patches in a timely fashion. If critical issues for a particular implementation
80
- exist at the time of a major release, support for that Ruby version may be
81
- dropped.
82
-
83
- [travis]: http://travis-ci.org/cryptosphere/rbnacl
68
+ [travis]: http://travis-ci.org/crypto-rb/rbnacl
84
69
 
85
70
  ## Installation
86
71
 
87
- Note: [Windows installation instructions are available](https://github.com/cryptosphere/rbnacl/wiki/Windows-Installation).
72
+ Note: [Windows installation instructions are available](https://github.com/crypto-rb/rbnacl/wiki/Installing-libsodium#windows).
88
73
 
89
74
  ### libsodium
90
75
 
91
- **NOTE: Want to avoid the hassle of installing libsodium? Use the
92
- [rbnacl-libsodium](https://github.com/cryptosphere/rbnacl-libsodium) gem**
93
-
94
76
  To use RbNaCl, you will need to install libsodium:
95
77
 
96
78
  https://github.com/jedisct1/libsodium
@@ -153,13 +135,13 @@ information.
153
135
 
154
136
  [YARD API documentation][yard] is also available.
155
137
 
156
- [wiki]: https://github.com/cryptosphere/rbnacl/wiki
157
- [simplebox]: https://github.com/cryptosphere/rbnacl/wiki/SimpleBox
158
- [secretkey]: https://github.com/cryptosphere/rbnacl/wiki/Secret-Key-Encryption
159
- [publickey]: https://github.com/cryptosphere/rbnacl/wiki/Public-Key-Encryption
160
- [signatures]: https://github.com/cryptosphere/rbnacl/wiki/Digital-Signatures
161
- [macs]: https://github.com/cryptosphere/rbnacl/wiki/Authenticators
162
- [hashes]: https://github.com/cryptosphere/rbnacl/wiki/Hash-Functions
138
+ [wiki]: https://github.com/crypto-rb/rbnacl/wiki
139
+ [simplebox]: https://github.com/crypto-rb/rbnacl/wiki/SimpleBox
140
+ [secretkey]: https://github.com/crypto-rb/rbnacl/wiki/Secret-Key-Encryption
141
+ [publickey]: https://github.com/crypto-rb/rbnacl/wiki/Public-Key-Encryption
142
+ [signatures]: https://github.com/crypto-rb/rbnacl/wiki/Digital-Signatures
143
+ [macs]: https://github.com/crypto-rb/rbnacl/wiki/HMAC
144
+ [hashes]: https://github.com/crypto-rb/rbnacl/wiki/Hash-Functions
163
145
  [yard]: http://www.rubydoc.info/gems/rbnacl
164
146
 
165
147
  ## Learn More
@@ -209,7 +191,7 @@ Sure, here you go:
209
191
 
210
192
  ## License
211
193
 
212
- Copyright (c) 2012-2017 Tony Arcieri, Jonathan Stott. Distributed under the MIT License.
194
+ Copyright (c) 2012-2018 Tony Arcieri, Jonathan Stott. Distributed under the MIT License.
213
195
  See [LICENSE.txt] for further details.
214
196
 
215
- [LICENSE.txt]: https://github.com/cryptosphere/rbnacl/blob/master/LICENSE.txt
197
+ [LICENSE.txt]: https://github.com/crypto-rb/rbnacl/blob/master/LICENSE.txt