The MSDN link provides references to concrete AES classes:
However AesCryptoServiceProvider is for older machines and AesManaged is not certified for FIPS. So the only option is AesCng. The AesCng has a property called Mode, which will only take: CBC, ECB, OFB, CFB, CTS but no GCM.
This answer reflects the comments from Luke Park, bartonjs, Timo, aand Maarten Bodewes above.
One option is to use the Bouncycastle C# library, which has its own self-contained implementation of AES as well as the GCM mode. Look at the source code for the classes GCMBlockCipher, AesEngine, and AEADParameters.
Another option is to use P/Invoke to manually call BCryptEncrypt.
Finally, note that .NET Core will have support starting in 3.0. The source is already available in github.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With