More things to improve after #988:
- Compile precomputation as a separate object file and link it (solved by #1042)
- Speed up
secp256k1_ecmult_gen_context_build
at context creation. It currently computes fixed values which could be made static (open PR: #1120) - Document (or set by default) build options to remove unused static tables (and code) when no signing/verification function is called (something like
--disable-shared CFLAGS="-fdata-sections -ffunction-sections -O2 -g" LDFLAGS="-Wl,--gc-sections"
) - Document the backwards-compatible API changes made in #988 and in #956: All contexts except the
no_precomp
context are now effectively signing contexts. Theno_precomp
context is effectively a verification context., and name is misleading as no context uses dynamic precompuation now. The reason whyno_precomp
is different is that it’s impossible to re-randomize it. - Decide what to do with the
no_precomp
context: Possibilities include: renaming it, deprecating it (its main user rust-secp256k1 won’t like this), and/or promote it a full signing context, maybe with a verbose name such as “global-context-less-secure” in the spirit of what rust-secp256k1 is doing.