System.Data.SQLite

Login
This project makes use of Eagle, provided by Mistachkin Systems.
Eagle: Secure Software Automation
Ticket Hash: 701aa7c3c6fa54c7b097e2945701cc538514efd0
Title: Windows Platform FIPS Error
Status: Closed Type: Feature_Request
Severity: Important Priority: Immediate
Subsystem: Legacy_CryptoAPI Resolution: External_Bug
Last Modified: 2016-02-15 19:27:41
Version Found In: 1.0.74
Description:
I get the following error: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.

OS: Windows XP (32bit)
.NET 4 Framework
Visual Studio 2010 SP1

To reproduce:
1. go to registry (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa) and set fipsalgorithmpolity to 1.

2. Go to devenv.exe.config (for your version of VS) and add "<enforceFIPSPolicy enabled="false"/>" to the runtime section. (it won't build without this)

3. Create console application (.NET 4)

4. Add System.Data.SQLite & System.Data.SQLite.Linq references

5. Add new "ADO.NET Entity Data Model", generate from database, choose northwindEF.db, select all tables, views, and SPROCs, wait for data model generation.

6. Add the following method to Program.cs :

private static void RunIt()

{
  var t = new northwindEFEntities();


  var customers = t.Customers.Where(c => c.CompanyName.StartsWith("a"));


  foreach (var customer in customers)

  {

  Console.WriteLine(customer.CompanyName);

  }

}

7. Add "RunIt();" to Program.Main.

8. Hit F5

<hr /><i>mistachkin added on 2011-07-09 18:39:21 UTC:</i><br />
This appears to be related to the use of the RC4 (CALG_RC4) algorithm in the crypt.c file of the SQLite.Interop assembly for CryptDeriveKey.

<hr /><i>mistachkin added on 2011-07-09 19:10:46 UTC:</i><br />
As far as I can tell, the interop assembly has always used the RC4 algorithm and that prevents it from being FIPS compliant.  The algorithm used cannot be changed without breaking the pre-existing database encrypted via the interop assembly.


<hr /><i>anonymous added on 2011-07-27 20:28:38 UTC:</i><br />
This seem to be an issue with using the LINQ/entity framework using managedsha256 more that using system.data.sqlite. I receive the same error using other databases with the LINQ/entity framework. There is even a Microsoft connects bug ticket (ID: 521539) see for more details http://connect.microsoft.com/VisualStudio/feedback/details/521539/fips-and-entity-framework for more details.