author Chris Pearce <cpearce@mozilla.com>
Fri, 14 Nov 2014 21:26:24 +1300
changeset 215799 abf353e4a1a7513c7c8a3557491e1118c9cb6c9e
parent 188724 security/nss/lib/freebl/blapi.h@957b31f09f9e18658eeaee1cfb740bdf084d8231
permissions -rw-r--r--
Bug 1088488 - Copy freebl's SHA256 code into plugin container, stripping out non-256 SHA code. r=hsivonen

/* 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/. */

// Stripped down version of security/nss/lib/freebl/blapi.h
// and related headers.

#ifndef _SHA256_H_
#define _SHA256_H_

#define SHA256_LENGTH 32 

#include "prtypes.h"	/* for PRUintXX */
#include "prlong.h"

#ifdef __cplusplus 
extern "C" {

struct SHA256Context {
  union {
    PRUint32 w[64];	    /* message schedule, input buffer, plus 48 words */
    PRUint8  b[256];
  } u;
  PRUint32 h[8];		/* 8 state variables */
  PRUint32 sizeHi,sizeLo;	/* 64-bit count of hashed bytes. */

typedef struct SHA256Context SHA256Context;

extern void
SHA256_Begin(SHA256Context *ctx);

extern void 
SHA256_Update(SHA256Context *ctx, const unsigned char *input,
		    unsigned int inputLen);

extern void
SHA256_End(SHA256Context *ctx, unsigned char *digest,
           unsigned int *digestLen, unsigned int maxDigestLen);

#ifdef __cplusplus 
} /* extern C */

#endif /* _SHA256_H_ */