22#ifndef FREERDP_CRYPTO_CERTIFICATE_STORE_H 
   23#define FREERDP_CRYPTO_CERTIFICATE_STORE_H 
   25#include <freerdp/api.h> 
   26#include <freerdp/settings.h> 
   27#include <freerdp/crypto/certificate_data.h> 
   34  typedef struct rdp_certificate_store rdpCertificateStore;
 
   38    CERT_STORE_NOT_FOUND = 1,
 
   40    CERT_STORE_MISMATCH = -1
 
   41  } freerdp_certificate_store_result;
 
   43  FREERDP_API 
void freerdp_certificate_store_free(rdpCertificateStore* store);
 
   45  WINPR_ATTR_MALLOC(freerdp_certificate_store_free, 1)
 
   46  FREERDP_API rdpCertificateStore* freerdp_certificate_store_new(const rdpSettings* settings);
 
   48  FREERDP_API freerdp_certificate_store_result freerdp_certificate_store_contains_data(
 
   49      rdpCertificateStore* store, const rdpCertificateData* data);
 
   51  WINPR_ATTR_MALLOC(freerdp_certificate_data_free, 1)
 
   52  FREERDP_API rdpCertificateData*
 
   53  freerdp_certificate_store_load_data(rdpCertificateStore* store, const 
char* host, UINT16 port);
 
   55  FREERDP_API BOOL freerdp_certificate_store_save_data(rdpCertificateStore* store,
 
   56                                                       const rdpCertificateData* data);
 
   57  FREERDP_API BOOL freerdp_certificate_store_remove_data(rdpCertificateStore* store,
 
   58                                                         const rdpCertificateData* data);
 
   60  FREERDP_API const 
char*
 
   61  freerdp_certificate_store_get_certs_path(const rdpCertificateStore* store);
 
   62  FREERDP_API const 
char*
 
   63  freerdp_certificate_store_get_hosts_path(const rdpCertificateStore* store);
 
   75  FREERDP_API 
char* freerdp_certificate_store_get_cert_path(const rdpCertificateStore* store,
 
   76                                                            const 
char* host, UINT16 port);