aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES5
-rw-r--r--crypto/crypto.h14
2 files changed, 18 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 9a416dea6b..57f503b675 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,11 @@
Changes between 0.9.7a and 0.9.8 [xx XXX xxxx]
+ *) Add a generic structure called OPENSSL_ITEM. This can be used to
+ pass a list of arguments to any function as well as provide a way
+ for a function to pass data back to the caller.
+ [Richard Levitte]
+
*) Add the functions BUF_strndup() and BUF_memdup(). BUF_strndup()
works like BUF_strdup() but can be used to duplicate a portion of
a string. The copy gets NUL-terminated. BUF_memdup() duplicates
diff --git a/crypto/crypto.h b/crypto/crypto.h
index 0f15a56544..dd90cfa55d 100644
--- a/crypto/crypto.h
+++ b/crypto/crypto.h
@@ -152,6 +152,16 @@ extern "C" {
#define SSLEAY_PLATFORM 4
#define SSLEAY_DIR 5
+/* A generic structure to pass assorted data in a expandable way */
+typedef struct openssl_item_st
+ {
+ int code;
+ void *value; /* Not used for flag attributes */
+ size_t value_size; /* Max size of value for output, length for input */
+ size_t *value_length; /* Returned length of value for output */
+ } OPENSSL_ITEM;
+
+
/* When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock
* names in cryptlib.c
*/
@@ -192,7 +202,8 @@ extern "C" {
#define CRYPTO_LOCK_ECDH 34
#define CRYPTO_LOCK_BN 35
#define CRYPTO_LOCK_EC_PRE_COMP 36
-#define CRYPTO_NUM_LOCKS 37
+#define CRYPTO_LOCK_STORE 37
+#define CRYPTO_NUM_LOCKS 38
#define CRYPTO_LOCK 1
#define CRYPTO_UNLOCK 2
@@ -302,6 +313,7 @@ DECLARE_STACK_OF(CRYPTO_EX_DATA_FUNCS)
#define CRYPTO_EX_INDEX_ECDSA 12
#define CRYPTO_EX_INDEX_ECDH 13
#define CRYPTO_EX_INDEX_COMP 14
+#define CRYPTO_EX_INDEX_STORE 15
/* Dynamically assigned indexes start from this value (don't use directly, use
* via CRYPTO_ex_data_new_class). */