<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">+1 to sans asymmetric release.</div> <div id="bloop_sign_1388525544242628096" class="bloop_sign"><p><span style="font-family: helvetica, Arial; background-color: rgb(255, 255, 255);">With some comments inline.</span></p><p><span style="font-family: helvetica, Arial; background-color: rgb(255, 255, 255);"><br></span></p><p><span style="font-family: helvetica, Arial; background-color: rgb(255, 255, 255);">-- </span><br style="font-family: helvetica, Arial; background-color: rgb(255, 255, 255);"><span style="font-family: helvetica, Arial; background-color: rgb(255, 255, 255);">David Reid</span></p></div> <div style="color:gray"><hr style="style:linear">From: <span style="color:black">Paul Kehrer</span> <a href="mailto:paul.l.kehrer@gmail.com">Paul Kehrer</a><br>Reply: <span style="color:black">cryptography-dev@python.org</span> <a href="mailto:cryptography-dev@python.org">cryptography-dev@python.org</a><br>Date: <span style="color:black">December 31, 2013 at 12:05:57 PM</span><br>To: <span style="color:black">cryptography-dev@python.org</span> <a href="mailto:cryptography-dev@python.org">cryptography-dev@python.org</a><br>Subject: <span style="color:black"> Re: [Cryptography-dev] First release -- asymmetric? <br></span></div> <div><div><div><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span><div><div>I am also okay with a preliminary release sans asymmetric.<span class="Apple-converted-space"> </span><br><br>Looking through our currently open PRs we need to resolve the<span class="Apple-converted-space"> </span><br>following items prior to release:<span class="Apple-converted-space"> </span><br><br>CSPRNG (https://github.com/pyca/cryptography/pull/377)<span class="Apple-converted-space"> </span><br>Are we going to release with the standard CSPRNG or the engine<span class="Apple-converted-space"> </span><br>approach? I know we're waiting on feedback from people around this,<span class="Apple-converted-space"> </span><br>but I think this is a blocker.<span class="Apple-converted-space"> </span></div></div></span></blockquote></div><p>zooko on IRC managed to convince me that the system random engine is a good solution, here is an excerpt from that conversation.</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:28:35] <<span style="color: #f45b4d">zooko</span>> So you'd be surprised if it were (by default) using /dev/urandom or the CryptGenRandom on Windows instead of using the OpenSSL userspace PRNG?</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:30:30] <<span style="color: #f45b4d">zooko</span>> But you'd be even more surprised if you fork()'ed and cryptography.io leaked your secrets? ☺</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:37:24] <<span style="color: #f45b4d">zooko</span>> There's a problem with /dev/urandom, but it is also, I assume, a problem with the OpenSSL CSPRNG, which is: what to do if the pool has never yet been initialized with unguessable values?</p><p>


</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:37:45] <<span style="color: #f45b4d">zooko</span>> If forced to choose right now without further study, I would choose to rely on /dev/urandom.</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:49:10] <<span style="color: #f45b4d">zooko</span>> dreid: let me emphasize that the issue about uninitialized PRNGs is a serious issue.</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:49:40] <<span style="color: #f45b4d">zooko</span>> I think it is probably responsible for most of this mess: https://factorable.net/</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:50:02] <dreid> <span style="color: #f45b4d">zooko</span>: Yeah, my initial inclination was to thoroughly document the issues, and provide an escape hatch.</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:50:11] <<span style="color: #f45b4d">zooko</span>> Unfortunately, it gets conflated with the notion of "running out of real entropy" and the whole idea of /dev/random.</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:50:30] <<span style="color: #f45b4d">zooko</span>> Which is one of those things that I just get too frustrated about to contribute productively to discussions of it.</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:51:13] <<span style="color: #f45b4d">zooko</span>> But what's the escape hatch?</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">





</p><p style="margin: 0px; font-size: 16px; font-family: Monaco; color: rgb(96, 96, 94);">[19:51:24] <<span style="color: #f45b4d">zooko</span>> I assume the same issue affects the OpenSSL PRNG, but I haven't investigated that.</p><div><br></div><div><br></div><div><div><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span><div><div><br><br><br>Windows Support (https://github.com/pyca/cryptography/pull/322)<span class="Apple-converted-space"> </span><br>We don't currently compile on Windows. We have a PR for it, but our<span class="Apple-converted-space"> </span><br>test infrastructure is not fully built (yet) so we haven't landed the<span class="Apple-converted-space"> </span><br>patch.<span class="Apple-converted-space"> </span></div></div></span></blockquote></div><p>I’m OK with not having windows support for the I don’t know, 0.0.1 release? </p><p>If we do that we should make sure we purge stuff of partial support (like the random engine stuff…)</p><div><div><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span><div><div><br><br><br>Secondary Backend (https://github.com/pyca/cryptography/pull/344)<span class="Apple-converted-space"> </span><br>Should we land CommonCrypto? It's nice to have a secondary backend to<span class="Apple-converted-space"> </span><br>ensure we don't allow anything OpenSSL-specific to creep into the<span class="Apple-converted-space"> </span><br>primitives, but I would be okay with it not landing until the next<span class="Apple-converted-space"> </span><br>release.<span class="Apple-converted-space"> </span></div></div></span></blockquote></div><p>I don’t feel strongly about this, I have some concerns about not being able to look inside corecrypto.  I would like to land a second backend sooner rather than later, but I can’t come up with a good reason why it should block release.</p><div><div><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span><div><div>Thread Safety (https://github.com/pyca/cryptography/pull/352)<span class="Apple-converted-space"> </span><br>This definitely needs to be resolved.<span class="Apple-converted-space"> </span></div></div></span></blockquote></div><p>+1 pending https://github.com/pyca/cryptography/pull/380 landing</p><div><div><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span><div><div><br><br><br>Error Handling (https://github.com/pyca/cryptography/pull/359)<span class="Apple-converted-space"> </span><br>There is a PR outstanding to convert our assert-based errors to<span class="Apple-converted-space"> </span><br>methods that check ERR_get_error(). This might be helpful to have in<span class="Apple-converted-space"> </span><br>the first release to get better error information back from early<span class="Apple-converted-space"> </span><br>adopters.<span class="Apple-converted-space"> </span></div></div></span></blockquote></div><p>The existing pull request seems unwieldy, anyone have a good idea for how to break it up?</p><div><div><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span><div><div><br><br>-Paul<span class="Apple-converted-space"> </span><br><br>On Mon, Dec 30, 2013 at 6:17 PM, Donald Stufft <donald@stufft.io> wrote:<span class="Apple-converted-space"> </span><br>> I’m personally fine without any asymmetric for the first release with Hynek’s<span class="Apple-converted-space"> </span><br>> concern mirrored about wanting to change the symmetric APIs with our<span class="Apple-converted-space"> </span><br>> experience in asymmetric.<span class="Apple-converted-space"> </span></div></div></span></blockquote></div><p>My bigger concern is actually not letting us get enough feedback on the symmetric APIs before solidifying the asymmetric ones</p><div><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span><div><div><br>><span class="Apple-converted-space"> </span><br>> On Dec 30, 2013, at 6:59 PM, Hynek Schlawack <hs@ox.cx> wrote:<span class="Apple-converted-space"> </span><br>><span class="Apple-converted-space"> </span><br>>> On 31 Dec 2013, at 0:01, Alex Gaynor wrote:<span class="Apple-converted-space"> </span><br>>><span class="Apple-converted-space"> </span><br>>>> What do people think of the idea of us doing our first release without<span class="Apple-converted-space"> </span><br>>>> having any asymmetric support?<span class="Apple-converted-space"> </span><br>>>><span class="Apple-converted-space"> </span><br>>>> The motivation here would be to allow us to get our initial release out<span class="Apple-converted-space"> </span><br>>>> sooner, addressing the following concerns:<span class="Apple-converted-space"> </span><br>>>><span class="Apple-converted-space"> </span><br>>>> - pyOpenSSL! (specifically on PyPy)<span class="Apple-converted-space"> </span><br>>>> - Crypto on py3k and on PyPy<span class="Apple-converted-space"> </span><br>>>> - GCM support<span class="Apple-converted-space"> </span><br>>>> - A safe recipe for symmetric encryption.<span class="Apple-converted-space"> </span><br>>>><span class="Apple-converted-space"> </span><br>>>> What do folks think about this idea?<span class="Apple-converted-space"> </span><br>>><span class="Apple-converted-space"> </span><br>>> Actually, why not? We “just” need to be half-way sure that those points you mentioned don’t change while implementing asymmetric encryption because I’d really not like to break compatibility at any point._______________________________________________<span class="Apple-converted-space"> </span><br>>> Cryptography-dev mailing list<span class="Apple-converted-space"> </span><br>>> Cryptography-dev@python.org<span class="Apple-converted-space"> </span><br>>> https://mail.python.org/mailman/listinfo/cryptography-dev<span class="Apple-converted-space"> </span><br>><span class="Apple-converted-space"> </span><br>><span class="Apple-converted-space"> </span><br>> -----------------<span class="Apple-converted-space"> </span><br>> Donald Stufft<span class="Apple-converted-space"> </span><br>> PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA<span class="Apple-converted-space"> </span><br>><span class="Apple-converted-space"> </span><br>><span class="Apple-converted-space"> </span><br>> _______________________________________________<span class="Apple-converted-space"> </span><br>> Cryptography-dev mailing list<span class="Apple-converted-space"> </span><br>> Cryptography-dev@python.org<span class="Apple-converted-space"> </span><br>> https://mail.python.org/mailman/listinfo/cryptography-dev<span class="Apple-converted-space"> </span><br>><span class="Apple-converted-space"> </span><br>_______________________________________________<span class="Apple-converted-space"> </span><br>Cryptography-dev mailing list<span class="Apple-converted-space"> </span><br>Cryptography-dev@python.org<span class="Apple-converted-space"> </span><br>https://mail.python.org/mailman/listinfo/cryptography-dev<span class="Apple-converted-space"> </span></div></div></span></blockquote></div></div></div></div></div></div></div><div><br class="Apple-interchange-newline"></div></div><p><br></p><p><br></p><div></div></body></html>