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