ssh-cipher: impl BlockMode* for Decryptor/Encryptor#534
Merged
Conversation
3f341a8 to
57ad086
Compare
Impls the `BlockMode*` traits from the `cipher` crate, bringing the implementation closer in line with our other block mode implementations. This does have one weird quirk: we can't impl `BlockModeDecrypt::decrypt_with_backend` for `Decryptor` because that only gives us access to `BlockCipherDecBackend`, whereas to implement CTR mode we need access to `BlockCipherEncBackend` too as encryption and decryption are the same operation in CTR mode. So this foregoes such an impl with an `unimplemented!` and directly implements the `decrypt_block` and `decrypt_blocks` methods instead. This doesn't currently support any form of padding, although with the `BlockMode*` traits implemented a downstream user can provide whatever padding they wish with `encrypt_padded`/`decrypt_padded`.
57ad086 to
2572467
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Impls the
BlockMode*traits from theciphercrate, bringing the implementation closer in line with our other block mode implementations.This does have one weird quirk: we can't impl
BlockModeDecrypt::decrypt_with_backendforDecryptorbecause that only gives us access toBlockCipherDecBackend, whereas to implement CTR mode we need access toBlockCipherEncBackendtoo as encryption and decryption are the same operation in CTR mode.So this foregoes such an impl with an
unimplemented!and directly implements thedecrypt_blockanddecrypt_blocksmethods instead.