kore

An easy to use, scalable and secure web application framework for writing web APIs in C.
Commits | Files | Refs | README | LICENSE | git clone https://git.kore.io/kore.git

sha1.h (1729B)



      1 /*	$OpenBSD: sha1.h,v 1.24 2012/12/05 23:19:57 deraadt Exp $	*/
      2 
      3 /*
      4  * SHA-1 in C
      5  * By Steve Reid <steve@edmweb.com>
      6  * 100% Public Domain
      7  */
      8 
      9 #ifndef _SHA1_H
     10 #define _SHA1_H
     11 
     12 #ifndef WITH_OPENSSL
     13 
     14 #define	SHA1_BLOCK_LENGTH		64
     15 #define	SHA1_DIGEST_LENGTH		20
     16 #define	SHA1_DIGEST_STRING_LENGTH	(SHA1_DIGEST_LENGTH * 2 + 1)
     17 
     18 typedef struct {
     19     u_int32_t state[5];
     20     u_int64_t count;
     21     u_int8_t buffer[SHA1_BLOCK_LENGTH];
     22 } SHA1_CTX;
     23 
     24 void SHA1Init(SHA1_CTX *);
     25 void SHA1Pad(SHA1_CTX *);
     26 void SHA1Transform(u_int32_t [5], const u_int8_t [SHA1_BLOCK_LENGTH]);
     27 void SHA1Update(SHA1_CTX *, const u_int8_t *, size_t);
     28 void SHA1Final(u_int8_t [SHA1_DIGEST_LENGTH], SHA1_CTX *);
     29 char *SHA1End(SHA1_CTX *, char *);
     30 char *SHA1File(const char *, char *);
     31 char *SHA1FileChunk(const char *, char *, off_t, off_t);
     32 char *SHA1Data(const u_int8_t *, size_t, char *);
     33 
     34 #define HTONDIGEST(x) do {                                              \
     35         x[0] = htonl(x[0]);                                             \
     36         x[1] = htonl(x[1]);                                             \
     37         x[2] = htonl(x[2]);                                             \
     38         x[3] = htonl(x[3]);                                             \
     39         x[4] = htonl(x[4]); } while (0)
     40 
     41 #define NTOHDIGEST(x) do {                                              \
     42         x[0] = ntohl(x[0]);                                             \
     43         x[1] = ntohl(x[1]);                                             \
     44         x[2] = ntohl(x[2]);                                             \
     45         x[3] = ntohl(x[3]);                                             \
     46         x[4] = ntohl(x[4]); } while (0)
     47 
     48 #endif /* !WITH_OPENSSL */
     49 #endif /* _SHA1_H */