Devolutions-crypto

Latest version: v0.9.0

Safety actively analyzes 630052 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 2

0.5.4

Added
- Binding to base64 encoding/decoding in url-safe format.

0.5.3

Changed
- Prevent derivation if encryption/decryption data is null.

0.5.2

Changed
C
- Fixed crash in the GetDecodedLength method.

0.5.1

Added
Javascript/Typescript
- `base64urlEncode` and `base64urlDecode` methods to encode data to be passed by a URL.

0.5.0

Added
C
- Wrapper for the shamir secret sharing feature.

Rust
- `utils::validate_header()`

Javascript/Typescript
- `validateHeader()`
- Enumerations for versions instead of numbers.

Changed
C
- Fixed the Argon2Parameters for the Xamarin Mac Modern, iOS, Android caused by a typo in the entry point.
- DataType.Hash is now deprecated and has been replaced by DataType.PasswordHash.
- Managed.ValidateSignature is now deprecated and has been replaced by Managed.ValidateHeader
- Performance improvements for the Derive Key bug.

Rust
- The entire API has been changed. Please refer to the documentation and the README.
- iOS 32 bit platforms no longer supported. They are now Tier 3. (i386, armv7, armv7s)


Testing
C
- The Xamarin Mac Modern platform is now tested.
- The Xamarin iOS platform is now tested.

0.4.0

Added
General
- Asymmetric encryption. (Rust, C, JS)
- Derive key pair from a password. (Rust, C, JS)
- Shamir Secret Sharing. (Rust, JS)
- Official Javascript/Typescript support.

C
- Documented most functions and enums.
- The following functions have been added in the Utils. It is not recommended to use them for performance reasons. Keep using ValidateSignature(byte[], DataType) when possible.
- ValidateSignatureFromBase64
- ValidateSignatureFromStream

Changed
C
- Renamed functions to be more consistent with what they do. The old functions now have the *[Obsolete]* attribute.
- StringToByteArray is now StringToUtf8ByteArray
- ByteArrayToString is now ByteArrayToUtf8String
- Decode is now DecodeFromBase64
- Encode is now EncodeToBase64String
- Fixed issue in the DeriveKey() function
- Confusion between bits and bytes. The keys generated by the function would be 256 byte instead of 32 byte. The error is now fixed and our decryption will fallback to 256 bytes if the decryption fail.
- DevolutionsCryptoExceptions have now more details in the message and the stack trace.

Breaking Changes
C
- Renamed the following function
- GenerateKeyExchange to GenerateKeyPair
- Renamed the following class
- KeyExchange to KeyPair
- The function DecryptWithKey had a iterations parameter that wasn't used so it has been removed.
- The function DeriveKey now returns a key of 32 bytes by default instead of 256 bytes, which couldn't be changed.
If you already use the method, you can override the default value to 256 and the old data will still work, however it is
recommended to migrate to 32 bytes key, mostly for performance reasons.

Javascript
The API has completely changed since 0.3 to respect Javascript/Typescript coding styles. Notably, function names has been renamed
to follow the `camelCase` convention and types has been added to prevent key misuse. Also, Typescript declaration has been fixed.

Testing
General
- Added unit tests for
- Asymmetric encryption (C, Rust, JS)
- Derive key pair from a password. (C, Rust, JS)
- Secret Sharing (Rust, JS)
- Added conformity tests to make sure that old versions are not broken and that all languages are compatible.
- Key Derivation (C, Rust, JS)
- Keypair Derivation (C, Rust, JS)
- Symmetric decryption V1 and V2 (C, Rust, JS)
- Asymmetric Decryption V2 (C, Rust, JS)
- Password Hashin V1 (C, Rust, JS)

C
- The Xamarin Mac Full platform is now tested.

Javascript/Typescript
- The Javascript/Typescript API is now tested using NodeJS, instead of only testing the browser features.
- The tests were not running, this has been fixed.

CI
Code Formatting

The CI now ensures that code pushed to the project is respecting our standards. It also prevent merge conflicts caused by the code formatting.

C
- Uses SecurityCodeScan and StylecopAnalyzers for code formatting checks.
- Warnings are now treated as errors.

Rust
- Uses rustfmt and rust-clippy for code formatting checks.

Javascript
- Tests use eslint for formatting, using [JavaScript Standard Style](https://standardjs.com/)

Page 2 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.