{"action":"created","issue":{"url":"https://api.github.com/repos/golang/go/issues/26776","repository_url":"https://api.github.com/repos/golang/go","labels_url":"https://api.github.com/repos/golang/go/issues/26776/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/26776/comments","events_url":"https://api.github.com/repos/golang/go/issues/26776/events","html_url":"https://github.com/golang/go/issues/26776","id":347143937,"node_id":"MDU6SXNzdWUzNDcxNDM5Mzc=","number":26776,"title":"proposal: crypto/elliptic: add A to CurveParams, allowing some cases of A != -3","user":{"login":"cag","id":298447,"node_id":"MDQ6VXNlcjI5ODQ0Nw==","avatar_url":"https://avatars1.githubusercontent.com/u/298447?v=4","gravatar_id":"","url":"https://api.github.com/users/cag","html_url":"https://github.com/cag","followers_url":"https://api.github.com/users/cag/followers","following_url":"https://api.github.com/users/cag/following{/other_user}","gists_url":"https://api.github.com/users/cag/gists{/gist_id}","starred_url":"https://api.github.com/users/cag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cag/subscriptions","organizations_url":"https://api.github.com/users/cag/orgs","repos_url":"https://api.github.com/users/cag/repos","events_url":"https://api.github.com/users/cag/events{/privacy}","received_events_url":"https://api.github.com/users/cag/received_events","type":"User","site_admin":false},"labels":[{"id":236419512,"node_id":"MDU6TGFiZWwyMzY0MTk1MTI=","url":"https://api.github.com/repos/golang/go/labels/Proposal","name":"Proposal","color":"ededed","default":false},{"id":874035922,"node_id":"MDU6TGFiZWw4NzQwMzU5MjI=","url":"https://api.github.com/repos/golang/go/labels/Proposal-Crypto","name":"Proposal-Crypto","color":"890b3b","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/golang/go/milestones/30","html_url":"https://github.com/golang/go/milestone/30","labels_url":"https://api.github.com/repos/golang/go/milestones/30/labels","id":1373555,"node_id":"MDk6TWlsZXN0b25lMTM3MzU1NQ==","number":30,"title":"Proposal","description":"Proposals that are pending (not yet accepted/rejected).\r\n","creator":{"login":"rsc","id":104030,"node_id":"MDQ6VXNlcjEwNDAzMA==","avatar_url":"https://avatars1.githubusercontent.com/u/104030?v=4","gravatar_id":"","url":"https://api.github.com/users/rsc","html_url":"https://github.com/rsc","followers_url":"https://api.github.com/users/rsc/followers","following_url":"https://api.github.com/users/rsc/following{/other_user}","gists_url":"https://api.github.com/users/rsc/gists{/gist_id}","starred_url":"https://api.github.com/users/rsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsc/subscriptions","organizations_url":"https://api.github.com/users/rsc/orgs","repos_url":"https://api.github.com/users/rsc/repos","events_url":"https://api.github.com/users/rsc/events{/privacy}","received_events_url":"https://api.github.com/users/rsc/received_events","type":"User","site_admin":false},"open_issues":220,"closed_issues":562,"state":"open","created_at":"2015-10-24T01:40:49Z","updated_at":"2018-08-09T17:30:39Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2018-08-02T19:28:53Z","updated_at":"2018-08-10T19:14:25Z","closed_at":null,"author_association":"NONE","body":"The following addition to `CurveParams` is proposed:\r\n\r\n```go\r\ntype CurveParams struct {\r\n        // ...\r\n        A       *big.Int // the coefficient of x in the curve equation\r\n        // ...\r\n}\r\n```\r\n\r\nThe groups from [bn256](https://godoc.org/golang.org/x/crypto/bn256) can be considered instances of elliptic.Curve with this modification, being Koblitz curves with A = 0, B = 3. I suspect the G1 implementation can be repurposed as a general variable-time implementation for A = 0 curves, as the implementation derives from [the study of this class of curves](http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html), which only assumes that A = 0.\r\n\r\nSome support for the named Koblitz curves in [SEC 2](http://www.secg.org/sec2-v2.pdf) can also be added (so A = 0 or A = -1 (mod P) also possible).\r\n\r\nParsing X.509 keys which use these curves with crypto/x509 should also work. This means keys and certificates which use the Koblitz curves will be supported by the tls module. Refer to [RFC 4492 Section 5.1.1](https://tools.ietf.org/html/rfc4492#section-5.1.1) for their corresponding enum values.\r\n\r\nSee also #6782 and #26187\r\n\r\n<strike>Also would like to remark that all Montgomery curves admit a Weierstrass form (and the computational speedup for computing operations on e.g. Curve25519, can be thought of as implementation details). In fact, all elliptic curves could be correctly implemented by elliptic.Curve with this modification.</strike> Curve/Ed25519 is isomorphic to a curve group defined by a short Weierstrass form equation, but this is not the case in general."},"comment":{"url":"https://api.github.com/repos/golang/go/issues/comments/412179082","html_url":"https://github.com/golang/go/issues/26776#issuecomment-412179082","issue_url":"https://api.github.com/repos/golang/go/issues/26776","id":412179082,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMjE3OTA4Mg==","user":{"login":"sanguohot","id":25117034,"node_id":"MDQ6VXNlcjI1MTE3MDM0","avatar_url":"https://avatars3.githubusercontent.com/u/25117034?v=4","gravatar_id":"","url":"https://api.github.com/users/sanguohot","html_url":"https://github.com/sanguohot","followers_url":"https://api.github.com/users/sanguohot/followers","following_url":"https://api.github.com/users/sanguohot/following{/other_user}","gists_url":"https://api.github.com/users/sanguohot/gists{/gist_id}","starred_url":"https://api.github.com/users/sanguohot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sanguohot/subscriptions","organizations_url":"https://api.github.com/users/sanguohot/orgs","repos_url":"https://api.github.com/users/sanguohot/repos","events_url":"https://api.github.com/users/sanguohot/events{/privacy}","received_events_url":"https://api.github.com/users/sanguohot/received_events","type":"User","site_admin":false},"created_at":"2018-08-10T19:14:25Z","updated_at":"2018-08-10T19:14:25Z","author_association":"NONE","body":"@collinc97 Oh my god!\r\nYou can not imagine how excited I was when received the email.\r\nThank you so much!\r\nI simply test it and it seems ok.\r\nBut I can not do another test until monday for several reasons.\r\nI will feedback a little late."}}
{"actor":{"display_login":"sanguohot"}}