[EC] Constify internal EC_KEY pointer usage
authorNicola Tuveri <nic.tuv@gmail.com>
Mon, 6 Jan 2020 23:19:13 +0000 (01:19 +0200)
committerNicola Tuveri <nic.tuv@gmail.com>
Fri, 24 Apr 2020 14:41:00 +0000 (17:41 +0300)
commitcd45a57aafddb908eb3a56e118b4c01899765d18
tree7c06ae5963e1fa7b323c2f02acf228b1ff162355
parent4738d9e060eccdb01d443c3cefe8101cbf1d4bfa
[EC] Constify internal EC_KEY pointer usage

A pair of internal functions related to EC_KEY handling could benefit
from declaring `EC_KEY *` variables as `const`, providing clarity for
callers and readers of the code, in addition to enlisting the compiler
in preventing some mistakes.

(cherry picked from commit cd701de96a147260c2290d85af8a0656120a8ff8)

In master `id2_ECParameters` and most of the ASN1 public functions have
been properly constified in their signature.

Unfortunately this has been deemed not doable in a patch release for
1.1.1 as, in subtle ways, this would break API compatibility.
See the discussion at https://github.com/openssl/openssl/pull/9347 for
more details about this.

This constification commit should still be portable w.r.t. our criteria,
as the constification happens only on internal functions.

The fix here is to explicitly discard the const qualifier before the
call to `i2d_ECParameters`, which should be safe anyway because we can
expect `i2d_ECParameters()` to treat the first argument as if it was
const.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/11127)
crypto/ec/ec_ameth.c