This PR focuses on the Transit secrets engine implementation. There are a few bug fixes (several methods did not properly coerce their responses) and two significant behavioral changes.
First, all inputs that need to be sent as a base64 string are automatically encoded by the client, rather than requiring the caller to do so. Similarly, when decrypting data the result is automatically decoded from base64 into a byte array, or the caller can now also opt into string-coercion.
Second, the encryption and decryption batch modes are directly invoked by providing a collection of data rather than a single item, which is much more natural than passing a nil for the data and then specifying a separate :batch-input option. The docstrings have been updated to clarify the two calling styles.
Finally, I added integration tests covering all of the implemented methods.
This PR focuses on the Transit secrets engine implementation. There are a few bug fixes (several methods did not properly coerce their responses) and two significant behavioral changes.
First, all inputs that need to be sent as a base64 string are automatically encoded by the client, rather than requiring the caller to do so. Similarly, when decrypting data the result is automatically decoded from base64 into a byte array, or the caller can now also opt into string-coercion.
Second, the encryption and decryption batch modes are directly invoked by providing a collection of data rather than a single item, which is much more natural than passing a
nil
for the data and then specifying a separate:batch-input
option. The docstrings have been updated to clarify the two calling styles.Finally, I added integration tests covering all of the implemented methods.