..
This commit is contained in:
parent
4ff62a305c
commit
676912ea1a
BIN
certifikaty/autorita/autorita_ecc.der
Normal file
BIN
certifikaty/autorita/autorita_ecc.der
Normal file
Binary file not shown.
BIN
certifikaty/autorita/autorita_kluc_ecc.der
Normal file
BIN
certifikaty/autorita/autorita_kluc_ecc.der
Normal file
Binary file not shown.
BIN
certifikaty/autorita/autorita_kluc_rsa.der
Normal file
BIN
certifikaty/autorita/autorita_kluc_rsa.der
Normal file
Binary file not shown.
BIN
certifikaty/autorita/autorita_rsa.der
Normal file
BIN
certifikaty/autorita/autorita_rsa.der
Normal file
Binary file not shown.
@ -1,8 +0,0 @@
|
|||||||
-----BEGIN EC PARAMETERS-----
|
|
||||||
BggqhkjOPQMBBw==
|
|
||||||
-----END EC PARAMETERS-----
|
|
||||||
-----BEGIN EC PRIVATE KEY-----
|
|
||||||
MHcCAQEEIEuYLm4s3SUBBm7VOdIJq+FlZgRMq+V3o4wQG7VaMgZaoAoGCCqGSM49
|
|
||||||
AwEHoUQDQgAEVL+Z4OXsPkJkgObU3CfMSZK5BqDaavIA3fsPTzKyxsHbvZZNR111
|
|
||||||
BiLEX7tlFvSTIvxo64eB352ys4MFnGDiAQ==
|
|
||||||
-----END EC PRIVATE KEY-----
|
|
@ -1,15 +0,0 @@
|
|||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
MIICWwIBAAKBgQCVKNbLNY4YLbZNe5bpupYKY1ytQiWdU5GPoN1VpBT2BYk36yTd
|
|
||||||
RKvfLwxQwLgBDiI2sifAxq/MIEFgada93dJvw9GfawnLGEDfsd8lVr6cefLJuAHa
|
|
||||||
b4rHy5VDFZuzLyEDgxY+1NvK31efyQCu08GdnTpoHdHIuVQS+EAZnJcOPwIDAQAB
|
|
||||||
AoGAd1OFimnctDEVr6TYlUFEuSjGQoExcEwjneCWUOYEMtE49jgydKV0Tgbodk3G
|
|
||||||
pml1K4aY0NriVo3TX1sshRZJOxGkfxvBNtE15j8uYtb3Gov1I/jV302CROvvRE4y
|
|
||||||
fIl2AIvd5TG92ZOPYu7H22ScnasHWpsw706qQ3yjfP5weukCQQDFMA6NAqaT93ku
|
|
||||||
ClyjSBo/kon39y/XgvyAPg43LIHdkUx4q26PfW9OvwqZ7XHa5eTqBQQF9oUo8gTs
|
|
||||||
UB+SwLqTAkEAwaWrLLApowA5g8Y+MGi1Gf/r7qdQxKRJGnaEyca5EL6avFvWdZEB
|
|
||||||
XivtrIeg5Cy7BWaIgGO8TsPnwtjURTbtJQJAVn2vxDYnbrub0ZAF9jDIIp5aGgO4
|
|
||||||
XmU779xIS/cft1nmGv/G7PVt/zJYqg+2Yvd3oxY0H5Fz8vPFKQoz7yDONQJAFMNh
|
|
||||||
tjnxTPPyNsnj0yb2/CGvt3gjNeJzoC3DESuInl4Bk165gQOaRPGq20vzmWOebfbP
|
|
||||||
fgyznTJuQDslj4JTLQJAd2ryTnOjyc6Cr8RMIMmchZCltdqEIi7vK8BglWJOBtPV
|
|
||||||
8zHyLZeMVlPQhksQW7/+xqhgFWnTMRaG9DW7JN7e7Q==
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
18
certifikaty/klient/vygenerovany_certifikat.pem
Normal file
18
certifikaty/klient/vygenerovany_certifikat.pem
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC9TCCAl6gAwIBAgIQbFsMsUpL4cQYvdnPsNfEozANBgkqhkiG9w0BAQsFADBz
|
||||||
|
MQswCQYDVQQGEwJTSzEKMAgGA1UECAwBLTEPMA0GA1UEBwwGS29zaWNlMREwDwYD
|
||||||
|
VQQKDAhBdXRvcml0YTESMBAGA1UEAwwJbG9jYWwuZGV2MSAwHgYJKoZIhvcNAQkB
|
||||||
|
FhFhdXRvcml0YUB0dWtlLmNvbTAiGA8yMDIwMDMxODEwMzUwOFoYDzIwMjUwMzE4
|
||||||
|
MTAzNTA4WjB3MQswCQYDVQQGEwJTUjEKMAgGA1UECAwBLTEPMA0GA1UEBwwGS29z
|
||||||
|
aWNlMQowCAYDVQQKDAEtMQowCAYDVQQLDAEtMRIwEAYDVQQDDAlsb2NhbC5kZXYx
|
||||||
|
HzAdBgkqhkiG9w0BCQEWEGtsaWVudEBrbGllbnQuc2swggEiMA0GCSqGSIb3DQEB
|
||||||
|
AQUAA4IBDwAwggEKAoIBAQDwvJLGxRiSsplAIeOWOeMa4xeh8mVwTVZgJjuOK2xv
|
||||||
|
Gze6NZ/or9OGHqBMat3rfW9xZazAg+UoL4TzqokVyjo1KQxGwbHuZQdqQ3/MgWnm
|
||||||
|
1h2cdLicF8hMQtawYhqp1me9+Xh89y+tiBBAAilzGzPRQayYoMoEd9Ics8XPbSX/
|
||||||
|
qEzSdVeuqb7AIQIDZ7v4DTnQIarJDFtzE4Rd37Dq+ThMiipe292FKbRqfyhU5974
|
||||||
|
QtAfTQ6ReYzuRnO5bveAx20iOHXqhM2ckUNzuAKRk8DKEdh/ucPpJTF5rkJYVmU0
|
||||||
|
6qpVAPdfSrovuNe6r3v9JGBCWOb8XPq9cLE0PwRd2U1nAgMBAAEwDQYJKoZIhvcN
|
||||||
|
AQELBQADgYEAUFd0OaWxtikqd5MRx8LfOKfIoadPxnm7/os6fR8D1K8HMVuinbc4
|
||||||
|
6My0jDwVIQQP0ovlGHhntbH+EsXwoB15O2EPtfh5kQjgocKdZitfH3jgaW3ndm1B
|
||||||
|
RAKOmCfs29IBHN/ZUX8hBaoSfUWJPvwL2DcxzwoeI+h5VRHY68f6cI4=
|
||||||
|
-----END CERTIFICATE-----
|
27
certifikaty/klient/vygenerovany_kluc.key
Normal file
27
certifikaty/klient/vygenerovany_kluc.key
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEA8LySxsUYkrKZQCHjljnjGuMXofJlcE1WYCY7jitsbxs3ujWf
|
||||||
|
6K/Thh6gTGrd631vcWWswIPlKC+E86qJFco6NSkMRsGx7mUHakN/zIFp5tYdnHS4
|
||||||
|
nBfITELWsGIaqdZnvfl4fPcvrYgQQAIpcxsz0UGsmKDKBHfSHLPFz20l/6hM0nVX
|
||||||
|
rqm+wCECA2e7+A050CGqyQxbcxOEXd+w6vk4TIoqXtvdhSm0an8oVOfe+ELQH00O
|
||||||
|
kXmM7kZzuW73gMdtIjh16oTNnJFDc7gCkZPAyhHYf7nD6SUxea5CWFZlNOqqVQD3
|
||||||
|
X0q6L7jXuq97/SRgQljm/Fz6vXCxND8EXdlNZwIDAQABAoIBAAIcLun+V9xL53aB
|
||||||
|
eU2IwwGixFnSP9ReuaOI/n2kjfjoom4W2T1a6xDPkDSpYsj+i49CGXMoiYIrsaKM
|
||||||
|
xvguuCgR5S9jHai0bKRrmRnJ8EBBG44aE7E6zTHa3ph2MVKFIX97DXTP5X+0vkjl
|
||||||
|
lGzITe8OtRqNu6eTfSxdwuj1zQwkG6hISEjIQuqy01wZLKGxLqp9FXfT1wSmpHCI
|
||||||
|
BTqSrVAnwrDVQxkDS7+B2bipy48JMRIZ1TOjkC+ELNiMEZgpMOhTM/0WjYUP0elC
|
||||||
|
SoxdeDN9oo8IWoyL8wEMVl9apMRpoT3e2eI7GFHhvGyJpY/PIBpevbKEmxUeYnKu
|
||||||
|
2pI1eRUCgYEA+NBPc8WyRDhcDwm+pdcvpozOv9JuEkX6hLqTSAeqYLFSZDoei4bs
|
||||||
|
6nkFHHE9OCwQ2xtoP4dz/BZRW/sO9nU04FmNLqPS/pfxEUN3BSABhi5lvwh7bgf4
|
||||||
|
jw1P2IixA4AYkOAaJGl8LGor3GIJ5RnjxNYj7eNDbfVL01jwVMvKvlMCgYEA97CK
|
||||||
|
zOdtB07oCav4lcMMGqbGsDQFJ9x+lGUHs/OXCTNf7MgaxHErw5hk/GPqM7YrA93V
|
||||||
|
arpa5PG/y0fy3IswjhMHwVwHKw8yOWN6oV+Ud4yAXUYurNNpkv9BTEKrSpy/vvM6
|
||||||
|
et5NPXki1UqkkzzCAL6hSdrmvYUTPzAl38pzih0CgYEA5huw/z786P6+lOHMQY/L
|
||||||
|
b9qVcu3oAlpZn9r1Tw5X0ejsa+kcSqnT/d1CjtVjasnGJP0p4mchKyhwwgJkCibH
|
||||||
|
ah0n5tR31CEtP2wHbOP2xOOwEYaEsHQKujHzgCyamMQk9Adt5fLwdhsSyVSaFhll
|
||||||
|
fqsUu3MM72qGX8XHLoTy0iUCgYAx7AI9xFNEStIXyPKEdNiGsqCPORzk6NsWW7qO
|
||||||
|
uYTylMk7tyU1/L1eYePQvu6gV5IZ6GcwaLkTNep7NVgsvV0e9ZT1ku/a7OgpivRX
|
||||||
|
fCU3ZzkkE5YqvT2lJA9sKG/PzQIUoX9i7lVRE45CwRWkm3VaoxFtClLBVgYIEVNA
|
||||||
|
5NQevQKBgCv+Gl7uk1N9VrlD2XwwmHCWooqVr3FPOq6ztX4014DzZmxkyem9GJGZ
|
||||||
|
uyuzM4bKjb/lmk4RI19VZoExyt+7K3eWUSUQNS6Erhcjx74+vSngKOV2TNiGnByx
|
||||||
|
oJoUlKquhEijlX/pJtH8812EYGtm5COkRA2QkWfr6hb6KQtz4wq7
|
||||||
|
-----END RSA PRIVATE KEY-----
|
18
certifikaty/server/vygenerovany_certifikat.pem
Normal file
18
certifikaty/server/vygenerovany_certifikat.pem
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC9TCCAl6gAwIBAgIQbFmaYwjF3/SehWXgHj8HwjANBgkqhkiG9w0BAQsFADBz
|
||||||
|
MQswCQYDVQQGEwJTSzEKMAgGA1UECAwBLTEPMA0GA1UEBwwGS29zaWNlMREwDwYD
|
||||||
|
VQQKDAhBdXRvcml0YTESMBAGA1UEAwwJbG9jYWwuZGV2MSAwHgYJKoZIhvcNAQkB
|
||||||
|
FhFhdXRvcml0YUB0dWtlLmNvbTAiGA8yMDIwMDMxODEyMjkyOVoYDzIwMjUwMzE4
|
||||||
|
MTIyOTI5WjB3MQswCQYDVQQGEwJTUjEKMAgGA1UECAwBLTEPMA0GA1UEBwwGS29z
|
||||||
|
aWNlMQowCAYDVQQKDAEtMQowCAYDVQQLDAEtMRIwEAYDVQQDDAlsb2NhbC5kZXYx
|
||||||
|
HzAdBgkqhkiG9w0BCQEWEHNlcnZlckBzZXJ2ZXIuc2swggEiMA0GCSqGSIb3DQEB
|
||||||
|
AQUAA4IBDwAwggEKAoIBAQC2anE0gd6zuFQw2T+PLZg9KHlm9+TjrkHXc3zxFw4g
|
||||||
|
uNgGxwi4TMGoUMVyUsEWtBHYkF/Zx5fWD292RItXd5GsrvyUjOgOF9BMfAh8MkHa
|
||||||
|
HqQiFOzw7LAwbzCiNU82ZIWAbQvivnLXTmygFPbB+LlDcCLS3U738x46rrQaHuGe
|
||||||
|
wNj4BBDSMVqAeN3z966Yf1YIXIe4rPQivRTGgtJYUfjL4b9sB6dgNmBUzmI5DRil
|
||||||
|
olEwkHm9AuZ2mwfHcBUvCc24iN9q8lY6fjAqIQo0+NFYhvi2jibvUTy6dOxEUbKg
|
||||||
|
R14mye/vF+fNaT2NHMVBHqYxA0dnPw3nQQMOuR3WCt9zAgMBAAEwDQYJKoZIhvcN
|
||||||
|
AQELBQADgYEAiBxxdJm1VUxUVsY31LMpe3pIbicSVi+91rtsii02tbMEBl8o4UKQ
|
||||||
|
xfJyZaWQW0gZ3rcgcquYU/SKpsjiYwzPjx10IX8htHibmgSS4EC5L5poKBncjSmC
|
||||||
|
tWmJEILZl9dXPUrIOuJOa4hBeK54chVFsszm2mhbJsYGvOA8z0gcc94=
|
||||||
|
-----END CERTIFICATE-----
|
27
certifikaty/server/vygenerovany_kluc.key
Normal file
27
certifikaty/server/vygenerovany_kluc.key
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpAIBAAKCAQEAtmpxNIHes7hUMNk/jy2YPSh5Zvfk465B13N88RcOILjYBscI
|
||||||
|
uEzBqFDFclLBFrQR2JBf2ceX1g9vdkSLV3eRrK78lIzoDhfQTHwIfDJB2h6kIhTs
|
||||||
|
8OywMG8wojVPNmSFgG0L4r5y105soBT2wfi5Q3Ai0t1O9/MeOq60Gh7hnsDY+AQQ
|
||||||
|
0jFagHjd8/eumH9WCFyHuKz0Ir0UxoLSWFH4y+G/bAenYDZgVM5iOQ0YpaJRMJB5
|
||||||
|
vQLmdpsHx3AVLwnNuIjfavJWOn4wKiEKNPjRWIb4to4m71E8unTsRFGyoEdeJsnv
|
||||||
|
7xfnzWk9jRzFQR6mMQNHZz8N50EDDrkd1grfcwIDAQABAoIBAAja3JPymfTvcGbO
|
||||||
|
pPSLqhA4nsFjgeDrh0FbgdJ85AVX87n11Mky21O9rVgCBw2AaugFr3bK5ualPoE8
|
||||||
|
jTxkZCtAc1JiugEKduS/lfSGxrDn5op2VD99vdpxYKhUc3vtypfpXeJWjGHslKlQ
|
||||||
|
sInJ9nRSRTPR5RDJjyDEyklaURQmWLHAs3JcZ6pRkpLvPo8MJP5iVfoXze0QZg+4
|
||||||
|
Zvs+xAtpoy9I06MSi+J4e6EzLTRFXXkmkVHxMK1wKw9yNl0tl1+eQ3i5lzJmiTev
|
||||||
|
noRVkmBRhATcdEnlSJVdiUOrZAmGS1As+IQiLrPyO7AKG7Ukr2lJHhLm/C6YblzR
|
||||||
|
QeHefIECgYEA5hiY4uJZxAidSzBpq/1Osan66uYC3e5FYm9KSvYQbe6GgLTM0e4d
|
||||||
|
3CRbEYLBTVf4BCtRUFyMRMMvzvme+oFZf38QdFaxdnyYwmzA1+Ls7LsZjPYF2oJE
|
||||||
|
b+oMi1UEJs8jXJkQ5tuI5SP/kasBxPRi/T1WANpduPzQCzzvjs6xxrkCgYEAyvOx
|
||||||
|
JRtqM26+2rdkQrClRAf1HFv2ej0vjyOhIuEK4WG6NFdqqm3zQzIHvxaGuAkBfyNk
|
||||||
|
g+QEQvbx8PLx5bmaDTcV48Hf40h8a4W7HFRK3sa+Zk2w+ih4iW+RC6XBOyqmTJEi
|
||||||
|
IGCXlIP/6RJZkrT9YrsyzI6edHCdatgKd9EHQYsCgYBDW3X+DQb8JQ1uwlhc2cVc
|
||||||
|
qwbiFr1GHIdBPpUABrJejBHhwYun9M3W8Omb4awWqSbYiZm/Lah+RKlNLLPGX3FE
|
||||||
|
qny1od9HcUgCunVlfW+gCVF8e1TRV4sTO++6JgQWHFMcu05AVonnkjcxfF8DOgt0
|
||||||
|
WK1BiKshCRkaARebtZRDOQKBgQCGWxG42Q9TgUtEDAiJxduC0CnKXm8ruXnUruer
|
||||||
|
6YOEdWgJ4p0wup1CrMpIDKefCgc9nbabQcY4drbwpkTRqi979C2/m8eV9ZS4sc2P
|
||||||
|
EZaHKNc/bstssIIrqfpB1be4baGuKp6HBKsUnNY7+/PklYDxbbBRj1EDENKFuwQj
|
||||||
|
EfRVxQKBgQCIRBRzvyRJXmYMfvFXmDWeTe3koj+hjT3O8jXvojURsiBOL714Avsl
|
||||||
|
7ENawNWqWUC1ZbfsLmB5G0BrQ7GgXHBXAE1lXEXLBfxt1n43s9sUsuZMKcrw20l7
|
||||||
|
W+NvLcec5eeXdxetkqOTqi7PG4tHMDeRKlLdgo+MumjI+Muw32iVqw==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
@ -1,18 +1,18 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
-----BEGIN RSA PRIVATE KEY-----
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
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
|
||||||
-----END RSA PRIVATE KEY-----
|
-----END RSA PRIVATE KEY-----
|
||||||
|
@ -9,6 +9,13 @@
|
|||||||
#include "komunikacia.h"
|
#include "komunikacia.h"
|
||||||
#include "kryptografia.h"
|
#include "kryptografia.h"
|
||||||
|
|
||||||
|
hashovacia_funkcia h_funkcia;
|
||||||
|
|
||||||
|
void nastav_funkciu(hashovacia_funkcia funkcia)
|
||||||
|
{
|
||||||
|
h_funkcia = funkcia;
|
||||||
|
}
|
||||||
|
|
||||||
int poslat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, char* cesta)
|
int poslat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, char* cesta)
|
||||||
{
|
{
|
||||||
int uspech;
|
int uspech;
|
||||||
@ -48,17 +55,6 @@ int poslat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, char* cesta)
|
|||||||
fseek(subor, 0, SEEK_SET);
|
fseek(subor, 0, SEEK_SET);
|
||||||
fread(pole, 1, velkost, subor);
|
fread(pole, 1, velkost, subor);
|
||||||
fclose(subor);
|
fclose(subor);
|
||||||
|
|
||||||
//generovanie a poslanie kontrolneho suctu serveru pre kontrolu
|
|
||||||
byte* hash;
|
|
||||||
hash = generovat_hash(cesta);
|
|
||||||
for(int i = 0; i < VELKOST_HASHU; i++) hash[i] = (char)hash[i];
|
|
||||||
wolfSSL_write(ssl, hash, VELKOST_HASHU);
|
|
||||||
if(uspech <= 0)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "Nastala chyba pri posielani hashu.\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//posielanie jednotlivych bajtov
|
//posielanie jednotlivych bajtov
|
||||||
for(int i = 0; i < velkost + 1; ++i)
|
for(int i = 0; i < velkost + 1; ++i)
|
||||||
@ -72,6 +68,21 @@ int poslat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, char* cesta)
|
|||||||
pole_uk += 1;
|
pole_uk += 1;
|
||||||
}
|
}
|
||||||
printf("Subor bol uspesne odoslany.\n");
|
printf("Subor bol uspesne odoslany.\n");
|
||||||
|
|
||||||
|
//generovanie a poslanie kontrolneho suctu serveru pre kontrolu
|
||||||
|
byte* kontrolny_sucet;
|
||||||
|
int velkost_kontrolneho_suctu;
|
||||||
|
kontrolny_sucet = generovat_kontrolny_sucet_suboru(h_funkcia, cesta, &velkost_kontrolneho_suctu);
|
||||||
|
for(int i = 0; i < velkost_kontrolneho_suctu; i++)
|
||||||
|
{
|
||||||
|
kontrolny_sucet[i] = (char)kontrolny_sucet[i];
|
||||||
|
}
|
||||||
|
wolfSSL_write(ssl, kontrolny_sucet, velkost_kontrolneho_suctu);
|
||||||
|
if(uspech <= 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri posielani kontrolneho suctu.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -109,15 +120,6 @@ int prijat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx)
|
|||||||
printf("Velkost suboru: %s bajtov\n", velkost_suboru);
|
printf("Velkost suboru: %s bajtov\n", velkost_suboru);
|
||||||
}
|
}
|
||||||
|
|
||||||
//prijem hashu, ktory vypocital server
|
|
||||||
char* prijaty_hash = calloc(VELKOST_HASHU, sizeof(char));
|
|
||||||
uspech = wolfSSL_read(ssl, prijaty_hash, VELKOST_HASHU);
|
|
||||||
if(uspech <= 0)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "Nastala chyba pri prijati hashu\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//prijem jednotlivych bajtov
|
//prijem jednotlivych bajtov
|
||||||
char* pole = malloc(velkost);
|
char* pole = malloc(velkost);
|
||||||
char* pole_uk = pole;
|
char* pole_uk = pole;
|
||||||
@ -126,24 +128,42 @@ int prijat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx)
|
|||||||
uspech = wolfSSL_read(ssl, pole_uk, velkost);
|
uspech = wolfSSL_read(ssl, pole_uk, velkost);
|
||||||
if(uspech <= 0)
|
if(uspech <= 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri prijati suboru\n");
|
fprintf(stderr, "Nastala chyba pri prijati suboru.\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
pole_uk += 1;
|
pole_uk += 1;
|
||||||
}
|
}
|
||||||
printf("Subor bol uspesne prijaty.\n");
|
printf("Subor bol uspesne prijaty.\n");
|
||||||
|
|
||||||
|
//vypocet vlastneho kontrolneho suctu
|
||||||
|
byte* kontrolny_sucet;
|
||||||
|
int velkost_kontrolneho_suctu;
|
||||||
|
kontrolny_sucet = generovat_kontrolny_sucet_suboru(h_funkcia, cesta, &velkost_kontrolneho_suctu);
|
||||||
|
|
||||||
|
//prijem hashu, ktory vypocital server
|
||||||
|
char* prijaty_kontrolny_sucet = calloc(velkost_kontrolneho_suctu, sizeof(char));
|
||||||
|
uspech = wolfSSL_read(ssl, prijaty_kontrolny_sucet, velkost_kontrolneho_suctu);
|
||||||
|
if(uspech <= 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri prijati kontrolneho suctu.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
//kontrola ci sa prijaty a vypocitany kontrolny sucet suboru zhoduju
|
//kontrola ci sa prijaty a vypocitany kontrolny sucet suboru zhoduju
|
||||||
byte* vypocitany_hash;
|
for(int i = 0; i < velkost_kontrolneho_suctu; i++)
|
||||||
vypocitany_hash = generovat_hash(cesta);
|
{
|
||||||
for(int i = 0; i < VELKOST_HASHU; i++) vypocitany_hash[i] = (char)vypocitany_hash[i];
|
kontrolny_sucet[i] = (char)kontrolny_sucet[i];
|
||||||
if(!strcmp(prijaty_hash, vypocitany_hash))
|
}
|
||||||
|
printf("%s\n", prijaty_kontrolny_sucet);
|
||||||
|
printf("%s\n", kontrolny_sucet);
|
||||||
|
if(!strcmp(prijaty_kontrolny_sucet, kontrolny_sucet))
|
||||||
{
|
{
|
||||||
printf("Subor prisiel v poriadku.\n");
|
printf("Subor prisiel v poriadku.\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("Subor neprisiel v poriadku.\n");
|
fprintf(stderr, "Kontrolne sucty sa nezhoduju.\n");
|
||||||
|
printf("Subor neprisiel v poriadku alebo neboli pouzite rovnake funkcie.\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,9 +14,10 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <wolfssl/ssl.h>
|
#include <wolfssl/ssl.h>
|
||||||
|
|
||||||
|
#include "kryptografia.h"
|
||||||
|
|
||||||
#define VELKOST_CESTY 64 //velkost retazca, kt. uklada lokaciu suboru
|
#define VELKOST_CESTY 64 //velkost retazca, kt. uklada lokaciu suboru
|
||||||
#define VELKOST_SUBOR 32 //velkost retazca, kt. uklada velkost prenasaneho suboru
|
#define VELKOST_SUBOR 32 //velkost retazca, kt. uklada velkost prenasaneho suboru
|
||||||
#define VELKOST_HASHU 20
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
//makro ktore urcuje win distribuciu ak nieje detekovana
|
//makro ktore urcuje win distribuciu ak nieje detekovana
|
||||||
@ -112,4 +113,12 @@ int poslat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, char* cesta);
|
|||||||
*/
|
*/
|
||||||
int prijat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx);
|
int prijat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nastav_funkciu: nastavi hashovaciu funkciu ktora bude pouzita pri vypocte kontrolneho suctu suboru
|
||||||
|
* @paramater hashovacia_funkcia funkcia : nazov hashovacej funkcie
|
||||||
|
moznosti: funkcia_SHA, funkcia_SHA224, funkcia_SHA256, funkcia_SHA384, funkcia_SHA512, funkcia_BLAKE2B, funkcia_RIPEMD160
|
||||||
|
*/
|
||||||
|
void nastav_funkciu(hashovacia_funkcia funkcia);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -49,35 +49,43 @@ void zobraz_sifru(WOLFSSL* ssl)
|
|||||||
|
|
||||||
int generovat_rsa_certifikat(int pocet_bitov, int exponent, int algoritmus, char* krajina, char* mesto, char* domena, char* email)
|
int generovat_rsa_certifikat(int pocet_bitov, int exponent, int algoritmus, char* krajina, char* mesto, char* domena, char* email)
|
||||||
{
|
{
|
||||||
int uspech;
|
int uspech = 0;
|
||||||
|
|
||||||
//premenne pre ukladanie dat autority
|
//premenne pre ukladanie dat autority
|
||||||
RsaKey kluc_autorita;
|
RsaKey kluc_autorita;
|
||||||
byte pem_autorita[VELKOST_BUFFERA];
|
byte der_autorita_certifikat[VELKOST_BUFFERA];
|
||||||
word32 pem_autorita_velkost;
|
int der_autorita_certifikat_velkost;
|
||||||
byte der_autorita[VELKOST_BUFFERA];
|
byte der_autorita_kluc[VELKOST_BUFFERA];
|
||||||
word32 der_autorita_velkost;
|
int der_autorita_kluc_velkost;
|
||||||
|
|
||||||
//vytvorenie struktury RsaKey autority zo sukromneho kluca vo formate PEM ulozeneho v subore certifikaty/autorita.key
|
//nacitanie certifikatu autority vo formate DER ulozeneho v subore certifikaty/autorita/autorita_rsa.der
|
||||||
memset(pem_autorita, 0, sizeof(pem_autorita));
|
printf("Nacitavanie certifikatu autority zo suboru.\n");
|
||||||
FILE* subor = fopen("../certifikaty/autorita_rsa.key", "rb");
|
FILE* subor = fopen("../certifikaty/autorita/autorita_rsa.der", "rb");
|
||||||
pem_autorita_velkost = fread(pem_autorita, 1, VELKOST_BUFFERA, subor);
|
der_autorita_certifikat_velkost = fread(der_autorita_certifikat, 1, VELKOST_BUFFERA , subor);
|
||||||
if(pem_autorita_velkost < 0)
|
if(der_autorita_certifikat_velkost < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nepodarilo sa nacitat obsah suboru\n");
|
fprintf(stderr, "Nepodarilo sa nacitat obsah suboru. \n");
|
||||||
}
|
|
||||||
word32 index = 0; //nastavi odkial zacat citat buffer
|
|
||||||
memset(der_autorita, 0, sizeof(der_autorita));
|
|
||||||
der_autorita_velkost = wolfSSL_KeyPemToDer(pem_autorita, sizeof(pem_autorita), der_autorita, sizeof(der_autorita), "");
|
|
||||||
wc_InitRsaKey(&kluc_autorita, 0);
|
|
||||||
uspech = wc_RsaPrivateKeyDecode(der_autorita, &index, &kluc_autorita, der_autorita_velkost);
|
|
||||||
if(uspech != 0)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "Nepodarilo sa vytvorit RsaKey strukturu z kluca autority\n");
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
RsaKey* k = &kluc_autorita;
|
fclose(subor);
|
||||||
if (k == NULL)
|
printf("Nacitanie ukoncene. Bolo nacitanych %d bajtov.\n", der_autorita_certifikat_velkost);
|
||||||
|
|
||||||
|
//vytvorenie struktury RsaKey autority zo sukromneho kluca vo formate DER ulozeneho v subore certifikaty/autorita/autorita_kluc_rsa.der
|
||||||
|
printf("Nacitavanie sukromneho kluca autority zo suboru.\n");
|
||||||
|
subor = fopen("../certifikaty/autorita/autorita_kluc_rsa.der", "rb");
|
||||||
|
der_autorita_kluc_velkost = fread(der_autorita_kluc, 1, VELKOST_BUFFERA , subor);
|
||||||
|
if(der_autorita_kluc_velkost < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nepodarilo sa nacitat obsah suboru. \n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
fclose(subor);
|
||||||
|
printf("Nacitanie ukoncene. Bolo nacitanych %d bajtov.\n", der_autorita_kluc_velkost);
|
||||||
|
|
||||||
|
word32 index = 0; //nastavi odkial zacat citat buffer
|
||||||
|
wc_InitRsaKey(&kluc_autorita, 0);
|
||||||
|
uspech = wc_RsaPrivateKeyDecode(der_autorita_kluc, &index, &kluc_autorita, der_autorita_kluc_velkost);
|
||||||
|
if(uspech != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nepodarilo sa vytvorit RsaKey strukturu z kluca autority\n");
|
fprintf(stderr, "Nepodarilo sa vytvorit RsaKey strukturu z kluca autority\n");
|
||||||
return -1;
|
return -1;
|
||||||
@ -102,19 +110,21 @@ int generovat_rsa_certifikat(int pocet_bitov, int exponent, int algoritmus, char
|
|||||||
fprintf(stderr, "Chyba pri generovani kluca.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
fprintf(stderr, "Chyba pri generovani kluca.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
der_kluc_velkost = wc_RsaKeyToDer(&kluc, der_kluc, sizeof(der_kluc));
|
uspech = wc_RsaKeyToDer(&kluc, der_kluc, sizeof(der_kluc));
|
||||||
if(der_kluc_velkost < 0)
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER so sukromnym klucom.\n");
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER so sukromnym klucom.\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
der_kluc_velkost = uspech;
|
||||||
memset(pem_kluc, 0, sizeof(pem_kluc));
|
memset(pem_kluc, 0, sizeof(pem_kluc));
|
||||||
pem_kluc_velkost = wc_DerToPem(der_kluc, der_kluc_velkost, pem_kluc, sizeof(pem_kluc), PRIVATEKEY_TYPE);
|
uspech = wc_DerToPem(der_kluc, der_kluc_velkost, pem_kluc, sizeof(pem_kluc), PRIVATEKEY_TYPE);
|
||||||
if(pem_kluc_velkost < 0)
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM so sukromnym klucom\n");
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM so sukromnym klucom\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
pem_kluc_velkost = uspech;
|
||||||
|
|
||||||
//zapis vygenerovaneho klucu do suboru
|
//zapis vygenerovaneho klucu do suboru
|
||||||
subor = fopen("../certifikaty/vygenerovany_kluc.key", "wb");
|
subor = fopen("../certifikaty/vygenerovany_kluc.key", "wb");
|
||||||
@ -142,31 +152,33 @@ int generovat_rsa_certifikat(int pocet_bitov, int exponent, int algoritmus, char
|
|||||||
certifikat.isCA = 0;
|
certifikat.isCA = 0;
|
||||||
certifikat.sigType = algoritmus;
|
certifikat.sigType = algoritmus;
|
||||||
certifikat.daysValid = 1825;
|
certifikat.daysValid = 1825;
|
||||||
uspech = wc_SetIssuer(&certifikat, "../certifikaty/autorita_rsa.pem");
|
uspech = wc_SetIssuerBuffer(&certifikat, der_autorita_certifikat, der_autorita_certifikat_velkost);
|
||||||
if(uspech < 0)
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri nastaveni autority.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
fprintf(stderr, "Nastala chyba pri nastaveni autority.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
der_certifikat_velkost = wc_MakeCert(&certifikat, der_certifikat, sizeof(der_certifikat), &kluc, NULL, &generator);
|
uspech = wc_MakeCert(&certifikat, der_certifikat, sizeof(der_certifikat), &kluc, NULL, &generator);
|
||||||
if(der_certifikat_velkost < 0)
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER s certifikatom.\n");
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER s certifikatom.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
der_certifikat_velkost = wc_SignCert(certifikat.bodySz, certifikat.sigType, der_certifikat, sizeof(der_certifikat), &kluc_autorita, NULL, &generator);
|
uspech = wc_SignCert(certifikat.bodySz, certifikat.sigType, der_certifikat, sizeof(der_certifikat), &kluc_autorita, NULL, &generator);
|
||||||
if(der_certifikat_velkost < 0)
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri podpisovani certifikatu.\n");
|
fprintf(stderr, "Nastala chyba pri podpisovani certifikatu.\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
der_certifikat_velkost = uspech;
|
||||||
memset(pem_certifikat, 0, sizeof(pem_certifikat));
|
memset(pem_certifikat, 0, sizeof(pem_certifikat));
|
||||||
pem_certifikat_velkost = wc_DerToPem(der_certifikat, der_certifikat_velkost, pem_certifikat, sizeof(pem_certifikat), CERT_TYPE);
|
uspech = wc_DerToPem(der_certifikat, der_certifikat_velkost, pem_certifikat, sizeof(pem_certifikat), CERT_TYPE);
|
||||||
if(pem_certifikat_velkost < 0)
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM s certifikatom.\n");
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM s certifikatom.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
pem_certifikat_velkost = uspech;
|
||||||
|
|
||||||
//zapis vygenerovaneho klucu do suboru
|
//zapis vygenerovaneho klucu do suboru
|
||||||
subor = fopen("../certifikaty/vygenerovany_certifikat.pem", "wb");
|
subor = fopen("../certifikaty/vygenerovany_certifikat.pem", "wb");
|
||||||
@ -184,27 +196,41 @@ int generovat_ecc_certifikat(int pocet_bitov, ecc_curve_id kluc_krivka, int algo
|
|||||||
|
|
||||||
//premenne pre ukladanie dat autority
|
//premenne pre ukladanie dat autority
|
||||||
ecc_key kluc_autorita;
|
ecc_key kluc_autorita;
|
||||||
byte pem_autorita[VELKOST_BUFFERA];
|
byte der_autorita_certifikat[VELKOST_BUFFERA];
|
||||||
word32 pem_autorita_velkost;
|
int der_autorita_certifikat_velkost;
|
||||||
byte der_autorita[VELKOST_BUFFERA];
|
byte der_autorita_kluc[VELKOST_BUFFERA];
|
||||||
word32 der_autorita_velkost;
|
int der_autorita_kluc_velkost;
|
||||||
|
|
||||||
//vytvorenie struktury ecc_key autority zo sukromneho kluca vo formate PEM ulozeneho v subore certifikaty/autorita_ecc.key
|
//nacitanie certifikatu autority vo formate DER ulozeneho v subore certifikaty/autorita/autorita_ecc.der
|
||||||
memset(pem_autorita, 0, sizeof(pem_autorita));
|
printf("Nacitavanie certifikatu autority zo suboru.\n");
|
||||||
FILE* subor = fopen("../certifikaty/autorita_ecc.key", "rb");
|
FILE* subor = fopen("../certifikaty/autorita/autorita_ecc.der", "rb");
|
||||||
pem_autorita_velkost = fread(pem_autorita, 1, VELKOST_BUFFERA , subor);
|
der_autorita_certifikat_velkost = fread(der_autorita_certifikat, 1, VELKOST_BUFFERA , subor);
|
||||||
if(pem_autorita_velkost < 0)
|
if(der_autorita_certifikat_velkost < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nepodarilo sa nacitat obsah suboru\n");
|
fprintf(stderr, "Nepodarilo sa nacitat obsah suboru. \n");
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
fclose(subor);
|
fclose(subor);
|
||||||
word32 index = 0; //nastavi odkial zacat citat buffer
|
printf("Nacitanie ukoncene. Bolo nacitanych %d bajtov.\n", der_autorita_certifikat_velkost);
|
||||||
der_autorita_velkost = wolfSSL_KeyPemToDer(pem_autorita, sizeof(pem_autorita), der_autorita, sizeof(der_autorita), "");
|
|
||||||
wc_EccPrivateKeyDecode(der_autorita, &index, &kluc_autorita, der_autorita_velkost);
|
//vytvorenie struktury ecc_key autority zo sukromneho kluca vo formate DER ulozeneho v subore certifikaty/autorita/autorita_kluc_ecc.der
|
||||||
ecc_key* k = &kluc_autorita;
|
printf("Nacitavanie sukromneho kluca autority zo suboru.\n");
|
||||||
if (k == NULL)
|
subor = fopen("../certifikaty/autorita/autorita_kluc_ecc.der", "rb");
|
||||||
|
der_autorita_kluc_velkost = fread(der_autorita_kluc, 1, VELKOST_BUFFERA , subor);
|
||||||
|
if(der_autorita_kluc_velkost < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nepodarilo sa vytvorit ecc_key strukturu z kluca autority\n");
|
fprintf(stderr, "Nepodarilo sa nacitat obsah suboru. \n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
fclose(subor);
|
||||||
|
printf("Nacitanie ukoncene. Bolo nacitanych %d bajtov.\n", der_autorita_kluc_velkost);
|
||||||
|
|
||||||
|
word32 index = 0; //nastavi odkial zacat citat buffer
|
||||||
|
wc_ecc_init(&kluc_autorita);
|
||||||
|
uspech = wc_EccPrivateKeyDecode(der_autorita_kluc, &index, &kluc_autorita, (word32)der_autorita_kluc_velkost);
|
||||||
|
if(uspech != 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Chyba pri dekodovani kluca autority.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,25 +253,27 @@ int generovat_ecc_certifikat(int pocet_bitov, ecc_curve_id kluc_krivka, int algo
|
|||||||
fprintf(stderr, "Chyba pri generovani kluca.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
fprintf(stderr, "Chyba pri generovani kluca.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
der_kluc_velkost = wc_EccKeyToDer(&kluc, der_kluc, sizeof(der_kluc));
|
uspech = wc_EccKeyToDer(&kluc, der_kluc, sizeof(der_kluc));
|
||||||
if(der_kluc_velkost < 0)
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER so sukromnym klucom.\n");
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER so sukromnym klucom.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
pem_kluc_velkost = wc_DerToPem(der_kluc, der_kluc_velkost, pem_kluc, sizeof(pem_kluc), ECC_PRIVATEKEY_TYPE);
|
der_kluc_velkost = uspech;
|
||||||
if(pem_kluc_velkost < 0)
|
uspech = wc_DerToPem(der_kluc, der_kluc_velkost, pem_kluc, sizeof(pem_kluc), ECC_PRIVATEKEY_TYPE);
|
||||||
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM so sukromnym klucom\n");
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM so sukromnym klucom.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
pem_kluc_velkost = uspech;
|
||||||
|
|
||||||
//zapis vygenerovaneho kluca do suboru
|
//zapis vygenerovaneho kluca do suboru
|
||||||
subor = fopen("../certifikaty/vygenerovany_kluc.key", "wb");
|
subor = fopen("../certifikaty/vygenerovany_kluc.key", "wb");
|
||||||
fwrite(pem_kluc, 1, pem_kluc_velkost, subor);
|
fwrite(pem_kluc, 1, pem_kluc_velkost, subor);
|
||||||
fclose(subor);
|
fclose(subor);
|
||||||
|
|
||||||
printf("ECC kluc bol uspesne vygenerovany a nacitany.\n");
|
printf("ECC kluc bol uspesne vygenerovany.\n");
|
||||||
|
|
||||||
//premenne pre ukladanie dat certifikatu
|
//premenne pre ukladanie dat certifikatu
|
||||||
Cert certifikat;
|
Cert certifikat;
|
||||||
@ -253,7 +281,7 @@ int generovat_ecc_certifikat(int pocet_bitov, ecc_curve_id kluc_krivka, int algo
|
|||||||
word32 der_certifikat_velkost;
|
word32 der_certifikat_velkost;
|
||||||
byte pem_certifikat[VELKOST_BUFFERA];
|
byte pem_certifikat[VELKOST_BUFFERA];
|
||||||
word32 pem_certifikat_velkost;
|
word32 pem_certifikat_velkost;
|
||||||
|
|
||||||
//vygenerovanie a podpis certifikatu
|
//vygenerovanie a podpis certifikatu
|
||||||
wc_InitCert(&certifikat);
|
wc_InitCert(&certifikat);
|
||||||
strncpy(certifikat.subject.country, krajina, CTC_NAME_SIZE);
|
strncpy(certifikat.subject.country, krajina, CTC_NAME_SIZE);
|
||||||
@ -266,38 +294,194 @@ int generovat_ecc_certifikat(int pocet_bitov, ecc_curve_id kluc_krivka, int algo
|
|||||||
certifikat.isCA = 0;
|
certifikat.isCA = 0;
|
||||||
certifikat.sigType = algoritmus;
|
certifikat.sigType = algoritmus;
|
||||||
certifikat.daysValid = 1825;
|
certifikat.daysValid = 1825;
|
||||||
uspech = wc_SetIssuer(&certifikat, "../certifikaty/autorita_ecc.pem");
|
uspech = wc_SetIssuerBuffer(&certifikat, der_autorita_certifikat, der_autorita_certifikat_velkost);
|
||||||
if(uspech != 0)
|
if(uspech != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri nastaveni autority.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
fprintf(stderr, "Nastala chyba pri nastaveni autority.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
der_certifikat_velkost = wc_MakeCert(&certifikat, der_certifikat, sizeof(der_certifikat), NULL, &kluc, &generator);
|
uspech = wc_MakeCert(&certifikat, der_certifikat, sizeof(der_certifikat), NULL, &kluc, &generator);
|
||||||
if(der_certifikat_velkost < 0)
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER s certifikatom.\n");
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER s certifikatom.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
der_certifikat_velkost = wc_SignCert(certifikat.bodySz, certifikat.sigType, der_certifikat, sizeof(der_certifikat), NULL, &kluc_autorita, &generator);
|
uspech = wc_SignCert(certifikat.bodySz, certifikat.sigType, der_certifikat, sizeof(der_certifikat), NULL, &kluc_autorita, &generator);
|
||||||
if(der_certifikat_velkost < 0)
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri podpisovani certifikatu.\n");
|
fprintf(stderr, "Nastala chyba pri podpisovani certifikatu.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
der_certifikat_velkost = uspech;
|
||||||
memset(pem_certifikat, 0, sizeof(pem_certifikat));
|
memset(pem_certifikat, 0, sizeof(pem_certifikat));
|
||||||
pem_certifikat_velkost = wc_DerToPem(der_certifikat, der_certifikat_velkost, pem_certifikat, sizeof(pem_certifikat), CERT_TYPE);
|
uspech = wc_DerToPem(der_certifikat, der_certifikat_velkost, pem_certifikat, sizeof(pem_certifikat), CERT_TYPE);
|
||||||
if(pem_certifikat_velkost < 0)
|
if(uspech < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM s certifikatom.\n");
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM s certifikatom.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
pem_certifikat_velkost = uspech;
|
||||||
|
|
||||||
//zapis vygenerovaneho klucu do suboru
|
//zapis vygenerovaneho klucu do suboru
|
||||||
subor = fopen("../certifikaty/vygenerovany_certifikat.pem", "wb");
|
subor = fopen("../certifikaty/vygenerovany_certifikat.pem", "wb");
|
||||||
fwrite(pem_certifikat, 1, pem_certifikat_velkost, subor);
|
fwrite(pem_certifikat, 1, pem_certifikat_velkost, subor);
|
||||||
fclose(subor);
|
fclose(subor);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int vygenerovat_rsa_ziadost(int pocet_bitov, int exponent, int algoritmus, char* krajina, char* mesto, char* domena, char* email)
|
||||||
|
{
|
||||||
|
int uspech = 0;
|
||||||
|
|
||||||
|
//generator nahodnych cisel
|
||||||
|
WC_RNG generator;
|
||||||
|
wc_InitRng(&generator);
|
||||||
|
|
||||||
|
//premenne pre ukladanie dat vygenerovaneho kluca
|
||||||
|
RsaKey kluc;
|
||||||
|
byte der_kluc[VELKOST_BUFFERA];
|
||||||
|
word32 der_kluc_velkost;
|
||||||
|
byte pem_kluc[VELKOST_BUFFERA];
|
||||||
|
word32 pem_kluc_velkost;
|
||||||
|
|
||||||
|
//vygenerovanie kluca
|
||||||
|
wc_InitRsaKey(&kluc, 0);
|
||||||
|
uspech = wc_MakeRsaKey(&kluc, pocet_bitov, exponent, &generator);
|
||||||
|
if(uspech != 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Chyba pri generovani kluca.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
uspech = wc_RsaKeyToDer(&kluc, der_kluc, sizeof(der_kluc));
|
||||||
|
if(uspech < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER so sukromnym klucom.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
der_kluc_velkost = uspech;
|
||||||
|
memset(pem_kluc, 0, sizeof(pem_kluc));
|
||||||
|
pem_kluc_velkost = wc_DerToPem(der_kluc, der_kluc_velkost, pem_kluc, sizeof(pem_kluc), PRIVATEKEY_TYPE);
|
||||||
|
if(pem_kluc_velkost < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM so sukromnym klucom\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//premenne pre ukladanie dat ziadosti
|
||||||
|
Cert ziadost;
|
||||||
|
byte der_ziadost[VELKOST_BUFFERA];
|
||||||
|
word32 der_ziadost_velkost;
|
||||||
|
byte pem_ziadost[VELKOST_BUFFERA];
|
||||||
|
word32 pem_ziadost_velkost;
|
||||||
|
|
||||||
|
//vygenerovanie a podpis ziadosti
|
||||||
|
wc_InitCert(&ziadost);
|
||||||
|
strncpy(ziadost.subject.country, krajina, CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.state, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.locality, mesto, CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.org, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.unit, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.commonName, domena, CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.email, email, CTC_NAME_SIZE);
|
||||||
|
ziadost.sigType = algoritmus;
|
||||||
|
uspech = wc_MakeCertReq(&ziadost, der_ziadost, sizeof(der_ziadost), &kluc, NULL);
|
||||||
|
if(uspech < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri generovani ziadosti.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
uspech = wc_SignCert(ziadost.bodySz, ziadost.sigType, der_ziadost, sizeof(der_ziadost), &kluc, NULL, &generator);
|
||||||
|
if(uspech < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri podpisovani ziadosti.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
der_ziadost_velkost = uspech;
|
||||||
|
memset(pem_ziadost, 0, sizeof(pem_ziadost));
|
||||||
|
uspech = wc_DerToPem(der_ziadost, der_ziadost_velkost, pem_ziadost, sizeof(pem_ziadost), CERTREQ_TYPE);
|
||||||
|
if(uspech < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM so ziadostou.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int vygenerovat_ecc_ziadost(int pocet_bitov, ecc_curve_id kluc_krivka, int algoritmus, char* krajina, char* mesto, char* domena, char* email)
|
||||||
|
{
|
||||||
|
int uspech = 0;
|
||||||
|
|
||||||
|
//generator nahodnych cisel
|
||||||
|
WC_RNG generator;
|
||||||
|
wc_InitRng(&generator);
|
||||||
|
|
||||||
|
//premenne pre ukladanie dat vygenerovaneho kluca
|
||||||
|
ecc_key kluc;
|
||||||
|
byte der_kluc[VELKOST_BUFFERA];
|
||||||
|
word32 der_kluc_velkost;
|
||||||
|
byte pem_kluc[VELKOST_BUFFERA];
|
||||||
|
word32 pem_kluc_velkost;
|
||||||
|
|
||||||
|
//vygenerovanie kluca
|
||||||
|
wc_ecc_init(&kluc);
|
||||||
|
uspech = wc_ecc_make_key_ex(&generator, pocet_bitov, &kluc, kluc_krivka);
|
||||||
|
if(uspech != 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Chyba pri generovani kluca.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
uspech = wc_EccKeyToDer(&kluc, der_kluc, sizeof(der_kluc));
|
||||||
|
if(uspech < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER so sukromnym klucom.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
der_kluc_velkost = uspech;
|
||||||
|
memset(pem_kluc, 0, sizeof(pem_kluc));
|
||||||
|
pem_kluc_velkost = wc_DerToPem(der_kluc, der_kluc_velkost, pem_kluc, sizeof(pem_kluc), ECC_PRIVATEKEY_TYPE);
|
||||||
|
if(pem_kluc_velkost < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM so sukromnym klucom\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//premenne pre ukladanie dat ziadosti
|
||||||
|
Cert ziadost;
|
||||||
|
byte der_ziadost[VELKOST_BUFFERA];
|
||||||
|
word32 der_ziadost_velkost;
|
||||||
|
byte pem_ziadost[VELKOST_BUFFERA];
|
||||||
|
word32 pem_ziadost_velkost;
|
||||||
|
|
||||||
|
//vygenerovanie a podpis ziadosti
|
||||||
|
wc_InitCert(&ziadost);
|
||||||
|
strncpy(ziadost.subject.country, krajina, CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.state, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.locality, mesto, CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.org, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.unit, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.commonName, domena, CTC_NAME_SIZE);
|
||||||
|
strncpy(ziadost.subject.email, email, CTC_NAME_SIZE);
|
||||||
|
ziadost.sigType = algoritmus;
|
||||||
|
uspech = wc_MakeCertReq(&ziadost, der_ziadost, sizeof(der_ziadost), NULL, &kluc);
|
||||||
|
if(uspech < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri generovani ziadosti.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
uspech = wc_SignCert(ziadost.bodySz, ziadost.sigType, der_ziadost, sizeof(der_ziadost), NULL, &kluc, &generator);
|
||||||
|
if(uspech < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri podpisovani ziadosti.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
der_ziadost_velkost = uspech;
|
||||||
|
memset(pem_ziadost, 0, sizeof(pem_ziadost));
|
||||||
|
uspech = wc_DerToPem(der_ziadost, der_ziadost_velkost, pem_ziadost, sizeof(pem_ziadost), CERTREQ_TYPE);
|
||||||
|
if(uspech < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM so ziadostou.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int nacitat_certifikaty(WOLFSSL_CTX* ctx, const char* subor_certifikat, const char* subor_kluc)
|
int nacitat_certifikaty(WOLFSSL_CTX* ctx, const char* subor_certifikat, const char* subor_kluc)
|
||||||
@ -342,7 +526,7 @@ void zobraz_certifikat(WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
if ((pole = wolfSSL_X509_NAME_oneline(wolfSSL_X509_get_subject_name(certifikat), 0, 0)))
|
if ((pole = wolfSSL_X509_NAME_oneline(wolfSSL_X509_get_subject_name(certifikat), 0, 0)))
|
||||||
{
|
{
|
||||||
printf("Nazov domeny: %s\n", pole);
|
printf("Subjekt: %s\n", pole);
|
||||||
//wolfSSL_free(line);
|
//wolfSSL_free(line);
|
||||||
}
|
}
|
||||||
if ((pole = wolfSSL_X509_NAME_oneline(wolfSSL_X509_get_issuer_name(certifikat), 0, 0)))
|
if ((pole = wolfSSL_X509_NAME_oneline(wolfSSL_X509_get_issuer_name(certifikat), 0, 0)))
|
||||||
@ -353,17 +537,87 @@ void zobraz_certifikat(WOLFSSL* ssl)
|
|||||||
X509_free(certifikat);
|
X509_free(certifikat);
|
||||||
}
|
}
|
||||||
|
|
||||||
byte* generovat_hash(char* cesta)
|
byte* generovat_kontrolny_sucet_suboru(hashovacia_funkcia funkcia, char* cesta, int* velkost)
|
||||||
{
|
{
|
||||||
int pocet_bajtov;
|
int pocet_bajtov;
|
||||||
FILE* subor = fopen(cesta, "rb");
|
FILE* subor = fopen(cesta, "rb");
|
||||||
unsigned char data[1024];
|
unsigned char data[1024];
|
||||||
byte* vysledok = calloc(SHA_DIGEST_SIZE, sizeof(byte));
|
byte* vysledok;
|
||||||
Sha sha;
|
if(funkcia == funkcia_SHA)
|
||||||
wc_InitSha(&sha);
|
{
|
||||||
while ((pocet_bajtov = fread (data, 1, 1024, subor)) != 0)
|
*velkost = SHA_DIGEST_SIZE;
|
||||||
wc_ShaUpdate(&sha, data, pocet_bajtov);
|
vysledok = calloc(SHA_DIGEST_SIZE, sizeof(byte));
|
||||||
wc_ShaFinal(&sha, vysledok);
|
Sha sha;
|
||||||
|
wc_InitSha(&sha);
|
||||||
|
while ((pocet_bajtov = fread (data, 1, 1024, subor)) != 0)
|
||||||
|
wc_ShaUpdate(&sha, data, pocet_bajtov);
|
||||||
|
wc_ShaFinal(&sha, vysledok);
|
||||||
|
}
|
||||||
|
else if(funkcia == funkcia_SHA224)
|
||||||
|
{
|
||||||
|
*velkost = SHA224_DIGEST_SIZE;
|
||||||
|
vysledok = calloc(SHA224_DIGEST_SIZE, sizeof(byte));
|
||||||
|
Sha224 sha;
|
||||||
|
wc_InitSha224(&sha);
|
||||||
|
while ((pocet_bajtov = fread (data, 1, 1024, subor)) != 0)
|
||||||
|
wc_Sha224Update(&sha, data, pocet_bajtov);
|
||||||
|
wc_Sha224Final(&sha, vysledok);
|
||||||
|
}
|
||||||
|
else if(funkcia == funkcia_SHA256)
|
||||||
|
{
|
||||||
|
*velkost = SHA256_DIGEST_SIZE;
|
||||||
|
byte* vysledok = calloc(SHA256_DIGEST_SIZE, sizeof(byte));
|
||||||
|
Sha256 sha;
|
||||||
|
wc_InitSha256(&sha);
|
||||||
|
while ((pocet_bajtov = fread (data, 1, 1024, subor)) != 0)
|
||||||
|
wc_Sha256Update(&sha, data, pocet_bajtov);
|
||||||
|
wc_Sha256Final(&sha, vysledok);
|
||||||
|
}
|
||||||
|
else if(funkcia == funkcia_SHA384)
|
||||||
|
{
|
||||||
|
*velkost = SHA384_DIGEST_SIZE;
|
||||||
|
vysledok = calloc(SHA384_DIGEST_SIZE, sizeof(byte));
|
||||||
|
Sha384 sha;
|
||||||
|
wc_InitSha384(&sha);
|
||||||
|
while ((pocet_bajtov = fread (data, 1, 1024, subor)) != 0)
|
||||||
|
wc_Sha384Update(&sha, data, pocet_bajtov);
|
||||||
|
wc_Sha384Final(&sha, vysledok);
|
||||||
|
}
|
||||||
|
else if(funkcia == funkcia_SHA512)
|
||||||
|
{
|
||||||
|
*velkost = WC_SHA512_DIGEST_SIZE;
|
||||||
|
vysledok = calloc(WC_SHA512_DIGEST_SIZE, sizeof(byte));
|
||||||
|
wc_Sha512 sha;
|
||||||
|
wc_InitSha512(&sha);
|
||||||
|
while ((pocet_bajtov = fread (data, 1, 1024, subor)) != 0)
|
||||||
|
wc_Sha512Update(&sha, data, pocet_bajtov);
|
||||||
|
wc_Sha512Final(&sha, vysledok);
|
||||||
|
}
|
||||||
|
else if(funkcia == funkcia_BLAKE2B)
|
||||||
|
{
|
||||||
|
*velkost = 64;
|
||||||
|
vysledok = calloc(64, sizeof(byte));
|
||||||
|
Blake2b b2b;
|
||||||
|
wc_InitBlake2b(&b2b, 64);
|
||||||
|
while ((pocet_bajtov = fread (data, 1, 1024, subor)) != 0)
|
||||||
|
wc_Blake2bUpdate(&b2b, data, pocet_bajtov);
|
||||||
|
wc_Blake2bFinal(&b2b, vysledok, 64);
|
||||||
|
}
|
||||||
|
else if(funkcia == funkcia_RIPEMD160)
|
||||||
|
{
|
||||||
|
*velkost = RIPEMD_DIGEST_SIZE;
|
||||||
|
vysledok = calloc(RIPEMD_DIGEST_SIZE, sizeof(byte));
|
||||||
|
RipeMd ripemd;
|
||||||
|
wc_InitRipeMd(&ripemd);
|
||||||
|
while ((pocet_bajtov = fread (data, 1, 1024, subor)) != 0)
|
||||||
|
wc_RipeMdUpdate(&ripemd, data, pocet_bajtov);
|
||||||
|
wc_RipeMdFinal(&ripemd, vysledok);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nespravny nazov hashovacej funkcie.\n");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
return vysledok;
|
return vysledok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,15 +17,27 @@
|
|||||||
#include <wolfssl/wolfcrypt/asn_public.h>
|
#include <wolfssl/wolfcrypt/asn_public.h>
|
||||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||||
#include <wolfssl/wolfcrypt/sha.h>
|
#include <wolfssl/wolfcrypt/sha.h>
|
||||||
|
#include <wolfssl/wolfcrypt/sha256.h>
|
||||||
|
#include <wolfssl/wolfcrypt/sha512.h>
|
||||||
|
#include <wolfssl/wolfcrypt/ripemd.h>
|
||||||
|
#include <wolfssl/wolfcrypt/blake2.h>
|
||||||
|
|
||||||
#define VELKOST_BUFFERA 4096
|
#define VELKOST_BUFFERA 4096
|
||||||
|
|
||||||
|
typedef enum hashovacia_funkcia {
|
||||||
|
funkcia_SHA, funkcia_SHA224, funkcia_SHA256, funkcia_SHA384, funkcia_SHA512,
|
||||||
|
funkcia_BLAKE2B, funkcia_RIPEMD160
|
||||||
|
}hashovacia_funkcia;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* generovat_hash: realizuje vypocet kontrolneho suctu zo suboru, ktoreho lokacia je predana v argumente
|
* generovat_hash: realizuje vypocet kontrolneho suctu zo suboru, ktoreho lokacia je predana v argumente
|
||||||
|
* @parameter char* funkcia : nazov funkcie pre vypocet kontrolneho suctu
|
||||||
* @parameter char* cesta : lokacia suboru
|
* @parameter char* cesta : lokacia suboru
|
||||||
|
* @parameter int* velkost : uklada velkost kontrolneho suctu, ktoreho hodnota sa dynamicky priradi
|
||||||
|
* na zaklade nazvu funkcie uvedenom v prvom argumente
|
||||||
* @vrati smernik na vygenerovany hash
|
* @vrati smernik na vygenerovany hash
|
||||||
*/
|
*/
|
||||||
byte* generovat_hash(char* cesta);
|
byte* generovat_kontrolny_sucet_suboru(hashovacia_funkcia funkcia, char* cesta, int* velkost);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* generovat_ecc_certifikat: realizuje vygenerovania sukromneho kluca, nacitanie sukromneho kluca autority,
|
* generovat_ecc_certifikat: realizuje vygenerovania sukromneho kluca, nacitanie sukromneho kluca autority,
|
||||||
@ -47,6 +59,25 @@ int generovat_ecc_certifikat(int pocet_bitov, ecc_curve_id kluc_krivka, int algo
|
|||||||
*/
|
*/
|
||||||
int generovat_rsa_certifikat(int pocet_bitov, int exponent, int algoritmus, char* krajina, char* mesto, char* domena, char* email);
|
int generovat_rsa_certifikat(int pocet_bitov, int exponent, int algoritmus, char* krajina, char* mesto, char* domena, char* email);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* generovat_rsa_ziadost: realizuje vygenerovania sukromneho kluca, vygenerovanie a podpis ziadosti
|
||||||
|
* @parameter int pocet_bitov : velkost kluca
|
||||||
|
* @parameter ecc-curve_id kluc_krivka: kod krivky pre generovanie sukromneho kluca
|
||||||
|
* @parameter int algoritmus: kod algoritmu, sluziaceho na vymenu klucov
|
||||||
|
* @vrati int: operacia bola uspesna(0), neuspesna(-1)
|
||||||
|
*/
|
||||||
|
int generovat_rsa_ziadost(int pocet_bitov, int exponent, int algoritmus, char* krajina, char* mesto, char* domena, char* email);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* generovat_ecc_ziadost: realizuje vygenerovania sukromneho kluca, vygenerovanie a podpis ziadosti
|
||||||
|
* @parameter int pocet_bitov : velkost kluca
|
||||||
|
* @parameter ecc-curve_id kluc_krivka: kod krivky pre generovanie sukromneho kluca
|
||||||
|
* @parameter int algoritmus: kod algoritmu, sluziaceho na vymenu klucov
|
||||||
|
* @vrati int: operacia bola uspesna(0), neuspesna(-1)
|
||||||
|
*/
|
||||||
|
|
||||||
|
int generovat_ecc_ziadost(int pocet_bitov, ecc_curve_id kluc_krivka, int algoritmus, char* krajina, char* mesto, char* domena, char* email);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* nastav_ctx_klient : realizuje vytvorenie a inicializaciu CTX struktury
|
* nastav_ctx_klient : realizuje vytvorenie a inicializaciu CTX struktury
|
||||||
* na zaklade verzie tls (client method)
|
* na zaklade verzie tls (client method)
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -11,28 +11,42 @@ CC = gcc
|
|||||||
|
|
||||||
#prepinace pre prekladac
|
#prepinace pre prekladac
|
||||||
CFLAGS = -Wcpp -I./../wolfssl_hlavickove_subory/
|
CFLAGS = -Wcpp -I./../wolfssl_hlavickove_subory/
|
||||||
LIB32 = -L. -lwolfssl -lws2_32 -Os
|
LIB = -L. -lwolfssl
|
||||||
LIB64 = -L. -lwolfssl -lws2_32 -m64
|
|
||||||
|
ifeq ($(OS), Windows_NT)
|
||||||
|
LIB += -lws2_32
|
||||||
|
ifeq ($(PROCESSOR_ARCHITECTURE), AMD64)
|
||||||
|
LIB += -m64
|
||||||
|
endif
|
||||||
|
ifeq ($(PROCESSOR_ARCHITECTURE), x86)
|
||||||
|
LIB += -Os
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
UNAME_S := $(shell uname -s)
|
||||||
|
ifeq ($(UNAME_S), Linux)
|
||||||
|
LIB +=
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
all: klient server
|
all: klient server
|
||||||
|
|
||||||
klient: klient.o kryptografia.o komunikacia.o
|
klient: klient.o kryptografia.o komunikacia.o
|
||||||
$(CC) $(CFLAGS) -o klient klient.o kryptografia.o komunikacia.o $(LIB64)
|
$(CC) $(CFLAGS) -o klient klient.o kryptografia.o komunikacia.o $(LIB)
|
||||||
|
|
||||||
server: server.o kryptografia.o komunikacia.o
|
server: server.o kryptografia.o komunikacia.o
|
||||||
$(CC) $(CFLAGS) -o server server.o kryptografia.o komunikacia.o $(LIB64)
|
$(CC) $(CFLAGS) -o server server.o kryptografia.o komunikacia.o $(LIB)
|
||||||
|
|
||||||
klient.o: klient.c
|
klient.o: klient.c
|
||||||
$(CC) $(CFLAGS) -c klient.c $(LIB64)
|
$(CC) $(CFLAGS) -c klient.c $(LIB)
|
||||||
|
|
||||||
server.o: server.c
|
server.o: server.c
|
||||||
$(CC) $(CFLAGS) -c server.c $(LIB64)
|
$(CC) $(CFLAGS) -c server.c $(LIB)
|
||||||
|
|
||||||
kryptografia.o: ../kniznica/kryptografia.c ../kniznica/kryptografia.h
|
kryptografia.o: ../kniznica/kryptografia.c ../kniznica/kryptografia.h
|
||||||
$(CC) $(CFLAGS) -c ../kniznica/kryptografia.c $(LIB64)
|
$(CC) $(CFLAGS) -c ../kniznica/kryptografia.c $(LIB)
|
||||||
|
|
||||||
komunikacia.o: ../kniznica/komunikacia.c ../kniznica/komunikacia.h
|
komunikacia.o: ../kniznica/komunikacia.c ../kniznica/komunikacia.h
|
||||||
$(CC) $(CFLAGS) -c ../kniznica/komunikacia.c $(LIB64)
|
$(CC) $(CFLAGS) -c ../kniznica/komunikacia.c $(LIB)
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
||||||
|
@ -15,8 +15,17 @@
|
|||||||
#define ECC_VELKOST 32
|
#define ECC_VELKOST 32
|
||||||
#define RSA_EXPONENT 65537
|
#define RSA_EXPONENT 65537
|
||||||
|
|
||||||
|
//cesty ku suborom
|
||||||
|
#define RSA_KLUC "../certifikaty/klient/klient_rsa.key"
|
||||||
|
#define RSA_CERTIFIKAT "../certifikaty/klient/klient_rsa.pem"
|
||||||
|
#define ECC_KLUC "../certifikaty/klient/klient_ecc.key"
|
||||||
|
#define ECC_CERTIFIKAT "../certifikaty/klient/klient_ecc.pem"
|
||||||
|
#define VYGENEROVANY_KLUC "../certifikaty/klient/vygenerovany_kluc.key"
|
||||||
|
#define VYGENEROVANY_CERTIFIKAT "../certifikaty/klient/vygenerovany_certifikat.pem"
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
|
int uspech;
|
||||||
int generovanie_certifikatu = 0;
|
int generovanie_certifikatu = 0;
|
||||||
int nacitanie_zo_suboru = 0;
|
int nacitanie_zo_suboru = 0;
|
||||||
int uvedeny_subor = 0;
|
int uvedeny_subor = 0;
|
||||||
@ -104,19 +113,13 @@ int main(int argc, char** argv)
|
|||||||
}
|
}
|
||||||
else if(!strcmp(argv[i+1], "rsa"))
|
else if(!strcmp(argv[i+1], "rsa"))
|
||||||
{
|
{
|
||||||
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_rsa.pem", NULL);
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_rsa.pem", NULL);
|
||||||
subor_certifikat = "../certifikaty/klient_rsa.pem";
|
if(nacitat_certifikaty(ctx, RSA_CERTIFIKAT, RSA_KLUC) == -1) return -1;
|
||||||
subor_kluc = "../certifikaty/klient_rsa.key";
|
|
||||||
if(nacitat_certifikaty(ctx, subor_certifikat, subor_kluc) == -1) return -1;
|
|
||||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
|
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[i+1], "ecc"))
|
else if(!strcmp(argv[i+1], "ecc"))
|
||||||
{
|
{
|
||||||
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_ecc.pem", NULL);
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_ecc.pem", NULL);
|
||||||
subor_certifikat = "../certifikaty/klient_ecc.pem";
|
if(nacitat_certifikaty(ctx, ECC_CERTIFIKAT, ECC_KLUC) == -1) return -1;
|
||||||
subor_kluc = "../certifikaty/klient_ecc.key";
|
|
||||||
if(nacitat_certifikaty(ctx, subor_certifikat, subor_kluc) == -1) return -1;
|
|
||||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -136,20 +139,15 @@ int main(int argc, char** argv)
|
|||||||
{
|
{
|
||||||
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_rsa.pem", NULL);
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_rsa.pem", NULL);
|
||||||
if(generovat_rsa_certifikat(RSA_VELKOST, RSA_EXPONENT, CTC_SHA256wRSA, "SR", "Kosice", "local.dev", "klient@klient.sk") == -1) return -1;
|
if(generovat_rsa_certifikat(RSA_VELKOST, RSA_EXPONENT, CTC_SHA256wRSA, "SR", "Kosice", "local.dev", "klient@klient.sk") == -1) return -1;
|
||||||
subor_certifikat = "../certifikaty/vygenerovany_certifikat.pem";
|
if(nacitat_certifikaty(ctx, VYGENEROVANY_CERTIFIKAT, VYGENEROVANY_KLUC) == -1) return -1;
|
||||||
subor_kluc = "../certifikaty/vygenerovany_kluc.key";
|
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
||||||
if(nacitat_certifikaty(ctx, subor_certifikat, subor_kluc) == -1) return -1;
|
|
||||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
|
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[i+1], "ecc"))
|
else if(!strcmp(argv[i+1], "ecc"))
|
||||||
{
|
{
|
||||||
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_ecc.pem", NULL);
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_ecc.pem", NULL);
|
||||||
if(generovat_ecc_certifikat(ECC_VELKOST, ECC_SECP256R1, CTC_SHAwECDSA, "SR", "Kosice", "local.dev", "klient@klient.sk") == -1) return -1;
|
if(generovat_ecc_certifikat(ECC_VELKOST, ECC_SECP256R1, CTC_SHAwECDSA, "SR", "Kosice", "local.dev", "klient@klient.sk") == -1) return -1;
|
||||||
subor_certifikat = "../certifikaty/vygenerovany_certifikat.pem";
|
if(nacitat_certifikaty(ctx, VYGENEROVANY_CERTIFIKAT, VYGENEROVANY_KLUC) == -1) return -1;
|
||||||
subor_kluc = "../certifikaty/vygenerovany_kluc.key";
|
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
||||||
if(nacitat_certifikaty(ctx, subor_certifikat, subor_kluc) == -1) return -1;
|
|
||||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -202,6 +200,7 @@ int main(int argc, char** argv)
|
|||||||
}
|
}
|
||||||
zobraz_sifru(ssl);
|
zobraz_sifru(ssl);
|
||||||
zobraz_certifikat(ssl);
|
zobraz_certifikat(ssl);
|
||||||
|
nastav_funkciu(funkcia_BLAKE2B);
|
||||||
if(poslat_subor(ssl, ctx, subor) == -1) return -1;
|
if(poslat_subor(ssl, ctx, subor) == -1) return -1;
|
||||||
ukoncit_spojenie(ssl, ctx);
|
ukoncit_spojenie(ssl, ctx);
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,14 @@
|
|||||||
#define ECC_VELKOST 32
|
#define ECC_VELKOST 32
|
||||||
#define RSA_EXPONENT 65537
|
#define RSA_EXPONENT 65537
|
||||||
|
|
||||||
|
//cesty ku suborom
|
||||||
|
#define RSA_KLUC "../certifikaty/server/server_rsa.key"
|
||||||
|
#define RSA_CERTIFIKAT "../certifikaty/server/server_rsa.pem"
|
||||||
|
#define ECC_KLUC "../certifikaty/server/server_ecc.key"
|
||||||
|
#define ECC_CERTIFIKAT "../certifikaty/server/server_ecc.pem"
|
||||||
|
#define VYGENEROVANY_KLUC "../certifikaty/server/vygenerovany_kluc.key"
|
||||||
|
#define VYGENEROVANY_CERTIFIKAT "../certifikaty/server/vygenerovany_certifikat.pem"
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -34,8 +42,6 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
int cislo_soketu;
|
int cislo_soketu;
|
||||||
int cislo_portu = 0;
|
int cislo_portu = 0;
|
||||||
const char *subor_certifikat = NULL;
|
|
||||||
const char *subor_kluc = NULL;
|
|
||||||
WOLFSSL_CTX* ctx;
|
WOLFSSL_CTX* ctx;
|
||||||
|
|
||||||
if((ctx = nastavit_ctx_server()) == NULL)
|
if((ctx = nastavit_ctx_server()) == NULL)
|
||||||
@ -76,20 +82,16 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else if(!strcmp(argv[i+1], "rsa"))
|
else if(!strcmp(argv[i+1], "rsa"))
|
||||||
{
|
{
|
||||||
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_rsa.pem", NULL);
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_rsa.pem", NULL);
|
||||||
subor_certifikat = "../certifikaty/server_rsa.pem";
|
if(nacitat_certifikaty(ctx, RSA_CERTIFIKAT, RSA_KLUC) == -1) return -1;
|
||||||
subor_kluc = "../certifikaty/server_rsa.key";
|
|
||||||
if(nacitat_certifikaty(ctx, subor_certifikat, subor_kluc) == -1) return -1;
|
|
||||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
|
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[i+1], "ecc"))
|
else if(!strcmp(argv[i+1], "ecc"))
|
||||||
{
|
{
|
||||||
printf("jo\n");
|
printf("jo\n");
|
||||||
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_ecc.pem", NULL);
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_ecc.pem", NULL);
|
||||||
subor_certifikat = "../certifikaty/server_ecc.pem";
|
if(nacitat_certifikaty(ctx, ECC_CERTIFIKAT, ECC_KLUC) == -1) return -1;
|
||||||
subor_kluc = "../certifikaty/server_ecc.key";
|
|
||||||
if(nacitat_certifikaty(ctx, subor_certifikat, subor_kluc) == -1) return -1;
|
|
||||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
|
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -114,24 +116,16 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else if(!strcmp(argv[i+1], "rsa"))
|
else if(!strcmp(argv[i+1], "rsa"))
|
||||||
{
|
{
|
||||||
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_rsa.pem", NULL);
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_rsa.pem", NULL);
|
||||||
if(generovat_rsa_certifikat(RSA_VELKOST, RSA_EXPONENT, CTC_SHA256wRSA, "SR", "Kosice", "local.dev", "server@server.sk") == -1) return -1;
|
if(generovat_rsa_certifikat(RSA_VELKOST, RSA_EXPONENT, CTC_SHA256wRSA, "SR", "Kosice", "local.dev", "server@server.sk") == -1) return -1;
|
||||||
subor_certifikat = "../certifikaty/vygenerovany_certifikat.pem";
|
if(nacitat_certifikaty(ctx, VYGENEROVANY_CERTIFIKAT, VYGENEROVANY_KLUC) == -1) return -1;
|
||||||
subor_kluc = "../certifikaty/vygenerovany_kluc.key";
|
|
||||||
if(nacitat_certifikaty(ctx, subor_certifikat, subor_kluc) == -1) return -1;
|
|
||||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[i+1], "ecc"))
|
else if(!strcmp(argv[i+1], "ecc"))
|
||||||
{
|
{
|
||||||
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_ecc.pem", NULL);
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_ecc.pem", NULL);
|
||||||
if(generovat_ecc_certifikat(ECC_VELKOST, ECC_SECP256R1, CTC_SHAwECDSA, "SR", "Kosice", "local.dev", "server@server.sk") == -1) return -1;
|
if(generovat_ecc_certifikat(ECC_VELKOST, ECC_SECP256R1, CTC_SHAwECDSA, "SR", "Kosice", "local.dev", "server@server.sk") == -1) return -1;
|
||||||
subor_certifikat = "../certifikaty/vygenerovany_certifikat.pem";
|
if(nacitat_certifikaty(ctx, VYGENEROVANY_CERTIFIKAT, VYGENEROVANY_KLUC) == -1) return -1;
|
||||||
subor_kluc = "../certifikaty/vygenerovany_kluc.key";
|
|
||||||
if(nacitat_certifikaty(ctx, subor_certifikat, subor_kluc) == -1) return -1;
|
|
||||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -180,6 +174,7 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
zobraz_sifru(ssl);
|
zobraz_sifru(ssl);
|
||||||
zobraz_certifikat(ssl);
|
zobraz_certifikat(ssl);
|
||||||
|
nastav_funkciu(funkcia_BLAKE2B);
|
||||||
prijat_subor(ssl, ctx);
|
prijat_subor(ssl, ctx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -344,12 +344,10 @@ WOLFSSL_API int wc_MakeCert_ex(Cert* cert, byte* derBuffer, word32 derSz,
|
|||||||
int keyType, void* key, WC_RNG* rng);
|
int keyType, void* key, WC_RNG* rng);
|
||||||
WOLFSSL_API int wc_MakeCert(Cert*, byte* derBuffer, word32 derSz, RsaKey*,
|
WOLFSSL_API int wc_MakeCert(Cert*, byte* derBuffer, word32 derSz, RsaKey*,
|
||||||
ecc_key*, WC_RNG*);
|
ecc_key*, WC_RNG*);
|
||||||
#ifdef WOLFSSL_CERT_REQ
|
|
||||||
WOLFSSL_API int wc_MakeCertReq_ex(Cert*, byte* derBuffer, word32 derSz,
|
WOLFSSL_API int wc_MakeCertReq_ex(Cert*, byte* derBuffer, word32 derSz,
|
||||||
int, void*);
|
int, void*);
|
||||||
WOLFSSL_API int wc_MakeCertReq(Cert*, byte* derBuffer, word32 derSz,
|
WOLFSSL_API int wc_MakeCertReq(Cert*, byte* derBuffer, word32 derSz,
|
||||||
RsaKey*, ecc_key*);
|
RsaKey*, ecc_key*);
|
||||||
#endif
|
|
||||||
WOLFSSL_API int wc_SignCert_ex(int requestSz, int sType, byte* buffer,
|
WOLFSSL_API int wc_SignCert_ex(int requestSz, int sType, byte* buffer,
|
||||||
word32 buffSz, int keyType, void* key,
|
word32 buffSz, int keyType, void* key,
|
||||||
WC_RNG* rng);
|
WC_RNG* rng);
|
||||||
|
@ -28,8 +28,6 @@
|
|||||||
|
|
||||||
#include <wolfssl/wolfcrypt/settings.h>
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
|
||||||
#if defined(HAVE_BLAKE2) || defined(HAVE_BLAKE2S)
|
|
||||||
|
|
||||||
#include <wolfssl/wolfcrypt/blake2-int.h>
|
#include <wolfssl/wolfcrypt/blake2-int.h>
|
||||||
|
|
||||||
/* call old functions if using fips for the sake of hmac @wc_fips */
|
/* call old functions if using fips for the sake of hmac @wc_fips */
|
||||||
@ -46,10 +44,8 @@
|
|||||||
|
|
||||||
/* in bytes, variable digest size up to 512 bits (64 bytes) */
|
/* in bytes, variable digest size up to 512 bits (64 bytes) */
|
||||||
enum {
|
enum {
|
||||||
#ifdef HAVE_BLAKE2B
|
|
||||||
BLAKE2B_ID = WC_HASH_TYPE_BLAKE2B,
|
BLAKE2B_ID = WC_HASH_TYPE_BLAKE2B,
|
||||||
BLAKE2B_256 = 32, /* 256 bit type, SSL default */
|
BLAKE2B_256 = 32, /* 256 bit type, SSL default */
|
||||||
#endif
|
|
||||||
#ifdef HAVE_BLAKE2S
|
#ifdef HAVE_BLAKE2S
|
||||||
BLAKE2S_ID = WC_HASH_TYPE_BLAKE2S,
|
BLAKE2S_ID = WC_HASH_TYPE_BLAKE2S,
|
||||||
BLAKE2S_256 = 32 /* 256 bit type */
|
BLAKE2S_256 = 32 /* 256 bit type */
|
||||||
@ -57,13 +53,11 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_BLAKE2B
|
|
||||||
/* BLAKE2b digest */
|
/* BLAKE2b digest */
|
||||||
typedef struct Blake2b {
|
typedef struct Blake2b {
|
||||||
blake2b_state S[1]; /* our state */
|
blake2b_state S[1]; /* our state */
|
||||||
word32 digestSz; /* digest size used on init */
|
word32 digestSz; /* digest size used on init */
|
||||||
} Blake2b;
|
} Blake2b;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_BLAKE2S
|
#ifdef HAVE_BLAKE2S
|
||||||
/* BLAKE2s digest */
|
/* BLAKE2s digest */
|
||||||
@ -74,11 +68,9 @@ typedef struct Blake2s {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_BLAKE2B
|
|
||||||
WOLFSSL_API int wc_InitBlake2b(Blake2b*, word32);
|
WOLFSSL_API int wc_InitBlake2b(Blake2b*, word32);
|
||||||
WOLFSSL_API int wc_Blake2bUpdate(Blake2b*, const byte*, word32);
|
WOLFSSL_API int wc_Blake2bUpdate(Blake2b*, const byte*, word32);
|
||||||
WOLFSSL_API int wc_Blake2bFinal(Blake2b*, byte*, word32);
|
WOLFSSL_API int wc_Blake2bFinal(Blake2b*, byte*, word32);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_BLAKE2S
|
#ifdef HAVE_BLAKE2S
|
||||||
WOLFSSL_API int wc_InitBlake2s(Blake2s*, word32);
|
WOLFSSL_API int wc_InitBlake2s(Blake2s*, word32);
|
||||||
@ -91,6 +83,5 @@ WOLFSSL_API int wc_Blake2sFinal(Blake2s*, byte*, word32);
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* HAVE_BLAKE2 || HAVE_BLAKE2S */
|
|
||||||
#endif /* WOLF_CRYPT_BLAKE2_H */
|
#endif /* WOLF_CRYPT_BLAKE2_H */
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ enum {
|
|||||||
IPAD = 0x36,
|
IPAD = 0x36,
|
||||||
OPAD = 0x5C,
|
OPAD = 0x5C,
|
||||||
|
|
||||||
/* If any hash is not enabled, add the ID here. */
|
/* If any hash is not enabled, add the ID here.
|
||||||
#ifdef NO_MD5
|
#ifdef NO_MD5
|
||||||
WC_MD5 = WC_HASH_TYPE_MD5,
|
WC_MD5 = WC_HASH_TYPE_MD5,
|
||||||
#endif
|
#endif
|
||||||
@ -93,6 +93,7 @@ enum {
|
|||||||
WC_SHA3_384 = WC_HASH_TYPE_SHA3_384,
|
WC_SHA3_384 = WC_HASH_TYPE_SHA3_384,
|
||||||
WC_SHA3_512 = WC_HASH_TYPE_SHA3_512,
|
WC_SHA3_512 = WC_HASH_TYPE_SHA3_512,
|
||||||
#endif
|
#endif
|
||||||
|
*/
|
||||||
#ifdef HAVE_PKCS11
|
#ifdef HAVE_PKCS11
|
||||||
HMAC_MAX_ID_LEN = 32,
|
HMAC_MAX_ID_LEN = 32,
|
||||||
#endif
|
#endif
|
||||||
|
@ -28,8 +28,6 @@
|
|||||||
|
|
||||||
#include <wolfssl/wolfcrypt/types.h>
|
#include <wolfssl/wolfcrypt/types.h>
|
||||||
|
|
||||||
#ifdef WOLFSSL_RIPEMD
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@ -63,5 +61,4 @@ WOLFSSL_API int wc_RipeMdFinal(RipeMd*, byte*);
|
|||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* WOLFSSL_RIPEMD */
|
|
||||||
#endif /* WOLF_CRYPT_RIPEMD_H */
|
#endif /* WOLF_CRYPT_RIPEMD_H */
|
||||||
|
@ -202,7 +202,6 @@ WOLFSSL_API void wc_Sha256SizeSet(wc_Sha256*, word32);
|
|||||||
WOLFSSL_API int wc_Sha256GetFlags(wc_Sha256* sha256, word32* flags);
|
WOLFSSL_API int wc_Sha256GetFlags(wc_Sha256* sha256, word32* flags);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WOLFSSL_SHA224
|
|
||||||
/* avoid redefinition of structs */
|
/* avoid redefinition of structs */
|
||||||
#if !defined(HAVE_FIPS) || \
|
#if !defined(HAVE_FIPS) || \
|
||||||
(defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2))
|
(defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2))
|
||||||
@ -244,8 +243,6 @@ WOLFSSL_API int wc_Sha224Copy(wc_Sha224* src, wc_Sha224* dst);
|
|||||||
WOLFSSL_API int wc_Sha224GetFlags(wc_Sha224* sha224, word32* flags);
|
WOLFSSL_API int wc_Sha224GetFlags(wc_Sha224* sha224, word32* flags);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* WOLFSSL_SHA224 */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif
|
#endif
|
||||||
|
@ -29,8 +29,6 @@
|
|||||||
|
|
||||||
#include <wolfssl/wolfcrypt/types.h>
|
#include <wolfssl/wolfcrypt/types.h>
|
||||||
|
|
||||||
#if defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA384)
|
|
||||||
|
|
||||||
#if defined(HAVE_FIPS) && \
|
#if defined(HAVE_FIPS) && \
|
||||||
defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2)
|
defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2)
|
||||||
#include <wolfssl/wolfcrypt/fips.h>
|
#include <wolfssl/wolfcrypt/fips.h>
|
||||||
@ -151,7 +149,6 @@ WOLFSSL_LOCAL void Transform_Sha512_Len(wc_Sha512* sha512, const byte* data,
|
|||||||
word32 len);
|
word32 len);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WOLFSSL_SHA512
|
|
||||||
|
|
||||||
WOLFSSL_API int wc_InitSha512(wc_Sha512*);
|
WOLFSSL_API int wc_InitSha512(wc_Sha512*);
|
||||||
WOLFSSL_API int wc_InitSha512_ex(wc_Sha512*, void*, int);
|
WOLFSSL_API int wc_InitSha512_ex(wc_Sha512*, void*, int);
|
||||||
@ -168,9 +165,6 @@ WOLFSSL_API int wc_Sha512Copy(wc_Sha512* src, wc_Sha512* dst);
|
|||||||
WOLFSSL_API int wc_Sha512GetFlags(wc_Sha512* sha512, word32* flags);
|
WOLFSSL_API int wc_Sha512GetFlags(wc_Sha512* sha512, word32* flags);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* WOLFSSL_SHA512 */
|
|
||||||
|
|
||||||
#if defined(WOLFSSL_SHA384)
|
|
||||||
|
|
||||||
/* avoid redefinition of structs */
|
/* avoid redefinition of structs */
|
||||||
#if !defined(HAVE_FIPS) || \
|
#if !defined(HAVE_FIPS) || \
|
||||||
@ -217,12 +211,9 @@ WOLFSSL_API int wc_Sha384Copy(wc_Sha384* src, wc_Sha384* dst);
|
|||||||
WOLFSSL_API int wc_Sha384GetFlags(wc_Sha384* sha384, word32* flags);
|
WOLFSSL_API int wc_Sha384GetFlags(wc_Sha384* sha384, word32* flags);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* WOLFSSL_SHA384 */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* WOLFSSL_SHA512 || WOLFSSL_SHA384 */
|
|
||||||
#endif /* WOLF_CRYPT_SHA512_H */
|
#endif /* WOLF_CRYPT_SHA512_H */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user