Initial Build Notes
I chose argon2, the password hashing function, as the topic for my project to test and hopefully optimize/ improve.
The link was found using this method:
Check for which version of argon2 was installed on the Linux machine using
dnf info argon2
The link is displayed under URL
I would need to check which CPU I was going to do the testing on. The command is:
This command was found here:
The Architecture type was aarch64 with 8 CPU cores. Cortex-A57 Model.
Copying/ Downloading the argon2 package
I will now continue with by building the Initial Build of argon2. This will allow me to have an original, functional copy of argon2 before implementing my changes.
I need to clone a copy of the argon2 package. The reason to “clone” a copy of the package is how github works. You will need to “clone” the directory that will be saved onto your computer/ hard drive/ drive. This can be found from the website’s “Clone or download” button.
Copy the following URL link:
I will now clone the package directory onto the Linux machine to build and test the package.
I have also created a separate directory to avoid making any changes to the existing server.
mkdir -p project cd project git clone https://github.com/P-H-C/phc-winner-argon2.git
NOTE: This creates a new directory called “project“. I change my current directory into the new directory using the “cd” command. I finally start to clone the argon2 directory into my current directory.
A new directory will be cloned called “phc-winner-argon2”
I will need to test and build only the source code. The directory is found within the phc-winner-argon2 directory and in the src subdirectory.
I will use this command to change my current directory to the src directory.
I will be testing using the following criteria:
- Check how many inline assembler code already exist
- Check how many dedicated/ separate assembler files exist in the package (File Extension: s or S)
- Check how many files use the C programming language (File Extension: c)
- Use a profiling tool to check how optimized the program is in the current build package (Tools such as: gprof, stap, etc.)
- Build the package and check the default results by testing the build against a password file. The file will be made using a Microsoft Excel formula.
- Check that the results are relatively consistent. (This will be from program compile time, program run time, and the program file size)
- Introduce a minor or major change that will optimize or reduce performance of the original program. This is done by changing the character(s) of the password file generated by the Microsoft Excel formula.
- Compare the results of the changes and the original program results.
Building/ Testing the original argon2 package
The testing can now begin.
(End of Part 2 – Progress 1)