#ifndef _DESHA1_H #define _DESHA1_H /*------------------------------------------------------------------------- * drawElements Base Portability Library * ------------------------------------- * * Copyright 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * *//*! * \file * \brief SHA1 hash functions. *//*--------------------------------------------------------------------*/ #include "deDefs.h" DE_BEGIN_EXTERN_C typedef struct deSha1Stream_s { deUint64 size; deUint32 hash[5]; deUint32 data[80]; } deSha1Stream; typedef struct deSha1_s { deUint32 hash[5]; } deSha1; /* Initialize sha1 stream. */ void deSha1Stream_init (deSha1Stream* stream); /* Process single 512bit chunk. */ void deSha1Stream_process (deSha1Stream* stream, size_t size, const void* data); /* Finalize the stream and output the hash. */ void deSha1Stream_finalize (deSha1Stream* stream, deSha1* hash); /* Compute the sha1 hash from data. */ void deSha1_compute (deSha1* hash, size_t size, const void* data); /* Render sha1 hash as 40 digit hex string. */ void deSha1_render (const deSha1* hash, char* buffer); /* Parse sha1 from 40 digit hex string. */ deBool deSha1_parse (deSha1* hash, const char* buffer); /* Compare hashes for equality. */ deBool deSha1_equal (const deSha1* a, const deSha1* b); void deSha1_selfTest (void); DE_END_EXTERN_C #endif /* _DESHA1_H */