Debugging: Creating Networks, Automating, Testing Multiple Platforms (Week 6)

Mar 25, 2019

Hello everyone!

Looks like the project has significant progress! So far, I am almost done making the bare-bones structure of the demo application, with abstraction in all places. For example, places which require encryption are demarked with an abstract function, which I will be implementing later. This approach to programming will allow me to plug-and-play different implementations according to performance and efficiency, giving greater flexibility. Additionally, it will help in easily maintaining the project with necessary updates, as the core will remain mostly unchanged.

On the implementation side, I decided to go with the networking. As stated in the previous blog post, I want to have the computer auto-create an ad hoc network which the other computer can easily and securely connect to. Using some built-in libraries and system functions, I got mixed results. It worked well on Windows, but gave security errors on Mac. As a cross-platform application, it was necessary for me to have my application work everywhere. Reading online, it looked as if I had to create a certificate with KeyChain Access, and I was able to make something in Swift (Apple’s native language) but not in Java. A conversion to Swift would not be possible, as a focus of this project is also cross-platform functionality. My future goals were also to port this to Android and iOS.

Spending many days on this, I decided to pause on this and manually configure networks for now. I want to get going with the actual encryption parts and make a viable demo application to demonstrate the potential of “mental poker” based decentralized authentication.

4 Replies to “Debugging: Creating Networks, Automating, Testing Multiple Platforms (Week 6)”

  1. Mario G. says:

    What will the demo include?

    1. Vidur G. says:

      Hi Mario,

      The demo will include a graphical utility for two computers to authenticate each other using backend libraries implemented with the various algorithms I am studying. Most of the work will be behind the scenes.

  2. Arshia S. says:

    Why do you think you ran into problems converting between languages?

    1. Vidur G. says:

      Hi Arshia,

      Since some things were not working properly in Mac, I used Swift & Objective-C, as it is a native language to the Apple platform. Due to that, it is able to connect with more deeper computer functions using compatibility with native C code as well as Apple functions.

      One of the biggest benefits of Java is its JVM, and I like using Java, as it is cross-platform. However, the JVM limits the amount of depth I can go with OS-specific commands. As my main language is Java and not Swift, I was having these problems.

Leave a Reply

Your email address will not be published. Required fields are marked *