4.2 Integracija

Upute za integraciju specifične za platformu za WvdS.System.Security.Cryptography.


Platforme

Platforma Provider Opis
Blazor Server NativeCryptoProvider P/Invoke prema OpenSSL
Blazor WebAssembly WasmCryptoProvider JS Interop prema OpenSSL.wasm
ASP.NET Core NativeCryptoProvider REST-API s PQ-certifikatima
Konzolna aplikacija NativeCryptoProvider Batch obrada, alati

Arhitektura

Biblioteka koristi Provider obrazac:

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

Provider se automatski odabire na temelju runtime okruženja.


Registracija servisa

Za Dependency Injection u 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 servisa
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-Provider se automatski koristi
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
 
builder.RootComponents.Add<App>("#app");
await builder.Build().RunAsync();

Napomena: U WASM-u se automatski koristi WasmCryptoProvider koji koristi OpenSSL.wasm putem 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();

Daljnje informacije


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

Zuletzt geändert: 30.01.2026. u 08:52