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);
39 FREERDP_API rdpPrivateKey* freerdp_key_new_from_file(const
char* keyfile);
41 WINPR_ATTR_MALLOC(freerdp_key_free, 1)
43 FREERDP_API rdpPrivateKey* freerdp_key_new_from_pem(const
char* pem);
52 WINPR_ATTR_MALLOC(freerdp_key_free, 1)
54 FREERDP_API rdpPrivateKey* freerdp_key_new_from_file_enc(const
char* keyfile,
55 const
char* password);
64 WINPR_ATTR_MALLOC(freerdp_key_free, 1)
66 FREERDP_API rdpPrivateKey* freerdp_key_new_from_pem_enc(const
char* pem, const
char* password);
68 FREERDP_API BOOL freerdp_key_is_rsa(const rdpPrivateKey* key);
70 FREERDP_API
size_t freerdp_key_get_bits(const rdpPrivateKey* key);
81 WINPR_ATTR_MALLOC(free, 1)
83 FREERDP_API
char* freerdp_key_get_pem(const rdpPrivateKey* key,
size_t* plen,
84 const
char* password);
94 FREERDP_API BOOL freerdp_key_generate(rdpPrivateKey* key, const
char* type,
size_t count, ...);