forked from cory/tildefriends
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * SHA1 internal definitions
 | |
|  * Copyright (c) 2003-2005, Jouni Malinen <j@w1.fi>
 | |
|  *
 | |
|  * This software may be distributed under the terms of the BSD license.
 | |
|  * See README for more details.
 | |
|  */
 | |
| 
 | |
| /**
 | |
| ** \defgroup sha1 SHA1
 | |
| ** SHA1 API.
 | |
| ** Adapted from
 | |
| ** https://web.mit.edu/freebsd/head/contrib/wpa/src/crypto/sha1_i.h by Cory
 | |
| ** McWilliams 2025-09-28.
 | |
| ** @{
 | |
| */
 | |
| 
 | |
| #ifndef SHA1_I_H
 | |
| #define SHA1_I_H
 | |
| 
 | |
| #include <inttypes.h>
 | |
| 
 | |
| /**
 | |
| ** SHA1 context struct.
 | |
| */
 | |
| struct SHA1Context
 | |
| {
 | |
| 	/** SHA1 state. */
 | |
| 	uint32_t state[5];
 | |
| 	/** SHA1 count. */
 | |
| 	uint32_t count[2];
 | |
| 	/** SHA1 buffer. */
 | |
| 	unsigned char buffer[64];
 | |
| };
 | |
| 
 | |
| /**
 | |
| ** SHA1 context.
 | |
| */
 | |
| typedef struct SHA1Context SHA1_CTX;
 | |
| 
 | |
| /**
 | |
| ** Initialize a SHA1 context.
 | |
| ** @param context The context.
 | |
| */
 | |
| void SHA1Init(struct SHA1Context* context);
 | |
| 
 | |
| /**
 | |
| ** Calculate an ongoing hash for a block of data.
 | |
| ** @param context The SHA1 context.
 | |
| ** @param data The data to hash.
 | |
| ** @param len The length of data.
 | |
| */
 | |
| void SHA1Update(struct SHA1Context* context, const void* data, uint32_t len);
 | |
| 
 | |
| /**
 | |
| ** Calculate the final hash digest.
 | |
| ** @param digest Populated with the digest.
 | |
| ** @param context The SHA1 context.
 | |
| */
 | |
| void SHA1Final(unsigned char digest[20], struct SHA1Context* context);
 | |
| 
 | |
| /**
 | |
| ** Perform a SHA1 transformation.
 | |
| ** @param state The SHA1 state.
 | |
| ** @param buffer The data.
 | |
| */
 | |
| void SHA1Transform(uint32_t state[5], const unsigned char buffer[64]);
 | |
| 
 | |
| #endif /* SHA1_I_H */
 | |
| 
 | |
| /** @} */
 |