Ascon examples#573
Conversation
Fix typos No need to input key size as the size for ascon AEAD algorithm is fixed Add an example for algorithm Ascon-Hash256
09fa582 to
d000810
Compare
There was a problem hiding this comment.
Pull request overview
This PR adds two new usage examples for Ascon algorithms in the examples repository: one for hashing with Ascon-Hash256 and one for file encryption/decryption with Ascon-AEAD128, along with README/Makefile support so users can build and run them.
Changes:
- Add
hash/Ascon-Hash256.cand document how to run it inhash/README.md. - Add a new
crypto/ascon/example (ascon-file-encrypt.c) with a localMakefileandREADME.md. - Link the new Ascon crypto example docs from
crypto/README.md.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| hash/README.md | Documents running the new Ascon hashing example. |
| hash/Ascon-Hash256.c | New Ascon-Hash256 file hashing example program. |
| crypto/ascon/ascon-file-encrypt.c | New Ascon-AEAD128 file encrypt/decrypt example program. |
| crypto/ascon/README.md | Build/run instructions for the Ascon file encryption example. |
| crypto/ascon/Makefile | Builds the Ascon file encryption example. |
| crypto/README.md | Adds a link to the new crypto/ascon documentation. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
I will fix those errors ASAP. Thanks. |
|
Hi @helkoulak thanks for this example. I don't see you setup as a contributor. Please email support at wolfssl dot com and reference this pull request. We will send you an agreement that we need signed. In the email please include your location and a bit more about your project and interest in Ascon and our project. Also if its commercial or open source or academic. Thanks, |
Thank you David for the instructions. I will contact support ASAP. |
|
Contributor agreement on file. Thank you @helkoulak |
|
@julek-wolfssl please review . Merge when you are happy with it. |
julek-wolfssl
left a comment
There was a problem hiding this comment.
Please add crypto/ascon/ascon-file-encrypt to .gitignore. Everything looks nice but just needs more error handling.
| fseek(inFile, 0, SEEK_SET); | ||
|
|
||
| byte* input = malloc(BLOCK_SIZE); | ||
| byte* output = malloc(inFileLength); |
There was a problem hiding this comment.
Let's write in BLOCK_SIZE chunks too. On error we should delete the file.
There was a problem hiding this comment.
The output still uses a inFileLength buffer.
There was a problem hiding this comment.
Encrypt output and both decrypt buffers not fixed.
There was a problem hiding this comment.
I would like to keep a fixed output buffer and write each segment to the output file on each iteration. Then on error the file should be deleted.
There was a problem hiding this comment.
Now encryption and decryption are done in blocks.
| fseek(inFile, 0, SEEK_SET); | ||
|
|
||
| byte* input = malloc(BLOCK_SIZE); | ||
| byte* output = malloc(inFileLength); |
There was a problem hiding this comment.
The output still uses a inFileLength buffer.
| int length = 0; | ||
|
|
||
| fseek(inFile, 0, SEEK_END); | ||
| length = ftell(inFile); |
There was a problem hiding this comment.
Also long so as to not truncate.
There was a problem hiding this comment.
variable "length" has been redefined as long
julek-wolfssl
left a comment
There was a problem hiding this comment.
Not all comments addressed yet.
…p index, it should be defined as long as well for huge files
Two examples that show how to use the algorithms Ascon-Hash256 and Ascon-AEAD128