This patch is to refactor twrpDigest using polymorphism and inheritance to use the same call patterns for creating and reading a digest. Now a library. Use SHA2 from libcrypto. SHA2 is default if device has libcrypto. Change string MD5 everywhere to use digest or Digest instead. Updated string tags to digest. Translation will be required. Switch out digest code into a driver class from partitionmanager. SHA2 is better for digest creation due to decreased collision space compared to MD5 and SHA1. See https://en.wikipedia.org/wiki/SHA-2 Change-Id: I74b5546789990b12aa4ce2e389d25f80a3fe213f
30 lines
621 B
C
30 lines
621 B
C
#ifndef MD5_H
|
|
#define MD5_H
|
|
|
|
#ifdef HAVE_STDINT_H
|
|
#include <stdint.h>
|
|
#else
|
|
typedef unsigned int uint32_t;
|
|
#endif
|
|
|
|
#define MD5LENGTH 16
|
|
|
|
struct MD5Context {
|
|
uint32_t buf[4];
|
|
uint32_t bits[2];
|
|
unsigned char in[64];
|
|
};
|
|
|
|
void MD5Init(struct MD5Context *context);
|
|
void MD5Update(struct MD5Context *context, unsigned char const *buf,
|
|
unsigned len);
|
|
void MD5Final(unsigned char digest[MD5LENGTH], struct MD5Context *context);
|
|
void MD5Transform(uint32_t buf[4], uint32_t const in[16]);
|
|
|
|
/*
|
|
* This is needed to make RSAREF happy on some MS-DOS compilers.
|
|
*/
|
|
//typedef struct MD5Context MD5_CTX;
|
|
|
|
#endif /* !MD5_H */
|