summaryrefslogtreecommitdiff
path: root/libjava/gnu/gcj/io/natSimpleSHSStream.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/gcj/io/natSimpleSHSStream.cc')
-rw-r--r--libjava/gnu/gcj/io/natSimpleSHSStream.cc55
1 files changed, 55 insertions, 0 deletions
diff --git a/libjava/gnu/gcj/io/natSimpleSHSStream.cc b/libjava/gnu/gcj/io/natSimpleSHSStream.cc
new file mode 100644
index 000000000..0487ce740
--- /dev/null
+++ b/libjava/gnu/gcj/io/natSimpleSHSStream.cc
@@ -0,0 +1,55 @@
+// natSimpleSHSStream.cc
+
+/* Copyright (C) 2000 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#include <gnu/gcj/io/SimpleSHSStream.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#define PROTO
+#include "shs.h"
+
+
+jbyteArray
+gnu::gcj::io::SimpleSHSStream::shsFinal (jbyteArray shs_info)
+{
+ SHS_INFO *info = (SHS_INFO *)elements(shs_info);
+ ::shsFinal (info);
+
+ jbyteArray buffer = JvNewByteArray (SHS_DIGESTSIZE);
+ memcpy (elements (buffer), &info->digest, SHS_DIGESTSIZE);
+ return buffer;
+}
+
+void
+gnu::gcj::io::SimpleSHSStream::shsUpdate (jbyteArray shs_info, jbyteArray buf, jint count)
+{
+ SHS_INFO *info = (SHS_INFO *)elements(shs_info);
+ uint8_t *buffer = (uint8_t *)elements(buf);
+
+ ::shsUpdate (info, buffer, count);
+}
+
+jbyteArray
+gnu::gcj::io::SimpleSHSStream::shsInit ()
+{
+ jbyteArray result = JvNewByteArray (sizeof (SHS_INFO));
+ SHS_INFO *info = (SHS_INFO *)elements(result);
+
+ ::shsInit (info);
+ return result;
+}
+
+