More evil cast removal.
[openssl.git] / crypto / dh / dh_lib.c
index 786a2c14b461bfb772f66c8a6468ddb16260431c..61e0720e8a7960bceba032b0b000945004eb44d5 100644 (file)
@@ -1,5 +1,5 @@
 /* crypto/dh/dh_lib.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
 
 #include <stdio.h>
 #include "cryptlib.h"
-#include "bn.h"
-#include "dh.h"
+#include <openssl/bn.h>
+#include <openssl/dh.h>
 
-char *DH_version="Diffie-Hellman part of SSLeay 0.8.1b 29-Jun-1998";
+const char *DH_version="Diffie-Hellman" OPENSSL_VERSION_PTEXT;
 
-DH *DH_new()
+DH *DH_new(void)
        {
        DH *ret;
 
@@ -80,21 +80,24 @@ DH *DH_new()
        ret->length=0;
        ret->pub_key=NULL;
        ret->priv_key=NULL;
+       ret->flags=DH_FLAG_CACHE_MONT_P;
+       ret->method_mont_p=NULL;
        return(ret);
        }
 
-void DH_free(r)
-DH *r;
+void DH_free(DH *r)
        {
+       if(r == NULL) return;
        if (r->p != NULL) BN_clear_free(r->p);
        if (r->g != NULL) BN_clear_free(r->g);
        if (r->pub_key != NULL) BN_clear_free(r->pub_key);
        if (r->priv_key != NULL) BN_clear_free(r->priv_key);
+       if (r->method_mont_p != NULL)
+               BN_MONT_CTX_free((BN_MONT_CTX *)r->method_mont_p);
        Free(r);
        }
 
-int DH_size(dh)
-DH *dh;
+int DH_size(DH *dh)
        {
        return(BN_num_bytes(dh->p));
        }