Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/katzenpost/chacha20

fork of https://git.schwanenlied.me/yawning/chacha20
https://github.com/katzenpost/chacha20

Get rid of import comment

7ce890d6a5566739998c525c9dcf80f062e43cdd authored over 5 years ago by David Stainton <[email protected]>
Re-export BlockSize

5d3e00398cad420a6b6bf99899751559bc4ca4a2 authored over 5 years ago by David Stainton <[email protected]>
Update go.mod to point to our fork

fad9676fa4d853aeb4dd073f46c8e63dd34bae76 authored over 5 years ago by David Stainton <[email protected]>
Use the internal key stream buffer as the XChaCha temp key

While the Go compiler currently will not eliminate dead memset
equivalents, attempt to future-pr...

6d1cb28dc72c33196f80750684c971c49aafa364 authored over 5 years ago by Yawning Angel <[email protected]>
Bring this up to date

* Change the license to a strong Copyleft.
* Use go modules.
* Change the canonical upstream ...

644b09ac4e6e3ed1c52aa43dad519087d8bca406 authored over 5 years ago by Yawning Angel <[email protected]>
Use `math/bits` on Go 1.9.

I seem to recall the compiler doing the right thing regardless even
prior to the intrinsics, sug...

e3b1f968fc6397b51d963fee8ec8711a47bc0ce8 authored over 7 years ago by Yawning Angel <[email protected]>
Use unaligned loads/stores for interacting with the state.

Turns out the Go compiler doesn't align the state vector in certain
conditions. Sigh.

6f059cfcee2a80421c6489666c5fe1cb08c0cdf1 authored over 7 years ago by Yawning Angel <[email protected]>
Fix the counter wrap detection for the IETF mode.

Oops, that bug's been there forever, since the time I added back the
ChaCha20 constant to the st...

70289bb2131350877f4b969b94ac4cf22eef9aa1 authored over 7 years ago by Yawning Angel <[email protected]>
Minor amd64 assembly cleanups.

e0f5961333c7bb41ae9166e88a384939af59b264 authored over 7 years ago by Yawning Angel <[email protected]>
Add an explicit VZEROALL() call.

2524561b8ee24c13b0aa1526d827571ab3061eac authored over 7 years ago by Yawning Angel <[email protected]>
Remove a bunch of useless loops.

ef489547eb633de948515845c9c3226969f1de2a authored over 7 years ago by Yawning Angel <[email protected]>
Move the hChaChaRef routine to where it makes more sense.

c91e78db502ff629614837aacb7aa4efa61c651a authored over 8 years ago by Yawning Angel <[email protected]>
Check the CPUID max leaf before testing for AVX2 support.

Apparently needed to avoid false positives, see the discusson at:
https://bugzilla.mozilla.org/s...

427872221e2a80021bc06a63d1f83a24a4386c2e authored over 8 years ago by Yawning Angel <[email protected]>
Renamed one of the loops that I missed...

f52316f7e881543b3d4826ac0d1b362e449fe440 authored over 8 years ago by Yawning Angel <[email protected]>
Fix `go vet` warnings.

f1e82858856e7da5f8548c112f9555bc382a54cc authored over 8 years ago by Yawning Angel <[email protected]>
Process 8 blocks at a time when doing AVX2.

Not a huge improvement since we spend a good amont of time fucking
around with registers or hitt...

f24f7076db67a447331af907b5b09d7a0dfc9f09 authored almost 9 years ago by Yawning Angel <[email protected]>
Merge the AVX2 2 blocks and 1 block code paths.

Having them split didn't meaningfully benefit performance, and this is
easier to maintain.

71f91b722b984c5f2071fcda329bfa6ab752d868 authored almost 9 years ago by Yawning Angel <[email protected]>
Add an AES benchmark for comparison.

LOL what the fuck is the crypto package doing...

ce28fd8bc55777c209fbf1c98e767531d88f49ea authored almost 9 years ago by Yawning Angel <[email protected]>
Initial AVX2 support.

SSE2:
BenchmarkChaCha20_16-4 20000000 61.7 ns/op 259.32 MB/s
BenchmarkChaCha20_64-4 1...

8be2ad5dc995040f891f042d6294a4eaded82ce4 authored almost 9 years ago by Yawning Angel <[email protected]>
Cleanup the SSE2 python code generation to be more maintainable.

Yes, I used to have these macros and I got rid of them, but in hindsight
that was a dumb idea.

35dd0b7234e2a0b2ded81b9f66916ebb3635ffbd authored almost 9 years ago by Yawning Angel <[email protected]>
More SSE2 optimizations, and improve tests a bit.

* Add a codepath that does 2 blocks at a time to handle 128 <= n < 256,
which is probably fa...

a6ea28902656a8f3aa22ccfb550a1b9e0902f6aa authored almost 9 years ago by Yawning Angel <[email protected]>
Update comments to match reality. No functional changes.

b81c06c1204d0aa5cbe40d22c42f2235332f626f authored almost 9 years ago by Yawning Angel <[email protected]>
Add a README.md file, no functional changes.

4eeeb1a7e3d52073ff22a8782b3f0a8b75da5904 authored almost 9 years ago by Yawning Angel <[email protected]>
Clear xmm0 and use that to purge the stack.

Bleah.

9d75009712c3e0cf7246d874f638d911df6662ce authored almost 9 years ago by Yawning Angel <[email protected]>
For the SSE2 codepath, process 4 blocks at a time.

Everyone else's optimized implementation, except Ted Krovetz's does
this, so I should too. The ...

4460834de459bfec4fd4aeb4fe3758429ec40e33 authored almost 9 years ago by Yawning Angel <[email protected]>
Compact/rename things in the PeachPy script.

Just cleanups, on the off chance I decide to do AVX2 one day.

e2d8c2c2932f3b64b1f03c29ecee198c2cf67332 authored almost 9 years ago by Yawning Angel <[email protected]>
More AMD64 cleanups.

* It seems safe to assume that x is 16 byte aligned. I was doing so
anyway by the use of PA...

6788ab3601da30a9dc435354f7c940e73cb02d15 authored almost 9 years ago by Yawning Angel <[email protected]>
Get rid of the stupid sigma parameter to the AMD64 SSE2 code.

a6e78418d9ff1215d83c80eabfc801dfe6d374c5 authored almost 9 years ago by Yawning Angel <[email protected]>
Get rid of the stupid "one" parameter in the amd64 version.

a0c0aac7502483b0c46ec094ead1568712263197 authored almost 9 years ago by Yawning Angel <[email protected]>
Support 96 bit nonces, and a `c.Seek(counter)` method.

This is the IETF RFC 7539 style ChaCha20 with a 96 bit nonce and 32 bit
counter, used for constr...

f3a398b735b1c5f9ab61d4f07a96f034b780f146 authored almost 9 years ago by Yawning Angel <[email protected]>
Optimize HChaCha by abusing unsafe when saving the output.

Technically, I can do this in `ReKey()` and `HChaCha` as well, but it's
less straight forward, a...

d9bf595c6827c3c7ff1dec01653749ab9f1533e1 authored about 9 years ago by Yawning Angel <[email protected]>
Initial import.

e02639ba9fc660e0cc30c8ba877b725e7eba2b40 authored about 9 years ago by Yawning Angel <[email protected]>