|  | // 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; | 
|  | } | 
|  |  | 
|  |  |