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, ...);