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<KeyExchangeService>();
builder.Services.AddScoped<IEphemeralKeyManager, EphemeralKeyManager>();

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<KeyExchangeService>();
 
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>("#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


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

Zuletzt geändert: dne 30.01.2026 ob 08:25