| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- CNG stands for "Cryptography API: Next Generation"
- CNG is the replacement for CryptoAPI under Windows Vista (and later) and
- just like CryptoAPI it is a Windows-specific, native (unmanaged) library.
- In MS implementation the *Cng classes are simply managed wrappers around
- the native CNG libraries. This is similar to older *CryptoServiceProvider
- classes that provided managed wrappers around CryptoAPI.
- In Mono implementation the *Cng classes are, mostly[1], wrappers around
- existing managed classes provided in older version of the framework.
- This is essentially similar to what Mono already does for the
- *CryptoServiceProvider classes (i.e. provide managed implementation).
- Of couse this won't affect people using the base algorithm classes to
- create the default instance of their algorithm.
- E.g.
- SHA256 hash = SHA256.Create ();
- has been working for years and will continue to do so.
- New CNG crypto classes Wrapper around
- ---------------------- --------------
- ECDsaCng none [1]
- ECDiffieHellmanCng none [1]
- MD5Cng MD5CryptoServiceProvider [mscorlib]
- SHA1Cng SHA1Managed [mscorlib]
- SHA256Cng SHA256Managed [mscorlib]
- SHA384Cng SHA384Managed [mscorlib]
- SHA512Cng SHA512Managed [mscorlib]
- [1] Two specific cases, namely ECDH and ECDSA, are new algorithms that
- were not available before CNG and for which Mono does not, at the
- present time, have managed alternatives.
- The *actual* behavior of both class is to throw a PlatformException
- just like running the same code would do under Windows XP (or earlier).
- Once we have managed implementations for both algorithms we'll behave
- like Vista.
|