kinoru
558c21491e
Fix typo: Kekkak -> Keccak
...
The SHA-3 winning algorithm's name is Keccak (pronounced "catch-ack"),
not Kekkak.
- <http://keccak.noekeon.org/ >
- <http://www.nist.gov/itl/csd/sha-100212.cfm >
- <https://en.wikipedia.org/wiki/SHA-3 >
2015-10-27 14:56:42 +00:00
John Galt
55c6988a6e
Added support for incrementing Nonces
2015-10-05 14:08:08 -04:00
Vincent Hanquez
c94df41f02
[ECC] fix compilation of missing numBits
2015-09-22 17:48:43 +01:00
Vincent Hanquez
b63dc38c49
[ECC] add generate for ECC generic's scalar and point Base Multiplication helper.
2015-09-22 17:23:22 +01:00
Vincent Hanquez
08a8155f12
[P256] add function to generate a new scalar, and to get the base point.
2015-09-22 17:22:13 +01:00
Vincent Hanquez
9a1f06e3e8
[ECC] add curveSizeBits
2015-09-22 17:21:35 +01:00
Luke Taylor
6d33b66245
BCrypt module doc updates
...
- Add doctest style example usage
- List most relevant functions
- Reformat comments
- Minor corrections and additions
2015-09-01 15:22:58 +01:00
Vincent Hanquez
71fe77da68
[endianess] fix some issues on non supported arches
2015-08-28 17:10:27 +01:00
Joachim Breitner
507a8f8cea
Use mkLE, not LE
...
to make sure the conversion to little endian is actually happening. This
fixes a test failure in ChaChaPoly1305. Fixes #31 .
2015-08-27 14:52:37 +02:00
Vincent Hanquez
ea8cb2d45a
[blowfish] remove unnecessary list of word32 for the schedule
...
Just use the binary's array directly
2015-08-27 10:57:28 +01:00
Luke Taylor
f346c46243
Add BCrypt module doc and a validatePasswordEither fn
2015-08-26 10:33:36 +01:00
Luke Taylor
39d5eb13fe
Add bcrypt password hashing and validation API
2015-08-26 10:33:36 +01:00
Luke Taylor
2566e46185
Implement the eksBlowfish function
...
This modifies the standard blowfish key schedule function to accept an
optional salt and cost as used in bcrypt and modifies the algorithm
accordingly to implement the "expensive" version.
The standard blowfish version is just the same but with a salt value of
zero and a single call to the expandKey function. See the original
bcrypt paper for more details.
2015-08-26 10:33:35 +01:00
Luke Taylor
08ebde2f09
Modify creation of Blowfish key schedule
...
Changes to create it from an array of Word32, instead of using
mutableArray32FromAddrBE, which seems to reverse the words.
2015-08-26 10:33:35 +01:00
Vincent Hanquez
cd8f70e062
[Padding] add PKCS5/PKCS7 padding/unpadding methods
2015-08-18 12:03:05 +01:00
Vincent Hanquez
4653f36d19
[Poly1305] add NFData for Tag.
2015-07-30 14:40:35 +01:00
Vincent Hanquez
ead424f793
[Scrypt] reduce line size of comment
2015-07-29 10:03:43 +01:00
Vincent Hanquez
8a0bacfc6d
[Poly1305] make initialize explicitely failable
2015-07-29 09:49:49 +01:00
Vincent Hanquez
4af8185d65
add new MAC key error
2015-07-29 09:45:51 +01:00
Vincent Hanquez
e064af5cba
[chachapoly1305] properly handle the decryption, and change combine to encrypt.
2015-07-29 07:24:46 +01:00
Vincent Hanquez
ce849fb0d2
[ChaChaPoly1305] add implementation and simple KAT test
2015-07-19 17:53:56 +01:00
Vincent Hanquez
5dab0190ac
[Poly1305] Rename Ctx to State
2015-07-19 17:51:46 +01:00
Vincent Hanquez
ce043f49a1
[AES] fix wrongly indented comment
2015-07-19 17:51:00 +01:00
Andrey Sverdlichenko
4581a737d7
Use non-blocking IO with /dev/random.
...
Do not wait for data to appear from /dev/random, otherwise server is blocked
for a few seconds if there is no entropy left.
2015-06-29 07:32:42 +00:00
Vincent Hanquez
b37ee01636
[random] add a System "DRG"
2015-06-20 15:51:42 +01:00
Vincent Hanquez
25526e24a1
Merge branch 'hashdescr'
2015-06-19 11:06:11 +01:00
Vincent Hanquez
0b6b2d661c
[Random] allow drgNew to be run in any MonadRandom directly.
...
this allow cascading, create a DRG from another DRG
2015-06-19 11:05:54 +01:00
Vincent Hanquez
0d2290a4a1
[RSA] allow data to be passed as is, instead of hashed
2015-06-19 11:04:37 +01:00
Vincent Hanquez
39cf449ba7
add some missing instance of HashAlgorithmASN1
2015-06-19 11:04:17 +01:00
Tobias Florek
ff36164305
copy withRandomBytes from crypto-random
2015-06-12 20:52:15 +02:00
Vincent Hanquez
a9df2a2180
[RSA] remove hashdescr in favor of just specifying the algorithm directly
...
The extra information is embedded in the HashAlgorithmASN1 class
that allow a digest to ASN1 structured.
2015-06-10 12:27:37 +01:00
Vincent Hanquez
0900f3b1b0
Merge pull request #9 from tekul/aescleanup
...
Remove unused AES primitives functions and exports
2015-06-09 15:17:51 +01:00
Vincent Hanquez
fb4006b41a
Merge branch 'master' of https://github.com/vincenthz/cryptonite
2015-06-09 14:39:33 +01:00
Vincent Hanquez
35bad8c241
[hash] properly display Digest just like cryptohash.
...
fix #8
2015-06-09 14:35:23 +01:00
Luke Taylor
875b80107c
Remove unused AES primitives functions and exports
...
The code for initializing different AEAD modes is now encapsulated in
the BlockCipher type and the individual mode encryption and decryption
functions have been replaced by generalized versions, so are no longer
used.
2015-06-09 11:45:39 +02:00
Luke Taylor
4e1437d4fd
Minor haddock fixes
...
Fix some incorrect parameter descriptions and spelling/typos.
2015-06-07 13:26:26 +02:00
Vincent Hanquez
7301c719bf
[P256] use ScrubbedBytes for Scalar
2015-06-02 14:22:48 +01:00
Vincent Hanquez
be75de64e1
[aes] fast track length == 0 with ECB encryption/decryption
2015-06-02 14:22:26 +01:00
Vincent Hanquez
daff858fe1
[number] cleanup in serialization
2015-06-01 13:03:21 +01:00
Vincent Hanquez
453e9a6f35
[number] internal serialize, unconditionally zero the buffer.
2015-06-01 13:02:53 +01:00
Vincent Hanquez
6028e95805
[number] cleanup
2015-06-01 11:50:24 +01:00
Vincent Hanquez
f63a3c6025
[p256] fix all the bugs found by the now useful P256 test suite
2015-06-01 07:48:31 +01:00
Vincent Hanquez
d873564c54
[number] split the serialization to support a more bit banging direct approach
2015-06-01 05:59:54 +01:00
Vincent Hanquez
e9c812e4fd
[error] make CryptoFailable an instance of Show and Eq if possible
2015-06-01 05:59:25 +01:00
Vincent Hanquez
4edb580cda
[P256] add warning for non constant time operation
2015-05-30 10:38:59 +01:00
Vincent Hanquez
78fa0c3650
[P256] implement missing function, and remove un-implementable one.
...
remove temporary removal, and properly fixes #1
2015-05-29 15:47:25 +01:00
Vincent Hanquez
ac67e0d8fb
Merge branch 'master' of https://github.com/vincenthz/cryptonite
2015-05-26 22:09:49 +01:00
Vincent Hanquez
e413290d8f
[p256] temporary remove missing functions. fix #1
2015-05-26 22:09:12 +01:00
Nicolas DI PRIMA
57c814f20b
add Ord instance on Digest
2015-05-26 19:10:26 +01:00
Vincent Hanquez
73c5d2145e
[random] fix entropy modules on windows 64 bits.
2015-05-25 07:44:15 +01:00
Vincent Hanquez
0e048b77c4
[number] correct tweak function to mask things properly
2015-05-23 17:09:07 +01:00
Vincent Hanquez
e14d9cafc9
[number] add debugging in case of error
2015-05-23 16:28:50 +01:00
Vincent Hanquez
bc4a55ff74
[number] further cleanup random generation
2015-05-23 13:44:26 +01:00
Vincent Hanquez
c0e50547ad
[number] remove the need for a random generator for testing primality
...
a DRG is implicitely created when calling the non gmp primality test
2015-05-23 12:55:29 +01:00
Vincent Hanquez
ed48246740
[random] Just export the type of MonadPseudoRandom
2015-05-23 12:30:52 +01:00
Vincent Hanquez
23b5146f0f
[number] remove unnecessary random number generator
2015-05-23 12:02:05 +01:00
Vincent Hanquez
2153e5690f
[number] generate number with bounds more effectively
2015-05-23 11:59:10 +01:00
Vincent Hanquez
ca2ec5a03d
[random] export MonadPseudoRandom
2015-05-23 11:58:36 +01:00
Vincent Hanquez
05e0e1a587
[number] add helpers to get bits size ond bytes size
...
the later is already available as 'lengthBytes' in Serialize module
2015-05-23 09:16:36 +01:00
Vincent Hanquez
cddac096cd
[number] rename generate into generateParams
2015-05-23 09:15:42 +01:00
Vincent Hanquez
27dacbfb21
add gmpSizeInBits
2015-05-23 09:15:15 +01:00
Vincent Hanquez
efedb38570
[number] add a new routine to generate random number
2015-05-22 21:36:13 +01:00
Vincent Hanquez
a0009bf713
[hash] remove redundant module
2015-05-22 18:43:35 +01:00
Vincent Hanquez
8eaaa06e1e
add optional support for deepseq
2015-05-22 18:35:46 +01:00
Vincent Hanquez
02956f9ef0
[KDF] move PBKDF2 and Scrypt to not be pinned to ByteString
2015-05-22 15:19:42 +01:00
Vincent Hanquez
1dacb7fa94
[Salsa] opaquify the state just like for hash functions
...
add more tests
2015-05-22 14:04:54 +01:00
Vincent Hanquez
9a69c61e84
[ChaCha] opaquify the state to be handled directly in the C level just like the hash function
...
increase the number of tests
2015-05-22 14:04:27 +01:00
Vincent Hanquez
5d85834264
remove unnecessary extension
2015-05-21 14:51:23 +01:00
Vincent Hanquez
16839d3a43
[number] remove the ByteString from generation of high bits
2015-05-21 14:48:26 +01:00
Vincent Hanquez
7f11a66d50
[DSA] re-align imports
2015-05-21 14:46:45 +01:00
Vincent Hanquez
28958a6d03
[RSA] remove ByteString from Primitive module
2015-05-21 14:32:53 +01:00
Vincent Hanquez
c111dfeb8e
[pubkey] remove bytestring from MaskGenFunction
2015-05-21 11:09:48 +01:00
Vincent Hanquez
ff736b47ca
[cipher] use mconcat that force input to be the same as output
2015-05-21 11:06:41 +01:00
Vincent Hanquez
c7de32a6f6
[RSA] remove the need for bytestring in HashDescr and work towards more removal
2015-05-21 09:46:13 +01:00
Vincent Hanquez
8065c26c2d
remove dangerous OverloadedStrings
2015-05-21 06:45:46 +01:00
Vincent Hanquez
dc34ce8289
[RSA] properly indent modules imports
2015-05-21 06:35:19 +01:00
Vincent Hanquez
4758df2c3a
[entropy] missing CPP extension for windows entropy gather module
2015-05-21 05:28:50 +01:00
3noch
9c1d9695c5
support windows 64 bits
2015-05-20 09:11:33 +01:00
Vincent Hanquez
881d167cb5
more fixing up description and comments
2015-05-20 06:22:00 +01:00
Vincent Hanquez
92343f856a
add comments and description
2015-05-20 06:07:31 +01:00
Vincent Hanquez
393b159d5f
[hash] add haddock documentation
2015-05-19 11:51:18 +01:00
Vincent Hanquez
9794e2132b
[hash] replace scrub by reset
...
reset make more sense as it leave the mutable context in a state where
it can be re-used by further update, whereas scrub doesn't.
2015-05-19 11:50:56 +01:00
Vincent Hanquez
987f9e7bb6
[internal] update to latest memory, and remove builtin support as memory is now available
2015-05-18 18:33:14 +01:00
Vincent Hanquez
c5f9ab2d35
[internal] update memory to latest
2015-05-14 10:04:16 +01:00
Vincent Hanquez
26ec954a48
[Cipher] fix salsa and chacha related to chunking
2015-05-12 14:36:50 +01:00
Vincent Hanquez
fdf735d4e2
[PubKey] move ElGamal to use HashAlgorithm and ByteArrayAccess.
2015-05-12 07:01:20 +01:00
Vincent Hanquez
5d2b417854
[pubkey] make DSA and ECDSA ByteString free
2015-05-11 14:18:49 +01:00
Vincent Hanquez
d035e3a3bc
[number] properly handle gmp
2015-05-11 11:39:09 +01:00
Vincent Hanquez
b3ebf3f3b8
[number] fix import
2015-05-11 10:07:15 +01:00
Vincent Hanquez
eaad39a1af
remove need for bytearray to marshall Word8s into a Word64
2015-05-11 10:04:56 +01:00
Vincent Hanquez
30b7b6412a
align module imports
2015-05-11 09:34:26 +01:00
Vincent Hanquez
761574a65f
[internal] remove old cryptohash modules
2015-05-11 09:34:01 +01:00
Vincent Hanquez
9567fa2526
[number] almost rewrite all serialization to be faster and less depends on random versions
2015-05-11 09:28:48 +01:00
Vincent Hanquez
228f1ab938
[number] further push the compat cleanup
2015-05-11 07:32:13 +01:00
Vincent Hanquez
8c07305deb
[number] fix compat with a missing do.
2015-05-11 07:31:52 +01:00
Vincent Hanquez
ee3e5e69bf
[number] move some number primitive to use compat without CPP
2015-05-11 07:11:38 +01:00
Vincent Hanquez
03fe63b05a
[number] further remove gcde_binary
2015-05-11 07:10:52 +01:00
Vincent Hanquez
4bcf193a12
[number] further remove gcde_binary
2015-05-11 07:10:38 +01:00
Vincent Hanquez
47afc1720d
[number] remove gcde_binary
2015-05-11 07:10:15 +01:00
Vincent Hanquez
5c0daae88c
[number] add simple combinator
2015-05-11 07:09:44 +01:00
Vincent Hanquez
427541064d
[number] add further gmp optional compat
2015-05-11 07:09:30 +01:00
Vincent Hanquez
ed8fbe8f69
[Number] add module to cleanup CPP around
2015-05-10 15:27:52 +01:00
Vincent Hanquez
9ae9e38ce2
move to memory stuff
2015-05-09 14:23:32 +01:00
Vincent Hanquez
ac16029f07
[internal] update convert4To32 to prevent an issue on ghc 7.0 and 7.4
2015-05-07 13:54:05 +01:00
Vincent Hanquez
d18900c2e0
[internal] random little changes to keep faster toHex from cryptohash as compiled code for later use
2015-05-06 11:39:46 +01:00
Vincent Hanquez
e89031c6d6
make AuthTag be a Bytes instead of ByteString
2015-05-06 11:39:07 +01:00
Vincent Hanquez
81e335cfff
[HASH] re-enable SHA512t
2015-05-06 07:53:51 +01:00
Vincent Hanquez
6ba517e945
[DES] remove DES.Serialization module
2015-05-06 07:52:49 +01:00
Vincent Hanquez
df3c3523a4
[P256] add a point_add function
2015-05-04 06:56:27 +01:00
Vincent Hanquez
aa790db088
[P256] add more bindings
2015-05-03 20:36:00 +01:00
Vincent Hanquez
ad34f0e1e8
use mod after add/sub
2015-05-03 20:15:26 +01:00
Vincent Hanquez
1f30911e1c
[P256] define the n/p/b constants
2015-05-03 20:14:54 +01:00
Vincent Hanquez
c360e77148
[P256] properly define some bindings with X and Y types
2015-05-03 20:14:10 +01:00
Vincent Hanquez
ea875e5c88
[P256] define pointMul
2015-05-03 19:52:00 +01:00
Vincent Hanquez
25c303602d
[P256] add comment to `toPoint'
2015-05-03 19:51:21 +01:00
Vincent Hanquez
f09bbf55e3
[Chacha/Salsa] cleanup nonce handling and use bufXor
2015-05-03 14:58:59 +01:00
Vincent Hanquez
cd42b2765b
[HMAC] use SecureBytes instead of ByteString for between context
2015-05-03 14:51:13 +01:00
Vincent Hanquez
c751fd1a6b
[QA] fix import
2015-05-03 14:48:40 +01:00
Vincent Hanquez
dfe3a9af93
[QA] fix module imports
2015-05-03 14:48:26 +01:00
Vincent Hanquez
87777784c1
[QA] fix issues from HSE so that it parse files
2015-05-03 14:47:16 +01:00
Vincent Hanquez
937b5d08dd
[scrypt] cleanup module / extensiotn
2015-05-03 14:31:14 +01:00
Vincent Hanquez
28a4fa1503
remove unnecessary CPP
2015-05-03 14:31:07 +01:00
Vincent Hanquez
b4d1a278b3
[QA] remove unnecessary module, and allow on more module to use CPP
2015-05-03 08:43:32 +01:00
Vincent Hanquez
c23ddb2eaa
[PBKDF2] make the code more friendly to a future mutable PRF.
...
Prevent doing B.take . B.concat by allocating only once the output buffer
2015-05-03 08:17:03 +01:00
Vincent Hanquez
c1ed30b20e
[DSA] fix badly written constraint (found by QA)
2015-05-02 15:46:07 +01:00
Vincent Hanquez
4cde4f9311
[scrypt] remove the need for byteable by using the more generic bytearray
2015-05-02 15:44:33 +01:00
Vincent Hanquez
c5189a03c6
[hash] remove unnecessary import
2015-05-02 15:44:09 +01:00
Vincent Hanquez
da784070f7
[hash] remove some warnings
2015-05-02 15:44:01 +01:00
Vincent Hanquez
1267500318
[P256] improve bindings, still work in progress.
2015-05-02 14:50:11 +01:00
Vincent Hanquez
771007ad93
[cipher] Get rid of bytestring in Stream class.
2015-05-02 14:49:49 +01:00
Vincent Hanquez
119b111b82
fix old build by importing ByteString module to get OverloadedString instance
2015-05-02 14:49:14 +01:00
Vincent Hanquez
cd0b2bfe64
[internal] fix build by making primitive binding stricter as required by older ghc
2015-05-02 08:10:07 +01:00
Vincent Hanquez
d7a88da726
[Curve25519] fix build and get rid of bytestring by using direct addr# "string"
2015-05-02 07:59:42 +01:00
Vincent Hanquez
cc26ce8ce4
fix hexadecimal string generation to be hopefully (much) safer.
2015-05-02 05:40:14 +01:00
Vincent Hanquez
b4adeec6d8
remove digestToHex
2015-05-01 07:40:28 +01:00
Vincent Hanquez
5d3e825f2e
remove / comment stuff
2015-05-01 07:36:28 +01:00
Vincent Hanquez
db7c3bbb4f
[hash] massive overhaul of the hash interface
...
use the typeclass for the lowest IO impure C bindings definitions,
and define the pure interface as generic on top of this.
At the same time define an Hash.IO interface to allow mutable manipulations
of hash contextes when necessary.
Use HashAlgorithm instead of HashFunction in the [PubKey] sections
Tweak the HMAC, PBKDF2 functions to be more efficient and use the new interface
2015-04-30 06:18:07 +01:00
Vincent Hanquez
12ddffe4df
[Internal] add a function to convert bytearray and apply a hexadecimal transformation
2015-04-30 06:15:06 +01:00
Vincent Hanquez
a3b444e36f
[Internal] Add buffer function to xor with a specific value
2015-04-30 06:13:14 +01:00
Vincent Hanquez
84c05617a3
[internal] add a way to convert bytearray to hexadecimal bytearray
2015-04-30 06:08:21 +01:00
Vincent Hanquez
b497737ef1
[Salsa] use more ByteArray operations instead of bytestring.
2015-04-30 06:07:25 +01:00
Vincent Hanquez
87e2862eaa
remove stale file
2015-04-28 11:39:23 +01:00
Vincent Hanquez
1c8d966d71
[Hash] remove unnecessary modules and not used template
2015-04-28 11:37:42 +01:00
Vincent Hanquez
4e12aceee9
remove extra bytestring.
2015-04-24 17:22:25 +01:00
Vincent Hanquez
9dd17fc0c4
use byte array in more places
2015-04-24 17:22:13 +01:00
Vincent Hanquez
6722a02a74
move lowlevel implementation of hashes to byteArrays
2015-04-24 13:30:58 +01:00
Vincent Hanquez
ec4e0c4ed9
remove all the byteArray prefix from byteArray function.
...
instead expect module import to be qualified for functions.
2015-04-24 06:54:33 +01:00
Vincent Hanquez
e52a75af75
add P256 work in progress binding
2015-04-22 10:15:23 +01:00
Vincent Hanquez
0424d67616
[Curve25519] convert to Bytearray
2015-04-22 06:26:06 +01:00
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