> On 21 Jan 2017, at 13:07, Nick Coghlan <ncogh...@gmail.com> wrote:
> 
> 
> I agree with Wes that the backwards compatibility guarantees around
> adding new configuration fields should be clarified.
> 
> I think it will suffice to say that "new fields are only appended,
> existing fields are never removed, renamed, or reordered". That means
> that:
> 
> - tuple unpacking will be forward compatible as long as you use *args at the 
> end
> - numeric lookup will be forward compatible

Good idea.

> This intro section talks about a combined "Context" objection, but the
> implementation has been split into ServerContext and ClientContext.
> 
> That split could also use some explanation in the background section of the 
> PEP.

Good idea, I’ll expand on that.

>> Proposed Interface
>> ^^^^^^^^^^^^^^^^^^
>> 
>> The proposed interface for the new module is influenced by the combined set 
>> of
>> limitations of the above implementations. Specifically, as every 
>> implementation
>> *except* OpenSSL requires that each individual cipher be provided, there is 
>> no
>> option but to provide that lowest-common denominator approach.
> 
> The second sentence here doesn't match the description of SChannel
> cipher configuration, so I'm not clear on how the proposed interface
> would map to an SChannel backend.

Yeah, this is a point I’m struggling with internally.

SChannel’s API is frustratingly limited. The way I see it there are two options:

1. Allow the possibility that SChannel may allow ciphers that others do not 
given the same cipher configuration. This is not a good solution, frankly, 
because the situation in which this will happen is predominantly that SChannel 
will allow modes or key/hash sizes that the other implementations would forbid, 
given the same cipher configuration.
2. Force all other implementations to be as bad as SChannel: that is, to make 
it impossible to restrict key sizes and cipher modes on all implementations 
because SChannel can’t.

I don’t really like either of those choices. I *think* 2 is worse than 1, but 
I’m not sure about that. People with opinions should really weigh in on it.

> This is the one part of the PEP that I think may need to discuss
> transition strategies for libraries and frameworks that currently let
> ssl module exceptions escape to their users: how do they do that in a
> way that's transparent to API consumers that currently capture the ssl
> module exceptions?

The short answer is that users who currently capture the ssl module exceptions 
need to start catching these exceptions instead when they transition.

Cory

_______________________________________________
Security-SIG mailing list
Security-SIG@python.org
https://mail.python.org/mailman/listinfo/security-sig

Reply via email to