If you like this library, please rate it! Also, please leave feedback / reviews. I like to know what other people think of my work, both good and bad.

Project is now available on NuGet! http://www.nuget.org/List/Packages/DH.Scrypt.dll

UPDATE 1/6/2012: The NuGet package has been fixed.  It now contains assemblies for Silverlight 3, 4 and 5.

Project Description
The Scrypt RSA Library provides asymmetric encryption capabilities for Microsoft Silverlight 3+ and Windows Phone 7. In this initial release we've added RSA Encryption with support for key sizes from 256-bit to 4096-bit.

This library is fully compatible with .NET's built in RSACryptoServiceProvider. Successful testing has been done on a Windows Phone 7 device as well. The release download is compiled for Silverlight 3.

For some usage examples, please visit my blog:
http://www.dustinhorne.com/post/Asymmetric-Encryption-and-Signing-with-RSA-in-Silverlight.aspx

Licensing Clarification
I wanted to make a small clarification to the licensing for Scrypt. While I don't publish the source for all of my works, I fully support the open source community. In doing so, I am providing the Scrypt library without limitation. All I ask is that you post a review of the project here on CodePlex if you use it in your project and provide a link to the project in your application only if doing so is unobtrusive (for instance on a Help or About screen, but only if it fits naturally and does not affect your project). You are free to use this library in both your open and closed source applications, both free and for sale, without limitation. I hope you find this library useful!

Limitations
This library limits the allowed key size to the range of 256-bit to 4096-bit. This is strictly due to the functionality of the employed BigInteger class that is used which initializes a fixed array for data storage. While this size can be increased to allow for larger keys, I found the negative impact on performance to be unacceptable. Likewise, I performed a full conversion of the BigInteger class to utilize generics instead of fixed arrays but the performance impact of this approach was also unacceptable.

Acknowledgements
This project uses a modified version of the C# BigInteger class by Chew Keong TAN, with several fixes and enhancements.

A huge thank you goes out to Nick Martyshchenko for providing CspBlobImport and CspBlobExport functionality for compatibility with the Windows SDK (Unmanaged).  Thanks Nick!  And you can visit Nick's blog @ http://nsentinel.blogspot.com (Russian).

Last edited Jan 6, 2012 at 3:53 PM by DustinHorne, version 20