summaryrefslogtreecommitdiff
path: root/lib/dns/sec/dnssafe/digest.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dns/sec/dnssafe/digest.c')
-rw-r--r--lib/dns/sec/dnssafe/digest.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/lib/dns/sec/dnssafe/digest.c b/lib/dns/sec/dnssafe/digest.c
new file mode 100644
index 00000000..823fbc65
--- /dev/null
+++ b/lib/dns/sec/dnssafe/digest.c
@@ -0,0 +1,67 @@
+/* Copyright (C) RSA Data Security, Inc. created 1993, 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.
+ */
+
+#include "global.h"
+#include "bsafe2.h"
+#include "bkey.h"
+#include "balg.h"
+#include "keyobj.h"
+#include "algobj.h"
+
+int B_DigestInit
+ (algorithmObject, keyObject, algorithmChooser, surrenderContext)
+B_ALGORITHM_OBJ algorithmObject;
+B_KEY_OBJ keyObject;
+B_ALGORITHM_CHOOSER algorithmChooser;
+A_SURRENDER_CTX *surrenderContext;
+{
+ int status;
+
+ if ((status = AlgorithmWrapCheck (THE_ALG_WRAP)) != 0)
+ return (status);
+ if ((status = KeyWrapCheck ((KeyWrap *)keyObject)) != 0)
+ return (status);
+
+ return (B_AlgorithmDigestInit
+ (&THE_ALG_WRAP->algorithm, &((KeyWrap *)keyObject)->key,
+ algorithmChooser, surrenderContext));
+}
+
+int B_DigestUpdate (algorithmObject, partIn, partInLen, surrenderContext)
+B_ALGORITHM_OBJ algorithmObject;
+unsigned char *partIn;
+unsigned int partInLen;
+A_SURRENDER_CTX *surrenderContext;
+{
+ int status;
+
+ if ((status = AlgorithmWrapCheck (THE_ALG_WRAP)) != 0)
+ return (status);
+
+ return (B_AlgorithmDigestUpdate
+ (&THE_ALG_WRAP->algorithm, partIn, partInLen, surrenderContext));
+}
+
+int B_DigestFinal
+ (algorithmObject, digest, digestLen, maxDigestLen, surrenderContext)
+B_ALGORITHM_OBJ algorithmObject;
+unsigned char *digest;
+unsigned int *digestLen;
+unsigned int maxDigestLen;
+A_SURRENDER_CTX *surrenderContext;
+{
+ int status;
+
+ if ((status = AlgorithmWrapCheck (THE_ALG_WRAP)) != 0)
+ return (status);
+
+ return (B_AlgorithmDigestFinal
+ (&THE_ALG_WRAP->algorithm, digest, digestLen, maxDigestLen,
+ surrenderContext));
+}
+