Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement BIO_puts and add callback function support to BIO_puts,gets,ctrl #1721

Merged
merged 10 commits into from
Aug 1, 2024

Conversation

kexgaber
Copy link
Contributor

@kexgaber kexgaber commented Jul 25, 2024

Issues:

CryptoAlg-2463

Description of changes:

Currently, BIO_puts delegates to the public BIO_write API, which may result in unexpected behavior should applications rely on them being distinguishable (e.g., if a callback has certain logic for when write is called versus when puts is called). This change implements BIO_puts as its own function should this method be defined in the application, otherwise, it defaults to calling the "write" function of the type of BIO instantiated.

This also expands on the work done in commit 5131684 to add support for callback_exs in BIO_puts, BIO_gets, and BIO_ctrl. If no custom callback_ex function is defined, the default behavior remains unchanged.

Call-outs:

N/A

Testing:

  • A custom BIO is defined to test cases where BIO_puts is defined
  • Additional test cases were added which use a mock callback created in previous testing to test the added callback functionality of BIO_gets, BIO_puts, and BIO_ctrl

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.

@codecov-commenter
Copy link

codecov-commenter commented Jul 25, 2024

Codecov Report

Attention: Patch coverage is 90.54054% with 7 lines in your changes missing coverage. Please review.

Project coverage is 78.30%. Comparing base (2fb00e7) to head (7d39eff).

Files Patch % Lines
crypto/bio/bio.c 82.50% 7 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1721   +/-   ##
=======================================
  Coverage   78.29%   78.30%           
=======================================
  Files         580      580           
  Lines       96552    96618   +66     
  Branches    13838    13850   +12     
=======================================
+ Hits        75598    75654   +56     
- Misses      20341    20349    +8     
- Partials      613      615    +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

crypto/bio/bio.c Outdated Show resolved Hide resolved
crypto/bio/bio_test.cc Outdated Show resolved Hide resolved
crypto/bio/bio_test.cc Outdated Show resolved Hide resolved
@kexgaber kexgaber changed the title [DRAFT] Add callback function support to BIO_puts,gets,ctrl [DRAFT] Implement BIO_puts and add callback function support to BIO_puts,gets,ctrl Jul 25, 2024
@kexgaber kexgaber changed the title [DRAFT] Implement BIO_puts and add callback function support to BIO_puts,gets,ctrl Implement BIO_puts and add callback function support to BIO_puts,gets,ctrl Jul 26, 2024
@kexgaber kexgaber marked this pull request as ready for review July 26, 2024 21:17
@kexgaber kexgaber requested a review from a team as a code owner July 26, 2024 21:17
crypto/bio/bio.c Outdated Show resolved Hide resolved
crypto/bio/bio.c Show resolved Hide resolved
crypto/bio/bio.c Outdated Show resolved Hide resolved
crypto/bio/bio.c Show resolved Hide resolved
@kexgaber kexgaber requested a review from skmcgrail July 29, 2024 23:39
skmcgrail
skmcgrail previously approved these changes Jul 30, 2024
include/openssl/bio.h Outdated Show resolved Hide resolved
@kexgaber kexgaber merged commit 0574778 into aws:main Aug 1, 2024
106 checks passed
@kexgaber kexgaber deleted the supportcallbacks branch August 1, 2024 22:34
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.

5 participants