summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/dh/dh_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/dh/dh_lib.c')
-rw-r--r--src/lib/libcrypto/dh/dh_lib.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/lib/libcrypto/dh/dh_lib.c b/src/lib/libcrypto/dh/dh_lib.c
index a300b38396..61e0720e8a 100644
--- a/src/lib/libcrypto/dh/dh_lib.c
+++ b/src/lib/libcrypto/dh/dh_lib.c
@@ -58,12 +58,12 @@
58 58
59#include <stdio.h> 59#include <stdio.h>
60#include "cryptlib.h" 60#include "cryptlib.h"
61#include "bn.h" 61#include <openssl/bn.h>
62#include "dh.h" 62#include <openssl/dh.h>
63 63
64char *DH_version="Diffie-Hellman part of SSLeay 0.9.0b 29-Jun-1998"; 64const char *DH_version="Diffie-Hellman" OPENSSL_VERSION_PTEXT;
65 65
66DH *DH_new() 66DH *DH_new(void)
67 { 67 {
68 DH *ret; 68 DH *ret;
69 69
@@ -80,21 +80,24 @@ DH *DH_new()
80 ret->length=0; 80 ret->length=0;
81 ret->pub_key=NULL; 81 ret->pub_key=NULL;
82 ret->priv_key=NULL; 82 ret->priv_key=NULL;
83 ret->flags=DH_FLAG_CACHE_MONT_P;
84 ret->method_mont_p=NULL;
83 return(ret); 85 return(ret);
84 } 86 }
85 87
86void DH_free(r) 88void DH_free(DH *r)
87DH *r;
88 { 89 {
90 if(r == NULL) return;
89 if (r->p != NULL) BN_clear_free(r->p); 91 if (r->p != NULL) BN_clear_free(r->p);
90 if (r->g != NULL) BN_clear_free(r->g); 92 if (r->g != NULL) BN_clear_free(r->g);
91 if (r->pub_key != NULL) BN_clear_free(r->pub_key); 93 if (r->pub_key != NULL) BN_clear_free(r->pub_key);
92 if (r->priv_key != NULL) BN_clear_free(r->priv_key); 94 if (r->priv_key != NULL) BN_clear_free(r->priv_key);
95 if (r->method_mont_p != NULL)
96 BN_MONT_CTX_free((BN_MONT_CTX *)r->method_mont_p);
93 Free(r); 97 Free(r);
94 } 98 }
95 99
96int DH_size(dh) 100int DH_size(DH *dh)
97DH *dh;
98 { 101 {
99 return(BN_num_bytes(dh->p)); 102 return(BN_num_bytes(dh->p));
100 } 103 }