Skip to content

A DataProtect wrapper that uses DPAPI in Windows and AspNetCore.DataProtection in other platforms.

License

Notifications You must be signed in to change notification settings

integrativesoft/CrossProtectedData

Repository files navigation

CrossProtectedData Download count

A replacement for the ProtectedData class in NET Standard that works not only in Windows but also Linux/MacOS/others.

This library is a wrapper of ProtectedData and exposes the same interface. The difference is the following:

  • When running in Windows, it calls directly the original ProtectedData class supported in Windows.
  • When running in non-Windows, it implements those calls using instead the AspNetCore.DataProtection library.

There is no need to download this repository. This library is available as a NuGet package.

Example

using Integrative.Encryption;
using System;
using System.Security.Cryptography;
using System.Text;

namespace CrossProtectedExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // our text to protect
            var text = "Hello!";

            // get bytes from text
            var bytes = Encoding.UTF8.GetBytes(text);

            // optional entropy
            var entropy = new byte[] { 100, 25, 31, 213 };

            // protect (encrypt)
            var protectedBytes = CrossProtect.Protect(bytes, entropy,
                DataProtectionScope.CurrentUser);

            // unprotect (decrypt)
            var unprotected = CrossProtect.Unprotect(protectedBytes, entropy,
                DataProtectionScope.CurrentUser);

            // convert bytes back to text
            var result = Encoding.UTF8.GetString(unprotected);

            // print result
            Console.WriteLine(result);
            Console.ReadKey();
        }
    }
}

About

A DataProtect wrapper that uses DPAPI in Windows and AspNetCore.DataProtection in other platforms.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages