I’m a bit tardy on this announcement since the release has been available for almost 10 days now but things are pretty busy here.
On March 15th, we posted an alpha version of the 4.2 release. The features that are available in this early look are security improvements, FTP Support, a PWM Object, and a number of fixes to the issues that you have reported in the issue tracker on the CodePlex project. What does an Alpha release mean? The full set of features that we hope to have for the final 4.2 release are not all in this release. There are several things that we are still working on and there are a few projects in the community that we are hoping will come in before we go to Beta. We wanted to get the fixes and features out in case you want to play around with them and if there is a critical issue that you want to address in the 4.1 release, you can pull the fix out of 4.2 and integrate it back. We suggest that you do no use this release for production devices. We will be releasing Beta and RTM versions over the next few months (see the schedule posted on the documentation page.
The cryptographic support is based on an extensible PKCS #11 implementation and, as of today, it supports the following crypto primitives: AES, 3DES, EC-DH, ECDSA, DSA, RSA, HMAC (MD5, SHA1, SHA256, SHA384, SHA512, RIPEMD160), Random Number Generation, and X509 certificates. The PKCS11 implementation enables management of any number of cryptographic tokens with different sets of functionality including object storage (keys, certificates, etc.). There are currently three cryptographic tokens available in the porting kit: the OpenSSL crypto library primitives, the deprecated crypto.lib and an emulator only implementation. With this design, a new cryptographic token (hardware or software implementation) can either replace the OpenSSL implementation or simply add to the list of primitives already supported.
The support at the managed object model level is a subset implementation of the standard .NET Framework Crypto Service Provider (CSP) object model contained in the System.Security.dll assembly. However, in order to reduce the memory footprint, the hash and keyed hash algorithms do not have separate classes as they do in the desktop version. Instead, the HashAlgorith and KeyedHashAlgorithm classes are initialized with the specified hash algorithm type. In addition to the standard System.Security.Cryptography object model, we also expose PKCS11 classes which allow the cryptographic model to be extended to match additions to the native PCKS11 implementation. In fact, the CSP object model sits directly on top of the PKCS11 managed object model.
This new work will fully replace the old Cryptographic API.
Details of what is included:
109 Support standard cryptography types and methods from System.Security.Cryptography
77 Support System.Threading.Thread.ManagedThreadId
128 Standard Class to Support PWM Ports
309 Support FieldOffset Attribute
Issue and Features From the community database
66 HAL Queues indexers go out of bounds
79 DrawingContext.DrawRectangle asserts for opacity out of range
87 BlockStorageStream::Erase decrements after changing blocks
88 System.Collections.Hashtable.Count increases even when using existing key
90 WSDAPI may reject MF´s request
91 DPWS April2005 discovery with WCF 4.0 does not work
97 Socket.Set/GetSocketOptions does nto work for Big endian Processors
98 Update help files for Renesas platforms
150 setenv.cmd scripts does not work correctly for paths with spaces
313 HttpListenerRequest stops on socket exception after a while
324 Sam7x_ek TinyCLR gcc builds fail
335 ARM Crypto lib – RSA Encrypt/Decrypt fails for certain input lengths
352 Include ExtensionAttribute in CorLib
408 Add delay between HAL_Uninitialize and HAL_Initialize
454 Reading SerialPort.Baudrade always yields 9600
480 StreamReader.Readline() bug
510 NETMF House cleaning
624 TimeService Driver Issue
633 NativeSample bug in USART test
641 Socket debugging with LWIP not working
642 Wrong call handling after nonexistent constructor
647 Dpws: DpwsDiscoverClient.Probe defaults to looking for zero probe matches
650 Mark String as IComparable (it already implements the interface)
651 NativeEventDispatcher Cleaning Up Crashes When There Are Events
657 Debug methods erroneously listed in documentation, do not exist in .NET MF Debug class.
672 Remove MC9328XL specific data from enc28J60_config_stubs.cpp
694 Issue with mem.c in lwip
Issue and Features not listed on the community database
ToString() for all numeric types now supports hexadecimal formatting e.g. (3).ToString(“X04”);
Metadataprocessor – Added back support for legacy interop code generation.
Base64 encoding added to mscorlib – Convert.[From|To]Base64String (moved from HTTP assembly)