Kryptor v3

28th of January 2021

As my first blog post of 2021 (I'm going to try and write a blog post once a month), I'd like to talk about Kryptor v3 Beta. This is the next version of my free and open source file encryption software that will hopefully be released in February.

My goals for what Kryptor should be have changed. Kryptor was originally inspired by how VeraCrypt was designed. I wanted to give the user choice. However, as I've continued to learn about cryptography, I've come to realise that choice is a very bad idea. The software becomes reliant on the user making wise decisions rather than it being secure by default.

In response to this realisation, I've designed Kryptor v3 to be more like age. However, I decided to take things further and implement Minisign like functionality. The result is a mix of the two tools with some improvements and limitations, and I think this is a good thing since a common complaint is that you shouldn't have to download separate tools for file encryption and file signing. I just need to ensure that I don't go overboard with features.

Now that the intro is out of the way, here's a breakdown of what you can look forward to:

Now for the bad news. I don't intend to continue developing the GUI version. I know, I know. The GUI version is where it all started, and it's also pretty easy to use. Plus, Windows users love a good GUI, and I understand why. Here's my reasoning:

  1. The new functionality is very tricky to implement with a GUI. Things like offering file encryption using asymmetric keys becomes complicated when you can enter the public key as a string or select a public key file.

  2. The GUI version isn't cross-platform. Windows Forms makes it very easy to produce a GUI program for Windows. By contrast, cross-platform GUI development is a lot more difficult - e.g. you need to learn another language just to write the GUI! I don't know why there aren't more drag and drop solutions.

  3. I don't want to have to work on two projects at once. I could make a code library for the main code, but this wouldn't completely solve the problem (see point 2). It's a lot easier to just work on one version of the program.

  4. Having different versions makes downloading the program a bit more confusing. A minor point but still worth a mention.

That will wrap up this blog post. If you're interested in the technical details, then you can check out the GitBook documentation here. Note that some of these details aren't final; I'm still changing certain things. Feel free to email me with any feedback on the design or documentation.