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)
37 FREERDP_API rdpPrivateKey* freerdp_key_new(
void);
40 FREERDP_API rdpPrivateKey* freerdp_key_new_from_file(const
char* keyfile);
42 WINPR_ATTR_MALLOC(freerdp_key_free, 1)
44 FREERDP_API rdpPrivateKey* freerdp_key_new_from_pem(const
char* pem);
53 WINPR_ATTR_MALLOC(freerdp_key_free, 1)
55 FREERDP_API rdpPrivateKey* freerdp_key_new_from_file_enc(const
char* keyfile,
56 const
char* password);
65 WINPR_ATTR_MALLOC(freerdp_key_free, 1)
67 FREERDP_API rdpPrivateKey* freerdp_key_new_from_pem_enc(const
char* pem, const
char* password);
70 FREERDP_API BOOL freerdp_key_is_rsa(const rdpPrivateKey* key);
73 FREERDP_API
size_t freerdp_key_get_bits(const rdpPrivateKey* key);
84 WINPR_ATTR_MALLOC(free, 1)
86 FREERDP_API
char* freerdp_key_get_pem(const rdpPrivateKey* key,
size_t* plen,
87 const
char* password);
98 FREERDP_API BOOL freerdp_key_generate(rdpPrivateKey* key, const
char* type,
size_t count, ...);