diff options
Diffstat (limited to 'contrib/pam_modules/pam_passwdqc/md4.h')
-rw-r--r-- | contrib/pam_modules/pam_passwdqc/md4.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/contrib/pam_modules/pam_passwdqc/md4.h b/contrib/pam_modules/pam_passwdqc/md4.h new file mode 100644 index 000000000000..7d68651b2121 --- /dev/null +++ b/contrib/pam_modules/pam_passwdqc/md4.h @@ -0,0 +1,49 @@ +/* + * This is an OpenSSL API compatible (but not ABI compatible) implementation + * of the RSA Data Security, Inc. MD4 Message-Digest Algorithm (RFC 1320). + * + * Homepage: + * https://openwall.info/wiki/people/solar/software/public-domain-source-code/md4 + * + * Author: + * Alexander Peslyak, better known as Solar Designer <solar at openwall.com> + * + * This software was written by Alexander Peslyak in 2001. No copyright is + * claimed, and the software is hereby placed in the public domain. + * In case this attempt to disclaim copyright and place the software in the + * public domain is deemed null and void, then the software is + * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the + * general public under the following terms: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted. + * + * There's ABSOLUTELY NO WARRANTY, express or implied. + * + * See md4.c for more information. + */ + +#ifdef HAVE_OPENSSL +#include <openssl/md4.h> +#elif !defined(_MD4_H) +#define _MD4_H + +#include <stddef.h> /* for size_t */ + +/* Any 32-bit or wider unsigned integer data type will do */ +typedef unsigned int MD4_u32plus; + +typedef struct { + MD4_u32plus lo, hi; + MD4_u32plus a, b, c, d; + unsigned char buffer[64]; +#if !(defined(__i386__) || defined(__x86_64__) || defined(__vax__)) + MD4_u32plus block[16]; +#endif +} MD4_CTX; + +extern void MD4_Init(MD4_CTX *ctx); +extern void MD4_Update(MD4_CTX *ctx, const void *data, size_t size); +extern void MD4_Final(unsigned char *result, MD4_CTX *ctx); + +#endif |