GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — lib/verifysig.c: work around broken signatures with openssl>=3 by Duncaen · Pull Request #544 · void-linux/xbps

Conversation

@Duncaen

@Duncaen Duncaen commented Feb 21, 2023

Copy link
Copy Markdown
Member

The main issue is that our signatures contain a sha1 id in the ASN1 but a sha256 checksum length and message.
Prior to openssl 3 this worked and the full sha256 checksum was used, because the ASN1 was decoded on the fly and the whole message is compared against the checksum.
With version 3 openssl switched to just compare hard coded prefixes and since our prefix is broken its not there.
So we work around this by also hard-coding our broken prefix and instead of using the RSA signature apis, we use the public key to decrypt the signature and compare the content manually with our broken prefix.

This is fucking cursed and uses the deprecated apis, but works. Doing this is not possible with the new api's can't use a public key to independently decrypt the signature.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@Duncaen
lib/verifysig.c: work around broken signatures with openssl>=3
b1f5839
@leahneukirchen

leahneukirchen commented Feb 21, 2023

Copy link
Copy Markdown
Member

Seems like a good solution, but how long will these deprecated API be provided?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Duncaen

Duncaen commented Feb 21, 2023 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

I think I should do the opposite, add support for creating those signatures with RSA_encrypt manually and then create new signatures under a new name for new xbps versions.

We can create both signatures under different names at the same time, updated systems will use new less broken signatures and old systems can still update xbps and its dependencies without trouble.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@classabbyamp classabbyamp mentioned this pull request Aug 8, 2023
lib/, bin/: fix signature type, now called *.sig2 #565
Merged
@Duncaen Duncaen closed this in #565 Aug 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@Duncaen @leahneukirchen
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.