This uses "git-apply --whitespace=strip" to fix whitespace errors that have crept in to our source files over time. There are a few files that need to have trailing whitespaces (most notably, test vectors). The results still passes the test, and build result in Documentation/ area is unchanged. Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			83 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * SHA-1 implementation optimized for ARM
 | 
						|
 *
 | 
						|
 * Copyright:   (C) 2005 by Nicolas Pitre <nico@cam.org>
 | 
						|
 * Created:     September 17, 2005
 | 
						|
 */
 | 
						|
 | 
						|
#include <string.h>
 | 
						|
#include "sha1.h"
 | 
						|
 | 
						|
extern void sha_transform(uint32_t *hash, const unsigned char *data, uint32_t *W);
 | 
						|
 | 
						|
void SHA1_Init(SHA_CTX *c)
 | 
						|
{
 | 
						|
	c->len = 0;
 | 
						|
	c->hash[0] = 0x67452301;
 | 
						|
	c->hash[1] = 0xefcdab89;
 | 
						|
	c->hash[2] = 0x98badcfe;
 | 
						|
	c->hash[3] = 0x10325476;
 | 
						|
	c->hash[4] = 0xc3d2e1f0;
 | 
						|
}
 | 
						|
 | 
						|
void SHA1_Update(SHA_CTX *c, const void *p, unsigned long n)
 | 
						|
{
 | 
						|
	uint32_t workspace[80];
 | 
						|
	unsigned int partial;
 | 
						|
	unsigned long done;
 | 
						|
 | 
						|
	partial = c->len & 0x3f;
 | 
						|
	c->len += n;
 | 
						|
	if ((partial + n) >= 64) {
 | 
						|
		if (partial) {
 | 
						|
			done = 64 - partial;
 | 
						|
			memcpy(c->buffer + partial, p, done);
 | 
						|
			sha_transform(c->hash, c->buffer, workspace);
 | 
						|
			partial = 0;
 | 
						|
		} else
 | 
						|
			done = 0;
 | 
						|
		while (n >= done + 64) {
 | 
						|
			sha_transform(c->hash, p + done, workspace);
 | 
						|
			done += 64;
 | 
						|
		}
 | 
						|
	} else
 | 
						|
		done = 0;
 | 
						|
	if (n - done)
 | 
						|
		memcpy(c->buffer + partial, p + done, n - done);
 | 
						|
}
 | 
						|
 | 
						|
void SHA1_Final(unsigned char *hash, SHA_CTX *c)
 | 
						|
{
 | 
						|
	uint64_t bitlen;
 | 
						|
	uint32_t bitlen_hi, bitlen_lo;
 | 
						|
	unsigned int i, offset, padlen;
 | 
						|
	unsigned char bits[8];
 | 
						|
	static const unsigned char padding[64] = { 0x80, };
 | 
						|
 | 
						|
	bitlen = c->len << 3;
 | 
						|
	offset = c->len & 0x3f;
 | 
						|
	padlen = ((offset < 56) ? 56 : (64 + 56)) - offset;
 | 
						|
	SHA1_Update(c, padding, padlen);
 | 
						|
 | 
						|
	bitlen_hi = bitlen >> 32;
 | 
						|
	bitlen_lo = bitlen & 0xffffffff;
 | 
						|
	bits[0] = bitlen_hi >> 24;
 | 
						|
	bits[1] = bitlen_hi >> 16;
 | 
						|
	bits[2] = bitlen_hi >> 8;
 | 
						|
	bits[3] = bitlen_hi;
 | 
						|
	bits[4] = bitlen_lo >> 24;
 | 
						|
	bits[5] = bitlen_lo >> 16;
 | 
						|
	bits[6] = bitlen_lo >> 8;
 | 
						|
	bits[7] = bitlen_lo;
 | 
						|
	SHA1_Update(c, bits, 8);
 | 
						|
 | 
						|
	for (i = 0; i < 5; i++) {
 | 
						|
		uint32_t v = c->hash[i];
 | 
						|
		hash[0] = v >> 24;
 | 
						|
		hash[1] = v >> 16;
 | 
						|
		hash[2] = v >> 8;
 | 
						|
		hash[3] = v;
 | 
						|
		hash += 4;
 | 
						|
	}
 | 
						|
}
 |