Home | History | Annotate | Line # | Download | only in openssl
      1 /*
      2  * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
      3  *
      4  * Licensed under the OpenSSL license (the "License").  You may not use
      5  * this file except in compliance with the License.  You can obtain a copy
      6  * in the file LICENSE in the source distribution or at
      7  * https://www.openssl.org/source/license.html
      8  */
      9 
     10 #ifndef HEADER_RIPEMD_H
     11 # define HEADER_RIPEMD_H
     12 
     13 # include <openssl/opensslconf.h>
     14 
     15 #ifndef OPENSSL_NO_RMD160
     16 # include <openssl/e_os2.h>
     17 # include <stddef.h>
     18 # ifdef  __cplusplus
     19 extern "C" {
     20 # endif
     21 
     22 # define RIPEMD160_LONG unsigned int
     23 
     24 # define RIPEMD160_CBLOCK        64
     25 # define RIPEMD160_LBLOCK        (RIPEMD160_CBLOCK/4)
     26 # define RIPEMD160_DIGEST_LENGTH 20
     27 
     28 typedef struct RIPEMD160state_st {
     29     RIPEMD160_LONG A, B, C, D, E;
     30     RIPEMD160_LONG Nl, Nh;
     31     RIPEMD160_LONG data[RIPEMD160_LBLOCK];
     32     unsigned int num;
     33 } RIPEMD160_CTX;
     34 
     35 int RIPEMD160_Init(RIPEMD160_CTX *c);
     36 int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len);
     37 int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c);
     38 unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned char *md);
     39 void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b);
     40 
     41 # ifdef  __cplusplus
     42 }
     43 # endif
     44 # endif
     45 
     46 
     47 #endif
     48