FreeRDP
libfreerdp/crypto/privatekey.h
1 
21 #ifndef FREERDP_LIB_CORE_PRIVATEKEY_H
22 #define FREERDP_LIB_CORE_PRIVATEKEY_H
23 
24 #include <freerdp/api.h>
25 #include <freerdp/crypto/crypto.h>
26 #include <freerdp/crypto/privatekey.h>
27 
28 #include <openssl/rsa.h>
29 #include <openssl/evp.h>
30 
31 #ifdef __cplusplus
32 extern "C"
33 {
34 #endif
35 
36  enum FREERDP_KEY_PARAM
37  {
38  FREERDP_KEY_PARAM_RSA_D,
39  FREERDP_KEY_PARAM_RSA_E,
40  FREERDP_KEY_PARAM_RSA_N
41  };
42 
43  FREERDP_LOCAL rdpPrivateKey* freerdp_key_clone(const rdpPrivateKey* key);
44 
45  FREERDP_LOCAL const rdpCertInfo* freerdp_key_get_info(const rdpPrivateKey* key);
46  FREERDP_LOCAL const BYTE* freerdp_key_get_exponent(const rdpPrivateKey* key, size_t* plength);
47 
48  FREERDP_LOCAL BOOL freerdp_key_generate(rdpPrivateKey* key, size_t bits);
49 
53  FREERDP_LOCAL EVP_PKEY* freerdp_key_get_evp_pkey(const rdpPrivateKey* key);
54 
55  FREERDP_LOCAL BYTE* freerdp_key_get_param(const rdpPrivateKey* key,
56  enum FREERDP_KEY_PARAM param, size_t* plength);
57 
58  FREERDP_LOCAL WINPR_DIGEST_CTX* freerdp_key_digest_sign(rdpPrivateKey* key,
59  WINPR_MD_TYPE digest);
60 
61  FREERDP_LOCAL extern const rdpPrivateKey* priv_key_tssk;
62 
63 #ifdef __cplusplus
64 }
65 #endif
66 
67 #endif /* FREERDP_LIB_CORE_PRIVATEKEY_H */