Go-dongle v1.1.2 was released, a better encoding&decoding and encryption&decryption package for golang

Dongle is a simple, semantic and developer-friendly golang crypto package with 100% unit test coverage,has been included by awesome-go

Feature

  • Comprehensive Encoding Algorithm Support: Supports multiple encoding formats including Base32/Base45/Base58/Base62/Base64/Base85/Base91/Base100/Hex/Morse
  • Robust Hashing Algorithm Support: Supports various hashing algorithms including MD2/MD4/MD5, SHA1/SHA2/SHA3, RIPEMD160, and HMAC message authentication
  • Complete Cryptographic Algorithm Support: Supports symmetric encryption algorithms such as RC4, AES, DES, 3DES, Blowfish, and asymmetric encryption algorithms like RSA
  • Reliable Digital Signature Support: Provides digital signature generation and verification with PKCS1/PKCS8 key format support, ensuring data integrity and identity authentication
  • Efficient Streaming Processing: Supports streaming encoding/decoding and encryption/decryption for large files, processing data incrementally without waiting for complete data, resulting in low memory footprint
  • Comprehensive Test Coverage: 100% unit test coverage with extensive testing for all encryption, decryption, hashing, HMAC, and encoding/decoding modules, covering all edge cases and exceptional scenarios
  • Secure and Reliable Design: Provides security features including input validation, error handling, memory safety, with support for key management and unified error messaging
  • Detailed Error Handling: Offers comprehensive error information and types with error chain tracing support, facilitating debugging and issue resolution
Change log
  • [refactor] Encoding/decoding support customizing file stream buffer size via coding.BufferSize global variable

  • [refactor] Encryption/decryption support customizing file stream buffer size via crypto.BufferSize global variable

  • [refactor] Hash/Hmac algorithms support customizing file stream buffer size via hash.BufferSize global variable

  • [feat] Add Blake2b hash algorithm support, including blake2b-256, blake2b-384 and blake2b-512

  • [feat] Add Blake2s hash algorithm support, including blake2s-128 and blake2s-256

  • [feat] Add ChaCha20 encryption algorithm support

  • [feat] Add ChaCha20Poly1305 encryption algorithm support

@hollowaykeanho dongle has been refactored since v1.1.0. I welcome any corrections and advice. Thank you.

Especially with encryption - are these just wrappers around the Go-Algorithms, or new implementations of the algorithms?

How are these packages audited to verify their resistance to different cryptographic attacks or possible implementation bugs?

The vast majority of it is a wrapper for the go algorithm, with a small portion, such as morse, sm2, which is not supported by the go standard library and is implemented independently