gnunet-android

GNUnet for Android
Log | Files | Refs | README

md4.h (2154B)


      1 // Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //     https://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 #ifndef OPENSSL_HEADER_MD4_H
     16 #define OPENSSL_HEADER_MD4_H
     17 
     18 #include <openssl/base.h>   // IWYU pragma: export
     19 
     20 #if defined(__cplusplus)
     21 extern "C" {
     22 #endif
     23 
     24 
     25 // MD4.
     26 
     27 // MD4_CBLOCK is the block size of MD4.
     28 #define MD4_CBLOCK 64
     29 
     30 // MD4_DIGEST_LENGTH is the length of an MD4 digest.
     31 #define MD4_DIGEST_LENGTH 16
     32 
     33 // MD4_Init initialises |md4| and returns one.
     34 OPENSSL_EXPORT int MD4_Init(MD4_CTX *md4);
     35 
     36 // MD4_Update adds |len| bytes from |data| to |md4| and returns one.
     37 OPENSSL_EXPORT int MD4_Update(MD4_CTX *md4, const void *data, size_t len);
     38 
     39 // MD4_Final adds the final padding to |md4| and writes the resulting digest to
     40 // |out|, which must have at least |MD4_DIGEST_LENGTH| bytes of space. It
     41 // returns one.
     42 OPENSSL_EXPORT int MD4_Final(uint8_t out[MD4_DIGEST_LENGTH], MD4_CTX *md4);
     43 
     44 // MD4 writes the digest of |len| bytes from |data| to |out| and returns |out|.
     45 // There must be at least |MD4_DIGEST_LENGTH| bytes of space in |out|.
     46 OPENSSL_EXPORT uint8_t *MD4(const uint8_t *data, size_t len,
     47                             uint8_t out[MD4_DIGEST_LENGTH]);
     48 
     49 // MD4_Transform is a low-level function that performs a single, MD4 block
     50 // transformation using the state from |md4| and 64 bytes from |block|.
     51 OPENSSL_EXPORT void MD4_Transform(MD4_CTX *md4,
     52                                   const uint8_t block[MD4_CBLOCK]);
     53 
     54 struct md4_state_st {
     55   uint32_t h[4];
     56   uint32_t Nl, Nh;
     57   uint8_t data[MD4_CBLOCK];
     58   unsigned num;
     59 };
     60 
     61 
     62 #if defined(__cplusplus)
     63 }  // extern C
     64 #endif
     65 
     66 #endif  // OPENSSL_HEADER_MD4_H