Add "extern C {...} to header files for C++ builds.
[freeradius.git] / src / include / sha1.h
index a196840..0a431a8 100644 (file)
@@ -1,6 +1,14 @@
 #ifndef _FR_SHA1_H
 #define _FR_SHA1_H
 
+#ifdef WITH_OPENSSL_SHA1
+#include <openssl/sha.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #ifndef WITH_OPENSSL_SHA1
 typedef struct {
     uint32_t state[5];
@@ -23,13 +31,11 @@ void fr_SHA1FinalNoLen(uint8_t digest[20], fr_SHA1_CTX* context);
 
 #else  /* WITH_OPENSSL_SHA1 */
 
-#include <openssl/sha.h>
-
 #define fr_SHA1_CTX    SHA_CTX
-#define fr_SHA1Init    SHA_Init
-#define fr_SHA1Update  SHA_Update
-#define fr_SHA1Final   SHA_Final
-#define fr_SHA1Transform SHA_Transform
+#define fr_SHA1Init    SHA1_Init
+#define fr_SHA1Update  SHA1_Update
+#define fr_SHA1Final   SHA1_Final
+#define fr_SHA1Transform SHA1_Transform
 #endif
 
 /*
@@ -40,4 +46,8 @@ void fr_SHA1FinalNoLen(uint8_t digest[20], fr_SHA1_CTX* context);
  */
 extern void fips186_2prf(uint8_t mk[20], uint8_t finalkey[160]);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* _FR_SHA1_H */