PkcsExtensions je malá knižnica pridávajúca extensions metódy a typy, ktoré chýbajú v dotnete (.net core 3.1) v oblasti PKCS.
Táto knižnica vznikla pre to, lebo som sa často stretával s opakujúcimi sa úlohami. Napríklad bezpečný prevod SecureString na pole bajtov, generátor náhodných čísiel, ktorý dokáže zbierať entropiu, zistenie, či je certifikát možné použiť pri podpisovaní dokumentu,…
Plno z tohto rieši BauncyCastle, ale to je okolo dva megabajty veľká knižnica, ktorá sa nedá dobre linkovať (IL Linking), lebo takmer každá trieda súvisí s každou. Preto som sa inšpiroval knižnicu SecurityDriven.Inferno, ktorá pridáva len tenkú vrstvu a rozšírenia nad štandardné dotnet API.
Mojim cieľom bolo vytvoriť malú knižnicu, vhodnú pre AOT kompiláciu, IL Linking a teda aby šla dobre použiť v malých programoch a Blazore.
PkcsExtensions poskytuje funkcionalitu pre:
Vytvorený Nuget balíček.
Ukážky použitia a príklady so zdrojovými kódmi sa nachádzajú na Github stránke projektu.
PkcsExtensions.Blazor je knižnica pre Blazor WebAssembly, poskytujúca interop pre WebCrypto (kryptografické primitíva vo webovom prehliadači) a ďalšie pomocné triedy a extension metódy pre PKCS v prostredí browsera (PkcsExtensions je jej závislosť).
Táto knižnica umožňuje:
Táto knižnica zámerne nerobí interop na WebCrypto pre hash funkcie, HMAC, šifrovanie a podpisovanie, pretože ich implementácie a podpora sa môže líšiť medzi prehliadačmi a operačnými systémami, navyše WebCrypto neumožňuje podpísať hash. Preto v súčasnosti považujem za lepšiu alternatívu použiť dotnet/Blazor implementáciu týchto funcionalít.
Poznámka: To, ktoré kryptografické API v Blazor WebAssembly funguje záleží od jeho verzie. Preto aj táto knižnica môže poskytovať rôznu časť funkcionality v závislosti od toho, akú verziu Blazoru používate.
Vytvorený Nuget balíček.
Ukážky použitia a príklady so zdrojovými kódmi sa nachádzajú na Github stránke projektu.