summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRich Salz <rsalz@akamai.com>2015-05-26 15:42:01 -0400
committerRich Salz <rsalz@openssl.org>2015-05-28 12:54:27 -0400
commitbca3f06b84de3c0b428724ac535995064c54aee3 (patch)
treecf52bd77074b0d4efa30e864d5dd9b2aae220040
parentd9f1c639d5162617ab0aeec23865771dc4fbcbcd (diff)
Use enum for X509_LOOKUP_TYPE
Using an enum with -Wswitch means all lookup routines handle all cases. Remove X509_LU_PKEY which was never used. Reviewed-by: Richard Levitte <levitte@openssl.org>
-rw-r--r--crypto/x509/by_dir.c4
-rw-r--r--crypto/x509/x509_lu.c8
-rw-r--r--include/openssl/x509_vfy.h11
3 files changed, 13 insertions, 10 deletions
diff --git a/crypto/x509/by_dir.c b/crypto/x509/by_dir.c
index ffd101c00f..cc91db84bc 100644
--- a/crypto/x509/by_dir.c
+++ b/crypto/x509/by_dir.c
@@ -247,8 +247,8 @@ static int add_cert_dir(BY_DIR *ctx, const char *dir, int type)
return 1;
}
-static int get_cert_by_subject(X509_LOOKUP *xl, int type, X509_NAME *name,
- X509_OBJECT *ret)
+static int get_cert_by_subject(X509_LOOKUP *xl, X509_LOOKUP_TYPE type,
+ X509_NAME *name, X509_OBJECT *ret)
{
BY_DIR *ctx;
union {
diff --git a/crypto/x509/x509_lu.c b/crypto/x509/x509_lu.c
index 20862253e6..ae46df8449 100644
--- a/crypto/x509/x509_lu.c
+++ b/crypto/x509/x509_lu.c
@@ -294,8 +294,8 @@ X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m)
}
}
-int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name,
- X509_OBJECT *ret)
+int X509_STORE_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type,
+ X509_NAME *name, X509_OBJECT *ret)
{
X509_STORE *ctx = vs->ctx;
X509_LOOKUP *lu;
@@ -403,6 +403,8 @@ int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x)
void X509_OBJECT_up_ref_count(X509_OBJECT *a)
{
switch (a->type) {
+ default:
+ break;
case X509_LU_X509:
CRYPTO_add(&a->data.x509->references, 1, CRYPTO_LOCK_X509);
break;
@@ -417,6 +419,8 @@ void X509_OBJECT_free_contents(X509_OBJECT *a)
if (!a)
return;
switch (a->type) {
+ default:
+ break;
case X509_LU_X509:
X509_free(a->data.x509);
break;
diff --git a/include/openssl/x509_vfy.h b/include/openssl/x509_vfy.h
index 0be9b5a844..4ad20296f8 100644
--- a/include/openssl/x509_vfy.h
+++ b/include/openssl/x509_vfy.h
@@ -102,15 +102,14 @@ The X509_STORE then calls a function to actually verify the
certificate chain.
*/
-# define X509_LU_RETRY -1
-# define X509_LU_FAIL 0
-# define X509_LU_X509 1
-# define X509_LU_CRL 2
-# define X509_LU_PKEY 3
+typedef enum {
+ X509_LU_RETRY = -1,
+ X509_LU_FAIL, X509_LU_X509, X509_LU_CRL
+} X509_LOOKUP_TYPE;
typedef struct x509_object_st {
/* one of the above types */
- int type;
+ X509_LOOKUP_TYPE type;
union {
char *ptr;
X509 *x509;