A Secure Password Hashing Implementation for PCLs

Almost every software has to deal with some kind of user/identity management – be it desktop applications that usually should integrate with the operating system’s and/or business environment’s identity and authentication concepts or be it cloud based/mobile applications or web services that need to be able to control access on their own behalf.

The issue will even become more important in the near future, because the number of mobile users grows at a high rate, and at the same time we can read almost every day about stolen passwords and hacked websites. Also, the activities of Intelligence services around the world don’t really make one feel more secure…

So, with mobile application development and cross-platform compatibility in mind, I fired up my favorite search engine and was looking for a password hashing implementation that met the following requirements:

  • PCL – compatible
  • Easy to use
  • And, of course, being cryptographically as secure as possible

To my surprise, I found nothing that met all the above requirements and was usable out of the box. What I did find were various different components, that had to be re-combined into a new class (called PasswordHash).

Read More

Xamarin.Forms FormsGallery in XAML

This is a complete rework of the Xamarin.Forms FormsGallery sample, but this time using the XAML markup language instead of creating the UI elements directly in code as it is done in the original sample. The purpose of this sample is to showcase everything that’s available out of the box in Xamarin.Forms, or, in Xamarin’s own words:

This program displays all the views, cells, layouts, and pages available in Xamarin.Forms, one per page.

I did this as an exercise for becoming familiar with Xamarin.Forms and at the same time as a reference application to be able to quickly look up how Xamarin.Forms standard controls are used in XAML.

Read More

Starting Something New

A magic dwells in each beginning
Hermann Hesse, Steps

I’m a C# developer. I’m doing nothing but C# (except for some JavaScript/jQuery – you just can’t do web programming without it). On the one hand because it is simply the best, most modern, and most powerful programming language that exists these days, on the other hand because it is challenging enough to focus on one single thing at a time if you want to do it right.

Until some months ago, I never thought about taking a closer look at mobile programming. Learning Java, a language that is essentially outdated? Or Objective C, when I gave up C++ more than ten years ago because I considered C# a far better alternative? And not to mention the maintenance and organizational nightmare that comes with today’s mobile development.
Unacceptable, I would not even do that in my wildest dreams.

But then I stumbled upon the Xamarin platform which opens up mobile development for C# developers, and at the same time enables true cross-platform development: Sharing a large part of the code between the apps while preserving each platform’s individual capabilities. Xamarin wiped away all of my caveats at one blow, and so I was very curious to give it a try.

Initially, I was playing around with it for some weeks to see what I could do with it. But soon – almost immediately – I got seriously infected. So I bought myself a Mac Mini and began to dive into Xamarin programming more systematically, with the clear intent of incorporating it into my professional skill set.

There were various reasons that led me to that decision. Here are some of them…

Read More