top of page

Project Stage 1: Planning

I have selected a project called libwhirlpool which is a


"cryptographic hash function library for UNIX and Linux."


"Also provides 'whirlpoolsum' utility for easy calculation and checking WHIRLPOOL hashes similar to 'md5sum' and 'shaXXXsum'."


The last update for this project was 3 years ago December 6th 2015, but it is still functional I managed to compile and execute the program.

I have also sent an email to the developer in charge of the QA for the library and informed them who I am and what my assignment is for this project asking if they could provide any help if necessary but I have not received response thus far.


The github repository can be found here https://github.com/dfateyev/libwhirlpool .


Reading through the code I am able to understand what is going on, it is written in C and I should be able to comprehend the functions and flow of the program.


There are 2 maybe 3 ways I will try to optimize the code for this project.


- The first way is to play around with the compilation options set in the Makefile.


- The second way is to alter the existing algorithm in a function hotspot.


- The third way if it is possible under time constraints and my technical abilities is to try and add assembly language into the function.

13 views0 comments

Recent Posts

See All

Closing Thoughts

For my final blog post I would like to discuss what I have learned and plan to utilize in the future from this course. So although I was not able to successfully improve my package to operate function

Stage 3 Optimization(COMPUTER ARCHITECTURE ENDIANESS)

Seeing as how the compiler flags did not provide any optimization I will on to my next attempt which is converting big endian to small endian. The aarch64 architecture uses the little endian byte orde

Stage 3 Optimization(Compiler Flags)

My first attempt to optimize the project will be to work with the compiler flag options. By default the compiler is set to compile in this manner "gcc -E -g -o2" The -E option represents preprocesses

bottom of page