FreeRDP
Loading...
Searching...
No Matches
libfreerdp/crypto/privatekey.h
1
21#ifndef FREERDP_LIB_CORE_PRIVATEKEY_H
22#define FREERDP_LIB_CORE_PRIVATEKEY_H
23
24#include <freerdp/api.h>
25#include <freerdp/crypto/crypto.h>
26#include <freerdp/crypto/privatekey.h>
27
28#include <openssl/rsa.h>
29#include <openssl/evp.h>
30
31#ifdef __cplusplus
32extern "C"
33{
34#endif
35
36 enum FREERDP_KEY_PARAM
37 {
38 FREERDP_KEY_PARAM_RSA_D,
39 FREERDP_KEY_PARAM_RSA_E,
40 FREERDP_KEY_PARAM_RSA_N
41 };
42
43 WINPR_ATTR_MALLOC(freerdp_key_free, 1)
44 WINPR_ATTR_NODISCARD
45 FREERDP_LOCAL rdpPrivateKey* freerdp_key_clone(const rdpPrivateKey* key);
46
47 WINPR_ATTR_NODISCARD
48 FREERDP_LOCAL const rdpCertInfo* freerdp_key_get_info(const rdpPrivateKey* key);
49
50 WINPR_ATTR_NODISCARD
51 FREERDP_LOCAL const BYTE* freerdp_key_get_exponent(const rdpPrivateKey* key, size_t* plength);
52
56 WINPR_ATTR_MALLOC(EVP_PKEY_free, 1)
57 WINPR_ATTR_NODISCARD
58 FREERDP_LOCAL EVP_PKEY* freerdp_key_get_evp_pkey(const rdpPrivateKey* key);
59
60 WINPR_ATTR_MALLOC(free, 1)
61 WINPR_ATTR_NODISCARD
62 FREERDP_LOCAL BYTE* freerdp_key_get_param(const rdpPrivateKey* key,
63 enum FREERDP_KEY_PARAM param, size_t* plength);
64
65 WINPR_ATTR_NODISCARD
66 WINPR_ATTR_MALLOC(winpr_Digest_Free, 1)
67 FREERDP_LOCAL WINPR_DIGEST_CTX* freerdp_key_digest_sign(rdpPrivateKey* key,
68 WINPR_MD_TYPE digest);
69
70 FREERDP_LOCAL extern const rdpPrivateKey* priv_key_tssk;
71
72#ifdef __cplusplus
73}
74#endif
75
76#endif /* FREERDP_LIB_CORE_PRIVATEKEY_H */