summaryrefslogtreecommitdiff
path: root/lib/dns/sec/dnssafe/ahrandom.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dns/sec/dnssafe/ahrandom.h')
-rw-r--r--lib/dns/sec/dnssafe/ahrandom.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/dns/sec/dnssafe/ahrandom.h b/lib/dns/sec/dnssafe/ahrandom.h
new file mode 100644
index 00000000..aeb4f3b0
--- /dev/null
+++ b/lib/dns/sec/dnssafe/ahrandom.h
@@ -0,0 +1,47 @@
+/* Copyright (C) RSA Data Security, Inc. created 1990, 1996. This is an
+ unpublished work protected as such under copyright law. This work
+ contains proprietary, confidential, and trade secret information of
+ RSA Data Security, Inc. Use, disclosure or reproduction without the
+ express written authorization of RSA Data Security, Inc. is
+ prohibited.
+ */
+
+#ifndef _AHRANDOM_H_
+#define _AHRANDOM_H_ 1
+
+#include "btypechk.h"
+
+/* Use the THIS_RANDOM macro to define the type of object in the
+ virtual function prototype. It defaults to the most base class, but
+ derived modules may define the macro to a more derived class before
+ including this header file.
+ */
+#ifndef THIS_RANDOM
+#define THIS_RANDOM struct AHRandom
+#endif
+
+struct AHRandom;
+
+typedef struct {
+ void (*Destructor) PROTO_LIST ((THIS_RANDOM *));
+ int (*RandomInit) PROTO_LIST
+ ((THIS_RANDOM *, B_ALGORITHM_CHOOSER, A_SURRENDER_CTX *));
+ int (*RandomUpdate) PROTO_LIST
+ ((THIS_RANDOM *, unsigned char *, unsigned int, A_SURRENDER_CTX *));
+ int (*GenerateBytes) PROTO_LIST
+ ((THIS_RANDOM *, unsigned char *, unsigned int, A_SURRENDER_CTX *));
+} AHRandomVTable;
+
+typedef struct AHRandom {
+ B_TypeCheck typeCheck; /* inherited */
+ AHRandomVTable *vTable; /* pure virtual */
+} AHRandom;
+
+/* The constructor does not set the vTable since this is a pure base class.
+ */
+void AHRandomConstructor PROTO_LIST ((AHRandom *));
+/* No destructor because it is pure virtual. Also, do not call destructor
+ for B_TypeCheck, since this will just re-invoke this virtual
+ destructor. */
+
+#endif