<Project Sdk="Microsoft.NET.Sdk">

  <!--
    The client's local cache: ciphertext exactly as the server returned it, the outbox of local
    changes not yet accepted, and the material an offline unlock needs.

    SQLite through EF Core, and deliberately *not* SQLCipher. Item payloads arrive already
    encrypted under keys the server has never seen, so an encrypted database file would protect
    bytes that are protected already, at the cost of a native dependency and a licence obligation.
    The one thing that would genuinely be plaintext — a search index — is kept in memory and
    rebuilt on unlock. SQLitePCLRaw deprecated bundle_e_sqlcipher in 3.0 in any case.

    Everything this project does store in the clear is either not a secret (a version number, a
    change sequence) or is sealed under the LocalCacheKey first.
  -->

  <ItemGroup>
    <ProjectReference Include="../DodoSSH.Contracts/DodoSSH.Contracts.csproj" />
    <ProjectReference Include="../DodoSSH.Crypto/DodoSSH.Crypto.csproj" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" />
    <PackageReference Include="EFCore.NamingConventions" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" PrivateAssets="all" />
  </ItemGroup>

  <ItemGroup>
    <InternalsVisibleTo Include="DodoSSH.Client.Storage.Tests" />
    <InternalsVisibleTo Include="DodoSSH.Client.Sync" />
    <InternalsVisibleTo Include="DodoSSH.Client.Sync.Tests" />
  </ItemGroup>

</Project>
