Skip to content

crypto/x509: store stripped down trust anchors #44298

Open
@rolandshoemaker

Description

@rolandshoemaker

Rather than storing full x509.Certificates in the root pool we could instead store only the information that we require to accomplish chain building (SPKI, subject, name constraints), significantly reducing the memory footprint for the pool.

When returning certificate chains from Verify we'd need to construct a stand-in x509.Certificate which is only partially populated (we'd need to decide what fields to set, and what we can get away with setting based on a typical root profile, i.e. is it safe to consistently set the issuer to match the subject, even for roots where the issuer does not actually match?). Depending on what users are doing with certificates it is possible that this could break some things. As such we should try to land this change early in the 1.17 cycle so any significant breakages are signaled early.

This would also reduce binary sizes on iOS where we bundle roots, and also make things like #43958 somewhat more appealing from a binary bloat perspective.

Activity

added
NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.
early-in-cycleA change that should be done early in the 3 month dev cycle.
on Feb 16, 2021
added this to the Go1.17 milestone on Feb 16, 2021
josharian

josharian commented on Feb 16, 2021

@josharian
Contributor
gopherbot

gopherbot commented on Feb 24, 2021

@gopherbot
Contributor

This issue is currently labeled as early-in-cycle for Go 1.17.
That time is now, so a friendly reminder to look at it again.

removed
early-in-cycleA change that should be done early in the 3 month dev cycle.
on Mar 17, 2021
dmitshur

dmitshur commented on May 21, 2021

@dmitshur
Member

There hasn't been much activity here, and by now it's likely late for Go 1.17. I'll move this to Backlog, but please feel free to update it as needed.

modified the milestones: Go1.17, Backlog on May 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @josharian@FiloSottile@dmitshur@rolandshoemaker@gopherbot

        Issue actions

          crypto/x509: store stripped down trust anchors · Issue #44298 · golang/go