Commit Graph

111 Commits

Author SHA1 Message Date
Kefah T. Issa
3596abdb3c
Fix the shard.yml setup
The shard name should be "sodium" without .cr otherwise we get an error when running `shards install`
2019-10-13 21:43:46 +03:00
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
9b803f9f17 Document thread safety. 2019-09-17 09:05:55 -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
c470ef8865 Add Nonce spec. 2019-09-16 02:21:37 -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
dd3fe7822b Add Chalsa CSPRNG benchmarks. 2019-09-14 04:30:45 -07:00
Didactic Drunk
030b90c2ff XChaCha20-Poly1305-IETF Test vectors. 2019-09-14 04:22:05 -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
428907318b Documentation fix. [skip ci] 2019-08-31 02:47:34 -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
ac15f86705 Add Nonce reuse detection.
Build example as part of tests.
2019-08-10 03:58:30 -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
d34bcb49f4 Fix github badge. 2019-08-06 16:29:47 -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
8ca9dc6ff9 Add Sodium::Sign::SecretKey detached test vectors. 2019-08-06 02:20:47 -07:00
Didactic Drunk
4be74741d5 Use timing safe compare in Sodium::SecureBuffer. 2019-08-05 22:30:24 -07:00
Didactic Drunk
0d8dd544d5 More test vectors from PyNaCl. 2019-08-05 22:30:24 -07:00
Didactic Drunk
95894ef8fd Verify libsodium download using minisign. 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
159c381cef More constants in examples/constants.cr 2019-07-09 01:56:38 -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