4.2 Integrazione

Guide di integrazione specifiche per piattaforma per WvdS.System.Security.Cryptography.


Piattaforme

Piattaforma Provider Descrizione
Blazor Server NativeCryptoProvider P/Invoke verso OpenSSL
Blazor WebAssembly WasmCryptoProvider JS Interop verso OpenSSL.wasm
ASP.NET Core NativeCryptoProvider REST-API con certificati PQ
Applicazione console NativeCryptoProvider Elaborazione batch, strumenti

Architettura

La libreria utilizza il pattern Provider:

Codice applicazione
    ↓
WvdS.System.Security.Cryptography (Extension Methods)
    ↓
ICryptoProvider (Interface)
    ↓
┌─────────────────────────┬────────────────────────┐
│ NativeCryptoProvider    │ WasmCryptoProvider     │
│ (P/Invoke)              │ (JS Interop)           │
└─────────────────────────┴────────────────────────┘
    ↓                           ↓
OpenSSL 3.6 (Nativo)      OpenSSL.wasm (Browser)

Il provider viene scelto automaticamente in base all'ambiente di runtime.


Registrazione servizi

Per Dependency Injection in ASP.NET Core / Blazor:

// Program.cs
builder.Services.AddSingleton<KeyExchangeService>();
builder.Services.AddScoped<IEphemeralKeyManager, EphemeralKeyManager>();

Blazor Server

// Program.cs
using WvdS.System.Security.Cryptography;
 
var builder = WebApplication.CreateBuilder(args);
 
// Configurare crittografia PQ
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
CryptoConfig.OpenSslPath = builder.Configuration["OpenSslPath"];
 
// Registrare servizi
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<KeyExchangeService>();
 
var app = builder.Build();

Blazor WebAssembly

// Program.cs
using WvdS.System.Security.Cryptography;
 
var builder = WebAssemblyHostBuilder.CreateDefault(args);
 
// Provider WASM viene utilizzato automaticamente
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
 
builder.RootComponents.Add<App>("#app");
await builder.Build().RunAsync();

Nota: In WASM viene utilizzato automaticamente il WasmCryptoProvider, che usa OpenSSL.wasm tramite JavaScript Interop.


ASP.NET Core Web API

// Program.cs
using WvdS.System.Security.Cryptography;
 
var builder = WebApplication.CreateBuilder(args);
 
// Configurare crittografia PQ
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
 
// HTTPS con certificato PQ (Kestrel)
builder.WebHost.ConfigureKestrel(options =>
{
    options.ConfigureHttpsDefaults(https =>
    {
        https.ServerCertificate = LoadPqCertificate();
    });
});
 
builder.Services.AddControllers();
var app = builder.Build();

Approfondimenti


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: il 30/01/2026 alle 09:02