Skip to content

Conversation

WillChilds-Klein
Copy link
Contributor

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.

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.

Call-outs:

  • n/a

Testing:

  • existing tests updated to exercise constructed string parsing

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 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`.
@WillChilds-Klein WillChilds-Klein marked this pull request as ready for review November 26, 2024 21:35
@WillChilds-Klein WillChilds-Klein requested a review from a team as a code owner November 26, 2024 21:35
@WillChilds-Klein WillChilds-Klein merged commit 2a72226 into aws:main Dec 2, 2024
115 of 119 checks passed
@WillChilds-Klein WillChilds-Klein deleted the allow-constructed-strings branch December 24, 2024 05:02
samuel40791765 added a commit to samuel40791765/aws-lc that referenced this pull request Mar 18, 2025
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.
@skmcgrail skmcgrail mentioned this pull request Mar 28, 2025
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants