[openssl] master update
Richard Levitte
levitte at openssl.org
Thu Sep 19 14:22:49 UTC 2019
The branch master has been updated
via 51ba9ebd09bfa3569fee935ef7063394820cd333 (commit)
via 8c0e76813af6a886f66d3e95b908c6c924d2a6ad (commit)
via f6aca23e268799380e4e4193789ed96db1ed57f3 (commit)
via 0f17ac26fc552b7f233e8765e6b6a278c9731e2a (commit)
from 7cfa1717b812a126ce6f8e4cc32139164c89d789 (commit)
- Log -----------------------------------------------------------------
commit 51ba9ebd09bfa3569fee935ef7063394820cd333
Author: Rich Salz <rsalz at akamai.com>
Date: Fri Aug 16 18:05:08 2019 -0400
Avoid ?: construct in XXXerr calls
It either makes the flow of control simpler and more obvious, or it is
just a "cleanup" so that the editing scripts will find and fixup things.
Reviewed-by: Dmitry Belyavskiy <beldmit at gmail.com>
Reviewed-by: Richard Levitte <levitte at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9441)
commit 8c0e76813af6a886f66d3e95b908c6c924d2a6ad
Author: Rich Salz <rsalz at akamai.com>
Date: Mon Aug 12 15:50:51 2019 -0400
Add merge-err-lines script
Reviewed-by: Dmitry Belyavskiy <beldmit at gmail.com>
Reviewed-by: Richard Levitte <levitte at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9441)
commit f6aca23e268799380e4e4193789ed96db1ed57f3
Author: Rich Salz <rsalz at akamai.com>
Date: Tue Jul 30 15:40:23 2019 -0400
Deprecate XXXerr() macros
Actually, for transition, they're not really deprecated. Remove the
"1 ||" from the ifdef line (in include/openssl/err.h) when ready to
do this in production/"for real"
Reviewed-by: Dmitry Belyavskiy <beldmit at gmail.com>
Reviewed-by: Richard Levitte <levitte at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9441)
commit 0f17ac26fc552b7f233e8765e6b6a278c9731e2a
Author: Rich Salz <rsalz at akamai.com>
Date: Wed Jul 24 11:40:07 2019 -0400
Add script convert XXerr to ERR_raise
Reviewed-by: Dmitry Belyavskiy <beldmit at gmail.com>
Reviewed-by: Richard Levitte <levitte at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9441)
-----------------------------------------------------------------------
Summary of changes:
crypto/evp/evp_lib.c | 16 +++++-----
crypto/evp/evp_locl.h | 4 +--
crypto/rand/drbg_lib.c | 7 +++--
include/openssl/err.h | 83 +++++++++++++++++++++++++-------------------------
util/err-to-raise | 62 +++++++++++++++++++++++++++++++++++++
util/merge-err-lines | 29 ++++++++++++++++++
6 files changed, 147 insertions(+), 54 deletions(-)
create mode 100755 util/err-to-raise
create mode 100755 util/merge-err-lines
diff --git a/crypto/evp/evp_lib.c b/crypto/evp/evp_lib.c
index e48c63037e..4ec880fd13 100644
--- a/crypto/evp/evp_lib.c
+++ b/crypto/evp/evp_lib.c
@@ -60,10 +60,10 @@ int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
}
} else
ret = -1;
- if (ret <= 0)
- EVPerr(EVP_F_EVP_CIPHER_PARAM_TO_ASN1, ret == -2 ?
- ASN1_R_UNSUPPORTED_CIPHER :
- EVP_R_CIPHER_PARAMETER_ERROR);
+ if (ret == -2)
+ EVPerr(EVP_F_EVP_CIPHER_PARAM_TO_ASN1, ASN1_R_UNSUPPORTED_CIPHER);
+ else if (ret <= 0)
+ EVPerr(EVP_F_EVP_CIPHER_PARAM_TO_ASN1, EVP_R_CIPHER_PARAMETER_ERROR);
if (ret < -1)
ret = -1;
return ret;
@@ -106,10 +106,10 @@ int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
}
} else
ret = -1;
- if (ret <= 0)
- EVPerr(EVP_F_EVP_CIPHER_ASN1_TO_PARAM, ret == -2 ?
- EVP_R_UNSUPPORTED_CIPHER :
- EVP_R_CIPHER_PARAMETER_ERROR);
+ if (ret == -2)
+ EVPerr(EVP_F_EVP_CIPHER_ASN1_TO_PARAM, EVP_R_UNSUPPORTED_CIPHER);
+ else if (ret <= 0)
+ EVPerr(EVP_F_EVP_CIPHER_ASN1_TO_PARAM, EVP_R_CIPHER_PARAMETER_ERROR);
if (ret < -1)
ret = -1;
return ret;
diff --git a/crypto/evp/evp_locl.h b/crypto/evp/evp_locl.h
index ebfa3acd08..3437e04b67 100644
--- a/crypto/evp/evp_locl.h
+++ b/crypto/evp/evp_locl.h
@@ -233,7 +233,7 @@ OSSL_PARAM *evp_pkey_to_param(EVP_PKEY *pkey, size_t *sz);
size_t pksize = (size_t)EVP_PKEY_size(ctx->pkey); \
\
if (pksize == 0) { \
- EVPerr(err, EVP_R_INVALID_KEY); /*ckerr_ignore*/ \
+ ERR_raise(ERR_LIB_EVP, EVP_R_INVALID_KEY); /*ckerr_ignore*/ \
return 0; \
} \
if (arg == NULL) { \
@@ -241,7 +241,7 @@ OSSL_PARAM *evp_pkey_to_param(EVP_PKEY *pkey, size_t *sz);
return 1; \
} \
if (*arglen < pksize) { \
- EVPerr(err, EVP_R_BUFFER_TOO_SMALL); /*ckerr_ignore*/ \
+ ERR_raise(ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL); /*ckerr_ignore*/ \
return 0; \
} \
}
diff --git a/crypto/rand/drbg_lib.c b/crypto/rand/drbg_lib.c
index c24222188f..bce2f74e9a 100644
--- a/crypto/rand/drbg_lib.c
+++ b/crypto/rand/drbg_lib.c
@@ -541,9 +541,10 @@ int RAND_DRBG_instantiate(RAND_DRBG *drbg,
}
if (drbg->state != DRBG_UNINITIALISED) {
- RANDerr(RAND_F_RAND_DRBG_INSTANTIATE,
- drbg->state == DRBG_ERROR ? RAND_R_IN_ERROR_STATE
- : RAND_R_ALREADY_INSTANTIATED);
+ if (drbg->state == DRBG_ERROR)
+ RANDerr(RAND_F_RAND_DRBG_INSTANTIATE, RAND_R_IN_ERROR_STATE);
+ else
+ RANDerr(RAND_F_RAND_DRBG_INSTANTIATE, RAND_R_ALREADY_INSTANTIATED);
goto end;
}
diff --git a/include/openssl/err.h b/include/openssl/err.h
index d7427898c8..5c647831b5 100644
--- a/include/openssl/err.h
+++ b/include/openssl/err.h
@@ -108,48 +108,49 @@ struct err_state_st {
# define ERR_LIB_USER 128
-# if ! OPENSSL_API_3
-# define SYSerr(f,r) ERR_raise(ERR_LIB_SYS,(r))
+# if 1 || !OPENSSL_API_3
+# define ASN1err(f, r) ERR_raise_data(ERR_LIB_ASN1, (r), NULL)
+# define ASYNCerr(f, r) ERR_raise_data(ERR_LIB_ASYNC, (r), NULL)
+# define BIOerr(f, r) ERR_raise_data(ERR_LIB_BIO, (r), NULL)
+# define BNerr(f, r) ERR_raise_data(ERR_LIB_BN, (r), NULL)
+# define BUFerr(f, r) ERR_raise_data(ERR_LIB_BUF, (r), NULL)
+# define CMPerr(f, r) ERR_raise_data(ERR_LIB_CMP, (r), NULL)
+# define CMSerr(f, r) ERR_raise_data(ERR_LIB_CMS, (r), NULL)
+# define COMPerr(f, r) ERR_raise_data(ERR_LIB_COMP, (r), NULL)
+# define CONFerr(f, r) ERR_raise_data(ERR_LIB_CONF, (r), NULL)
+# define CRMFerr(f, r) ERR_raise_data(ERR_LIB_CRMF, (r), NULL)
+# define CRYPTOerr(f, r) ERR_raise_data(ERR_LIB_CRYPTO, (r), NULL)
+# define CTerr(f, r) ERR_raise_data(ERR_LIB_CT, (r), NULL)
+# define DHerr(f, r) ERR_raise_data(ERR_LIB_DH, (r), NULL)
+# define DSAerr(f, r) ERR_raise_data(ERR_LIB_DSA, (r), NULL)
+# define DSOerr(f, r) ERR_raise_data(ERR_LIB_DSO, (r), NULL)
+# define ECDHerr(f, r) ERR_raise_data(ERR_LIB_ECDH, (r), NULL)
+# define ECDSAerr(f, r) ERR_raise_data(ERR_LIB_ECDSA, (r), NULL)
+# define ECerr(f, r) ERR_raise_data(ERR_LIB_EC, (r), NULL)
+# define ENGINEerr(f, r) ERR_raise_data(ERR_LIB_ENGINE, (r), NULL)
+# define ESSerr(f, r) ERR_raise_data(ERR_LIB_ESS, (r), NULL)
+# define EVPerr(f, r) ERR_raise_data(ERR_LIB_EVP, (r), NULL)
+# define FIPSerr(f, r) ERR_raise_data(ERR_LIB_FIPS, (r), NULL)
+# define HMACerr(f, r) ERR_raise_data(ERR_LIB_HMAC, (r), NULL)
+# define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL)
+# define OBJerr(f, r) ERR_raise_data(ERR_LIB_OBJ, (r), NULL)
+# define OCSPerr(f, r) ERR_raise_data(ERR_LIB_OCSP, (r), NULL)
+# define OSSL_STOREerr(f, r) ERR_raise_data(ERR_LIB_OSSL_STORE, (r), NULL)
+# define PEMerr(f, r) ERR_raise_data(ERR_LIB_PEM, (r), NULL)
+# define PKCS12err(f, r) ERR_raise_data(ERR_LIB_PKCS12, (r), NULL)
+# define PKCS7err(f, r) ERR_raise_data(ERR_LIB_PKCS7, (r), NULL)
+# define PROPerr(f, r) ERR_raise_data(ERR_LIB_PROP, (r), NULL)
+# define PROVerr(f, r) ERR_raise_data(ERR_LIB_PROV, (r), NULL)
+# define RANDerr(f, r) ERR_raise_data(ERR_LIB_RAND, (r), NULL)
+# define RSAerr(f, r) ERR_raise_data(ERR_LIB_RSA, (r), NULL)
+# define SM2err(f, r) ERR_raise_data(ERR_LIB_SM2, (r), NULL)
+# define SSLerr(f, r) ERR_raise_data(ERR_LIB_SSL, (r), NULL)
+# define SYSerr(f, r) ERR_raise_data(ERR_LIB_SYS, (r), NULL)
+# define TSerr(f, r) ERR_raise_data(ERR_LIB_TS, (r), NULL)
+# define UIerr(f, r) ERR_raise_data(ERR_LIB_UI, (r), NULL)
+# define X509V3err(f, r) ERR_raise_data(ERR_LIB_X509V3, (r), NULL)
+# define X509err(f, r) ERR_raise_data(ERR_LIB_X509, (r), NULL)
# endif
-# define BNerr(f,r) ERR_raise(ERR_LIB_BN,(r))
-# define RSAerr(f,r) ERR_raise(ERR_LIB_RSA,(r))
-# define DHerr(f,r) ERR_raise(ERR_LIB_DH,(r))
-# define EVPerr(f,r) ERR_raise(ERR_LIB_EVP,(r))
-# define BUFerr(f,r) ERR_raise(ERR_LIB_BUF,(r))
-# define OBJerr(f,r) ERR_raise(ERR_LIB_OBJ,(r))
-# define PEMerr(f,r) ERR_raise(ERR_LIB_PEM,(r))
-# define DSAerr(f,r) ERR_raise(ERR_LIB_DSA,(r))
-# define X509err(f,r) ERR_raise(ERR_LIB_X509,(r))
-# define ASN1err(f,r) ERR_raise(ERR_LIB_ASN1,(r))
-# define CONFerr(f,r) ERR_raise(ERR_LIB_CONF,(r))
-# define CRYPTOerr(f,r) ERR_raise(ERR_LIB_CRYPTO,(r))
-# define ECerr(f,r) ERR_raise(ERR_LIB_EC,(r))
-# define SSLerr(f,r) ERR_raise(ERR_LIB_SSL,(r))
-# define BIOerr(f,r) ERR_raise(ERR_LIB_BIO,(r))
-# define PKCS7err(f,r) ERR_raise(ERR_LIB_PKCS7,(r))
-# define X509V3err(f,r) ERR_raise(ERR_LIB_X509V3,(r))
-# define PKCS12err(f,r) ERR_raise(ERR_LIB_PKCS12,(r))
-# define RANDerr(f,r) ERR_raise(ERR_LIB_RAND,(r))
-# define DSOerr(f,r) ERR_raise(ERR_LIB_DSO,(r))
-# define ENGINEerr(f,r) ERR_raise(ERR_LIB_ENGINE,(r))
-# define OCSPerr(f,r) ERR_raise(ERR_LIB_OCSP,(r))
-# define UIerr(f,r) ERR_raise(ERR_LIB_UI,(r))
-# define COMPerr(f,r) ERR_raise(ERR_LIB_COMP,(r))
-# define ECDSAerr(f,r) ERR_raise(ERR_LIB_ECDSA,(r))
-# define ECDHerr(f,r) ERR_raise(ERR_LIB_ECDH,(r))
-# define OSSL_STOREerr(f,r) ERR_raise(ERR_LIB_OSSL_STORE,(r))
-# define FIPSerr(f,r) ERR_raise(ERR_LIB_FIPS,(r))
-# define CMSerr(f,r) ERR_raise(ERR_LIB_CMS,(r))
-# define CRMFerr(f,r) ERR_raise(ERR_LIB_CRMF,(r))
-# define CMPerr(f,r) ERR_raise(ERR_LIB_CMP,(r))
-# define TSerr(f,r) ERR_raise(ERR_LIB_TS,(r))
-# define HMACerr(f,r) ERR_raise(ERR_LIB_HMAC,(r))
-# define CTerr(f,r) ERR_raise(ERR_LIB_CT,(r))
-# define ASYNCerr(f,r) ERR_raise(ERR_LIB_ASYNC,(r))
-# define SM2err(f,r) ERR_raise(ERR_LIB_SM2,(r))
-# define ESSerr(f,r) ERR_raise(ERR_LIB_ESS,(r))
-# define PROPerr(f,r) ERR_raise(ERR_LIB_PROP,(r))
-# define PROVerr(f,r) ERR_raise(ERR_LIB_PROV,(r))
# define ERR_PACK(l,f,r) ( \
(((unsigned int)(l) & 0x0FF) << 24L) | \
diff --git a/util/err-to-raise b/util/err-to-raise
new file mode 100755
index 0000000000..a62ee3b790
--- /dev/null
+++ b/util/err-to-raise
@@ -0,0 +1,62 @@
+#! /usr/bin/env perl
+# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Run this program like this:
+# perl -pi util/err-to-error files...
+# or
+# git ls-files | grep '\.c$' | xargs perl -pi util/err-to-raise
+# Consider running util/merge-err-lines first, to catch most (all?) of the
+# cases where the XXXerr() call is split into two lines.
+
+# Also, what to do about the engines files? This includes:
+# AFALGerr, CAPIerr, DASYNC, OSSLTEST
+# There are about 70 such lines.
+
+use strict;
+use warnings;
+
+s/ASN1err\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_ASN1, $1)/;
+s/([^D])ASYNCerr\(\w+, *(\w+)\)/$1ERR_raise(ERR_LIB_ASYNC, $2)/;
+s/BIOerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_BIO, $1)/;
+s/BNerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_BN, $1)/;
+s/BUFerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_BUF, $1)/;
+s/CMPerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_CMP, $1)/;
+s/CMSerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_CMS, $1)/;
+s/COMPerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_COMP, $1)/;
+s/CONFerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_CONF, $1)/;
+s/CRMFerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_CRMF, $1)/;
+s/CRYPTOerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_CRYPTO, $1)/;
+s/CTerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_CT, $1)/;
+s/DHerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_DH, $1)/;
+s/DSAerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_DSA, $1)/;
+s/DSOerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_DSO, $1)/;
+s/ECDHerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_ECDH, $1)/;
+s/ECDSAerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_ECDSA, $1)/;
+s/ECerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_EC, $1)/;
+s/ENGINEerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_ENGINE, $1)/;
+s/ESSerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_ESS, $1)/;
+s/EVPerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_EVP, $1)/;
+s/FIPSerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_FIPS, $1)/;
+s/KDFerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_KDF, $1)/;
+s/OBJerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_OBJ, $1)/;
+s/OCSPerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_OCSP, $1)/;
+s/OSSL_STOREerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_OSSL_STORE, $1)/;
+s/PEMerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_PEM, $1)/;
+s/PKCS12err\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_PKCS12, $1)/;
+s/PKCS7err\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_PKCS7, $1)/;
+s/PROPerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_PROP, $1)/;
+s/PROVerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_PROV, $1)/;
+s/RANDerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_RAND, $1)/;
+s/RSAerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_RSA, $1)/;
+s/SM2err\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_SM2, $1)/;
+s/SSLerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_SSL, $1)/;
+s/SYSerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_SYS, $1)/;
+s/TSerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_TS, $1)/;
+s/UIerr\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_UI, $1)/;
+s/X509V3err\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_X509V3, $1)/;
+s/X509err\(\w+, *(\w+)\)/ERR_raise(ERR_LIB_X509, $1)/;
diff --git a/util/merge-err-lines b/util/merge-err-lines
new file mode 100755
index 0000000000..33644fa12e
--- /dev/null
+++ b/util/merge-err-lines
@@ -0,0 +1,29 @@
+#! /usr/bin/env perl
+# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Sometimes calls to XXXerr() are split into two lines, because the define'd
+# names are very long. This script looks for those lines and merges them.
+# It should be run before the "err-to-raise" script.
+
+# Run this program like this:
+# perl -pi util/merge-err-lines files...
+# or
+# git grep -l '[A-Z0-9]err([^)]*$' | xargs perl -pi util/merge-err-lines
+
+use strict;
+use warnings;
+
+# Look for "{whitespace}XXXerr(no-close-paren{WHITESPACE}" lines
+if ( /^ *[_A-Z0-9]+err\([^)]+ *$/ ) {
+ my $copy = $_;
+ chop($copy);
+ $copy =~ s/ +$//;
+ my $next = <>;
+ $next =~ s/^ +//;
+ $_ = $copy . ' ' . $next;
+}
More information about the openssl-commits
mailing list