Photo by timothy muza on Unsplash

3 Months at Work

I still can’t believe it has been 3 months since I stepped at Aeste for the first time. It means I have 3 more months left for my internships to end and 1 month left to complete my project because the music competition will be starting soon. I need to physically and mentally prepared for it.  I know for the next 3 months it will more roller coaster ride for me but I strongly believe I can make it thru Read more…

Chapter 7: Random Number NOT Random

This was my seventh week in AESTE WORKS. As mentioned in previous blog, this week I have to save the payload in flash memory and read it from flash. Problem I faced this week and solution: Our board will generate a RSA key pair and store in Flash Memory. Firstly, we will read everything in Flash Memory and checksum. If the result is true, it means the board itself have the key. Else, the board will generate a new key Read more…

A New Vue on Life

In any IT-based companies, your roles are often well-defined. If you are a back end developer, then you would handle the back end stuff like database management, REST API design, storage and such. If you are a front end developer, then you would handle the front end stuff like user interface design mostly. If you identify yourself as either one of the above, then you would also know that you would have to work in a team, hence there is Read more…

HDL 101: Introduction

Our new hires have to go through a series of refresher courses on basic/fundamental skills that are important here – Git, C/C++ programming, etc. For most of these things, there are plenty of resources online that can be used. However, there seems to be a shortage of materials for a particular skill that we need – digital chip design. Therefore, I plan to write a set of materials to serve as a basic introduction to what is important that will Read more…

Photo by Alexandre Debiève on Unsplash

She is Smiling

I’m quite satisfied with my progress this week since there is one more thing left for the attendance screen to complete which is authorization. For this week, I managed to build functionality for filter buttons which are the select venue and select event, not to forget refresh icon button. So the flow of the user which is attendance taker are like this. The attendance screen consists of select venue filter drop-down button, select event drop-down button, and refresh icon button on Read more…

Chapter 6: Time passes quickly

This is my sixth week in AESTE. Time flies really quickly, it is half of my internship duration. Now look back my last week problems, I have solved the base16 problem by directly copy the base16 function to my USB.c instead to define OPENSSL_EXTRA || HAVE_WEBSERVER ||  HAVE_FIPS. This is the most easiest way to solve the problem. Next, I had made the function (base16 encode serial number and mac, generate 512 RSA key for board, encrypt all information by Read more…

Dealing with HOTP

This time I’m working on the transmission of the firmware into the board. The protocol for doing so has already been established, but there are some issues. The whole procedure for this require some form of authentication for security purposes. This is done through a HMAC-based One-time Password (HOTP), therefore for every process of transmitting the firmware, a new HOTP is generated. The sole purpose of having this is to prevent replay attacks, which is basically a malicious repetition of Read more…

Understanding Proof-of-Work

I was curious to study the behaviour of the Proof-of-Work protocol in block-chains. The essence of POW is the use of a nonce as part of the payload being signed. In order to do this, I decided to test it out with a simple signing test program. The signature algorithm chosen uses a 512-bit RSA key with a SHA-224 hash. A stronger hash algorithm would just take longer but it wouldn’t really deviate too much from the characteristics. The example Read more…

Attendance Screen

This week I have started writing my code using javascript framework which is VueJs for attendance taker screen.  There are six screens that I need to build for this music competition, one of them is attendance taker screen which it is used to take the attendance of the participants. Since I’m still new in VueJs, I chose to start with attendance taker screen first because it is the easiest to build compared to others. As I have said in the previous blog, Read more…

Board Registration

It is time to move onto the next phase of the project. An important part of the project is the registering of the boards with the application. Basically, a JSON payload would be sent to the server, which contains crucial details such as its serial number, model name, RSA public key, MAC address and more. It is encrypted using the RSA public key of the server. The payload would reach a specific REST API endpoint, that merely does the job of decrypting the payload using the server’s RSA private key, parsing and extracting the data, then subsequently save it to the database.
(more…)