The last bit of my const spree can be nicely be cut into two pieces.
The first piece sprinkles some const over these conversion methods:

i2o_ECPublicKey(), i2s_ASN1_OCTET_STRING(), s2i_ASN1_OCTET_STRING(),
i2s_ASN1_INTEGER(), i2s_ASN1_ENUMERATED(), i2s_ASN1_ENUMERATED_TABLE().

Index: lib/libcrypto/ec/ec.h
===================================================================
RCS file: /var/cvs/src/lib/libcrypto/ec/ec.h,v
retrieving revision 1.12
diff -u -p -r1.12 ec.h
--- lib/libcrypto/ec/ec.h       4 Nov 2016 17:33:19 -0000       1.12
+++ lib/libcrypto/ec/ec.h       19 May 2018 04:01:44 -0000
@@ -911,7 +911,7 @@ EC_KEY *o2i_ECPublicKey(EC_KEY **key, co
  *               of bytes needed).
  *  \return 1 on success and 0 if an error occurred
  */
-int i2o_ECPublicKey(EC_KEY *key, unsigned char **out);
+int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out);
 
 #ifndef OPENSSL_NO_BIO
 /** Prints out the ec parameters on human readable form.
Index: lib/libcrypto/ec/ec_asn1.c
===================================================================
RCS file: /var/cvs/src/lib/libcrypto/ec/ec_asn1.c,v
retrieving revision 1.26
diff -u -p -r1.26 ec_asn1.c
--- lib/libcrypto/ec/ec_asn1.c  23 Apr 2018 09:37:50 -0000      1.26
+++ lib/libcrypto/ec/ec_asn1.c  19 May 2018 04:01:44 -0000
@@ -1586,7 +1586,7 @@ o2i_ECPublicKey(EC_KEY ** a, const unsig
 }
 
 int 
-i2o_ECPublicKey(EC_KEY * a, unsigned char **out)
+i2o_ECPublicKey(const EC_KEY * a, unsigned char **out)
 {
        size_t buf_len = 0;
        int new_buffer = 0;
Index: lib/libcrypto/x509v3/v3_enum.c
===================================================================
RCS file: /var/cvs/src/lib/libcrypto/x509v3/v3_enum.c,v
retrieving revision 1.12
diff -u -p -r1.12 v3_enum.c
--- lib/libcrypto/x509v3/v3_enum.c      30 Dec 2016 15:54:49 -0000      1.12
+++ lib/libcrypto/x509v3/v3_enum.c      19 May 2018 04:01:44 -0000
@@ -93,7 +93,7 @@ const X509V3_EXT_METHOD v3_crl_reason = 
 };
 
 char *
-i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *method, ASN1_ENUMERATED *e)
+i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *method, const ASN1_ENUMERATED *e)
 {
        ENUMERATED_NAMES *enam;
        long strval;
Index: lib/libcrypto/x509v3/v3_info.c
===================================================================
RCS file: /var/cvs/src/lib/libcrypto/x509v3/v3_info.c,v
retrieving revision 1.25
diff -u -p -r1.25 v3_info.c
--- lib/libcrypto/x509v3/v3_info.c      29 Jan 2017 17:49:23 -0000      1.25
+++ lib/libcrypto/x509v3/v3_info.c      19 May 2018 04:01:44 -0000
@@ -293,7 +293,7 @@ err:
 }
 
 int
-i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION* a)
+i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION* a)
 {
        i2a_ASN1_OBJECT(bp, a->method);
        return 2;
Index: lib/libcrypto/x509v3/v3_skey.c
===================================================================
RCS file: /var/cvs/src/lib/libcrypto/x509v3/v3_skey.c,v
retrieving revision 1.15
diff -u -p -r1.15 v3_skey.c
--- lib/libcrypto/x509v3/v3_skey.c      29 Jan 2017 17:49:23 -0000      1.15
+++ lib/libcrypto/x509v3/v3_skey.c      19 May 2018 04:01:44 -0000
@@ -83,13 +83,14 @@ const X509V3_EXT_METHOD v3_skey_id = {
 };
 
 char *
-i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *oct)
+i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, const ASN1_OCTET_STRING *oct)
 {
        return hex_to_string(oct->data, oct->length);
 }
 
 ASN1_OCTET_STRING *
-s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str)
+s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
+    const char *str)
 {
        ASN1_OCTET_STRING *oct;
        long length;
Index: lib/libcrypto/x509v3/v3_utl.c
===================================================================
RCS file: /var/cvs/src/lib/libcrypto/x509v3/v3_utl.c,v
retrieving revision 1.29
diff -u -p -r1.29 v3_utl.c
--- lib/libcrypto/x509v3/v3_utl.c       18 May 2018 19:34:37 -0000      1.29
+++ lib/libcrypto/x509v3/v3_utl.c       19 May 2018 04:01:44 -0000
@@ -150,7 +150,7 @@ X509V3_add_value_bool_nf(const char *nam
 
 
 char *
-i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *method, ASN1_ENUMERATED *a)
+i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *method, const ASN1_ENUMERATED *a)
 {
        BIGNUM *bntmp = NULL;
        char *strtmp = NULL;
@@ -165,7 +165,7 @@ i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *m
 }
 
 char *
-i2s_ASN1_INTEGER(X509V3_EXT_METHOD *method, ASN1_INTEGER *a)
+i2s_ASN1_INTEGER(X509V3_EXT_METHOD *method, const ASN1_INTEGER *a)
 {
        BIGNUM *bntmp = NULL;
        char *strtmp = NULL;
Index: lib/libcrypto/x509v3/x509v3.h
===================================================================
RCS file: /var/cvs/src/lib/libcrypto/x509v3/x509v3.h,v
retrieving revision 1.27
diff -u -p -r1.27 x509v3.h
--- lib/libcrypto/x509v3/x509v3.h       18 May 2018 19:34:37 -0000      1.27
+++ lib/libcrypto/x509v3/x509v3.h       19 May 2018 04:01:44 -0000
@@ -595,15 +595,17 @@ int GENERAL_NAME_set0_othername(GENERAL_
 int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen, 
                                ASN1_OBJECT **poid, ASN1_TYPE **pvalue);
 
-char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *ia5);
-ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX 
*ctx, char *str);
+char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,
+    const ASN1_OCTET_STRING *ia5);
+ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,
+    X509V3_CTX *ctx, const char *str);
 
 EXTENDED_KEY_USAGE *EXTENDED_KEY_USAGE_new(void);
 void EXTENDED_KEY_USAGE_free(EXTENDED_KEY_USAGE *a);
 EXTENDED_KEY_USAGE *d2i_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE **a, const 
unsigned char **in, long len);
 int i2d_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE *a, unsigned char **out);
 extern const ASN1_ITEM EXTENDED_KEY_USAGE_it;
-int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION* a);
+int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION* a);
 
 CERTIFICATEPOLICIES *CERTIFICATEPOLICIES_new(void);
 void CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a);
@@ -744,10 +746,11 @@ int X509V3_add_value_bool(const char *na
                                                STACK_OF(CONF_VALUE) **extlist);
 int X509V3_add_value_int(const char *name, ASN1_INTEGER *aint,
                                                STACK_OF(CONF_VALUE) **extlist);
-char * i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint);
-ASN1_INTEGER * s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value);
-char * i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
-char * i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED 
*aint);
+char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint);
+ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value);
+char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED 
*aint);
+char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth,
+    const ASN1_ENUMERATED *aint);
 int X509V3_EXT_add(X509V3_EXT_METHOD *ext);
 int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist);
 int X509V3_EXT_add_alias(int nid_to, int nid_from);

Reply via email to