Skip to content

Basically a first implementation of the chacha20 Poly1305 algorithm #90

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

mikerabat
Copy link

Hope this works as intendent....

Basically I implemented the base chacha20 algorithm and a poly1305 mode following the GCM mode implementation.
I need to say I did quite some rewriting on the base class (don't be mad...) to have a more leaner interface in the
cipher classes.

In addtion I rewrote the GCM part such that it works on streams too - multiple encode/decode calls are now allowed.
This was a rewrite of bug #87 based on the new base authenticator class.

I did not rewrite teh CCM stuff - simply I didn't knew how...

There are also SSE, AVX version of the chacha algorithm so I hope I managed to put it correctly in there - unfortunately I was not
successfull with a SSE/AVX version of the Poly1305 algorithm, this one is way more complicated that chacha...

Let me know what you think of the code...

MHumm and others added 14 commits April 22, 2025 21:46
Fixed the crash of issue MHumm#86 by changing GCM to use poitners instead ot TBytes and added unit test to verify the change
Same kind of change as already done to EncodeGCM
Changed GCM part of EncodeBytes as well
Added name of the CCM implementation sponsor
* Fixed bugs to get stream functions working - not yet tested
* shrinking base classes to get the extended aead functions working
  (ccm, gcm, poly1305) - not yet tested
Minor: removed debug idx variable.
@mikerabat
Copy link
Author

Added code to implement XChaCha20 as well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants