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.
| byte* input = malloc(BLOCK_SIZE); | ||
| byte* output = malloc(inFileLength); | ||
|
|
||
| while (1) { // to avoid memory leakage in case of an error |
There was a problem hiding this comment.
The way to do this is to use a do {} while(0); but I think using goto for error handling will be cleaner.
| byte* input = malloc(aSize); | ||
| byte* output = malloc(aSize); | ||
|
|
||
| while (1) { // While loop is used as a kind of jump |
There was a problem hiding this comment.
The way to do this is to use a do {} while(0); but I think using goto for error handling will be cleaner.
| fName = argv[1]; | ||
| printf("Hash input file %s\n", fName); | ||
|
|
||
| while (1) { |
There was a problem hiding this comment.
The way to do this is to use a do {} while(0); but I think using goto for error handling will be cleaner.
| // Assign default value for key in case no user input | ||
| if (key[strlen(key) - 1] == '\n') { | ||
| memcpy(key, "0123456789abcdef", ASCON_AEAD128_KEY_SZ); | ||
| } |
There was a problem hiding this comment.
Error out on no valid password.
Two examples that show how to use the algorithms Ascon-Hash256 and Ascon-AEAD128