]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/sha1.h
The use of <net/ppp_defs.h> isn't guranteed to exist on Linux (e.g. uclibc, buildroot...
[ppp.git] / pppd / sha1.h
index 6727afb27a9db6aa20e36313d7275adea6409bf2..2325133251177e098a1bd2ad95ac125d42d87ba4 100644 (file)
@@ -1,19 +1,35 @@
 /* sha1.h */
 
-#ifndef __SHA1_INCLUDE_
+#ifndef PPP_SHA1_H
+#define PPP_SHA1_H
+
+#include "pppdconf.h"
+
+#ifndef USE_SHA
+#include <openssl/sha.h>
+
+#define SHA1_CTX SHA_CTX
+#define SHA1_SIGNATURE_SIZE SHA_DIGEST_LENGTH
+
+#else
+
+#ifndef SHA1_SIGNATURE_SIZE
+#ifdef SHA_DIGESTSIZE
+#define SHA1_SIGNATURE_SIZE SHA_DIGESTSIZE
+#else
+#define SHA1_SIGNATURE_SIZE 20
+#endif
+#endif
 
 typedef struct {
-    unsigned long state[5];
-    unsigned long count[2];
+    u_int32_t state[5];
+    u_int32_t count[2];
     unsigned char buffer[64];
 } SHA1_CTX;
 
-#define SHA1_SIGNATURE_SIZE 20
-
-void SHA1_Transform(unsigned long[5], const unsigned char[64]);
-void SHA1_Init(SHA1_CTX *);
-void SHA1_Update(SHA1_CTX *, const unsigned char *, unsigned int);
-void SHA1_Final(unsigned char[20], SHA1_CTX *);
+extern void SHA1_Init(SHA1_CTX *);
+extern void SHA1_Update(SHA1_CTX *, const unsigned char *, unsigned int);
+extern void SHA1_Final(unsigned char[SHA1_SIGNATURE_SIZE], SHA1_CTX *);
 
-#define __SHA1_INCLUDE_
-#endif /* __SHA1_INCLUDE_ */
+#endif /* USE_SHA */
+#endif /* PPP_SHA1_H */