* Cryptography In the .NET framework cryptography can be found under a number of namespaces in several assemblies. ** Assembly: corlib *** Namespace: System.Security.Cryptography Thanks to the work of many people this namespace is almost complete. **** Status **** TODO **** Notes *** Namespace: System.Security.Cryptography.X509Certificates **** Status **** TODO **** Notes
** Assembly: System.Security *** Namespace: System.Security.Cryptography.Xml This namespace implements the XML Digital Signature specification from W3C. **** Status **** TODO
** Assembly: Mono.Security Rational This assembly provides the missing pieces to .NET security. On Windows CryptoAPI is often used to provide much needed functionalities (like some cryptographic algorithms, code signing, X.509 certificates). *** Namespace: Mono.Security *** Namespace: Mono.Security.Authenticode *** Namespace: Mono.Security.Cryptography *** Namespace: Mono.Security.X509 *** Namespace: Mono.Security.X509.Extensions **** Status
** Assembly: Mono.Security.Win32 Rational This assembly goal is to provide maximum compatibility with CryptoAPI to application running with Mono's runtime on the Windows operating system. This assembly should NEVER be used directly by any application. The classes should only be used by modifying the machine.config configuration file (and then only if this increased compatibility is required by an application). See the file /mcs/class/Mono.Security.Win32/README for complete instructions. *** Namespace: Mono.Security.Cryptography **** Status **** TODO **** Ideas
** Assembly: Microsoft.Web.Services Microsoft Web Service Enhancement (WSE), known as Web Service Development Kit (WSDK) in it's beta days, is an add-on the .NET framework that implements WS-Security (and other WS-* specifications). It also includes improved support for XML Signature (replacing and/or extending System.Security.Cryptography.Xml) and X.509 certificates classes. Note: WSE is distributed as an add-on because some specifications, like WS-Security, aren't yet completed by OASIS or other committees. [*] There are some licensing issues to consider before stating to implement WS-Security. All contributors must sign an agreement with Microsoft before commiting anything related to WS-Security into CVS. *** Namespace: Microsoft.Web.Services.Security [*] *** Namespace: Microsoft.Web.Services.Timestamp [*] **** Status *** Namespace: Microsoft.Web.Services.Security.X509 **** Status **** TODO
** Tools There are many tools in the .NET framework that indirectly interacts with some cryptographic classes. Mono will eventually need these tools. Unless noted the tools should work on any CLR (tested with both Mono and Microsoft). **** Status The following tools are complete: **** TODO The following tools are still missing or incomplete: Note that many of the tools requires the class library and/or the runtime to be ready for them. E.g. StrongName and Authenticode signatures tools are of limited use until supported by the runtime.
** Other stuff
** How to Help Complete any of the TODO (and feel good about it ;-). Add missing unit tests to classes or methods. Write some documentation on the cryptographic classes for the Mono Handbook as I'm not a very good writer (at least in English). Optimization can also be done on algorithms as crypto is never fast enough. Just be sure to test every optimization (using the unit test) carefully - it's so fast to break an algorithm ;-). Contact Sebastien Pouliot (home , work) if you need additional informations about the status of the cryptographic classes.
Last reviewed: April 7, 2003 (post mono 0.23)