Skip to main content

Release 2.0.0

· 3 min read
Joe Jeanjaquet
Senior Director of Applied Technology @ Eclypses

Version 2.0.0

  • The ECL library's implementations of AES, SHA, and DRBGs is now used instead of MTE's original implementation.
  • The ECL library's ESP32 implementation uses the ESP32's hardware cryptographic modules instead of software to the extent possible.
  • The MTE algorithm has changed to add additional security. MTE 2.x outputs are not compatible with MTE 1.x outputs.
  • The developer's guides have been updated extensively.
  • The ARM64 functions and classes have been removed. The ARM64 PAA is now automatically enabled when available.
  • The self-test functions have been removed.
  • A new global init function is now required to be called in all cases. The language interfaces other than C take care of this automatically.
  • The status codes have been rearranged to align with ECL. Some new codes were added as well.
  • Save/restore state functions now return status which should be checked like all other status returns. The status may return an error when certain DRBG implementations are used.
  • The language interfaces no longer claim to zeroize the nonce, since that never happened and was never a requirement.
  • The language interfaces now zeroize the entropy in all cases where the language allows it for consistent security and to avoid confusion about when it happens or doesn't. The languages that do not allow it are commented to warn you about it not being zeroized.
  • The core and fixed-length limited input range feature has been removed. All APIs that took the input byte range have changed to remove those options. All possible inputs are now supported in all cases.
  • The MKE interface has been changed to remove the minToEncrypt option and always do encryption.
  • MKE encrypt and decrypt chunk now return a status which must be checked.
  • The MKE encrypt chunk interface changed to use state like decrypt.
  • The Base64 state restore API has been improved to not overwrite the input.
  • The entropy, nonce, and timestamp callbacks are no longer virtual (or equivalent). There are now callback interfaces to allow you to use a plugin to override any or all of the callbacks instead of deriving from an encoder or decoder class. This allows for more reuse and is easier to use.
  • The jailbreak detection classes have been condensed down to use the new nonce plugin.
  • There are now Node.js command line WASM demos in addition to the browser demos.
  • Language interfaces have added default constructors/initializers/factory methods which should be used in most cases. The default constructors take care of build-time options and will default to reasonable runtime options. Only in cases where you have runtime options you need to control fully should you use the constructors/initializers that take all options.
  • Language interfaces are now versioned to match the MTE version and check for a match against the library to ensure compatibility.
  • The C# language interface has been tweaked to support older .NET versions. The developer's guide lists the supported versions.
  • Added additional documentation files describing how to set up MTE-capable projects in Android Studio and Xcode.

Release 1.5.1

· One min read
Joe Jeanjaquet
Senior Director of Applied Technology @ Eclypses

Version 1.5.1

  • Updated Java language interfaces to work around different Java versions' handling of ByteBuffer.position().
  • Fixed C# MKE decoder interface chunking issue with certain combinations of options and inputs.
  • Fixed Java MKE decoder interface chunking issue with certain combinations of options and inputs.
  • Fixed Go issue with non-minimum entropy size.
  • Added guidance about C# interop to the developer's guide.
  • Added DLL fallback to working directory on Windows for Python.
  • Enhanced C# interop to look in the working directory if the dynamic library cannot be found.

Release 1.5.0

· One min read
Joe Jeanjaquet
Senior Director of Applied Technology @ Eclypses

Version 1.5.0

  • Fixed Python non-Base64 encoder return type issue.
  • Fixed Python max nonce size accessor.
  • Fixed Python MteJail function signatures.
  • Added iOS ARM64 extension check helper code to Objective-C and Swift. Updated dev guide to provide good iOS ARM64 fast crypto guidance.
  • Fixed Go demo ReadMe files since Go does not use dynamic MTE libraries.
  • Fixed Go linker issues on Linux.
  • Fixed Go handling of zero-length entropy.
  • Fixed issue with NODF DRBGs not instantiating correctly when using an external entropy buffer.
  • Fixed C#, Go, Java, and Python demo ReadMe files to include all enumerations.
  • Added overloads to C++, C#, Java, Objective-C, and Swift language interfaces for better efficiency if external buffers are used.
  • Refactored C# language interface to support dynamic interop mapping. Almost all static functions are now members to support the interop object.
  • Fixed MKE chunk-mode decrypt buffer management in all language interfaces.
  • Updated jailbreak detection for iOS.
  • Updated jailbreak detection for Android.
  • Minor changes to Java and Swift jailbreak language interfaces.

Release 1.4.5

· One min read
Joe Jeanjaquet
Director of Applied Technology @ Eclypses

Version 1.4.5

  • Fixed core and MKE decoder reseed counter functions in runtime options builds.
  • Fixed ARM64 AES decrypt PAA selectors.
  • Fixed WASM/JS MKE encrypt/decrypt chunking returning wrong finalization.
  • Added Android ARM64 PAA-enabling example in developer's guide.
  • WASM TS/JS now removes unused add-ons to reduce size and avoid confusion.
  • Rearranged WASM/JS demos to clarify WASM instantiation requirements and add better error checking.
  • Updated all demo ReadMe.txt files to clarify what is required to assemble the demo to be usable.
  • Miscellaneous developer guide updates.

Release 1.4.4

· One min read
Joe Jeanjaquet
Director of Applied Technology @ Eclypses

Version 1.4.4

  • Fixed Android ARM64 JNI library to properly export MteArm64 class functions.
  • Fixed Java MteArm64 class to allow use before other calls.
  • Updated license.
  • Fixed NPM package.json files to specify the main and types files as appropriate.
  • Fixed potential issue with AES-256 using x86_64 AES-NI PAA.

Release 1.4.3

· One min read
Joe Jeanjaquet
Director of Applied Technology @ Eclypses

Version 1.4.3

  • Added .NET Standard 2.1 as another target framework for Nuget packages.
  • Changed Windows DLL define from MTEC_BUILD_SHARED to MTE_BUILD_SHARED.
  • Fixed NPM package naming.
  • Fixed Swift integer nonce setting for DRBGs with small nonces.
  • Added developer guides.
  • Added template Swift bridging header.

Release 1.4.2

· One min read
Trevor Blackman
Senior Web Engineer @ Eclypses
MTE 1.4.2
  • Fixed a bug in the JS/WASM package.
  • Update License

Release 1.4.1

· One min read
Trevor Blackman
Senior Web Engineer @ Eclypses
MTE 1.4.1
  • Fixed some incorrect cipher/hash informational values.
  • Fixed AES CBC mode issues on 32 bit platforms.
  • Changed naming of Nuget packages to avoid conflicts when multiple packages are produced with different options.
  • Fixed integer nonce conversion to byte arrays in C#, Go, Java, Python, and Swift to avoid potentially undefined behavior.

Release 1.3.2

· One min read
Trevor Blackman
Senior Web Engineer @ Eclypses
MTE 1.3.2
  • Fixed Swift MKE chunking buffer size issues.
  • Fixed Java set entropy issue.
  • Fixed documentation of C++ timestamp callback behavior.
  • Fixed documentation of Objective-C timestamp callback behavior.
  • Fixed documentation of Swift timestamp callback behavior.
  • Clarified documentation in mte_dec.h regarding the status.
  • Fixed C Support API's sequence window argument to be signed instead of unsigned.
  • Added missing documentation about timestamp callback usage in C Support API.
  • Removed unused status code.
  • Added IncrReset helper struct to C++ language interface to help with testing.
  • Fixed Go decoder messages skipped integer return type.
  • Removed UTF-8 BOMs from demo and language interface files.
  • Removed unnecessary Swift code.
  • Removed unnecessary semicolons from Swift.
  • Improved WASM/JS nonce handling to support 64 bit nonce integers instead of only 32.
  • Changed the Base64 state save function signatures in the C Support API to return char * instead of void * for consistency in Base64 functions.
  • Renamed mte_message_get_timestamp64 to mte_verifier_get_timestamp64 in the C APIs. Moved this to its own header mte_verifier_defs.h, which is now distributed instead of mte_message_defs.h, which included many typedefs not needed by SDK users.

Release 1.3.1

· One min read
Trevor Blackman
Senior Web Engineer @ Eclypses
MTE 1.3.1
  • Changed TypeScript const enum to non-const enum since they are exported.
  • Updated WASM demos to use the non-const enums.
  • Fixed buffer size issues in Swift non-Base64 encode/decode methods.
  • Fixed Swift handling of zero-length entropy for fake DRBG.
  • Fixed typo in mte_enc.h comments.