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

add size enforcement and tests #37

Conversation

James-Pickett
Copy link
Contributor

No description provided.

directionless
directionless previously approved these changes Apr 12, 2024
Copy link
Contributor

@directionless directionless left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sold on the additional tests, but sure.

png.go Outdated
return fmt.Errorf("data too big: %d is bigger than %d", dataSize, v0MaxSize)
}

func ToPngNoMaxSize(w io.Writer, data []byte) error {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why have this function?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the original ToPng() check the size before generating the PNG and I needed a way to make a PNG that was too large in order to test that receiving party had the same size limit.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why? The size check is before any png detection, right? Just send it too much data and check the error type.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It feels really wrong to bake in functionality we don't want to have a test for if len(data) > V0MaxSize

Copy link
Contributor Author

@James-Pickett James-Pickett Apr 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated it to just send too much data. Though the test is not "perfect" due to the b64 encoding in various places that changes the size of the data. I don't think I could untangle that with out a bit of a refactor. Which leads me to wonder, do we still need the "boxer" logic at all since v2 relies only on the challenge logic.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question. I wonder how many v1 clients are left. Maybe we should rip it out soon

png.go Show resolved Hide resolved
lib/krypto/challenge.rb Show resolved Hide resolved
@James-Pickett James-Pickett marked this pull request as ready for review April 12, 2024 20:44
RebeccaMahany
RebeccaMahany previously approved these changes Apr 12, 2024
directionless
directionless previously approved these changes Apr 17, 2024
.golangci.yml Outdated Show resolved Hide resolved
directionless
directionless previously approved these changes Apr 17, 2024
@James-Pickett James-Pickett merged commit 1592b86 into kolide:main Apr 17, 2024
12 checks passed
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