Make OBJ_NAME_do_all more OpenSSL-compatible.
OBJ_NAME in OpenSSL has an 'alias' field which some code consumes. We never
report anything OpenSSL considers an alias, so just leave it zero. It also has
a 'data' field which, confusingly, is a pointer to the EVP_CIPHER or EVP_MD
despite being a char pointer.
See calls to and implementation of OBJ_NAME_add in OpenSSL for comparison.
Change-Id: Ifc5c70424569db8783deb2fda7736c1954b5dd3a
Reviewed-on: https://boringssl-review.googlesource.com/8515
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/decrepit/obj/obj_decrepit.c b/decrepit/obj/obj_decrepit.c
index 06051f1..8ea2e0a 100644
--- a/decrepit/obj/obj_decrepit.c
+++ b/decrepit/obj/obj_decrepit.c
@@ -33,6 +33,7 @@
memset(&obj_name, 0, sizeof(obj_name));
obj_name.type = OBJ_NAME_TYPE_CIPHER_METH;
obj_name.name = name;
+ obj_name.data = (const char *)cipher;
wrapped->callback(&obj_name, wrapped->arg);
}
@@ -45,6 +46,7 @@
memset(&obj_name, 0, sizeof(obj_name));
obj_name.type = OBJ_NAME_TYPE_MD_METH;
obj_name.name = name;
+ obj_name.data = (const char *)md;
wrapped->callback(&obj_name, wrapped->arg);
}
diff --git a/include/openssl/obj.h b/include/openssl/obj.h
index 7e24820..367cfdc 100644
--- a/include/openssl/obj.h
+++ b/include/openssl/obj.h
@@ -193,7 +193,9 @@
typedef struct obj_name_st {
int type;
+ int alias;
const char *name;
+ const char *data;
} OBJ_NAME;
#define OBJ_NAME_TYPE_MD_METH 1