Z tego, co mogę powiedzieć, BouncyCastle & System.Security.Cryptography zapewnia możliwość wykonywania zadań na wysokim poziomie, podczas gdy CryptoAPI ma nieco niższy poziom.
Powiedziano mi, że BouncyCastle nie jest zgodny z FIPS, a CryptoAPI na to pozwala. Czy to prawda?
Kiedy powinienem używać jednego na drugim?
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli chcesz uzyskać dostęp do usług platformy (npustawienia zaufania systemu i dostęp do kart inteligentnych i innych sprzętowych urządzeń kryptograficznych odsłoniętych za pomocą CryptoAPI) powinieneś użyć CAPI lub czegoś, co obsługuje używanie kluczy CAPI (System.Security.Cryptography sugeruje to po nazwie, ale nie wiem zbyt wiele o C # / .NET )
Nie wiem, czy BC zapewnia dostęp do kluczy CAPIalbo nie. Jeśli wyobrażasz sobie, że twoje rozwiązanie tego potrzebuje, użyj CAPI. Zakładam, że twoja aplikacja nie będzie przenośna (ze względu na c #), więc sugeruję użycie CAPI (lub System.Security.Cryptography, jeśli opiera się na CAPI, co powinien zrobić każdy interfejs API Microsoftu)