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;