This is my fifth week at AESTE, undeniably, I have learned a lot and I think that my programming skills is gradually improving as I implement my tasks. I have spent the first 2 days to continue implementing the SHA1 driver as it was unfinished last week. Later, my program for this driver was tested by a simulator- GTKWave and I found out that there were quite a few of tiny mistakes in my codes. My colleague, Mostafa and I have spent some time to fix the bugs and after the exhausting debugging process, the codes finally worked as expected!
Then, I moved on to my next task, which was to write a RC4 driver. RC4 is a cipher that can be used to encode or decode the data that the user wanted to send to the accelerator. So, I had to send a key of size (1-256 Bytes) to the control register of the device first. Subsequently, the user could send data to the device by writing to its data register in block(s) of 256 Bytes and reading from that register after writing each block. Comparably, I think that writing RC4 driver was easier than the SHA1 driver as no padding was needed during the writing process for RC4 and I was getting familiar with the way of coding for these kinds of drivers.