GSoC 17 : Client Side File Crypto : Week 4

Note: This is a repost of the original Blog post during GSoC ’17. As my AWS instance went down, I’ve been migrating my old blog posts here.
Originally posted on: 28th June 2017

This blog post summarises my fourth week of the coding period of Google Summer of Code with Drupal.

Code Review

The week began with iterating over previously committed code based on feedback by Colan. After making the changes and pushing them, I later merged the merge request into the 8.x-1.x-dev branch after Colan’s approval.

New Git Workflow

From now I will be making different branches for separate features that I’ll be working on and later opening merge requests into the 8.x-1.x branch, which will be reviewed by my mentors. On their approval, these will be merged into the main 8.x-1.x branch.

The JS that I’m presently working on is being pushed to the js_key_management branch and on completion and approval will be merged to 8.x-1.x.

Following this workflow would help the mentors in reviewing the features instead of having to look over the diffs of each commit.

Binary Files

Because my module will not only be handling text file encryption but also images and other binary data, I was looking around for how binary files can be encrypted. Talha hinted that I should look into base64 encoding as that is what he had used for his project. 
In general for file encryption, I learnt a few things like web workers and about the HTML5 FileReader API.

Access key generation error

One of the JS scripts that I had written last week was returning some unexpected errors. Debugging this took quite some time as this JS part had a lot of nested AJAX requests and several JSEncrypt objects.

The newly generated access keys were showing up as null so there was something going wrong in the process.

First evaluation

With the wrap of this week’s work, the first evaluation window of the work done so far was opened. Surprisingly, most of the students logging into the GSoC website to fill out the evaluation form witnessed this bug where Google assumed that we have been participating in GSoC since the last 99 years and gave us 99 fields to fill out names of organisations that we participated in the last 99 years in GSoC with.


This week would be the beginning of the second month of coding with Drupal and GSoC and I’m looking forward on working on implementing the main part of the module, the file encryption and also documenting and writing tests for the parts built so far.
Thanks for reading! :)