Stellenbosch Inetkey Chrome Extension

Here at Stellenbosch University we have to pay for our internet usage. One of the applications that is used to monitor this process is called the inetkey. It essentially authenticates with the firewall and allows your data to pass through. Since I have been involved with the University, there have been 3 versions of the inetkey.

  1. A single threaded version written for Windows XP
  2. A improved version written for Windows 7
  3. And now a web version with a http refresh directive

Through all three versions me and my colleagues have had our complaints. The first one kept hanging and crashing. The second one did not clean up nicely after itself and had fewer nuances when it came to refreshing the connection. The last version is a step to include mobile devices by allowing a “tab” to be open, that will refresh your firewall authentication. They all suffer from the same issue though. On your personal / work machine you have to input your username and password each time you want to use the internet and when the thing breaks.

Myself and my colleagues were having a discussion on the inetkey, as we often do, and we joked about theoretical ideas on what we should do to make it better. We have all been dreaming of writing our own inetkey to get around the short-falls of the previous ones. When the last one came out, it was just too much… having to leave a tab open that you do not use. I am sorry, I kept closing my connection by mistake! AND then had to key in all my login information each time I wanted to connect again. Thus when they opened the protocol and allowed me to screen-scrape, the idea became fruitful to write my own one. Anyway, one of the suggestions mentioned in a semi-serious tone was to right write an extension for the browser to open the connection. Brilliant idea!

The very next day I wrote a simple version of the extension that is now deployed to the chrome webstore. I sent out a beta version before I added in some encryption, obfuscation and screen-scraped our SSO as well. Seeing as this only works at the University behind the firewall, you might as well sign into the systems with a single click as well. I was called into our Senior Directors office about 2 days after a email I sent out to colleagues with the beta version. I thought I might be in trouble, however I was pleasantly surprised. Our Senior Director wanted to congratulate me on my initiative and mentioned that he is changing from Firefox to chrome because of this functionality (aside from that chrome is an awesome browser).

How does the extension create value?

  • You configure your login details once
  • You turn on / off your internet connection with a single click of a button
  • Your statistics of use are displayed in a non obtrusive manner
  • It logs you into other systems on the campus behind the scenes
  • You do not have to leave a tab open
  • You save on average 2 min of every day (maybe more with the new tabbed version)

How did I do it?

It is ridiculously simple to write the Hello World extension. From there I looked at the source in Notepad++ and made continuous changes as I went along, before I knew it two days later. I had coded the whole thing in Notepad++ and did not even once feel like I needed an IDE.

The technology used is nothing special. A native chrome extension is powered by HTML5 and Javascript. You can include any JS libraries you want and everything integrates fabulously. All I had to learn was how the manifest.json file worked (a meta-data file on your extension) and how to use the debug tools in chrome.

SIDE NOTE: Screw firebug… the debug tools in chrome are freaking awesome. Right-click inspect element and breakpoints… support for unimplemented CSS styling (like text decoration underline stylings) and great support for HTML 5 features.

Long story short

  • I wrote an extension for chrome
  • It was easy
  • It took less than a week to go from cradle to grave
  • It was a fun and pleasant experience
  • I did everything in Notepad O_o (okay besides the graphic assets)

P.S. It seems that around 4pm every day something internally happens with Stellenbosch’s Firewall and any inetkey has a hiccup (I hope to have handled this occurrence in the latest version)