{"action":"created","issue":{"url":"https://api.github.com/repos/briansmith/ring/issues/258","repository_url":"https://api.github.com/repos/briansmith/ring","labels_url":"https://api.github.com/repos/briansmith/ring/issues/258/labels{/name}","comments_url":"https://api.github.com/repos/briansmith/ring/issues/258/comments","events_url":"https://api.github.com/repos/briansmith/ring/issues/258/events","html_url":"https://github.com/briansmith/ring/pull/258","id":167262118,"number":258,"title":"WIP: Reuse `BN_BLINDING` multiple times in RSA signing","user":{"login":"ranweiler","id":515835,"avatar_url":"https://avatars.githubusercontent.com/u/515835?v=3","gravatar_id":"","url":"https://api.github.com/users/ranweiler","html_url":"https://github.com/ranweiler","followers_url":"https://api.github.com/users/ranweiler/followers","following_url":"https://api.github.com/users/ranweiler/following{/other_user}","gists_url":"https://api.github.com/users/ranweiler/gists{/gist_id}","starred_url":"https://api.github.com/users/ranweiler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ranweiler/subscriptions","organizations_url":"https://api.github.com/users/ranweiler/orgs","repos_url":"https://api.github.com/users/ranweiler/repos","events_url":"https://api.github.com/users/ranweiler/events{/privacy}","received_events_url":"https://api.github.com/users/ranweiler/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":12,"created_at":"2016-07-25T00:01:16Z","updated_at":"2016-07-29T06:37:44Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/briansmith/ring/pulls/258","html_url":"https://github.com/briansmith/ring/pull/258","diff_url":"https://github.com/briansmith/ring/pull/258.diff","patch_url":"https://github.com/briansmith/ring/pull/258.patch"},"body":"Closes #234.\r\n\r\n**Todo**:\r\n- [x] Save a `Mutex`-wrapped pointer to `BN_BLINDING` in `RSAKeyPair`\r\n- [x] Export `BN_BLINDING_COUNTER` as an extern `GFp_BN_BLINDING_COUNTER`\r\n- [x] Create a test that uses the same `BN_BLINDING` at least `GFp_BN_BLINDING_COUNTER` +1 times, to exercise all the code paths in blinding.c\r\n- [x]  Create a test that is similar to `test_agreement_suite_b_ecdh_generate`, where the `RAND` returns unusable values forever, to test the logic where the blinding gives up after a bunch of tries.\r\n- [ ] Ensure `BN_BLINDING` coverage via coveralls report\r\n\r\n**Questions**:\r\n- ~~How do we want to handle a poisoned `Mutex`? Right now this work just propagates a panic with `unwrap()`.~~ \r\n\r\nWe agreed that a poisoned mutex warrants a panic.\r\n\r\n- ~~Right now the blinding reuse test is inadequate— it only checks that the `BN_BLINDING` counter is updated. Ideally we'd check that the actual `A` and `Ai` blinding values have been regenerated when the counter is reset. What's the \"cheapest\" way to do this, wrt minimizing extraneous FFI work in this PR?~~ \r\n\r\nWe are accepting the committed `BN_BLINDING` sync burden in exchange for the level of assurance offered by checking the counter, and stopping there for now.\r\n\r\n- ~~There is a function-local `extern` (for `GFp_BN_BLINDING_COUNTER`) and `use` (for `BN_BLINDING`) in `test_signature_rsa_pkcs1_sign_blinding_reuse`. We should make sure we're happy with that code style.~~\r\n\r\nReverted to module-level imports."},"comment":{"url":"https://api.github.com/repos/briansmith/ring/issues/comments/236105851","html_url":"https://github.com/briansmith/ring/pull/258#issuecomment-236105851","issue_url":"https://api.github.com/repos/briansmith/ring/issues/258","id":236105851,"user":{"login":"briansmith","id":16816,"avatar_url":"https://avatars.githubusercontent.com/u/16816?v=3","gravatar_id":"","url":"https://api.github.com/users/briansmith","html_url":"https://github.com/briansmith","followers_url":"https://api.github.com/users/briansmith/followers","following_url":"https://api.github.com/users/briansmith/following{/other_user}","gists_url":"https://api.github.com/users/briansmith/gists{/gist_id}","starred_url":"https://api.github.com/users/briansmith/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briansmith/subscriptions","organizations_url":"https://api.github.com/users/briansmith/orgs","repos_url":"https://api.github.com/users/briansmith/repos","events_url":"https://api.github.com/users/briansmith/events{/privacy}","received_events_url":"https://api.github.com/users/briansmith/received_events","type":"User","site_admin":false},"created_at":"2016-07-29T06:37:44Z","updated_at":"2016-07-29T06:37:44Z","body":"Great. Are you the copyright holder on this? If not, who is? And do you have permission to license it? (Same questions I ask everybody.)"}}
{"actor":{"display_login":"briansmith"}}