<div dir="auto"><span style="font-family:sans-serif;font-size:12.8px">It depends on the way they are defined: Ed25519 and Ed448 are</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">standardized as twisted edward curves, while traditional curves in the</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">EC module are defined in short weirstrass form.</span><br style="font-family:sans-serif;font-size:12.8px"><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">The set of parameters describing the curves and their equation form</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">are different:</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">- for Edwards curves you have an expression of the form: `a x^2 + y^2</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">= 1 + d x^2 y^2`, and the parameters `a` and `d` have to satisfy</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">certain properties;</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">- for short Weierstrass curves the expression has the form: `y^3 = x^3</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">+ a x + b`, and the parameters `a` and `b` have to satisfy a different</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">set of properties.</span><br style="font-family:sans-serif;font-size:12.8px"><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">While it would have been technically possible to (hackishly)</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">"overload" the existing EC module to support Ed curves, it wouldn't</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">make too much sense, as the standards use different encodings and</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">codepoints for describing keys and curve points (so one cannot reuse</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">the existing ASN1 methods associated with traditional EC objects).</span><br style="font-family:sans-serif;font-size:12.8px"><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">In addition to that, EC objects are supposed to support a common set</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">of arithmetic primitives on top of which cryptosystems like ECDH,</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">cofactor-ECDH and ECDSA are defined, but again the standardized</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">Edwards curve are instead associated with a different digital</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">signature cryptosystem (EdDSA) and the `derive` (i.e. equivalent to</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">ECDH) operation is defined on different (although related) Montgomery</span><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">curves (i.e. X25519 for Ed25519 and X448 for Ed448).</span><br style="font-family:sans-serif;font-size:12.8px"><br style="font-family:sans-serif;font-size:12.8px"><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">Hope this answers your question,</span><br style="font-family:sans-serif;font-size:12.8px"><br style="font-family:sans-serif;font-size:12.8px"><span style="font-family:sans-serif;font-size:12.8px">Nicola</span></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 15, 2019, 20:20 Sam Roberts <<a href="mailto:vieuxtech@gmail.com">vieuxtech@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It seems like they are EC keys, with specific curve designs, and that<br>
also have some algorithms designed specifically for them, like EdDSA<br>
-- though it looks like that alg is being generalized to other curve<br>
types (<a href="https://tools.ietf.org/html/rfc8032#ref-EDDSA2" rel="noreferrer noreferrer" target="_blank">https://tools.ietf.org/html/rfc8032#ref-EDDSA2</a>).<br>
<br>
What about them makes it necessary to make them distinct, both from<br>
each other, and EVP_PKEY_EC?<br>
<br>
Thanks,<br>
Sam<br>
</blockquote></div>