summaryrefslogtreecommitdiffstats
path: root/crypto/bn/bntest.c
diff options
context:
space:
mode:
authorGeoff Thorpe <geoff@openssl.org>2002-12-08 06:24:31 +0100
committerGeoff Thorpe <geoff@openssl.org>2002-12-08 06:24:31 +0100
commite9224c717711eefb30038c9b37c69795dda93c9a (patch)
treecdb7a95f6ef21a6434008c494c38d530b629def0 /crypto/bn/bntest.c
parentFix a warning, and do some constification as a lucky side-effect :-) (diff)
downloadopenssl-e9224c717711eefb30038c9b37c69795dda93c9a.tar.xz
openssl-e9224c717711eefb30038c9b37c69795dda93c9a.zip
This is a first-cut at improving the callback mechanisms used in
key-generation and prime-checking functions. Rather than explicitly passing callback functions and caller-defined context data for the callbacks, a new structure BN_GENCB is defined that encapsulates this; a pointer to the structure is passed to all such functions instead. This wrapper structure allows the encapsulation of "old" and "new" style callbacks - "new" callbacks return a boolean result on the understanding that returning FALSE should terminate keygen/primality processing. The BN_GENCB abstraction will allow future callback modifications without needing to break binary compatibility nor change the API function prototypes. The new API functions have been given names ending in "_ex" and the old functions are implemented as wrappers to the new ones. The OPENSSL_NO_DEPRECATED symbol has been introduced so that, if defined, declaration of the older functions will be skipped. NB: Some openssl-internal code will stick with the older callbacks for now, so appropriate "#undef" logic will be put in place - this is in case the user is *building* openssl (rather than *including* its headers) with this symbol defined. There is another change in the new _ex functions; the key-generation functions do not return key structures but operate on structures passed by the caller, the return value is a boolean. This will allow for a smoother transition to having key-generation as "virtual function" in the various ***_METHOD tables.
Diffstat (limited to 'crypto/bn/bntest.c')
-rw-r--r--crypto/bn/bntest.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/crypto/bn/bntest.c b/crypto/bn/bntest.c
index d87ccf9c6a..0149e8c3c4 100644
--- a/crypto/bn/bntest.c
+++ b/crypto/bn/bntest.c
@@ -69,6 +69,12 @@
*
*/
+/* Until the key-gen callbacks are modified to use newer prototypes, we allow
+ * deprecated functions for openssl-internal code */
+#ifdef OPENSSL_NO_DEPRECATED
+#undef OPENSSL_NO_DEPRECATED
+#endif
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>