]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/plugins/radius/md5.c
Reduce the clutter by defining the MD4/MD5/SHA digest lengths in one place. Avoid...
[ppp.git] / pppd / plugins / radius / md5.c
index 8acfb38c49a3a9e791f87ceccb9eedcabd067cbc..5a3903dad30b888f306901c4e01b37f7324ecc0d 100644 (file)
@@ -1,13 +1,30 @@
 /*
  * $Id: md5.c,v 1.1 2004/11/14 07:26:26 paulus Exp $
  */
-#include <pppd/md5.h>
+#include <stddef.h>
 
-void rc_md5_calc (unsigned char *output, unsigned char *input, unsigned int inlen)
+#include <pppd/ppp-crypto.h>
+
+int rc_md5_calc(unsigned char *out, const unsigned char *in, unsigned int inl)
 {
-       MD5_CTX         context;
+    int retval = 0;
+    int outl = MD5_DIGEST_LENGTH;
+
+    PPP_MD_CTX *ctx = PPP_MD_CTX_new();
+    if (ctx) {
+
+        if (PPP_DigestInit(ctx, PPP_md5())) {
+
+            if (PPP_DigestUpdate(ctx, in, inl)) {
+
+                if (PPP_DigestFinal(ctx, out, &outl)) {
+
+                    retval = 1;
+                }
+            }
+        }
 
-       MD5_Init (&context);
-       MD5_Update (&context, input, inlen);
-       MD5_Final (output, &context);
+        PPP_MD_CTX_free(ctx);
+    }
+    return retval;
 }