Marten Seemann
863467f344
validate XLCT tag in client hello
...
fixes #363
2017-01-04 11:41:43 +07:00
Marten Seemann
98ff7ccb50
use FNV1a hash for cached certificates
...
fixes #383
2017-01-04 10:56:36 +07:00
Lucas Clemente
5d0399bfe3
use LRU cache for cached certificates
...
fixes #268
2016-09-08 23:08:57 +02:00
Lucas Clemente
5dda3b8e69
remove support for version 32 from crypto
2016-09-01 12:20:19 +02:00
Lucas Clemente
6239d80492
remove leftover code from v30
2016-08-18 10:31:28 +02:00
Lucas Clemente
3bf525ed16
update common certificate sets from chrome
2016-08-17 23:53:10 +02:00
Lucas Clemente
fe531dd65e
cache compressed certificate chains
...
fixes #227
2016-08-09 14:34:49 +02:00
Lucas Clemente
4eb9077f1b
simplify crypto/rand reading
2016-08-09 13:08:42 +02:00
Lucas Clemente
125842d80d
simplify key derivation
2016-08-06 17:54:11 +02:00
Lucas Clemente
ed15c18387
disable chacha20 build until we have solved the dependency situation
2016-08-01 16:28:22 +02:00
Lucas Clemente
8a08171322
move nonce generation to separate file
2016-08-01 16:27:38 +02:00
Lucas Clemente
d5255a4075
update AEADs to allow in-place encryption and decryption
...
ref #217
2016-07-26 15:13:15 +02:00
Andreas Auernhammer
c5be7d0d62
Replace ChaCha20Poly1305 implementation
...
Improve AEAD speed with slightly faster poly1305 implementation.
Avoid memory allocations whenever possible. (AEAD)
But currently missing AVX2 support.
BenchmarkSeal64B-8 1561 ns/op 40.97 MB/s
BenchmarkSeal1K-8 5570 ns/op 183.82 MB/s
BenchmarkSeal64K-8 161271 ns/op 406.37 MB/s
BenchmarkOpen64B-8 1747 ns/op 45.79 MB/s
BenchmarkOpen1K-8 5741 ns/op 181.14 MB/s
BenchmarkOpen64K-8 157116 ns/op 417.22 MB/s
2016-07-17 23:23:30 +02:00
Lucas Clemente
705da8fd00
switch to AES-GCM as symmetric cipher
...
fixes #200
2016-07-05 12:13:41 +02:00
Lucas Clemente
240946dfde
replace version number literals with constants to make grepping easier
2016-06-03 11:09:48 +02:00
Lucas Clemente
d87e20efc9
remove DiversificationNonce() from the AEAD interface
2016-06-02 16:13:48 +02:00
Lucas Clemente
981d4e7fb8
add support for ECDSA private keys
...
fixes #158
2016-05-31 23:06:38 +02:00
Lucas Clemente
b0bc84c5aa
improve crypto test coverage
2016-05-30 10:16:25 +02:00
Lucas Clemente
fa2e34d360
require and generate source address tokens in crypto setup
...
fixes #121
2016-05-24 11:20:16 +02:00
Lucas Clemente
9539169fa4
implement source address token generation and validation
...
ref #121
2016-05-23 18:13:39 +02:00
Lucas Clemente
241c9f3a3c
add support for diversification to key derivation
...
ref #51
2016-05-21 00:04:28 +02:00
Lucas Clemente
2606b891e2
add diversification to AEADs and conditionally include in public header
...
ref #51
2016-05-20 23:41:04 +02:00
Lucas Clemente
224524c8d3
move to a faster chacha20poly1305 implementation
...
refs #125
2016-05-20 00:43:08 +02:00
Lucas Clemente
7a97f34fac
don't panic 🤓
...
fixes #93
2016-05-18 18:29:42 +02:00
Lucas Clemente
283cab4e0d
improve crypto tests
2016-05-15 15:23:46 +02:00
Lucas Clemente
c12a12518e
run gofmt -s on tests
2016-05-15 14:42:34 +02:00
Lucas Clemente
d17d597ebe
implement certificate compression using common certificate sets
...
fixes #47
2016-05-11 16:30:04 +02:00
Lucas Clemente
ea83ca8950
implement cert compression with cached certificates
2016-05-11 16:30:04 +02:00
Lucas Clemente
8cdf832aa0
add support for sending intermediate certificate
...
fixes #76
2016-05-11 12:23:09 +02:00
Lucas Clemente
7c1e1cde56
rename GetCertCompressed to GetCertsCompressed
2016-05-11 11:41:44 +02:00
Lucas Clemente
20655bac5a
rename GetCertUncompressed to GetLeafCert
2016-05-11 11:40:20 +02:00
Lucas Clemente
88c6311ab8
read tls.Config data properly in RSA proof implementation
...
ref #48
2016-05-08 22:57:53 +02:00
Lucas Clemente
85c39721ec
change Signer interface to return errors
2016-05-08 22:46:59 +02:00
Lucas Clemente
32cf5e4129
read tls.Config properly in RSA signer
2016-05-08 22:42:11 +02:00
Lucas Clemente
6738f0eadf
add sni to crypto.Signer interface
2016-05-08 22:23:36 +02:00
Lucas Clemente
b5a27d3aa2
move to chacha20poly1305 fork
2016-05-05 15:19:54 +02:00
Lucas Clemente
df2e6e32eb
move fnv128a implementation to separate package
2016-05-04 17:26:44 +02:00
Lucas Clemente
c068cbcb8f
replace certificate path with tls.Config instance throughout the server
...
The example server now reads the certificate and key data itself. Tests
use the new testdata package, where the sample key & cert are stored.
Fixes #24
2016-05-03 16:41:25 +02:00
Lucas Clemente
bb3c8b707b
fix randomness
2016-04-21 13:48:42 +02:00
Lucas Clemente
9cbeb49d49
change AEAD interface to use byte slices, simplifying its usage
2016-04-18 14:37:34 +02:00
Lucas Clemente
ac0eed61f2
introduce crypto.Signer interface and hide RSA implementation
2016-04-17 00:22:26 +02:00
Lucas Clemente
717e4e0ecd
fix key derivation test
2016-04-16 22:22:33 +02:00
Lucas Clemente
aa5d2be491
implement forward secure encryption
2016-04-16 22:08:57 +02:00
Lucas Clemente
7aec145d52
adopt chacha20 implementation to upstream changes
2016-04-16 20:46:33 +02:00
Lucas Clemente
14d3b03b44
more consistent filenames
2016-04-15 22:28:45 +02:00
Lucas Clemente
7acb3365d5
use dictionary to compress certificates
2016-04-15 20:40:43 +02:00
Lucas Clemente
495bb0ef92
handle version Q030 properly
2016-04-15 19:01:14 +02:00
Lucas Clemente
ec509fb98f
add key derivation test
2016-04-15 12:44:31 +02:00
Lucas Clemente
35a40ac6d8
rename GetCERTData to GetCertCompressed
2016-04-15 12:37:23 +02:00
Lucas Clemente
86b4ffdaaf
use chacha20poly1305 instead of AES and include cert in key derivation
...
Unfortunately QUIC uses non-standard tag sizes with both AES-GCM and
Poly1305. Adopting AES-GCM seems much harder, so I changed it to
Chacha20Poly1305 and only made some slight changes to an existing algo.
This should probably be double-checked at some point.
2016-04-14 23:44:31 +02:00