Manuel Pégourié-Gonnard
502f189253
ChaCha20: allow in-place en/decryption
...
All other ciphers so far allow this. In particular, the TLS layer depends on
this, despite what's documented in the Cipher layer, see
https://github.com/ARMmbed/mbedtls/issues/1085
https://github.com/ARMmbed/mbedtls/issues/1087
Also, this can be useful for implementing chachapoly without depending on the
semi-internal function keystream_block(), see next commit.
2018-05-24 13:37:31 +02:00
Manuel Pégourié-Gonnard
dca3a5d884
Rename aead_chacha20_poly1305 to chachapoly
...
While the old name is explicit and aligned with the RFC, it's also very long,
so with the mbedtls_ prefix prepended we get a 31-char prefix to each
identifier, which quickly conflicts with our 80-column policy.
The new name is shorter, it's what a lot of people use when speaking about
that construction anyway, and hopefully should not introduce confusion at
it seems unlikely that variants other than 20/1305 be standardised in the
foreseeable future.
2018-05-24 13:37:31 +02:00
Manuel Pégourié-Gonnard
4edd51babe
Rename poly1305_setkey() to poly1305_starts()
...
For consistency with the existing CMAC and HMAC APIs
2018-05-24 13:37:31 +02:00
Manuel Pégourié-Gonnard
823b7a0ce7
Add missing extern "C" guard to new headers
2018-05-24 13:37:31 +02:00
Manuel Pégourié-Gonnard
95d0bdbd84
Adapt the _ALT style to our new standard
...
- in .h files: only put the context declaration inside the #ifdef _ALT
(this was changed in 2.9.0, ie after the original PR)
- in .c file: only leave selftest out of _ALT: even though some function are
trivial to build from other parts, alt implementors might want to go another
way about them (for efficiency or other reasons)
2018-05-24 13:37:31 +02:00
Daniel King
8fe4701abe
Add ChaCha20+Poly1305 to the Cipher module
2018-05-24 13:37:31 +02:00
Daniel King
a310c5e42b
Allow some parameters to be NULL if the length is 0.
...
This change permits users of the ChaCha20/Poly1305 algorithms
(and the AEAD construction thereof) to pass NULL pointers for
data that they do not need, and avoids the need to provide a valid
buffer for data that is not used.
2018-05-24 13:37:31 +02:00
Daniel King
b8025c5826
Implement AEAD-ChaCha20-Poly1305.
...
This implementation is based off the description in RFC 7539.
The ChaCha20 code is also updated to provide a means of generating
keystream blocks with arbitrary counter values. This is used to
generated the one-time Poly1305 key in the AEAD construction.
2018-05-24 13:37:31 +02:00
Daniel King
adc32c0b50
Add Poly1305 authenticator algorithm (RFC 7539)
...
Test vectors are included from RFC 7539.
Poly1305 is also added to the benchmark program.
2018-05-24 13:37:31 +02:00
Daniel King
bd92062269
Add ChaCha20 to the Cipher module
2018-05-24 13:37:31 +02:00
Daniel King
34b822ce7b
Initial implementation of ChaCha20
2018-05-24 13:37:31 +02:00
Darryl Green
11999bb72e
Fix minor code style issues
2018-05-15 09:21:57 +01:00
Jaeden Amero
a331e0f0af
Merge remote-tracking branch 'upstream-restricted/pr/421' into development-proposed
2018-05-04 14:39:24 +01:00
Jaeden Amero
fb19399f41
Merge remote-tracking branch 'upstream-public/pr/1498' into development-proposed
2018-05-04 11:09:14 +01:00
Jaeden Amero
7d7bad6b1f
Update version to 2.9.0
...
Bump SOVERSION for parity with 2.7.2 and 2.7.3.
2018-04-30 09:58:33 +01:00
Jaeden Amero
fe0669f52a
ecp: Fix binary compatibility with group ID
...
We naturally added the new Curve448 ECP group ID in alphabetical order in
the mbedtls_ecp_group_id enum. However, this causes binary incompatibility
issues as previous binaries will use values for groups that now have a
different meaning. For example, MBEDTLS_ECP_DP_SECP192K1, old value 10,
would mean Curve448 (MBEDTLS_ECP_DP_CURVE448) and the wrong group ID used.
Fix the binary compatibility issue by adding new enum entries to the end of
the enum, even though this isn't so great for readbility as the list is no
longer in alphabetical order. However, the list wasn't perfectly in
alphabetical order before anyway.
2018-04-27 18:20:31 +01:00
Jaeden Amero
8945343a51
Merge branch 'development-proposed' into development-restricted-proposed
...
Resolve merge conflict in ecp.h, where `mbedtls_ecp_keypair` was moved.
2018-04-24 17:16:34 +01:00
Andres Amaya Garcia
56e06db102
Improve mbedtls_platform_zeroize() docs
2018-04-24 08:37:52 -05:00
Andres Amaya Garcia
d0ef468d39
Reword config.h docs for MBEDTLS_PLATFORM_ZEROIZE_ALT
2018-04-24 08:31:34 -05:00
Jaeden Amero
1afdec1812
Merge remote-tracking branch 'upstream-public/pr/1578' into development-proposed
2018-04-24 14:19:41 +01:00
Jaeden Amero
519b129f78
Merge remote-tracking branch 'upstream-public/pr/1580' into development-proposed
2018-04-24 13:20:11 +01:00
Rose Zadik
a7a6155272
Update ecp.h
...
One fix. Removed trailing whitespaces
2018-04-24 13:14:01 +01:00
Jaeden Amero
7c68878e17
Merge remote-tracking branch 'upstream-public/pr/1511' into development-proposed
2018-04-24 10:28:25 +01:00
Jaeden Amero
d803c1f1ab
Merge remote-tracking branch 'upstream-public/pr/1510' into development-proposed
...
Resolve conflict in comment for mbedtls_ecdsa_read_signature in include/mbedtls/ecdsa.h
2018-04-24 10:27:38 +01:00
Jaeden Amero
f852f4c35b
Merge remote-tracking branch 'upstream-public/pr/1506' into development-proposed
2018-04-24 10:27:05 +01:00
Jaeden Amero
ebfd3cad58
Merge remote-tracking branch 'upstream-public/pr/1505' into development-proposed
2018-04-24 10:26:48 +01:00
Rose Zadik
d35340550d
Update ecp.h
...
fixed omittion
2018-04-23 16:12:42 +01:00
Rose Zadik
c32efb3f64
Update ecp.h
...
Resolved last review comment
2018-04-23 09:38:29 +01:00
Rose Zadik
d76ac587d3
Update ecp.h
...
Changes based on review comments. Waiting for responses on 2 remaining comments
2018-04-23 06:29:34 +01:00
Rose Zadik
abc9ec73b0
Update ecdsa.h
...
Merged change to MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH from other commit for merging, as requested (lines 282+283).
2018-04-23 06:16:40 +01:00
Rose Zadik
f089fa3341
Update ecp.h
...
minor spacing/comment format fixes
2018-04-20 10:41:16 +01:00
Rose Zadik
b2e111a288
Update ecp.h
...
Changes based on review comments.
2 comments still open pending decisions
2018-04-20 10:13:48 +01:00
Gilles Peskine
5450d1f597
Merge branch 'crypto_alt_revision' into development-restricted-proposed
2018-04-19 21:02:40 +02:00
Rose Zadik
93f9919c26
Update cipher.h
...
Fixed typo.
2018-04-19 14:41:33 +01:00
Rose Zadik
c441f74900
Update cipher.h
...
minor fix
2018-04-19 14:38:20 +01:00
Rose Zadik
4c368e82cc
Update cipher.h
...
Additional changes based on review comments
2018-04-19 14:24:11 +01:00
Rose Zadik
826f264920
Update cipher.h
...
Additional changes based on review comments
2018-04-19 14:01:29 +01:00
Rose Zadik
f56cb34d60
Update ecp.h
...
Updated based on review comment.
One comment remains open (waiting for input)
2018-04-19 12:49:10 +01:00
Manuel Pégourié-Gonnard
4acb0055e3
Merge remote-tracking branch 'public/pr/1518' into development-proposed
...
* public/pr/1518:
Update platform.h
Update platform.h
2018-04-18 16:13:52 +02:00
Manuel Pégourié-Gonnard
66d396826a
Merge remote-tracking branch 'public/pr/1516' into development-proposed
...
* public/pr/1516:
Update sha512.h
2018-04-18 16:13:52 +02:00
Manuel Pégourié-Gonnard
bb93c04aab
Merge remote-tracking branch 'public/pr/1515' into development-proposed
...
* public/pr/1515:
Update sha256.h
Update sha256.h
2018-04-18 16:13:52 +02:00
Gilles Peskine
b80f04eb67
Merge remote-tracking branch 'upstream-public/pr/1514' into development-proposed
2018-04-18 16:13:30 +02:00
Gilles Peskine
2e1934ac0c
Fix comment formatting to pacify check-names.sh
2018-04-18 16:08:26 +02:00
Manuel Pégourié-Gonnard
a9377336be
Merge remote-tracking branch 'public/pr/1513' into development-proposed
...
* public/pr/1513:
Update rsa.h
Update rsa.h
Update rsa.h
2018-04-18 11:58:53 +02:00
Manuel Pégourié-Gonnard
0392bff1b9
Merge remote-tracking branch 'public/pr/1512' into development-proposed
...
* public/pr/1512:
Update md.h
Update md.h
2018-04-18 11:57:50 +02:00
Manuel Pégourié-Gonnard
b3a8fe7285
Merge remote-tracking branch 'public/pr/1509' into development-proposed
...
* public/pr/1509:
Update ecdh.h
Update ecdh.h
2018-04-18 11:56:49 +02:00
Manuel Pégourié-Gonnard
01d72df113
Merge remote-tracking branch 'public/pr/1508' into development-proposed
...
* public/pr/1508:
Update ctr_drbg.h
Update ctr_drbg.h
2018-04-18 11:55:30 +02:00
Manuel Pégourié-Gonnard
7153496395
Merge remote-tracking branch 'public/pr/1507' into development-proposed
...
* public/pr/1507:
Update cmac.h
Update cmac.h
2018-04-18 11:54:42 +02:00
Manuel Pégourié-Gonnard
c265a25f4f
Merge remote-tracking branch 'public/pr/1503' into development-proposed
...
* public/pr/1503:
Update aes.h
Update aes.h
2018-04-18 11:48:10 +02:00
Rose Zadik
fa1fe36e08
Update dhm.h
...
Minor fix based on review comments
2018-04-18 10:09:31 +01:00