FloppyShelf.Security.FipsAes 1.0.1

dotnet add package FloppyShelf.Security.FipsAes --version 1.0.1
                    
NuGet\Install-Package FloppyShelf.Security.FipsAes -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FloppyShelf.Security.FipsAes" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FloppyShelf.Security.FipsAes" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="FloppyShelf.Security.FipsAes" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FloppyShelf.Security.FipsAes --version 1.0.1
                    
#r "nuget: FloppyShelf.Security.FipsAes, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=FloppyShelf.Security.FipsAes&version=1.0.1
                    
Install FloppyShelf.Security.FipsAes as a Cake Addin
#tool nuget:?package=FloppyShelf.Security.FipsAes&version=1.0.1
                    
Install FloppyShelf.Security.FipsAes as a Cake Tool

FloppyShelf.Security.FipsAes

A FIPS-compliant AES encryption library for .NET providing secure, authenticated encryption with streaming support and robust security features.

Overview

This library implements a secure encryption system using AES-256-CBC with HMAC-SHA256 authentication, following FIPS compliance requirements. It supports both streaming operations and direct string encryption/decryption, with built-in protection against timing attacks and secure key management.

Features

  • FIPS-compliant AES-256 encryption
  • Authenticated encryption with HMAC-SHA256
  • Streaming support for large files
  • Secure key derivation using PBKDF2
  • Protection against timing attacks
  • Memory-safe operations
  • Asynchronous API support
  • Built-in error handling

Installation

Add the NuGet package to your project:

Install-Package FloppyShelf.Security.FipsAes

Or using .NET CLI:

dotnet add package FloppyShelf.Security.FipsAes

Usage Examples

Basic String Encryption

var encryptor = new FipsAesStreamEncryptor();

// Encrypt a string
string encrypted = await encryptor.EncryptAsync("Sensitive Data", "your_password_here");

// Decrypt the result
string decrypted = await encryptor.DecryptAsync(encrypted, "your_password_here");

Stream Encryption

var encryptor = new FipsAesStreamEncryptor();

// Encrypt a file stream
await encryptor.EncryptStreamAsync(
    inputStream: inputFileStream,
    outputStream: outputFileStream,
    password: "your_password_here"
);

// Decrypt a file stream
await encryptor.DecryptStreamAsync(
    inputStream: encryptedFileStream,
    outputStream: decryptedFileStream,
    password: "your_password_here"
);

Security Features

  • Key Derivation: Uses PBKDF2 with SHA256 and 100,000 iterations
  • AES Configuration: AES-256-CBC with PKCS7 padding
  • Authentication: HMAC-SHA256 for data integrity verification
  • Secure Memory Handling: Explicit clearing of sensitive data
  • Constant Time Comparisons: Protection against timing attacks
  • Input Validation: Comprehensive parameter checking
  • Error Handling: Specific exceptions for different failure scenarios

Technical Details

  • Key Size: 256-bit AES key
  • Block Size: 128-bit AES blocks
  • Salt Size: 16 bytes
  • HMAC Size: 32 bytes (SHA256)
  • PBKDF2 Iterations: 100,000
  • Cipher Mode: CBC
  • Padding Mode: PKCS7
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.1 77 3/29/2025