JetBrains to Release GoLand 2018.2

New version of popular Goland IDE brings improvements and new interesting features; scroll down to get more info
27 July 2018   653

The development team from JetBrains introduced a new version of the IDE for the Go programming language - GoLand 2018.2. A large summer update brought support for individual Go-modules, improved Move-refactoring, new Postfix templates and an improved debugger.

GoLand 2018.2 Features:

  • Integration with separate Go-modules (vgo) is available.
  • Move-refactoring has received a new dialog box that indicates whether or not to use the identifier, as well as the ability to move characters between packets.

GoLand Move-refactoring
GoLand Move-refactoring

  • There are new tools for rapid error correction: one for converting the value to the required type depending on the language requirements and the second, adding the missing methods.

GoLand tools for rapid error correction
GoLand tools for rapid error correction

  • Implement Methods now allows¬†not only add new methods through the interface, but also quickly create new ones.

GoLand Implement Methods
GoLand Implement Methods

  • Added new Postfix templates .sort and .rr. The latter combines the two already available templates .rre and .rrv.

GoLand Postfix Templates
GoLand Postfix Templates

  • The updated debugger allows you to set a stop point by monitoring the log in the console, and also tracing the stack at the reached point and then continuing to execute the code.

GoLand updated debuggerGoLand updated debugger

  • Updated Docker-plugin.
  • Added support for TypeScript 2.9 and the future release of TypeScript 3.0.
  • Implemented tracking of unused parts of the code.

The previous version, GoLand 2018.1, was released in late March 2018. This was the first large-scale update of the new IDE, and changes in it mainly concerned the support for writing code and integrating the environment with other tools.

Google to Introduce Tink Cryptographic Library

Google already uses Tink in projects like AdMob, Google Pay, Google Assistant, Firebase and the Android Search App
31 August 2018   845

Google introduced the open cryptographic library called Tink with support for Java, C ++ and Objective-C, as well as experimental support for Go and JavaScript. Product primitives use the BoringSSL and the Java Cryptography Architecture framework.

Even small errors in the use of cryptographic methods can have serious consequences, and they are carefully study for decades. Many developers do not have so much time, so when creating a new tool, the company tried to reduce the number of potential errors with cryptographic APIs. Google already uses Tink in projects like AdMob, Google Pay, Google Assistant, Firebase and the Android Search App.

These primitives are used in the core of the library:

  • AEAD (Authenticated Encryption with Associated Data) for symmetric encryption of blocks and data streams over a fixed key. The tool does not require the definition of specific algorithms and their parameters. With it, you can quickly perform encryption and decryption operations:
    import com.google.crypto.tink.Aead;
     import com.google.crypto.tink.KeysetHandle;
     import com.google.crypto.tink.aead.AeadFactory;
     import com.google.crypto.tink.aead.AeadKeyTemplates;
     // 1. Generate the key material.
     KeysetHandle keysetHandle = KeysetHandle.generateNew(
     AeadKeyTemplates.AES256_EAX);
     // 2. Get the primitive.
     Aead aead = AeadFactory.getPrimitive(keysetHandle);
     // 3. Use the primitive.
     byte[] plaintext = ...;
     byte[] additionalData = ...;
     byte[] ciphertext = aead.(plaintext, additionalData);
  • The MAC (Message Authentication Codes) provides message authentication codes.

In Tink, there are functions for creating a digital signature and its verification, as well as the functions of fast hybrid encryption.

Features of work
Each primitive supports stateless mode operation, secure copy operations and the use of keys with a length of 128 bits. The library automatically blocks potentially unsafe operations, for example, downloading keys from unencrypted files on the disk. Tink provides an API for rotating keys and interacting with external key management systems: Google Cloud KMS, Amazon KMS, Android Keystore and Apple iOS KeyChain.

The library has a modular architecture, allows you to connect custom primitives and replace them with existing code files without changing the final applications. From Tink, you can exclude part of the tools. For example, if the program only uses digital signature verification, you can remove symmetric encryption components to reduce the application code size.

In August 2018, the creators of the VPN protocol, WireGuard, announced the creation of the Zinc cryptographic library, which, upon introduction into the core Linux kernel, will accelerate the process of data encryption through a simplified set of crypto algorithms.