Mercurial > trustbridge > nss-cmake-static
diff nss/lib/freebl/rawhash.c @ 0:1e5118fa0cb1
This is NSS with a Cmake Buildsyste
To compile a static NSS library for Windows we've used the
Chromium-NSS fork and added a Cmake buildsystem to compile
it statically for Windows. See README.chromium for chromium
changes and README.trustbridge for our modifications.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 28 Jul 2014 10:47:06 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nss/lib/freebl/rawhash.c Mon Jul 28 10:47:06 2014 +0200 @@ -0,0 +1,161 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifdef FREEBL_NO_DEPEND +#include "stubs.h" +#endif + +#include "nspr.h" +#include "hasht.h" +#include "blapi.h" /* below the line */ +#include "secerr.h" + +static void * +null_hash_new_context(void) +{ + return NULL; +} + +static void * +null_hash_clone_context(void *v) +{ + PORT_Assert(v == NULL); + return NULL; +} + +static void +null_hash_begin(void *v) +{ +} + +static void +null_hash_update(void *v, const unsigned char *input, unsigned int length) +{ +} + +static void +null_hash_end(void *v, unsigned char *output, unsigned int *outLen, + unsigned int maxOut) +{ + *outLen = 0; +} + +static void +null_hash_destroy_context(void *v, PRBool b) +{ + PORT_Assert(v == NULL); +} + + +const SECHashObject SECRawHashObjects[] = { + { 0, + (void * (*)(void)) null_hash_new_context, + (void * (*)(void *)) null_hash_clone_context, + (void (*)(void *, PRBool)) null_hash_destroy_context, + (void (*)(void *)) null_hash_begin, + (void (*)(void *, const unsigned char *, unsigned int)) null_hash_update, + (void (*)(void *, unsigned char *, unsigned int *, + unsigned int)) null_hash_end, + 0, + HASH_AlgNULL, + (void (*)(void *, unsigned char *, unsigned int *, + unsigned int)) null_hash_end + }, + { MD2_LENGTH, + (void * (*)(void)) MD2_NewContext, + (void * (*)(void *)) null_hash_clone_context, + (void (*)(void *, PRBool)) MD2_DestroyContext, + (void (*)(void *)) MD2_Begin, + (void (*)(void *, const unsigned char *, unsigned int)) MD2_Update, + (void (*)(void *, unsigned char *, unsigned int *, unsigned int)) MD2_End, + MD2_BLOCK_LENGTH, + HASH_AlgMD2, + NULL /* end_raw */ + }, + { MD5_LENGTH, + (void * (*)(void)) MD5_NewContext, + (void * (*)(void *)) null_hash_clone_context, + (void (*)(void *, PRBool)) MD5_DestroyContext, + (void (*)(void *)) MD5_Begin, + (void (*)(void *, const unsigned char *, unsigned int)) MD5_Update, + (void (*)(void *, unsigned char *, unsigned int *, unsigned int)) MD5_End, + MD5_BLOCK_LENGTH, + HASH_AlgMD5, + (void (*)(void *, unsigned char *, unsigned int *, unsigned int)) MD5_EndRaw + }, + { SHA1_LENGTH, + (void * (*)(void)) SHA1_NewContext, + (void * (*)(void *)) null_hash_clone_context, + (void (*)(void *, PRBool)) SHA1_DestroyContext, + (void (*)(void *)) SHA1_Begin, + (void (*)(void *, const unsigned char *, unsigned int)) SHA1_Update, + (void (*)(void *, unsigned char *, unsigned int *, unsigned int)) SHA1_End, + SHA1_BLOCK_LENGTH, + HASH_AlgSHA1, + (void (*)(void *, unsigned char *, unsigned int *, unsigned int)) + SHA1_EndRaw + }, + { SHA256_LENGTH, + (void * (*)(void)) SHA256_NewContext, + (void * (*)(void *)) null_hash_clone_context, + (void (*)(void *, PRBool)) SHA256_DestroyContext, + (void (*)(void *)) SHA256_Begin, + (void (*)(void *, const unsigned char *, unsigned int)) SHA256_Update, + (void (*)(void *, unsigned char *, unsigned int *, + unsigned int)) SHA256_End, + SHA256_BLOCK_LENGTH, + HASH_AlgSHA256, + (void (*)(void *, unsigned char *, unsigned int *, + unsigned int)) SHA256_EndRaw + }, + { SHA384_LENGTH, + (void * (*)(void)) SHA384_NewContext, + (void * (*)(void *)) null_hash_clone_context, + (void (*)(void *, PRBool)) SHA384_DestroyContext, + (void (*)(void *)) SHA384_Begin, + (void (*)(void *, const unsigned char *, unsigned int)) SHA384_Update, + (void (*)(void *, unsigned char *, unsigned int *, + unsigned int)) SHA384_End, + SHA384_BLOCK_LENGTH, + HASH_AlgSHA384, + (void (*)(void *, unsigned char *, unsigned int *, + unsigned int)) SHA384_EndRaw + }, + { SHA512_LENGTH, + (void * (*)(void)) SHA512_NewContext, + (void * (*)(void *)) null_hash_clone_context, + (void (*)(void *, PRBool)) SHA512_DestroyContext, + (void (*)(void *)) SHA512_Begin, + (void (*)(void *, const unsigned char *, unsigned int)) SHA512_Update, + (void (*)(void *, unsigned char *, unsigned int *, + unsigned int)) SHA512_End, + SHA512_BLOCK_LENGTH, + HASH_AlgSHA512, + (void (*)(void *, unsigned char *, unsigned int *, + unsigned int)) SHA512_EndRaw + }, + { SHA224_LENGTH, + (void * (*)(void)) SHA224_NewContext, + (void * (*)(void *)) null_hash_clone_context, + (void (*)(void *, PRBool)) SHA224_DestroyContext, + (void (*)(void *)) SHA224_Begin, + (void (*)(void *, const unsigned char *, unsigned int)) SHA224_Update, + (void (*)(void *, unsigned char *, unsigned int *, + unsigned int)) SHA224_End, + SHA224_BLOCK_LENGTH, + HASH_AlgSHA224, + (void (*)(void *, unsigned char *, unsigned int *, + unsigned int)) SHA224_EndRaw + }, +}; + +const SECHashObject * +HASH_GetRawHashObject(HASH_HashType hashType) +{ + if (hashType < HASH_AlgNULL || hashType >= HASH_AlgTOTAL) { + PORT_SetError(SEC_ERROR_INVALID_ARGS); + return NULL; + } + return &SECRawHashObjects[hashType]; +}