summaryrefslogtreecommitdiff
path: root/lib/dns/sec/dnssafe/digrand.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dns/sec/dnssafe/digrand.h')
-rw-r--r--lib/dns/sec/dnssafe/digrand.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/dns/sec/dnssafe/digrand.h b/lib/dns/sec/dnssafe/digrand.h
new file mode 100644
index 00000000..6753c9cf
--- /dev/null
+++ b/lib/dns/sec/dnssafe/digrand.h
@@ -0,0 +1,53 @@
+/* Copyright (C) RSA Data Security, Inc. created 1992, 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 _DIGRAND_H_
+#define _DIGRAND_H_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Use the THIS_DIGEST_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_DIGEST_RANDOM
+#define THIS_DIGEST_RANDOM struct A_DigestRandom
+#endif
+
+struct A_DigestRandom;
+
+typedef struct {
+ void (*DigestUpdate) PROTO_LIST
+ ((THIS_DIGEST_RANDOM *, unsigned char *, unsigned int));
+ void (*DigestFinal) PROTO_LIST ((THIS_DIGEST_RANDOM *, unsigned char *));
+} A_DigestRandomVTable;
+
+typedef struct A_DigestRandom {
+ unsigned char *_state; /* input to digest */
+ unsigned char *_output; /* current output of digest */
+ unsigned int _outputAvailable;
+ unsigned char *_digest;
+ unsigned int _digestLen;
+ A_DigestRandomVTable *vTable;
+} A_DigestRandom;
+
+void A_DigestRandomInit PROTO_LIST
+ ((A_DigestRandom *, unsigned int, unsigned char *));
+void A_DigestRandomUpdate PROTO_LIST
+ ((A_DigestRandom *, unsigned char *, unsigned int));
+void A_DigestRandomGenerateBytes PROTO_LIST
+ ((A_DigestRandom *, unsigned char *, unsigned int));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif