====== 4.2 Integracija ======
Navodila za integracijo WvdS.System.Security.Cryptography za posamezne platforme.
----
===== Platforme =====
^ Platforma ^ Ponudnik ^ Opis ^
| Blazor Server | NativeCryptoProvider | P/Invoke do OpenSSL |
| Blazor WebAssembly | WasmCryptoProvider | JS Interop do OpenSSL.wasm |
| ASP.NET Core | NativeCryptoProvider | REST-API s PQ-certifikati |
| Konzolna aplikacija | NativeCryptoProvider | Paketna obdelava, orodja |
----
===== Arhitektura =====
Knjižnica uporablja vzorec ponudnika:
Aplikacijska koda
↓
WvdS.System.Security.Cryptography (Extension Methods)
↓
ICryptoProvider (Interface)
↓
┌─────────────────────────┬────────────────────────┐
│ NativeCryptoProvider │ WasmCryptoProvider │
│ (P/Invoke) │ (JS Interop) │
└─────────────────────────┴────────────────────────┘
↓ ↓
OpenSSL 3.6 (Native) OpenSSL.wasm (Browser)
Ponudnik je izbran samodejno glede na izvajalno okolje.
----
===== Registracija storitev =====
Za Dependency Injection v 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);
// Konfiguracija PQ-kripto
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
CryptoConfig.OpenSslPath = builder.Configuration["OpenSslPath"];
// Registracija storitev
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);
// WASM-ponudnik se uporabi samodejno
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
builder.RootComponents.Add("#app");
await builder.Build().RunAsync();
**Opomba:** V WASM se samodejno uporabi ''WasmCryptoProvider'', ki uporablja OpenSSL.wasm preko JavaScript Interop.
----
===== ASP.NET Core Web API =====
// Program.cs
using WvdS.System.Security.Cryptography;
var builder = WebApplication.CreateBuilder(args);
// Konfiguracija PQ-kripto
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
// HTTPS s PQ-certifikatom (Kestrel)
builder.WebHost.ConfigureKestrel(options =>
{
options.ConfigureHttpsDefaults(https =>
{
https.ServerCertificate = LoadPqCertificate();
});
});
builder.Services.AddControllers();
var app = builder.Build();
----
===== Nadaljnje branje =====
* [[..:api:providers:start|API-referenca ponudnikov]]
* [[..:administrator:konfiguration|Konfiguracija]] – Poti OpenSSL, okoljske spremenljivke
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>integration blazor aspnet provider}}