cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

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 */