Commit Graph

76 Commits (515ad1b72283a2b13a7edf7bd166489a3cd23eae)

Author SHA1 Message Date
Didactic Drunk f766db7e9e Sodium::SecureBuffer Fix copying noaccess SecureBuffer's. 2019-09-28 08:58:25 -07:00
Didactic Drunk 1e240f70b6 Make Sodium::SecretBox#key public. 2019-09-23 05:15:53 -07:00
Didactic Drunk 551d59865c Release 1.1.0
Sodium::Cipher::Aead::Xchacha20Poly1305Ietf
	New recommended AEAD algorithm.
Sodium::Password
	Create keys based on a time cost.
	Hashing and Key derivation split in to separate classes.
Sodium::*::PublicKey
	JSON and Yaml converters.
Sodium::Cipher::Chalsa
	Add #random_bytes for use as a CSPRNG.
Sodium::Nonce
	Reuse detection.
Sodium::SecureBuffer
	State transitions with exceptions instead of crashes.
Sodium::Kdf
	Use SecureBuffer to keep key unreadable until used.

SecureBuffer uniformly used in most key holding classes with erase param.

More documentation.
More benchmarks.
More specs.
2019-09-17 04:32:13 -07:00
Didactic Drunk 194ed5f4ef Add Documentation. 2019-09-17 04:31:39 -07:00
Didactic Drunk 3c345f7be8 Fix examples. 2019-09-16 02:35:38 -07:00
Didactic Drunk b4fe9ef1c3 Split Sodium::Pwhash in to Sodium::Password::Hash and Sodium::Password::Key. 2019-09-16 02:21:37 -07:00
Didactic Drunk fbb7e9434a Sodium::CryptoBox::PublicKey make #encrypt identical to SecretBox#encrypt. 2019-09-14 06:34:50 -07:00
Didactic Drunk 8aea82b296 Add Sodium::CryptoBox::SecretKey#decrypt_string
Add Sodium::SecretBox#decrypt_string
Add Documentation.
2019-09-14 06:05:13 -07:00
Didactic Drunk 8572ba65c8 Documentation. 2019-09-14 04:47:57 -07:00
Didactic Drunk d0f3100689 Sodium::Cipher::Aead::XChaCha20Poly1305Ietf Always use SecureBuffer. Rename. 2019-09-13 22:39:29 -07:00
Didactic Drunk b212f6bacd Fix Sodium::SecureBuffer state transitions. 2019-09-13 21:33:21 -07:00
Didactic Drunk 964fe714e9 Sodium::Cipher::Aead::Xchacha20Poly1305Ietf Add combined mode. 2019-09-13 03:16:04 -07:00
Didactic Drunk 192044b27a Sodium::Cipher::Aead::Xchacha20Poly1305Ietf Add class and basic specs. 2019-09-13 03:16:00 -07:00
Didactic Drunk c3a9fe178a Sodium::Pwhash create keys based on time cost.
Add #craete_key and #craete_kdf.
2019-09-12 22:28:49 -07:00
Didactic Drunk 5196ee992e Sodium::Cipher::Chalsa Add #random_bytes for use as a CSPRNG. 2019-09-03 01:10:31 -07:00
Didactic Drunk ed7ba20082 Sodium::Kdf keep SecureBuffer in noaccess state except when in use. 2019-09-01 10:31:36 -07:00
Didactic Drunk 8cdb4cbf42 Sodium::SecureBuffer
Add State and transitions.
  New Exceptions.
  Raise instead of crashing when attempting to access buffer.
  Allow wiping more than once.
  Add specs.
2019-09-01 02:51:48 -07:00
Didactic Drunk 7d33f1519f Sodium::Nonce add JSON and Yaml converters. 2019-08-30 22:30:21 -07:00
Didactic Drunk a825d61039 Sodium::SecretBox::PublicKey add JSON and Yaml converters.
Sodium::Sign::PublicKey add JSON and Yaml converters.
2019-08-29 01:16:48 -07:00
Didactic Drunk 740e49cc6b Sodium::Sign::SecretKey#initialize add erase argument. 2019-08-26 03:31:17 -07:00
Didactic Drunk bf2aaf0fe1 Documentation fixup 2019-08-26 03:23:03 -07:00
Didactic Drunk 2dda619026 Add default Sodium::Pwhash algorithm. 2019-08-24 14:15:37 -07:00
Didactic Drunk 2d0ed351ea Allow reusable nonces. 2019-08-06 22:56:49 -07:00
Didactic Drunk 8ed9f94ead Documentation fixes. 2019-08-06 16:45:20 -07:00
Didactic Drunk 54dfb4a454 Release 1.0.1 2019-08-06 15:51:51 -07:00
Didactic Drunk 54a3cd8a8a Sodium::Nonce reuse detection. 2019-08-06 15:14:25 -07:00
Didactic Drunk 075c245011 Release 1.0.0 2019-08-06 15:14:25 -07:00
Didactic Drunk d556e1c909 Use crypto_box_beforenmbytes to precompute CryptoBox shared key. 2019-08-06 14:30:43 -07:00
Didactic Drunk 31c3ead851 Add Documentation. 2019-08-06 04:37:38 -07:00
Didactic Drunk fde955c509 Rename Sodium::Pwhash#store to #create.
Rename Sodium::Pwhash#key_derive to #derive_key.
Rename Sodium::Pwhash#kdf_derive to #derive_kdf.
Rename Sodium::CryptoBox#encrypt_easy to #encrypt.
Rename Sodium::CryptoBox#decrypt_easy to #decrypt.
Rename Sodium::SecretBox#encrypt_easy to #encrypt.
Rename Sodium::SecretBox#decrypt_easy to #decrypt.

Remove redundant Sodium::SecretBox#encrypt methods.
2019-08-06 03:58:22 -07:00
Didactic Drunk 4be74741d5 Use timing safe compare in Sodium::SecureBuffer. 2019-08-05 22:30:24 -07:00
Didactic Drunk 9247d739ac Allow dup of Sodium::SecureBuffer.
Sodium::Digest::Blake2b use to_slice internally.
2019-07-27 00:35:27 -07:00
Didactic Drunk d577e3b1be Remove remaining base64 conversion.
Version to 0.9.1
More examples/constants.cr
Remove unused development dependency.
2019-07-09 15:32:41 -07:00
Didactic Drunk fc60839d5b Documentation. 2019-07-09 00:42:56 -07:00
Didactic Drunk 96b215cf54 Add Sodium::Cipher::SecretStream 2019-07-08 23:39:00 -07:00
Didactic Drunk 65ad5987d4 SecureBuffer for Chalsa. 2019-07-08 16:08:39 -07:00
Didactic Drunk cfd8a10b6b Blake2b accepts a SecureBuffer key.
More public constructors for SecretBox.
2019-07-08 13:24:25 -07:00
Didactic Drunk d1c8829fcf API changed all Key classes .bytes to .to_slice
Switched most custom Wipe implementation to libsodium guarded memory.
2019-07-03 18:04:13 -07:00
Didactic Drunk 769e02e4c7 Add Pwhash test vectors from PyNaCl and RbNaCl.
Pwhash::Algorithm renamed to Mode to be more like other libsodium bindings.
Cryptobox#encrypt now returns {encrypted, nonce} identical to SecretBox.
2019-07-01 10:50:46 -07:00
Didactic Drunk 92ac0ef6d4 Version 0.9.0
Rearrange CryptoBox.
Move Sodium::Error to it's own file.
Requiring individual files is now possible.
Individual require now possible.
2019-07-01 06:47:11 -07:00
Didactic Drunk 7dcaeb1332 Add examples/constants.cr 2019-06-30 14:21:31 -07:00
Didactic Drunk 7745e2f912 Wipe bugfix for StaticArray.
Thanks (in no particular order shuffled randomly until alphabetical)
  @asterite @bcardiff @blacksmoke16
2019-06-30 14:03:08 -07:00
Didactic Drunk 26277f4e90 Add blake2b test vectors. 2019-06-29 23:47:54 -07:00
Didactic Drunk 65b12cddd9 Documentation. 2019-06-29 19:49:57 -07:00
Didactic Drunk 82c19bc78e Documentation.
Remove wipe in specs until bugs sorted out.

Switch most remaining properties to getter.
2019-06-29 19:20:30 -07:00
Didactic Drunk f038f9b52e Add unauthenticated secret/public key encryption. 2019-06-29 18:19:01 -07:00
Didactic Drunk 162cd72b0c Add seed support to CryptoBox and Sign.
Wiping now supports multiple variables by Annotation.
2019-06-29 17:21:00 -07:00
Didactic Drunk 41a55a9593 Sodum::CryptoBox::SecretKey may derive keys from a seed.
Sodum::Sign::SecretKey may derive keys from a seed.
Sodum::CryptoBox::Pair renamed to Sodum::CryptoBox::Box
2019-06-29 12:44:47 -07:00
Didactic Drunk a4b1b8071c Rename project from "cox" to "sodium.cr". 2019-06-28 16:25:05 -07:00
Didactic Drunk 8e939b9518 API change. Cox::Blake2b renamed to Cox::Digest::Blake2b 2019-06-28 13:58:55 -07:00