New article about NaCl Crypto Library on Mountaineer Platform


We just posted a new article about brand new Mountaineer 4.3.1 Crypto Library:



Excellent post, very very interesting read!

well done to all involved and a massive boast to NETMF and IoT.

Here the announcement:



Nice article! I have a few points I want to add. Especially if you want to implement a protocol on top of NaCl:
[ul]DJB provides a really good protocol example on his curvecp webpage: The CurveCP packet format . I really recommend to have a look at his website before implementing any protocol or message exchange based on NaCl (ZeroMQ also implements the same protocol as well: GitHub - zeromq/libcurve: An encryption and authentication library for ZeroMQ applications ). The base protocol is also useful if you want to encrypt multiple messages with the same private key.[/ul]
[ul]On Mountaineer the hardware number generator is used to generate keys. On .NET we use the System.Security.Cryptography.RandomNumberGenerator to get a cryptographic random number generator for keys (we don’t use System.Random which is a pseudo-random number generator).[/ul]
[ul]The C# implementation doesn’t allocate additional internal memory. A byte array passed to CryptoBox.Box is directly passed into the NaCl C-library. Hence the C# library requires C-style padding.[/ul]
[ul]CryptoBox uses CryptoSecretBox internally. CryptoBox has an additional step where the shared key is computed (CryptoBox.BeforeNm) and fed into CryptoSecretBox (AfterNm).[/ul]

The library can be tested here: (it works on both Windows and the new Mountaineer 4.3.1 beta 3 release)

Additional information regarding the NaCl implementation can be found on the Mountaineer website:

Disclaimer: I’m the main developer behind the Oberon.NaCl implementation.


Links to the API reference pages and first measurements are given here: