|  | 
 | /* | 
 |  * Copyright (C) Igor Sysoev | 
 |  * Copyright (C) Nginx, Inc. | 
 |  */ | 
 |  | 
 |  | 
 | #ifndef _NGX_SHA1_H_INCLUDED_ | 
 | #define _NGX_SHA1_H_INCLUDED_ | 
 |  | 
 |  | 
 | #include <ngx_config.h> | 
 | #include <ngx_core.h> | 
 |  | 
 |  | 
 | #if (NGX_HAVE_OPENSSL_SHA1_H) | 
 |  | 
 | #include <openssl/sha.h> | 
 |  | 
 |  | 
 | typedef SHA_CTX  ngx_sha1_t; | 
 |  | 
 |  | 
 | #define ngx_sha1_init    SHA1_Init | 
 | #define ngx_sha1_update  SHA1_Update | 
 | #define ngx_sha1_final   SHA1_Final | 
 |  | 
 |  | 
 | #else /* !NGX_HAVE_OPENSSL_SHA1_H */ | 
 |  | 
 |  | 
 | typedef struct { | 
 |     uint64_t  bytes; | 
 |     uint32_t  a, b, c, d, e, f; | 
 |     u_char    buffer[64]; | 
 | } ngx_sha1_t; | 
 |  | 
 |  | 
 | void ngx_sha1_init(ngx_sha1_t *ctx); | 
 | void ngx_sha1_update(ngx_sha1_t *ctx, const void *data, size_t size); | 
 | void ngx_sha1_final(u_char result[20], ngx_sha1_t *ctx); | 
 |  | 
 |  | 
 | #endif | 
 |  | 
 | #endif /* _NGX_SHA1_H_INCLUDED_ */ |