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_MDC2_H 11 # define HEADER_MDC2_H 12 13 # include <openssl/opensslconf.h> 14 15 #ifndef OPENSSL_NO_MDC2 16 # include <stdlib.h> 17 # include <openssl/des.h> 18 # ifdef __cplusplus 19 extern "C" { 20 # endif 21 22 # define MDC2_BLOCK 8 23 # define MDC2_DIGEST_LENGTH 16 24 25 typedef struct mdc2_ctx_st { 26 unsigned int num; 27 unsigned char data[MDC2_BLOCK]; 28 DES_cblock h, hh; 29 int pad_type; /* either 1 or 2, default 1 */ 30 } MDC2_CTX; 31 32 int MDC2_Init(MDC2_CTX *c); 33 int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len); 34 int MDC2_Final(unsigned char *md, MDC2_CTX *c); 35 unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md); 36 37 # ifdef __cplusplus 38 } 39 # endif 40 # endif 41 42 #endif 43