Photo by Nicolas Thomas on Unsplash

Chapter 8: Unlucky week

This is my eighth week in AESTE WORKS. I should put my work in Git release branch by Tuesday, but I only managed to do it on Thursday. This is due to I faced a few problems there. The flash memory cannot be read/ write. PIC32 cannot get the IP address. The code suddenly cannot run on the next day. (previously no problem) Solution: Before that, the code from previous intern it can work well and get the IP address. So, Read more

PouchDB

This week we have decided to some changes to the application I’m currently working on for the better. Normally, server web applications would have a dedicated database to read, write and store crucial data. That was the case for this application as well, until Dr Shawn got the idea that we do not need to keep this single database at all. What? That was my reaction as well. Basically, we already knew that the application would interact with cloud storage Read more

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