JunkBox_Lib  1.10.2
dh_tool.h
Go to the documentation of this file.
1 #ifndef __JBXL_DH_TOOL_H_
2 #define __JBXL_DH_TOOL_H_
3 
4 #include "xtools.h"
5 #include "asn1_tool.h"
6 
7 #ifndef HAVE_OPENSSL_SSL_H
8 #ifndef DISABLE_SSL
9 #define DISABLE_SSL
10 #endif
11 #endif
12 
13 #ifdef DISABLE_SSL
14 #undef ENABLE_SSL
15 #endif
16 
17 
18 #ifdef ENABLE_SSL
19 
20 
35 #include <openssl/crypto.h>
36 #include <openssl/x509.h>
37 #include <openssl/pem.h>
38 #include <openssl/err.h>
39 
40 #include <openssl/ssl.h>
41 #include <openssl/evp.h>
42 #include <openssl/rand.h>
43 
44 #if OPENSSL_VERSION_NUMBER >= 0x30000000L
45 #include <openssl/core_names.h>
46 #endif
47 
48 
49 #ifdef WIN32
50 #pragma comment(lib, "openssl.lib")
51 #endif
52 
53 #if OPENSSL_VERSION_NUMBER >= 0x30000000L
54  EVP_PKEY* JBXL_DH_new(OSSL_PARAM* params, int ks);
55 
56  #define JBXL_DH EVP_PKEY
57  #define JBXL_DH_free(p) EVP_PKEY_free((p))
58  #define JBXL_DH_size(p) EVP_PKEY_get_size((p))
59 #else
60  #define JBXL_DH DH
61  #define JBXL_DH_free(p) DH_free((p))
62  #define JBXL_DH_size(p) DH_size((p))
63 #endif
64 
65 
66 // Diffie-Hellman
67 
68 int save_DHspki_with_private(Buffer pki, FILE* fp, JBXL_DH* dhkey);
69 Buffer read_DHspki_with_private(FILE* fp, JBXL_DH** p_dhkey);
70 
71 Buffer get_DHspki_ff(char* fn, int sz, JBXL_DH** p_dhkey);
72 #define get_DHspki_file(p, s, d) get_DHspki_ff((p), (s), (d))
73 
74 Buffer gen_DHspki(int ks, JBXL_DH** p_dhkey);
75 Buffer gen_DHspki_fs(Buffer pki, JBXL_DH** p_dhkey);
76 
77 Buffer get_DHsharedkey (Buffer pki, JBXL_DH* dhkey);
78 Buffer get_DHsharedkey_fY(Buffer ykey, JBXL_DH* dhkey);
79 
80 Buffer get_DHYkey(Buffer param);
81 Buffer get_DHPkey(Buffer param);
82 Buffer get_DHGkey(Buffer param);
83 Buffer get_DHalgorism(Buffer param);
84 Buffer get_DHprivatekey(JBXL_DH* dhkey);
85 
86 Buffer join_DHpubkey(Buffer param, Buffer key);
87 
88 
89 #endif // DISABLE_SSL
90 
91 #endif // __JBXL_SSL_TOOL_H_
92 
ASN.1/DER 用ライブラリヘッダ
Definition: buffer.h:35
汎用拡張ツールヘッダ