{"action":"created","issue":{"url":"https://api.github.com/repos/openssl/openssl/issues/7152","repository_url":"https://api.github.com/repos/openssl/openssl","labels_url":"https://api.github.com/repos/openssl/openssl/issues/7152/labels{/name}","comments_url":"https://api.github.com/repos/openssl/openssl/issues/7152/comments","events_url":"https://api.github.com/repos/openssl/openssl/issues/7152/events","html_url":"https://github.com/openssl/openssl/pull/7152","id":358212485,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE0MDQwNDY4","number":7152,"title":"[1.1.0] Narrow `evptests` gap between 1.1.1 and 1.1.0","user":{"login":"romen","id":338418,"node_id":"MDQ6VXNlcjMzODQxOA==","avatar_url":"https://avatars3.githubusercontent.com/u/338418?v=4","gravatar_id":"","url":"https://api.github.com/users/romen","html_url":"https://github.com/romen","followers_url":"https://api.github.com/users/romen/followers","following_url":"https://api.github.com/users/romen/following{/other_user}","gists_url":"https://api.github.com/users/romen/gists{/gist_id}","starred_url":"https://api.github.com/users/romen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/romen/subscriptions","organizations_url":"https://api.github.com/users/romen/orgs","repos_url":"https://api.github.com/users/romen/repos","events_url":"https://api.github.com/users/romen/events{/privacy}","received_events_url":"https://api.github.com/users/romen/received_events","type":"User","site_admin":false},"labels":[{"id":441165399,"node_id":"MDU6TGFiZWw0NDExNjUzOTk=","url":"https://api.github.com/repos/openssl/openssl/labels/1.1.0","name":"1.1.0","color":"bfdadc","default":false},{"id":613575196,"node_id":"MDU6TGFiZWw2MTM1NzUxOTY=","url":"https://api.github.com/repos/openssl/openssl/labels/pending%202nd%20review","name":"pending 2nd review","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":{"login":"romen","id":338418,"node_id":"MDQ6VXNlcjMzODQxOA==","avatar_url":"https://avatars3.githubusercontent.com/u/338418?v=4","gravatar_id":"","url":"https://api.github.com/users/romen","html_url":"https://github.com/romen","followers_url":"https://api.github.com/users/romen/followers","following_url":"https://api.github.com/users/romen/following{/other_user}","gists_url":"https://api.github.com/users/romen/gists{/gist_id}","starred_url":"https://api.github.com/users/romen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/romen/subscriptions","organizations_url":"https://api.github.com/users/romen/orgs","repos_url":"https://api.github.com/users/romen/repos","events_url":"https://api.github.com/users/romen/events{/privacy}","received_events_url":"https://api.github.com/users/romen/received_events","type":"User","site_admin":false},"assignees":[{"login":"romen","id":338418,"node_id":"MDQ6VXNlcjMzODQxOA==","avatar_url":"https://avatars3.githubusercontent.com/u/338418?v=4","gravatar_id":"","url":"https://api.github.com/users/romen","html_url":"https://github.com/romen","followers_url":"https://api.github.com/users/romen/followers","following_url":"https://api.github.com/users/romen/following{/other_user}","gists_url":"https://api.github.com/users/romen/gists{/gist_id}","starred_url":"https://api.github.com/users/romen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/romen/subscriptions","organizations_url":"https://api.github.com/users/romen/orgs","repos_url":"https://api.github.com/users/romen/repos","events_url":"https://api.github.com/users/romen/events{/privacy}","received_events_url":"https://api.github.com/users/romen/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/openssl/openssl/milestones/12","html_url":"https://github.com/openssl/openssl/milestone/12","labels_url":"https://api.github.com/repos/openssl/openssl/milestones/12/labels","id":3045922,"node_id":"MDk6TWlsZXN0b25lMzA0NTkyMg==","number":12,"title":"Assessed","description":"","creator":{"login":"mattcaswell","id":7422273,"node_id":"MDQ6VXNlcjc0MjIyNzM=","avatar_url":"https://avatars0.githubusercontent.com/u/7422273?v=4","gravatar_id":"","url":"https://api.github.com/users/mattcaswell","html_url":"https://github.com/mattcaswell","followers_url":"https://api.github.com/users/mattcaswell/followers","following_url":"https://api.github.com/users/mattcaswell/following{/other_user}","gists_url":"https://api.github.com/users/mattcaswell/gists{/gist_id}","starred_url":"https://api.github.com/users/mattcaswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattcaswell/subscriptions","organizations_url":"https://api.github.com/users/mattcaswell/orgs","repos_url":"https://api.github.com/users/mattcaswell/repos","events_url":"https://api.github.com/users/mattcaswell/events{/privacy}","received_events_url":"https://api.github.com/users/mattcaswell/received_events","type":"User","site_admin":false},"open_issues":213,"closed_issues":122,"state":"open","created_at":"2018-01-18T16:36:46Z","updated_at":"2018-09-26T03:36:55Z","due_on":null,"closed_at":null},"comments":10,"created_at":"2018-09-07T21:10:06Z","updated_at":"2018-09-26T12:16:14Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/openssl/openssl/pulls/7152","html_url":"https://github.com/openssl/openssl/pull/7152","diff_url":"https://github.com/openssl/openssl/pull/7152.diff","patch_url":"https://github.com/openssl/openssl/pull/7152.patch"},"body":"This PR aims at narrowing the gap in `evptest` between current `master` and `OpenSSL_1_1_0-stable`, to improve the testing in 1.1.0 and also to (*partially*) ease cherry-picking future `evptests` PRs.\r\n\r\nThe original intent was to backport only #6608 (and its followup-fix #7028), but while doing so I realised that it would have been beneficial to backport #3443 (and its fix #3452) and then (partially) #3472 in order to have the same files/folders structure in 1.1.0.\r\n\r\n## Breakout of the commits\r\n\r\n### Backport of #3443 and #3452\r\n\r\nCommit 401a1662f9261ce136fd94eebefd011cc194e443 squashes together a manual backport of:\r\n- *Split test/evptests.txt into separate files.* #3443\r\n- *Use scalar, not length; fixes test_evp* #3452\r\n\r\nThey are squashed together, because effectively #3452 fixes #3443 that otherwise throws parsing errors/warnings in the PERL test recipe.\r\n\r\nThe effect is that the single `test/evptests.txt` file is split into:\r\n- `test/evpcase.txt`\r\n- `test/evpciph.txt`\r\n- `test/evpdigest.txt`\r\n- `test/evpencod.txt`\r\n- `test/evpkdf.txt`\r\n- `test/evpmac.txt`\r\n- `test/evppbe.txt`\r\n- `test/evppkey.txt`\r\n\r\n### Backport of #3472\r\n\r\nCommit 5980756c0a408f2c692b9d5cdd5bf5c23c248071 is a partial backport to 1.1.0 of #3472 (*Move bn and evp test programs input data to their respective data dir*). It's partial because `bntests` in 1.1.0 has a completely different form than in 1.1.0, and I am not familiar enough with it to evaluate if a backport of `master`'s `bntests` is actaully desirable (and how difficult it would be).\r\n\r\nSo this commit does only what is title says, i.e., *Move evp test programs input data to its own data dir*: the various `test/evp*.txt` files are moved to `test/recipes/30-test_evp_data/` to be consistent with the structure in `master`.\r\n\r\n### Backport of #6608 and #7028\r\n\r\nCommit ac3b6fc79f28eeddc25b5718f2b7320c7cc7cdf9 is cherry-picked from 249330de0250bc598d20d383bab37d150cdad239 and backports *More EVP ECC testing: positive and negative* #6608.\r\n\r\nIt adds a new `evppkey_ecc.txt` in `test/recipes/30-test_evp_data/`, which includes the following:\r\n\r\n> 1. For every named curve, two \"golden\" keypair positive tests.\r\n> 2. Also two \"golden\" stock ECDH positive tests.\r\n> 3. For named curves with non-trivial cofactors, additionally two \"golden\"\r\n>    ECC CDH positive tests.\r\n> 4. For named curves with non-trivial cofactors, additionally two negative\r\n>    tests.\r\n>\r\n> There is some overlap with existing EVP tests, especially for the NIST curves (for example, positive testing ECC CDH KATs for NIST curves).\r\n> \"Golden\" here means all the values are independent from OpenSSL's ECC code. I used sage to calculate them. What comes from OpenSSL is:\r\n> 1. The OIDs (parsed by tooling)\r\n> 2. The curve parameters (parsing ecparam output with tooling)\r\n>\r\n> The values inside the PEMs (private keys, public keys) and shared keys are from sage. The PEMs themselves are the output of asn1parse, with input taken from sage.\r\n\r\n\r\nCommit c60640f384980f9a78b5efaf783e3792f856f221 is a backport of *[test] ECC: make sure negative tests pass for the right reasons* #7028.\r\n\r\nIt squashes the two original commits in #7028 and applies changes for compatibility with 1.1.0:\r\n1. cherry picked from commit 30c41bfb158c0f595809d0eaf032926a3c2cf236\r\n        *[test] ECC: make sure negative tests pass for the right reasons*\r\n2. cherry picked from commit bfb10b975818d1887d676d309fcc21a765611f6d\r\n        *[test] throw error from wrapper function instead of an EC_METHOD specific one*\r\n\r\nGiven that in 1.1.0 `EC_POINT_get_affine_coordinates_GFp` and `EC_POINT_get_affine_coordinates_GF2m` have not been unified, in this commit the EVP tests distinguish between the 2 different functions as the cause of the expected error, and the code change in `crypto/ec/ec_lib.c` replicates the check for *point at infinity* in `EC_POINT_get_affine_coordinates_GFp` and `EC_POINT_get_affine_coordinates_GF2m`.\r\n\r\n## Points of discussion\r\n\r\n1. I marked this PR as WIP, given that there is a possibility we might prefer to split this single PR in at least 3 different interdependent PRs (i.e., one for each of the 3 backport subsections described in the section above)\r\n2. Conversely, we might want to squash in some other items of the testing framework to further narrow the gap between the testing infrastructure of 1.1.0 and 1.1.1 (e.g., support of the `Title` keyword comes to mind, although backporting the whole #3506, which is a prerequisite for #3529 where the titles are actaully added, might be overkill, so we might want to only add support for the `Title` keyword out of #3506)\r\n3. Partial motivation of this PR is to make it easier, at least for the rest of the life of 1.1.0, to backport new tests from `master`: unfortunately this PR alone does not completely fulfil this goal.\r\nThe gap is narrowed down, but it's not entirely closed (e.g. notice the changes that are still required in backporting #7028).\r\nNonetheless, I argue that this PR has a value in reducing the amount of work required for cherry picking and backporting new tests from `master`: `git` is now able to ease at least the boring (and error prone) copy/paste tasks (which were non trivial as it required knowledge about the contents and organization of the extremely long `evptests.txt` file). What is left to do manually is the solution of logical conflicts or unsupported keywords (e.g., the `Title` keyword).\r\n\r\n## Checklist\r\n- [x] tests are added or updated\r\n"},"comment":{"url":"https://api.github.com/repos/openssl/openssl/issues/comments/424693373","html_url":"https://github.com/openssl/openssl/pull/7152#issuecomment-424693373","issue_url":"https://api.github.com/repos/openssl/openssl/issues/7152","id":424693373,"node_id":"MDEyOklzc3VlQ29tbWVudDQyNDY5MzM3Mw==","user":{"login":"romen","id":338418,"node_id":"MDQ6VXNlcjMzODQxOA==","avatar_url":"https://avatars3.githubusercontent.com/u/338418?v=4","gravatar_id":"","url":"https://api.github.com/users/romen","html_url":"https://github.com/romen","followers_url":"https://api.github.com/users/romen/followers","following_url":"https://api.github.com/users/romen/following{/other_user}","gists_url":"https://api.github.com/users/romen/gists{/gist_id}","starred_url":"https://api.github.com/users/romen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/romen/subscriptions","organizations_url":"https://api.github.com/users/romen/orgs","repos_url":"https://api.github.com/users/romen/repos","events_url":"https://api.github.com/users/romen/events{/privacy}","received_events_url":"https://api.github.com/users/romen/received_events","type":"User","site_admin":false},"created_at":"2018-09-26T12:16:14Z","updated_at":"2018-09-26T12:16:14Z","author_association":"CONTRIBUTOR","body":"I'll just need to find someone that is eager to approve it, then! :P"}}
{"actor":{"display_login":"romen"}}