====== 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();
builder.Services.AddScoped();
----
===== 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();
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");
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 =====
* [[..:..:api:providers:start|Riferimento API Provider]]
* [[..:..:administrator:konfiguration|Configurazione]] – Percorsi OpenSSL, variabili d'ambiente
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>integration blazor aspnet provider}}