00001 
00002 #ifndef  __JBXL_DH_TOOL_H_
00003 #define  __JBXL_DH_TOOL_H_
00004 
00005 
00006 #include "xtools.h"
00007 #include "asn1_tool.h"
00008 
00009 
00010 #ifndef HAVE_OPENSSL_SSL_H
00011 #ifndef DISABLE_SSL
00012 #define DISABLE_SSL
00013 #endif
00014 #endif
00015 
00016 #ifdef  DISABLE_SSL
00017 #undef  ENABLE_SSL
00018 #endif
00019 
00020 
00021 #ifdef  ENABLE_SSL
00022 
00023 
00038 #include <openssl/crypto.h>
00039 #include <openssl/x509.h>
00040 #include <openssl/pem.h>
00041 #include <openssl/err.h>
00042 
00043 #include <openssl/ssl.h>
00044 #include <openssl/evp.h>
00045 #include <openssl/rand.h>
00046 
00047 
00048 #ifdef  WIN32
00049 #pragma  comment(lib, "openssl.lib")
00050 #endif
00051 
00052 
00053 
00054 int      save_DHspki_with_private(Buffer  pki, FILE* fp, DH* dhkey);
00055 Buffer   read_DHspki_with_private(FILE* fp, DH** p_dhkey);
00056 
00057 Buffer   get_DHspki_ff(char* fn, int sz, DH** p_dhkey);
00058 #define  get_DHspki_file(p, s, d)    get_DHspki_ff((p), (s), (d))
00059 
00060 Buffer   gen_DHspki(int sz, DH** p_dhkey);
00061 Buffer   gen_DHspki_fs(Buffer pki, DH** p_dhkey);
00062 
00063 Buffer   get_DHsharedkey   (Buffer pki,  DH* dhkey);
00064 Buffer   get_DHsharedkey_fY(Buffer ykey, DH* dhkey);
00065 
00066 Buffer   get_DHYkey(Buffer param);
00067 Buffer   get_DHPkey(Buffer param);
00068 Buffer   get_DHGkey(Buffer param);
00069 Buffer   get_DHalgorism(Buffer param);
00070 Buffer   get_DHprivatekey(DH* dhkey);
00071 
00072 Buffer   join_DHpubkey(Buffer param, Buffer key);
00073 
00074 
00075 #endif        //  DISABLE_SSL
00076 
00077 #endif        // __JBXL_SSL_TOOL_H_
00078