Allow constructed strings in BER parsing#2015
Merged
WillChilds-Klein merged 1 commit intoaws:mainfrom Dec 2, 2024
Merged
Conversation
This change relaxes a prior restriction forbidding constructed strings when parsing ASN.1 BER. We modify relevant tests accordingly and fix two small errors in PEM fixtures. `kConstructedBitString` contained a bit string with invalid padding. We fixed this by zeroing out the final padding byte of each constructed bit string component. `kConstructedOctetString`' constructed string components were typed as integers (type `0x02`) instead of octet strings (type `0x04`). For that, we simply change the types to `0x04`.
samuel40791765
approved these changes
Nov 27, 2024
justsmth
approved these changes
Dec 2, 2024
samuel40791765
added a commit
to samuel40791765/aws-lc
that referenced
this pull request
Mar 18, 2025
This reverts commit 2a72226.
samuel40791765
added a commit
that referenced
this pull request
Mar 18, 2025
This reverts commit 2a72226. ### Issues: Addresses `CryptoAlg-3037` ### Description of changes: We've ran into issues with parsing indefinite BER with PKCS7 and it turns out our support for parsing is not as complete. Instead of parsing BER to an invalid unusable state that's confusing, we should outright disallow parsing of constructed strings in BER until we fix the issue. ### Call-outs: N/A ### Testing: Original tests. Ruby CI is expected to fail. I'll update the patches in another PR. By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.
Merged
skmcgrail
added a commit
that referenced
this pull request
Mar 28, 2025
## What's Changed * Revert "Allow constructed strings in BER parsing (#2015)" by @samuel40791765 in #2278 * Add the rehash utility to the openssl CLI tool by @smittals2 in #2258 * Documentation on service indicator by @justsmth in #2281 * Update patches in Ruby CI by @samuel40791765 in #2233 * Reject DSA trailing garbage in EVP layer, add test cases by @skmcgrail in #2289 * Add support for verifying PKCS7 signed attributes by @samuel40791765 in #2264 * Add support for more SSL BIO functions by @samuel40791765 in #2273 * Wire-up rust-openssl into GitHub CI (for the time being) by @skmcgrail in #2291 * Adding detection of out-of-bound pre-bound memory read to AES-XTS tests. by @nebeid in #2286 * AES: Add function pointer trampoline to avoid delocator issue by @hanno-becker in #2294 * Bump mysql CI to 9.2.0 by @samuel40791765 in #2161 * Cherrypick hardening DSA param checks from BoringSSL by @smittals2 in #2293 By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.
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.
Issues:
Addresses CryptoAlg-2494
Description of changes:
This change relaxes a prior restriction forbidding constructed strings when parsing ASN.1 BER. We modify relevant tests accordingly and fix two small errors in PEM fixtures.
kConstructedBitStringcontained a bit string with invalid padding. We fixed this by zeroing out the final padding byte of each constructed bit string component.kConstructedOctetString' constructed string components were typed as integers (type0x02) instead of octet strings (type0x04). For that, we simply change the types to0x04.Call-outs:
Testing:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.