Commit Graph

306 Commits

Author SHA1 Message Date
Vincent Hanquez
c06edc9591 add a byteArrayConvert which copy and returns potentially a different output type 2015-04-22 06:25:33 +01:00
Vincent Hanquez
26006dfe25 [cleanup] remove useless import now that bytearray is exporting necessary bits 2015-04-22 06:25:01 +01:00
Vincent Hanquez
7cd2d2b701 [cleanup] replace imports 2015-04-22 06:24:12 +01:00
Vincent Hanquez
61ee498643 remove further deprecated modules and such 2015-04-20 10:56:39 +01:00
Vincent Hanquez
b487aef898 cleanup module imports 2015-04-20 07:36:51 +01:00
Vincent Hanquez
f86b493e32 remove warnings 2015-04-20 06:02:12 +01:00
Vincent Hanquez
d7c8835068 Merge branch 'ed25519' 2015-04-19 09:25:00 +01:00
Vincent Hanquez
0aaa6a9e9a [Ed25519] Add haskell bindings and tests 2015-04-19 09:24:37 +01:00
Vincent Hanquez
655d8b9c33 [Error] Add new public key error values 2015-04-19 09:24:21 +01:00
Vincent Hanquez
6e79d33e9f [Internal] Improve Bytes
define Show and Eq instances, and add bytesIndex
2015-04-19 09:23:34 +01:00
Vincent Hanquez
3713c585fe [Internal] add a utility to dump byte array in hexadecimal 2015-04-19 09:22:41 +01:00
Vincent Hanquez
be42fec6e5 [Internal] properly define ByteArrayCopy functions to only requires ByteArrayAccess from the source 2015-04-19 09:21:48 +01:00
Vincent Hanquez
da52607d41 [internal] make some binding stricter 2015-04-19 06:16:31 +01:00
Vincent Hanquez
b28b25abe7 [AES] add gcm / ocb support to base AES type 2015-04-18 07:58:52 +01:00
Vincent Hanquez
0e9d52de95 [Cipher] remove the need for bytestring in Block 2015-04-18 06:58:57 +01:00
Vincent Hanquez
d230fc662a [AES] properly define AES128/192/256 variants. 2015-04-18 06:58:41 +01:00
Vincent Hanquez
7c138b9d9f [AES] export AEAD modes (GCM/OCB) 2015-04-18 06:58:10 +01:00
Vincent Hanquez
8cc58e626b [AEAD] remove AEADState wrapper 2015-04-18 06:57:40 +01:00
Vincent Hanquez
08732c0939 [AEAD] change interface to be less classy (!) 2015-04-18 06:57:18 +01:00
Vincent Hanquez
f686733fc6 [Blowfish] Stop using ecb{Encrypt,Decrypt}Legacy stop gap call. 2015-04-18 06:55:17 +01:00
Vincent Hanquez
d4213ca731 [Internal] Expose first and second over the whole codebase 2015-04-18 06:53:23 +01:00
Vincent Hanquez
38b7f6ad73 [Internal] Add a function to create a initialized to 0 bytearray 2015-04-18 06:52:57 +01:00
Vincent Hanquez
09365a745f [Internal] add a function to set buffer's bytes (i.e. memset) 2015-04-18 06:52:27 +01:00
Vincent Hanquez
dc1215dbd7 [AES] repair genCounter 2015-04-15 11:25:44 +01:00
Vincent Hanquez
cd216f5ee9 [internal] add some new function to copy and alloc + ret 2015-04-15 11:24:23 +01:00
Vincent Hanquez
3adfa4ab2a rename module properly 2015-04-15 11:24:02 +01:00
Vincent Hanquez
c9a70b649f [AES] properly split lowlevel from highlevel 2015-04-13 10:31:46 +01:00
Vincent Hanquez
d7186b9a59 wip AES merging 2015-04-13 10:15:55 +01:00
Vincent Hanquez
af0b1ece4d [internal] add documentation and finish implementing various combinator for CryptoFailable 2015-04-12 08:18:00 +01:00
Vincent Hanquez
224b34eb2c [cipher] re-enable XTS code 2015-04-12 08:05:52 +01:00
Vincent Hanquez
d6f2f7c1c0 [Cipher] make xtsGFMul work on arbitrary ByteArray 2015-04-12 06:50:54 +01:00
Vincent Hanquez
796bbef3c2 [DES] remove unnecessary imports 2015-04-11 16:03:42 +01:00
Vincent Hanquez
26fdfcf563 [Blowfish] use the key directly without stretching it all over the memory 2015-04-11 16:02:45 +01:00
Vincent Hanquez
4247520e91 [Internal] add a way to index bytestring 2015-04-11 16:02:31 +01:00
Vincent Hanquez
b76a2c135a [DES] fix compat that don't have an instance of Bits for Bool 2015-04-11 08:45:04 +01:00
Vincent Hanquez
b08c7a223c Merge branch 'cipher-framework' 2015-04-11 08:28:01 +01:00
Vincent Hanquez
8655eb0468 [Internal] move all primitives stuff in CompatPrim 2015-04-11 08:26:30 +01:00
Vincent Hanquez
6dcba8d8cd [Internal] properly handle big endian architecture
add a CompatPrim module to handle all the primitive compatibility needed,
instead of putting all in Compat.
2015-04-11 08:23:52 +01:00
Vincent Hanquez
d1554b36a6 [Blowfish] remove use of vectors operation in favor of mutableArray and array 2015-04-11 08:03:33 +01:00
Vincent Hanquez
7b597581c2 [Internal] add new methods for mutableArray32 2015-04-11 08:02:54 +01:00
Vincent Hanquez
c075ae354d [Blowfish] Remove unnecessary imports 2015-04-11 07:20:17 +01:00
Vincent Hanquez
a2fb62ffd8 [Blowfish] put all the boxes together so we don't need to concat them
also create the vector in one place when mixing with the key
2015-04-11 07:18:40 +01:00
Vincent Hanquez
51cdd1bcd8 [Internal] add write Xor for mutable array 2015-04-11 07:17:49 +01:00
Vincent Hanquez
b191ef461c rewrite blowfish core to mostly generate its key schedule in one allocation. 2015-04-11 07:00:21 +01:00
Vincent Hanquez
e0e0d8dafd add mutable array methods 2015-04-11 06:59:41 +01:00
Vincent Hanquez
b6f70d5314 massively rewrite the core to be more optimised 2015-04-10 14:03:28 +01:00
Vincent Hanquez
a1c21f130c move core to map over Word64 view of a byte array directly.
this bring a massive speedup and adapt the core blowfish encryption and
decryption to work on any bytearray without creating a bytestring.
2015-04-10 10:43:14 +01:00
Vincent Hanquez
3b966c0995 move boxes to their own private module 2015-04-10 10:42:10 +01:00
Vincent Hanquez
bb331f94f8 remove vector from camellia 2015-04-10 09:26:37 +01:00
Vincent Hanquez
0c3a57f573 [Internal] actually initialize the array to n, not to 0. 2015-04-10 09:26:17 +01:00
Vincent Hanquez
f470196f41 replace Vector creation by an already packed Addr# 2015-04-10 08:43:42 +01:00
Vincent Hanquez
cf9090219e initial array abstraction 2015-04-10 08:29:49 +01:00
Vincent Hanquez
7e8171d9fe add booleanPrim to compat. 2015-04-10 08:29:27 +01:00
Vincent Hanquez
fe2f6c33d6 add packed representation of some of the list. 2015-04-10 07:39:56 +01:00
Vincent Hanquez
7d1b5117a8 export some crypto failable combinators 2015-04-10 07:23:51 +01:00
Vincent Hanquez
02533b43a7 simplify boolean operation 2015-04-10 07:23:31 +01:00
Vincent Hanquez
bc306afc1b [DES] fix serialization 2015-04-09 17:22:57 +01:00
Vincent Hanquez
7a85896359 [Camellia] More refactoring 2015-04-09 16:52:21 +01:00
Vincent Hanquez
c00d7b9eca [Camellia] cleanup words handling 2015-04-09 07:59:08 +01:00
Vincent Hanquez
67c76c126b [Camellia] remove the need to go through a ByteString to make the key schedule 2015-04-09 07:45:13 +01:00
Vincent Hanquez
d96d89e4ba start cleaning up Camellia 2015-04-09 07:41:15 +01:00
Vincent Hanquez
f73b0e142e comments some work in progress piece of code with error handling 2015-04-08 22:33:39 +01:00
Vincent Hanquez
842d3fd44a fix some warnings 2015-04-08 22:30:01 +01:00
Vincent Hanquez
9d0cf74713 remove Byteable and unnecessary SecureMem 2015-04-08 20:42:43 +01:00
Vincent Hanquez
8d9f493fe2 add fast and time constant Eq function for bytearray 2015-04-08 20:42:15 +01:00
Vincent Hanquez
7e6f570e49 add a LE64 method 2015-04-08 20:41:57 +01:00
Vincent Hanquez
21c4c1befb add an instance of Eq for IV 2015-04-08 20:41:34 +01:00
Vincent Hanquez
28e64ec8d3 remove Byteable in one module 2015-04-08 20:41:19 +01:00
Vincent Hanquez
65780e38cb remove unnecessary cast in DES 2015-04-08 20:41:06 +01:00
Vincent Hanquez
f31772bd6e swap endianess 2015-04-08 20:40:30 +01:00
Vincent Hanquez
32e7eee060 add Endian module 2015-04-08 15:52:26 +01:00
Vincent Hanquez
279eebf2c6 fix stuff 2015-04-08 15:52:11 +01:00
Vincent Hanquez
39ee0a4aa2 refactor some stuff 2015-04-08 14:58:49 +01:00
Vincent Hanquez
ca125f3e66 wip 2015-04-08 14:12:58 +01:00
Vincent Hanquez
72354397e8 merge all crypto ciphers available. add temporarily a vector dependency 2015-04-08 11:53:41 +01:00
Vincent Hanquez
3a940a6e2c remove commented code 2015-04-08 08:17:45 +01:00
Vincent Hanquez
78d75b2ca2 re-add ivAdd 2015-04-08 08:08:56 +01:00
Vincent Hanquez
6b70e270e1 add Central Imports 2015-04-07 10:57:16 +01:00
Vincent Hanquez
6216137f43 wip in cipher refactoring 2015-04-07 10:56:59 +01:00
Vincent Hanquez
3b19f768ce add crypto errors standard enumeration and some helper. 2015-04-07 10:56:38 +01:00
Vincent Hanquez
54ba47384c introduce new byte array operation 2015-04-07 10:54:08 +01:00
Vincent Hanquez
6d9317f963 first issue found by QA code check. we don't need those extensions there. 2015-04-07 06:56:06 +01:00
Vincent Hanquez
fb7855985e reorder extension 2015-04-07 06:52:54 +01:00
Vincent Hanquez
6c4557621c merge crypto-cipher-types 2015-04-06 14:54:46 +01:00
Vincent Hanquez
abacea200d further fix 2015-04-05 12:32:40 +01:00
Vincent Hanquez
6eae9b0557 fix warnings 2015-04-05 12:19:26 +01:00
Vincent Hanquez
ed4da5734b fix old build 2015-04-05 11:17:52 +01:00
Vincent Hanquez
e74448aeb4 cryptonitize AES, and add foreign function interfaces to it (not exported). 2015-04-05 10:44:23 +01:00
Vincent Hanquez
c5c04176de remove unnecessary separator 2015-04-05 07:47:27 +01:00
Vincent Hanquez
3308ec0d92 cleanup extensions in modules 2015-04-05 07:47:16 +01:00
Vincent Hanquez
969daf5af1 move more compat things into Internal.Compat. 2015-04-05 07:46:34 +01:00
Vincent Hanquez
57aa7ce098 use more Internal.Compat to get UnsafeDoIO 2015-04-05 07:46:18 +01:00
Vincent Hanquez
827407fbed use BinaryPolynomial when it is one in F2m 2015-04-03 08:17:47 +01:00
Vincent Hanquez
b556bdb649 add missing modules 2015-04-03 07:33:16 +01:00
Vincent Hanquez
b1e222cf3d merge crypto-pubkey-types and crypto-pubkey
adapt CPRG to MonadRandom
2015-04-03 07:33:16 +01:00
Vincent Hanquez
abb470f8b7 add Crypto.Random abstraction interface 2015-04-03 07:28:07 +01:00
Vincent Hanquez
ac77a20c06 add simple ChaChaRNG 2015-04-03 07:27:44 +01:00
Vincent Hanquez
b570388917 add simple chacha interface 2015-04-03 07:27:19 +01:00
Vincent Hanquez
bae4bcd064 add new function. including commented out split for now. 2015-04-03 07:26:46 +01:00
Vincent Hanquez
9fd91da855 refactor AFIS import list 2015-04-03 07:26:25 +01:00
Vincent Hanquez
16d24161e1 add a wrapper to memcpy that does the right things with various versions of memcpy 2015-04-03 07:26:09 +01:00
Vincent Hanquez
a82a544fec add a simple alias to SecureMem for future refactoring
Signed-off-by: Vincent Hanquez <vincent@snarc.org>
2015-04-03 07:25:22 +01:00
Vincent Hanquez
c991abda23 fix another old version's memcpy 2015-03-30 16:02:00 +01:00
Vincent Hanquez
4a6bfe98fc fix old version 2015-03-30 15:50:05 +01:00
Vincent Hanquez
5f2aa94355 add AFIS 2015-03-30 15:08:11 +01:00
Vincent Hanquez
c3d9570881 re-add the primitives to generate primes and test for prime. 2015-03-29 10:55:46 +01:00
Vincent Hanquez
d9b16a529e re-enable number generation 2015-03-29 10:43:45 +01:00
Vincent Hanquez
be3eacc068 ask for Functor for a MonadRandom too. 2015-03-29 10:43:24 +01:00
Vincent Hanquez
f3bf67df99 add withByteArray 2015-03-29 10:43:11 +01:00
Vincent Hanquez
37557af615 add length abstraction for byte array 2015-03-29 09:16:44 +01:00
Vincent Hanquez
a4d3dc4d10 add a simple random abstraction 2015-03-29 09:09:55 +01:00
Vincent Hanquez
d9ba6034c4 correct haddock 2015-03-29 09:08:34 +01:00
Vincent Hanquez
41039c7b5b add a simple abstraction for bytearray allocation+fill 2015-03-29 09:00:09 +01:00
Vincent Hanquez
1a8a5aef62 remove useless function 2015-03-29 08:59:47 +01:00
Vincent Hanquez
95160dee56 update modules to use more efficient byte array memory allocation and representation for contextes 2015-03-08 15:18:28 +08:00
Vincent Hanquez
7d28eb3630 add a more efficient types than bytestring. 2015-03-08 15:16:55 +08:00
Vincent Hanquez
c2283d51ae make description more precise 2015-03-08 15:15:37 +08:00
Vincent Hanquez
bbbbdc4b39 use directly compat module instead of Crypto.Hash.Internal 2015-02-15 00:39:34 +00:00
Vincent Hanquez
effca93970 align dollar sign 2015-02-15 00:14:07 +00:00
Vincent Hanquez
41361968f6 add bytes manipulation function 2015-02-15 00:13:51 +00:00
Vincent Hanquez
b5dbc9caae add internalUpdateUnsafe to process data more efficiently at the expense of threads.
internalUpdateUnsafe, just like internalUpdate update the context, but
does it using the unsafe key word for the ffi binding
2015-02-14 23:39:06 +00:00
Vincent Hanquez
90d02607ba merge crypto-numbers minus all the random parts 2015-02-09 05:47:11 +00:00
Vincent Hanquez
7c6adacef9 add signature to compat popCount 2015-02-08 14:41:07 +00:00
Vincent Hanquez
d2a119d1ad add popCount for old version 2015-02-08 13:30:10 +00:00
Vincent Hanquez
09e8670b70 add bang for unlifted bindings 2015-02-08 13:25:04 +00:00
Vincent Hanquez
70e2321d95 update architectures of modules to separate IO and mutable parts from the immutable part 2015-02-08 12:03:00 +00:00
Vincent Hanquez
bc75680084 fix Kekkak 2015-02-08 11:14:20 +00:00
Vincent Hanquez
36ad1997e3 update module texts 2015-02-08 11:02:42 +00:00
Vincent Hanquez
cd870d4259 really fix build issue with ghc 7.4 2015-01-27 16:26:01 +00:00
Vincent Hanquez
9754f8b31f add bytestring instances for old ghc 2015-01-27 16:04:04 +00:00
Vincent Hanquez
033b9ced81 add support for curve 25519 2015-01-27 06:25:41 +00:00
Vincent Hanquez
ec26f9a25b add initial support for curve25519 2015-01-27 06:20:19 +00:00
Vincent Hanquez
6f877c84c3 create a module to put all the compat necessary for running over a wide range of versions 2015-01-27 05:58:06 +00:00
Vincent Hanquez
a98b7548b2 fix integral type for older version of memcpy. fix ghc 7.4.x 2014-11-09 14:15:55 +00:00
Vincent Hanquez
bd1c010df9 just like poly1305, add a way to mac multiple inputs 2014-11-09 09:59:35 +00:00
Vincent Hanquez
022f16eeef While it's probably safe, don't use a "pure" bytestring as a buffer.
reallocate a new buffer and copy the old thing inside.
2014-10-04 22:37:31 +01:00
Vincent Hanquez
adca793a9f Reorganize entropy interfaces.
* separate pool into a different module
* only export by default a simple gathering function
* export an unsafe module with all the memory methods
2014-08-25 08:00:10 +01:00
Vincent Hanquez
1f9d7af56f add a working implementation of scrypt. 2014-08-23 16:36:29 +01:00
Vincent Hanquez
903ff726a2 add kekkak 2014-08-14 13:47:41 +02:00
Vincent Hanquez
c84acf079e add Scrypt placeholder 2014-07-27 11:09:45 -07:00
Vincent Hanquez
04912a180a correct a typo in PBKDF2 2014-07-27 11:07:59 -07:00
Vincent Hanquez
480ff26a34 cleanup in PBKDF2 2014-07-23 05:58:22 -07:00
Vincent Hanquez
9c9007c3b0 use securemem abstraction and byteable helpers in RC4 2014-07-21 11:17:42 +01:00
Vincent Hanquez
f2bfecfa3e add RC4 2014-07-21 10:58:42 +01:00
Vincent Hanquez
5097e18d30 Merge branch 'entropy'
Conflicts:
	cryptonite.cabal
2014-07-19 15:07:59 +01:00
Vincent Hanquez
6005eca7bd make the entropy gathering simpler for certain setup, and cleanup a bit 2014-07-19 15:06:39 +01:00
Vincent Hanquez
a0ce598e37 add PBKDF2 2014-07-18 15:26:01 +01:00
Vincent Hanquez
5e23ef92a5 add HMAC 2014-07-09 13:15:49 +01:00
Vincent Hanquez
4e955ad505 merge entropy from crypto-random 2014-07-09 08:12:34 +01:00
Vincent Hanquez
09feb59f62 merge cryptohash 2014-07-07 14:55:55 +01:00
Vincent Hanquez
336093c53b Merge branch 'salsa'
Conflicts:
	README.md
	cryptonite.cabal
	tests/Tests.hs
2014-07-07 08:10:31 +01:00
Vincent Hanquez
16eb6fa387 Add Salsa20 cipher. most is copied from the ChaCha implementation 2014-07-07 08:04:57 +01:00
Vincent Hanquez
7c03f3314b faster one-pass auth call. 2014-07-07 04:41:35 +01:00
Vincent Hanquez
c4c0802f80 Add working implementation of poly1305 with 1 test vector. 2014-07-06 15:44:54 +01:00
Vincent Hanquez
9fd200e407 add Poly1305 module (non-exposed) 2014-07-06 14:06:20 +01:00
Vincent Hanquez
fb85f8639f initial commit. 2014-07-04 14:58:01 +01:00