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);
51 FREERDP_LOCAL EVP_PKEY* freerdp_key_get_evp_pkey(
const rdpPrivateKey* key);
53 FREERDP_LOCAL BYTE* freerdp_key_get_param(
const rdpPrivateKey* key,
54 enum FREERDP_KEY_PARAM param,
size_t* plength);
56 FREERDP_LOCAL WINPR_DIGEST_CTX* freerdp_key_digest_sign(rdpPrivateKey* key,
57 WINPR_MD_TYPE digest);
59 FREERDP_LOCAL
extern const rdpPrivateKey* priv_key_tssk;