====== 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();
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 servisa
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-Provider se automatski koristi
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
builder.RootComponents.Add("#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 =====
* [[..:api:providers:start|Provider API-referenca]]
* [[..:administrator:konfiguration|Konfiguracija]] - OpenSSL putanje, varijable okruženja
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>integration blazor aspnet provider}}