<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openbsd/src/lib/libcrypto/ec/ecp_methods.c, branch OPENBSD_7_9_BASE</title>
<subtitle>A mirror of https://github.com/libressl/openbsd.git
</subtitle>
<id>https://git.lua4.win/openbsd/atom?h=OPENBSD_7_9_BASE</id>
<link rel='self' href='https://git.lua4.win/openbsd/atom?h=OPENBSD_7_9_BASE'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/'/>
<updated>2026-02-08T12:34:05+00:00</updated>
<entry>
<title>More ec_point_cmp() turd polishing</title>
<updated>2026-02-08T12:34:05+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2026-02-08T12:34:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=dcddb3ef0e5583a374e829f3039cf629c80e71d1'/>
<id>urn:sha1:dcddb3ef0e5583a374e829f3039cf629c80e71d1</id>
<content type='text'>
jsing prefers doing all computations first and comparing at the end. This
means we do more work when we fail and no longer (ab)use err as an out label.
Also split out one more helper.

ok jsing
</content>
</entry>
<entry>
<title>Rewrite ec_point_cmp()</title>
<updated>2026-01-18T10:07:44+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2026-01-18T10:07:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=72cdd91797afb2b9796ee9f67324a53c5fc6effe'/>
<id>urn:sha1:72cdd91797afb2b9796ee9f67324a53c5fc6effe</id>
<content type='text'>
This removes some complications due to handling the fast path for affine
points and general points at the same time. The result is a bit more code
but both paths should be much easier to follow.

ok jsing kenjiro
</content>
</entry>
<entry>
<title>Provide method specific functions for EC POINT infinity.</title>
<updated>2025-05-24T08:25:58+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2025-05-24T08:25:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=cab63c063d816f7bdfc022c940ec9842e8308429'/>
<id>urn:sha1:cab63c063d816f7bdfc022c940ec9842e8308429</id>
<content type='text'>
Provide method specific functions for EC_POINT_set_to_infinity() and
EC_POINT_is_at_infinity(). These are not always the same thing and
will depend on the coordinate system in use.

ok beck@ tb@
</content>
</entry>
<entry>
<title>Use err_local.h rather than err.h in most places</title>
<updated>2025-05-10T05:54:39+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2025-05-10T05:54:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=41e8f99dd1625a9f0c80ce9d4383e95b18e85709'/>
<id>urn:sha1:41e8f99dd1625a9f0c80ce9d4383e95b18e85709</id>
<content type='text'>
ok jsing
</content>
</entry>
<entry>
<title>Explicitly pass group generator to mul_double_nonct() from EC_POINT_mul().</title>
<updated>2025-03-24T13:07:04+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2025-03-24T13:07:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=865465694bb9f7950a0710e8d7667d2540779602'/>
<id>urn:sha1:865465694bb9f7950a0710e8d7667d2540779602</id>
<content type='text'>
EC_POINT_mul() has a complex multi-use interface - there are effectively
three different ways it will behave, depending on which arguments are NULL.
In the case where we compute g_scalar * generator + p_scalar * point, the
mul_double_nonct() function pointer is called, however only g_scalar,
p_scalar and point are passed - it is expected that the lower level
implementation (in this case ec_wnaf_mul()) will use the generator from
the group.

Change mul_double_nonct(), ec_mul_double_nonct() and ec_wnaf_mul() so that
they take scalar1, point1, scalar2 and point2. This removes all knowledge
of g_scalar and the generator from the multiplication code, keeping it
limited to EC_POINT_mul(). While here also consistently pass scalar then
point, rather than a mix of scalar/point and point/scalar.

ok tb@
</content>
</entry>
<entry>
<title>Unexport EC_METHOD and all API using it</title>
<updated>2025-03-09T15:33:35+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2025-03-09T15:33:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=aea3014df333871d02dc263a69746399371b2009'/>
<id>urn:sha1:aea3014df333871d02dc263a69746399371b2009</id>
<content type='text'>
This is an implementation detail and there is no reason to leak it from
the library.

This removes EC_GFp_{mont,simple}_method(), EC_GROUP_{method_of,new}(),
EC_METHOD_get_field_type(), EC_POINT_method_of() from the public API.

EC_GROUP_copy() is now quite useless, so it will go as well.

ok jsing
</content>
</entry>
<entry>
<title>ec_mont_group_set_curve: convert to BN_MONT_CTX_create() and simplify</title>
<updated>2025-02-13T11:19:49+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2025-02-13T11:19:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=6e0324f52f75f22301a0c9bbe6f53feb5b6a8628'/>
<id>urn:sha1:6e0324f52f75f22301a0c9bbe6f53feb5b6a8628</id>
<content type='text'>
This removes the penultimate internal call of BN_MONT_CTX_new(). The last
one could be removed at the cost of introducing a BN_MONT_CTX_dup(), which
probably isn't worth it.

ok jsing
</content>
</entry>
<entry>
<title>Garbage collect field_type member of the EC methods</title>
<updated>2025-01-25T13:15:21+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2025-01-25T13:15:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=60dc4676db34ffc570b69d7d4a833f2c05d9da5a'/>
<id>urn:sha1:60dc4676db34ffc570b69d7d4a833f2c05d9da5a</id>
<content type='text'>
ok jsing
</content>
</entry>
<entry>
<title>Use simpler (if a bit weird) dup instead of new + copy</title>
<updated>2025-01-22T12:54:40+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2025-01-22T12:54:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=2f11583c7f09f51ea0dcdcae37f121eef0d5c326'/>
<id>urn:sha1:2f11583c7f09f51ea0dcdcae37f121eef0d5c326</id>
<content type='text'>
ok jsing
</content>
</entry>
<entry>
<title>Remove the mul_generator_ct function pointer from EC_METHOD.</title>
<updated>2025-01-22T09:56:58+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2025-01-22T09:56:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=366d7bbfad8ab89b0d053361f974a01a882bd2df'/>
<id>urn:sha1:366d7bbfad8ab89b0d053361f974a01a882bd2df</id>
<content type='text'>
There's no need for a separate mul_generator_ct() function pointer - we
really only need mul_single_ct() and mul_double_nonct(). And rather than
calling ec_mul_ct() and having it figure out which point to use, explicitly
pass the generator point when calling mul_single_ct().

ok tb@
</content>
</entry>
</feed>
