1*e4473f94Schristos /* $NetBSD: md2.h,v 1.9 2024/01/19 18:40:35 christos Exp $ */ 2c5325e7eSatatat 3c5325e7eSatatat #ifndef _MD2_H_ 4c5325e7eSatatat #define _MD2_H_ 5c5325e7eSatatat 6c5325e7eSatatat #include <sys/cdefs.h> 7c5325e7eSatatat #include <sys/types.h> 8c5325e7eSatatat 98b546d68Selad #define MD2_DIGEST_LENGTH 16 108b546d68Selad #define MD2_DIGEST_STRING_LENGTH 33 114fda2f64Schristos #define MD2_BLOCK_LENGTH 16 128b546d68Selad 13c5325e7eSatatat /* MD2 context. */ 14c5325e7eSatatat typedef struct MD2Context { 155f65228bSperry uint32_t i; 16c5325e7eSatatat unsigned char C[16]; /* checksum */ 17c5325e7eSatatat unsigned char X[48]; /* input buffer */ 18c5325e7eSatatat } MD2_CTX; 19c5325e7eSatatat 20c5325e7eSatatat __BEGIN_DECLS 2119b7469aSperry void MD2Init(MD2_CTX *); 2219b7469aSperry void MD2Update(MD2_CTX *, const unsigned char *, unsigned int); 2319b7469aSperry void MD2Final(unsigned char[16], MD2_CTX *); 24f8570f8aSmrg char *MD2End(MD2_CTX *, char[MD2_DIGEST_STRING_LENGTH]); 2519b7469aSperry char *MD2File(const char *, char *); 26af4a812aSxtraeme char *MD2FileChunk(const char *, char *, off_t, off_t); 27f8570f8aSmrg char *MD2Data(const unsigned char *, size_t, char[MD2_DIGEST_STRING_LENGTH]); 28*e4473f94Schristos #ifdef _LIBC_INTERNAL 29*e4473f94Schristos void MD2Transform(MD2_CTX *); 30*e4473f94Schristos #endif 31c5325e7eSatatat __END_DECLS 32c5325e7eSatatat 33c5325e7eSatatat #endif /* _MD2_H_ */ 34