certificate.h (2713B)
1/** 2 * FreeRDP: A Remote Desktop Protocol Implementation 3 * Certificate Handling 4 * 5 * Copyright 2011-2012 Marc-Andre Moreau <marcandre.moreau@gmail.com> 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20#ifndef FREERDP_CRYPTO_CERTIFICATE_H 21#define FREERDP_CRYPTO_CERTIFICATE_H 22 23typedef struct rdp_certificate_data rdpCertificateData; 24typedef struct rdp_certificate_store rdpCertificateStore; 25 26#include <freerdp/crypto/ber.h> 27#include <freerdp/crypto/crypto.h> 28 29#include <freerdp/api.h> 30#include <freerdp/settings.h> 31 32#include <winpr/print.h> 33#include <winpr/stream.h> 34 35struct rdp_certificate_data 36{ 37 char* hostname; 38 UINT16 port; 39 char* subject; 40 char* issuer; 41 char* fingerprint; 42}; 43 44struct rdp_certificate_store 45{ 46 char* path; 47 char* file; 48 char* legacy_file; 49 rdpSettings* settings; 50 rdpCertificateData* certificate_data; 51}; 52 53#ifdef __cplusplus 54extern "C" 55{ 56#endif 57 58 FREERDP_API rdpCertificateData* certificate_data_new(const char* hostname, UINT16 port, 59 const char* subject, const char* issuer, 60 const char* fingerprint); 61 FREERDP_API void certificate_data_free(rdpCertificateData* certificate_data); 62 FREERDP_API rdpCertificateStore* certificate_store_new(rdpSettings* settings); 63 FREERDP_API BOOL certificate_data_replace(rdpCertificateStore* certificate_store, 64 rdpCertificateData* certificate_data); 65 FREERDP_API void certificate_store_free(rdpCertificateStore* certificate_store); 66 FREERDP_API int certificate_data_match(rdpCertificateStore* certificate_store, 67 rdpCertificateData* certificate_data); 68 FREERDP_API BOOL certificate_data_print(rdpCertificateStore* certificate_store, 69 rdpCertificateData* certificate_data); 70 FREERDP_API BOOL certificate_get_stored_data(rdpCertificateStore* certificate_store, 71 rdpCertificateData* certificate_data, 72 char** subject, char** issuer, char** fingerprint); 73 74#ifdef __cplusplus 75} 76#endif 77 78#endif /* FREERDP_CRYPTO_CERTIFICATE_H */