More optimisations for EC P-256 "i15" (specialised squaring function, mixed coordinat...
[BearSSL] / src / ssl / ssl_hs_server.t0
index 4b6056b..a31ab6a 100644 (file)
@@ -181,7 +181,7 @@ do_ecdhe_part1(br_ssl_server_context *ctx, int curve)
 {
        int hash;
        unsigned mask;
-       const unsigned char *order, *generator;
+       const unsigned char *order;
        size_t olen, glen;
        br_multihash_context mhc;
        unsigned char head[4];
@@ -213,6 +213,8 @@ do_ecdhe_part1(br_ssl_server_context *ctx, int curve)
        /*
         * Compute our ECDH point.
         */
+#if 0
+/* obsolete */
        generator = ctx->eng.iec->generator(curve, &glen);
        memcpy(ctx->eng.ecdhe_point, generator, glen);
        ctx->eng.ecdhe_point_len = glen;
@@ -221,6 +223,10 @@ do_ecdhe_part1(br_ssl_server_context *ctx, int curve)
        {
                return -BR_ERR_INVALID_ALGORITHM;
        }
+#endif
+       glen = ctx->eng.iec->mulgen(ctx->eng.ecdhe_point,
+               ctx->ecdhe_key, olen, curve);
+       ctx->eng.ecdhe_point_len = glen;
 
        /*
         * Compute the signature.