21 #ifndef FREERDP_LIB_CORE_PRIVATEKEY_H
22 #define FREERDP_LIB_CORE_PRIVATEKEY_H
24 #include <freerdp/api.h>
25 #include <freerdp/crypto/crypto.h>
26 #include <freerdp/crypto/privatekey.h>
28 #include <openssl/rsa.h>
29 #include <openssl/evp.h>
36 enum FREERDP_KEY_PARAM
38 FREERDP_KEY_PARAM_RSA_D,
39 FREERDP_KEY_PARAM_RSA_E,
40 FREERDP_KEY_PARAM_RSA_N
43 FREERDP_LOCAL rdpPrivateKey* freerdp_key_clone(
const rdpPrivateKey* key);
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);
48 FREERDP_LOCAL BOOL freerdp_key_generate(rdpPrivateKey* key,
size_t bits);
53 FREERDP_LOCAL EVP_PKEY* freerdp_key_get_evp_pkey(
const rdpPrivateKey* key);
55 FREERDP_LOCAL BYTE* freerdp_key_get_param(
const rdpPrivateKey* key,
56 enum FREERDP_KEY_PARAM param,
size_t* plength);
58 FREERDP_LOCAL WINPR_DIGEST_CTX* freerdp_key_digest_sign(rdpPrivateKey* key,
59 WINPR_MD_TYPE digest);
61 FREERDP_LOCAL
extern const rdpPrivateKey* priv_key_tssk;