2
0
Geoff Norton 16d4fd790b Further .NET 4.0 ification of the mobile profile 15 жил өмнө
..
.gitattributes b293948fb7 EOL handling 15 жил өмнө
Aes.cs 16d4fd790b Further .NET 4.0 ification of the mobile profile 15 жил өмнө
AesCryptoServiceProvider.cs 86ec227096 2008-08-05 Sebastien Pouliot <[email protected]> 17 жил өмнө
AesManaged.cs ee5160d55d Fixed AesManaged parameter names to make gui-compare happy 15 жил өмнө
AesTransform.cs 2522376906 2008-08-07 Sebastien Pouliot <[email protected]> 17 жил өмнө
ChangeLog 50731318d9 In Assembly: 16 жил өмнө
CngAlgorithm.cs 86ec227096 2008-08-05 Sebastien Pouliot <[email protected]> 17 жил өмнө
CngAlgorithmGroup.cs 86ec227096 2008-08-05 Sebastien Pouliot <[email protected]> 17 жил өмнө
MD5Cng.cs e4dd723dbf 2009-04-29 Sebastien Pouliot <[email protected]> 16 жил өмнө
README.CNG 86ec227096 2008-08-05 Sebastien Pouliot <[email protected]> 17 жил өмнө
README.CSP 86ec227096 2008-08-05 Sebastien Pouliot <[email protected]> 17 жил өмнө
SHA1Cng.cs e4dd723dbf 2009-04-29 Sebastien Pouliot <[email protected]> 16 жил өмнө
SHA256Cng.cs e4dd723dbf 2009-04-29 Sebastien Pouliot <[email protected]> 16 жил өмнө
SHA256CryptoServiceProvider.cs e4dd723dbf 2009-04-29 Sebastien Pouliot <[email protected]> 16 жил өмнө
SHA384Cng.cs e4dd723dbf 2009-04-29 Sebastien Pouliot <[email protected]> 16 жил өмнө
SHA384CryptoServiceProvider.cs e4dd723dbf 2009-04-29 Sebastien Pouliot <[email protected]> 16 жил өмнө
SHA512Cng.cs e4dd723dbf 2009-04-29 Sebastien Pouliot <[email protected]> 16 жил өмнө
SHA512CryptoServiceProvider.cs e4dd723dbf 2009-04-29 Sebastien Pouliot <[email protected]> 16 жил өмнө

README.CNG

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.