21#ifndef FREERDP_CRYPTO_PRIVATEKEY_H 
   22#define FREERDP_CRYPTO_PRIVATEKEY_H 
   24#include <freerdp/api.h> 
   31  typedef struct rdp_private_key rdpPrivateKey;
 
   33  FREERDP_API 
void freerdp_key_free(rdpPrivateKey* key);
 
   35  WINPR_ATTR_MALLOC(freerdp_key_free, 1)
 
   36  FREERDP_API rdpPrivateKey* freerdp_key_new(
void);
 
   38  FREERDP_API rdpPrivateKey* freerdp_key_new_from_file(const 
char* keyfile);
 
   40  WINPR_ATTR_MALLOC(freerdp_key_free, 1)
 
   41  FREERDP_API rdpPrivateKey* freerdp_key_new_from_pem(const 
char* pem);
 
   50  FREERDP_API rdpPrivateKey* freerdp_key_new_from_file_enc(const 
char* keyfile,
 
   51                                                           const 
char* password);
 
   60  WINPR_ATTR_MALLOC(freerdp_key_free, 1)
 
   61  FREERDP_API rdpPrivateKey* freerdp_key_new_from_pem_enc(const 
char* pem, const 
char* password);
 
   63  FREERDP_API BOOL freerdp_key_is_rsa(const rdpPrivateKey* key);
 
   65  FREERDP_API 
size_t freerdp_key_get_bits(const rdpPrivateKey* key);
 
   76  WINPR_ATTR_MALLOC(free, 1)
 
   77  FREERDP_API 
char* freerdp_key_get_pem(const rdpPrivateKey* key, 
size_t* plen,
 
   78                                        const 
char* password);
 
   88  FREERDP_API BOOL freerdp_key_generate(rdpPrivateKey* key, const 
char* type, 
size_t count, ...);