74 lines
2.8 KiB
C
74 lines
2.8 KiB
C
//////////////////////////////////////////////////
|
|
// Bakalarska praca //
|
|
// Meno studenta: Tomas Lukac //
|
|
// Veduci BP: prof. Ing. Milos Drutarovsky CSc. //
|
|
// Skola: KEMT FEI TUKE //
|
|
// Datum poslednej upravy: 9.3.2020 //
|
|
//////////////////////////////////////////////////
|
|
|
|
#ifndef __KRYPTOGRAFIA_H__
|
|
#define __KRYPTOGRAFIA_H__
|
|
|
|
#include <wolfssl/ssl.h>
|
|
#include <wolfssl/wolfcrypt/settings.h>
|
|
#include <wolfssl/wolfcrypt/random.h>
|
|
#include <wolfssl/wolfcrypt/ecc.h>
|
|
#include <wolfssl/wolfcrypt/rsa.h>
|
|
#include <wolfssl/wolfcrypt/asn_public.h>
|
|
#include <wolfssl/wolfcrypt/error-crypt.h>
|
|
|
|
int generovat_ecc_certifikat(WOLFSSL_CTX* ctx, int pocet_bitov, ecc_curve_id kluc_krivka, int algoritmus, char* krajina, char* mesto, char* domena, char* email);
|
|
int generovat_rsa_certifikat(WOLFSSL_CTX* ctx, int pocet_bitov, int exponent, int algoritmus, char* krajina, char* mesto, char* domena, char* email);
|
|
|
|
/**
|
|
* nastav_ctx_klient : realizuje vytvorenie a inicializaciu CTX struktury
|
|
* na zaklade verzie tls (client method)
|
|
* @vrati smernik na ctx strukturu
|
|
*/
|
|
WOLFSSL_CTX* nastavit_ctx_klient();
|
|
|
|
/**
|
|
* nastav_ctx_server: realizuje vytvorenie a inicializaciu CTX struktury
|
|
* na zaklade verzie tls (server method)
|
|
* @vrati smernik na ctx strukturu
|
|
*/
|
|
WOLFSSL_CTX* nastavit_ctx_server();
|
|
|
|
/**
|
|
* Zobrazi sifru na ktorej sa strany dohodli
|
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
|
*/
|
|
void zobraz_sifru(WOLFSSL* ssl);
|
|
|
|
/**
|
|
* nastav_sifry: umoznuje manualne nastavit sifrovaci subor
|
|
* @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu
|
|
* @parameter const char* sifry : retazec, ktory sa sklada z nazvov sifier oddelenych pomocou znak ":"
|
|
* vyber sifry zakazeme vlozenim znaku "!" pred danu sifru
|
|
*/
|
|
void nastav_sifry(WOLFSSL_CTX* ctx, const char* sifry);
|
|
|
|
/**
|
|
* nacitat_certifikaty: realizuje nacitanie certifikatov zo suborov do struktury WOLFSSL_CTX
|
|
* @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu
|
|
* @parameter const char* subor_certifikat : absolutna cesta ku suboru s certifikatom vo formate PEM
|
|
* @parameter const char* subor_kluc : absolutna cesta ku suboru so sukromnym klucom vo formate PEM
|
|
* @vrati int : operacia bola uspesna(0), neuspesna(-1)
|
|
*/
|
|
int nacitat_certifikaty(WOLFSSL_CTX* ctx, const char* subor_certifikat, const char* subor_kluc);
|
|
|
|
/**
|
|
* zobraz_certifikat: realizuje vypis udajov extrahovanych z prijateho certifikatu
|
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
|
*/
|
|
void zobraz_certifikat(WOLFSSL* ssl);
|
|
|
|
/**
|
|
* ukoncit_spojenie: realizuje ukoncenie zabezpeceneho tls prenosoveho kanalu
|
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
|
* @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu
|
|
*/
|
|
void ukoncit_spojenie(WOLFSSL *ssl, WOLFSSL_CTX *ctx);
|
|
|
|
#endif
|