Additional fixes for block ciphers in TLS connections #145
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.
This PR fixes a regression where encrypt-then-mac was failing with block ciphers provided by the symcrypt provider. When ETM is used, the mac size passed to the provider is 0. Instead of removing the padding and skipping mac extraction, the SymCrypt provider treated a zero-mac length as invalid and failed before removing padding.
This PR also fixes a corner case issue when the SymCrypt provider is used with TLSv1, where an empty block was passed for encryption, and the caller expected an encrypted block of padding bytes.