Align libgc vcxproj with makefile.
[mono.git] / mono / utils / mono-digest.h
index a605356c8147ad38009408f707e00e7217695882..b32103a28bb402ebc00459ce5cf405a7f645fac2 100644 (file)
@@ -1,5 +1,6 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
+/**
+ * \file
  * This code implements the MD5 message-digest algorithm.
  * The algorithm is due to Ron Rivest.  This code was
  * written by Colin Plumb in 1993, no copyright is claimed.
 #ifndef __MONO_DIGEST_H__
 #define __MONO_DIGEST_H__
 
+#include <config.h>
 #include <glib.h>
+#include <mono/utils/mono-publib.h>
 
 G_BEGIN_DECLS
 
+#if HAVE_COMMONCRYPTO_COMMONDIGEST_H
+
+#include <CommonCrypto/CommonDigest.h>
+
+#define MonoSHA1Context        CC_SHA1_CTX
+#define MonoMD5Context CC_MD5_CTX
+
+#else
+
 typedef struct {
        guint32 buf[4];
        guint32 bits[2];
@@ -37,16 +49,20 @@ typedef struct {
        gint doByteReverse;
 } MonoMD5Context;
 
-void mono_md5_get_digest (const guchar *buffer, gint buffer_size, guchar digest[16]);
+#endif
+
+MONO_API void mono_md5_get_digest (const guchar *buffer, gint buffer_size, guchar digest[16]);
 
 /* use this one when speed is needed */
 /* for use in provider code only */
-void mono_md5_get_digest_from_file (const gchar *filename, guchar digest[16]);
+MONO_API void mono_md5_get_digest_from_file (const gchar *filename, guchar digest[16]);
 
 /* raw routines */
-void mono_md5_init   (MonoMD5Context *ctx);
-void mono_md5_update (MonoMD5Context *ctx, const guchar *buf, guint32 len);
-void mono_md5_final  (MonoMD5Context *ctx, guchar digest[16]);
+MONO_API void mono_md5_init   (MonoMD5Context *ctx);
+MONO_API void mono_md5_update (MonoMD5Context *ctx, const guchar *buf, guint32 len);
+MONO_API void mono_md5_final  (MonoMD5Context *ctx, guchar digest[16]);
+
+#if !HAVE_COMMONCRYPTO_COMMONDIGEST_H
 
 typedef struct {
     guint32 state[5];
@@ -54,14 +70,16 @@ typedef struct {
     unsigned char buffer[64];
 } MonoSHA1Context;
 
-void mono_sha1_get_digest (const guchar *buffer, gint buffer_size, guchar digest [20]);
-void mono_sha1_get_digest_from_file (const gchar *filename, guchar digest [20]);
+#endif
+
+MONO_API void mono_sha1_get_digest (const guchar *buffer, gint buffer_size, guchar digest [20]);
+MONO_API void mono_sha1_get_digest_from_file (const gchar *filename, guchar digest [20]);
 
-void mono_sha1_init   (MonoSHA1Context* context);
-void mono_sha1_update (MonoSHA1Context* context, const guchar* data, guint32 len);
-void mono_sha1_final  (MonoSHA1Context* context, unsigned char digest[20]);
+MONO_API void mono_sha1_init   (MonoSHA1Context* context);
+MONO_API void mono_sha1_update (MonoSHA1Context* context, const guchar* data, guint32 len);
+MONO_API void mono_sha1_final  (MonoSHA1Context* context, unsigned char digest[20]);
 
-void mono_digest_get_public_token (guchar* token, const guchar *pubkey, guint32 len);
+MONO_API void mono_digest_get_public_token (guchar* token, const guchar *pubkey, guint32 len);
 
 G_END_DECLS
 #endif /* __MONO_DIGEST_H__ */