{"action":"created","issue":{"url":"https://api.github.com/repos/openssl/openssl/issues/5520","repository_url":"https://api.github.com/repos/openssl/openssl","labels_url":"https://api.github.com/repos/openssl/openssl/issues/5520/labels{/name}","comments_url":"https://api.github.com/repos/openssl/openssl/issues/5520/comments","events_url":"https://api.github.com/repos/openssl/openssl/issues/5520/events","html_url":"https://github.com/openssl/openssl/pull/5520","id":302432511,"number":5520,"title":"Add the ability to set raw private/public keys in EVP","user":{"login":"mattcaswell","id":7422273,"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},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-03-05T19:36:43Z","updated_at":"2018-03-15T11:51:02Z","closed_at":null,"author_association":"OWNER","pull_request":{"url":"https://api.github.com/repos/openssl/openssl/pulls/5520","html_url":"https://github.com/openssl/openssl/pull/5520","diff_url":"https://github.com/openssl/openssl/pull/5520.diff","patch_url":"https://github.com/openssl/openssl/pull/5520.patch"},"body":"The EVP interface that we have for X25519/X448/Ed25519/X25519 is very bare bones and provides just enough to use it for TLS. It is difficult to use directly because it is hard to setup private/public keys. You either have to load them from a file, or generate completely new ones. If you have the raw key data from some external source you cannot get OpenSSL to use it.\r\n\r\nThis PR adds functions to enable that. It provides a new function which is almost identical in behaviour to the existing EVP_PKEY_new_mac_key(). This PR introduces the function EVP_PKEY_new_private_key() which can be used by all the 25519/448 functions, as well as all of the functions supported by EVP_PKEY_new_mac_key(). Although the external behaviour between the two is similar the internal implementation is completely different. The initial attempt to implement these new functions was in #5419 and was heavily based on the EVP_PKEY_new_mac_key() implementation. However that implementation turned out to be controversial and was therefore removed from #5419.\r\n\r\nThis new PR implements the same functions as were removed from #5419 but does so in a completely different (and I hope less controversial) way.\r\n\r\nI think this should be included in the beta1 release.\r\n\r\n<!--\r\nThank you for your pull request. Please review these requirements:\r\n\r\nContributors guide: https://github.com/openssl/openssl/blob/master/CONTRIBUTING\r\n\r\nOther than that, provide a description above this comment if there isn't one already\r\n\r\nIf this fixes a github issue, make sure to have a line saying 'Fixes #XXXX' (without quotes) in the commit message.\r\n-->\r\n\r\n##### Checklist\r\n<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->\r\n- [x] documentation is added or updated\r\n- [x] tests are added or updated\r\n"},"comment":{"url":"https://api.github.com/repos/openssl/openssl/issues/comments/373350506","html_url":"https://github.com/openssl/openssl/pull/5520#issuecomment-373350506","issue_url":"https://api.github.com/repos/openssl/openssl/issues/5520","id":373350506,"user":{"login":"t-j-h","id":7409473,"avatar_url":"https://avatars2.githubusercontent.com/u/7409473?v=4","gravatar_id":"","url":"https://api.github.com/users/t-j-h","html_url":"https://github.com/t-j-h","followers_url":"https://api.github.com/users/t-j-h/followers","following_url":"https://api.github.com/users/t-j-h/following{/other_user}","gists_url":"https://api.github.com/users/t-j-h/gists{/gist_id}","starred_url":"https://api.github.com/users/t-j-h/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/t-j-h/subscriptions","organizations_url":"https://api.github.com/users/t-j-h/orgs","repos_url":"https://api.github.com/users/t-j-h/repos","events_url":"https://api.github.com/users/t-j-h/events{/privacy}","received_events_url":"https://api.github.com/users/t-j-h/received_events","type":"User","site_admin":false},"created_at":"2018-03-15T11:51:01Z","updated_at":"2018-03-15T11:51:01Z","author_association":"OWNER","body":"So would EVP_PKEY_new_binary_key or EVP_PKEY_new_raw_key be better names?"}}
{"actor":{"display_login":"t-j-h"}}