====== 4.2 Integration ======
Platform-specific integration guides for WvdS.System.Security.Cryptography.
----
===== Platforms =====
^ Platform ^ Provider ^ Description ^
| Blazor Server | NativeCryptoProvider | P/Invoke to OpenSSL |
| Blazor WebAssembly | WasmCryptoProvider | JS Interop to OpenSSL.wasm |
| ASP.NET Core | NativeCryptoProvider | REST API with PQ certificates |
| Console Application | NativeCryptoProvider | Batch processing, tools |
----
===== Architecture =====
The library uses the provider pattern:
Application Code
|
WvdS.System.Security.Cryptography (Extension Methods)
|
ICryptoProvider (Interface)
|
+-------------------------+------------------------+
| NativeCryptoProvider | WasmCryptoProvider |
| (P/Invoke) | (JS Interop) |
+-------------------------+------------------------+
| |
OpenSSL 3.6 (Native) OpenSSL.wasm (Browser)
The provider is automatically selected based on the runtime environment.
----
===== Service Registration =====
For 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);
// Configure PQ crypto
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
CryptoConfig.OpenSslPath = builder.Configuration["OpenSslPath"];
// Register services
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 is used automatically
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
builder.RootComponents.Add("#app");
await builder.Build().RunAsync();
**Note:** In WASM, the ''WasmCryptoProvider'' is automatically used, which utilizes OpenSSL.wasm via JavaScript Interop.
----
===== ASP.NET Core Web API =====
// Program.cs
using WvdS.System.Security.Cryptography;
var builder = WebApplication.CreateBuilder(args);
// Configure PQ crypto
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
// HTTPS with PQ certificate (Kestrel)
builder.WebHost.ConfigureKestrel(options =>
{
options.ConfigureHttpsDefaults(https =>
{
https.ServerCertificate = LoadPqCertificate();
});
});
builder.Services.AddControllers();
var app = builder.Build();
----
===== Further Reading =====
* [[en:int:pqcrypt:api:providers:start|Provider API Reference]]
* [[en:int:pqcrypt:administrator:konfiguration|Configuration]] - OpenSSL paths, environment variables
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>integration blazor aspnet provider}}