twisted / twisted/twisted

platformTrust() - for now, give up and use certifi

Open
#8,201 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug core new priority-normal
Dominant language
Python
Stars
6k
Forks
1.2k
Avg merge
2d 10h
Merged PRs (30d)
10

Description

glyph's avatar @glyph reported
Trac ID trac#8201
Type defect
Created 2016-02-09 21:06:37Z

Right now, Twisted is depending on OpenSSL being configured correctly to make client connections.

The hack we were depending on to get actual platform trust roots in OS X has disappeared; nothing equivalent exists on Windows; the way that Cryptography wheels are distributed means that it's likely the user gets an OpenSSL pointing at a default path that doesn't even exist on their system. Nobody knows how to properly enable/disable trust roots on Debian and their trust store is out of date anyway.

For the time being, I think the best solution is to switch to twisted[tls] depending on certifi and making platformTrust prefer certifi if it is importable.

Searchable metadata
trac-id__8201 8201
type__defect defect
reporter__glyph glyph
priority__normal normal
milestone__None None
branch__ 
branch_author__ 
status__new new
resolution__None None
component__core core
keywords__None None
time__1455051997170004 1455051997170004
changetime__1468886895718712 1468886895718712
version__None None
owner__None None

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the platformTrust entry point and the dependency configuration for twisted[tls]. Review how client trust roots are selected across operating systems, then verify that certifi is preferred when importable. Done means the intended dependency and fallback behavior are covered by the relevant TLS tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
networking, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.