diff --git a/certifikaty/autorita/autorita_ecc.der b/certifikaty/autorita/autorita_ecc.der new file mode 100644 index 0000000..7c3023e Binary files /dev/null and b/certifikaty/autorita/autorita_ecc.der differ diff --git a/certifikaty/autorita_ecc.pem b/certifikaty/autorita/autorita_ecc.pem similarity index 100% rename from certifikaty/autorita_ecc.pem rename to certifikaty/autorita/autorita_ecc.pem diff --git a/certifikaty/autorita/autorita_kluc_ecc.der b/certifikaty/autorita/autorita_kluc_ecc.der new file mode 100644 index 0000000..95dc9af Binary files /dev/null and b/certifikaty/autorita/autorita_kluc_ecc.der differ diff --git a/certifikaty/autorita/autorita_kluc_rsa.der b/certifikaty/autorita/autorita_kluc_rsa.der new file mode 100644 index 0000000..5d4c144 Binary files /dev/null and b/certifikaty/autorita/autorita_kluc_rsa.der differ diff --git a/certifikaty/autorita/autorita_rsa.der b/certifikaty/autorita/autorita_rsa.der new file mode 100644 index 0000000..d40782b Binary files /dev/null and b/certifikaty/autorita/autorita_rsa.der differ diff --git a/certifikaty/autorita_rsa.pem b/certifikaty/autorita/autorita_rsa.pem similarity index 100% rename from certifikaty/autorita_rsa.pem rename to certifikaty/autorita/autorita_rsa.pem diff --git a/certifikaty/autorita_ecc.key b/certifikaty/autorita_ecc.key deleted file mode 100644 index e5b1075..0000000 --- a/certifikaty/autorita_ecc.key +++ /dev/null @@ -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----- diff --git a/certifikaty/autorita_rsa.key b/certifikaty/autorita_rsa.key deleted file mode 100644 index 53d059d..0000000 --- a/certifikaty/autorita_rsa.key +++ /dev/null @@ -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----- diff --git a/certifikaty/klient_ecc.key b/certifikaty/klient/klient_ecc.key similarity index 100% rename from certifikaty/klient_ecc.key rename to certifikaty/klient/klient_ecc.key diff --git a/certifikaty/klient_ecc.pem b/certifikaty/klient/klient_ecc.pem similarity index 100% rename from certifikaty/klient_ecc.pem rename to certifikaty/klient/klient_ecc.pem diff --git a/certifikaty/klient_rsa.key b/certifikaty/klient/klient_rsa.key similarity index 100% rename from certifikaty/klient_rsa.key rename to certifikaty/klient/klient_rsa.key diff --git a/certifikaty/klient_rsa.pem b/certifikaty/klient/klient_rsa.pem similarity index 100% rename from certifikaty/klient_rsa.pem rename to certifikaty/klient/klient_rsa.pem diff --git a/certifikaty/klient/vygenerovany_certifikat.pem b/certifikaty/klient/vygenerovany_certifikat.pem new file mode 100644 index 0000000..f148627 --- /dev/null +++ b/certifikaty/klient/vygenerovany_certifikat.pem @@ -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----- diff --git a/certifikaty/klient/vygenerovany_kluc.key b/certifikaty/klient/vygenerovany_kluc.key new file mode 100644 index 0000000..f3014ba --- /dev/null +++ b/certifikaty/klient/vygenerovany_kluc.key @@ -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----- diff --git a/certifikaty/server_ecc.key b/certifikaty/server/server_ecc.key similarity index 100% rename from certifikaty/server_ecc.key rename to certifikaty/server/server_ecc.key diff --git a/certifikaty/server_ecc.pem b/certifikaty/server/server_ecc.pem similarity index 100% rename from certifikaty/server_ecc.pem rename to certifikaty/server/server_ecc.pem diff --git a/certifikaty/server_rsa.key b/certifikaty/server/server_rsa.key similarity index 100% rename from certifikaty/server_rsa.key rename to certifikaty/server/server_rsa.key diff --git a/certifikaty/server_rsa.pem b/certifikaty/server/server_rsa.pem similarity index 100% rename from certifikaty/server_rsa.pem rename to certifikaty/server/server_rsa.pem diff --git a/certifikaty/server/vygenerovany_certifikat.pem b/certifikaty/server/vygenerovany_certifikat.pem new file mode 100644 index 0000000..4369bd4 --- /dev/null +++ b/certifikaty/server/vygenerovany_certifikat.pem @@ -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----- diff --git a/certifikaty/server/vygenerovany_kluc.key b/certifikaty/server/vygenerovany_kluc.key new file mode 100644 index 0000000..3825df2 --- /dev/null +++ b/certifikaty/server/vygenerovany_kluc.key @@ -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----- diff --git a/certifikaty/vygenerovany_certifikat.pem b/certifikaty/vygenerovany_certifikat.pem index 3fb17e2..25a6216 100644 --- a/certifikaty/vygenerovany_certifikat.pem +++ b/certifikaty/vygenerovany_certifikat.pem @@ -1,18 +1,18 @@ -----BEGIN CERTIFICATE----- -MIIC9TCCAl6gAwIBAgIQC2pwGj3EsKY5/Wt5EhoJ/DANBgkqhkiG9w0BAQsFADBz -MQswCQYDVQQGEwJTSzEKMAgGA1UECAwBLTEPMA0GA1UEBwwGS29zaWNlMREwDwYD -VQQKDAhBdXRvcml0YTESMBAGA1UEAwwJbG9jYWwuZGV2MSAwHgYJKoZIhvcNAQkB -FhFhdXRvcml0YUB0dWtlLmNvbTAiGA8yMDIwMDMxMjA5MTY1MloYDzIwMjUwMzEy -MDkxNjUyWjB3MQswCQYDVQQGEwJTUjEKMAgGA1UECAwBLTEPMA0GA1UEBwwGS29z -aWNlMQowCAYDVQQKDAEtMQowCAYDVQQLDAEtMRIwEAYDVQQDDAlsb2NhbC5kZXYx -HzAdBgkqhkiG9w0BCQEWEGtsaWVudEBrbGllbnQuc2swggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQDwDx1IjmJ7IzU+cgvzaBJJpEygza6drlQXiCr2hHbG -+PY4Ix+x6BorMrpjjIPxybMG8H1kixRSyiS6URFlJX+HdEgilH6jbqhmdpt8mAz4 -MgaD6L2+QimiKAQ1l50sqyE9bpEWstXpvjUi7kbh53qMdK1hGrH1fo7KUhsXAYcO -n00G3DXYOAwuKlHddFk4xpdlorvWinRjJ68Mnn7+nHO8gk5hdfG8QPkVGO+PEsw+ -vrFzR92V7YQ+cB24MfxK3hZLbs0K0FyRWJBQ282ckM8nkScw6bmnekKhYMVAyU3h -WUoe2T1BCDKSiVUaU7m3YEPkpugkTuHPndJBHjxnUZ1lAgMBAAEwDQYJKoZIhvcN -AQELBQADgYEAKdlP2IZv7houMO3D66vtxa4bOH+cGOhWmAXXq8RRSEhV6FM6IfeR -rkGcfm8LBXgIM1DQWZcR1BssPNZPm+P4QwVA08NrQDwSP9d3qQw+dFpJpGSoZXCi -NrmYgRCqDQkMWxXQO1rjufAYXlYnH0xH8Ro43t90zc9j8GQhd0jd49o= +MIIC9DCCAl2gAwIBAgIPOFnW4ztFVHh112J1efiUMA0GCSqGSIb3DQEBCwUAMHMx +CzAJBgNVBAYTAlNLMQowCAYDVQQIDAEtMQ8wDQYDVQQHDAZLb3NpY2UxETAPBgNV +BAoMCEF1dG9yaXRhMRIwEAYDVQQDDAlsb2NhbC5kZXYxIDAeBgkqhkiG9w0BCQEW +EWF1dG9yaXRhQHR1a2UuY29tMCIYDzIwMjAwMzE4MTIzMDM3WhgPMjAyNTAzMTgx +MjMwMzdaMHcxCzAJBgNVBAYTAlNSMQowCAYDVQQIDAEtMQ8wDQYDVQQHDAZLb3Np +Y2UxCjAIBgNVBAoMAS0xCjAIBgNVBAsMAS0xEjAQBgNVBAMMCWxvY2FsLmRldjEf +MB0GCSqGSIb3DQEJARYQa2xpZW50QGtsaWVudC5zazCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBANhd9y+QBegPHmVd5/CJmhz4dJjNEqppJkOgxkxK98so +aJa/9DJ5vfBuYS4ghovuCB29kvbMcOcnZK+qE50YVzSRQzoeBOo7vOTzukSdm5Uh +Ja43FDAkUtEt4Z3cGpCMIjaRz+mFKmAyN7EiGeoAeOre1GNc6oqwYDNKQKfshG9Y +HUmO8AenFLTcLCRurwMSsXLTr8OyiLy2ZTuszn7pwisKSEiZFIdGwxSPZdKi5tOF +FxryCaKVD/Hn+NMWTaoX2gBED/4JggftY6YplQMvZyNu1Fz/YCFjq+9sEIfV2595 +E+9MuO/0q9k5/9xDlDt5S+PjSd38N1IaxShdxTBU3AECAwEAATANBgkqhkiG9w0B +AQsFAAOBgQB+YyoHZPpNX3Adu4YeKyyoGV7Bjw3vZwZS3qNCioecGOtO1w7KIsQc +idDf1mCY2PUVC7mrEENtbENK8TAFNYRkv3NOM0UD/KcmJpyo7UdTNZXNyvwlIXrf +2mQz1lE5/jXuDdZdCz5SvslB0vj65NiTOjjWt83KsLkpg9sKudkJrA== -----END CERTIFICATE----- diff --git a/certifikaty/vygenerovany_kluc.key b/certifikaty/vygenerovany_kluc.key index 8bf6b97..01c764d 100644 --- a/certifikaty/vygenerovany_kluc.key +++ b/certifikaty/vygenerovany_kluc.key @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEA8A8dSI5ieyM1PnIL82gSSaRMoM2una5UF4gq9oR2xvj2OCMf -segaKzK6Y4yD8cmzBvB9ZIsUUsokulERZSV/h3RIIpR+o26oZnabfJgM+DIGg+i9 -vkIpoigENZedLKshPW6RFrLV6b41Iu5G4ed6jHStYRqx9X6OylIbFwGHDp9NBtw1 -2DgMLipR3XRZOMaXZaK71op0YyevDJ5+/pxzvIJOYXXxvED5FRjvjxLMPr6xc0fd -le2EPnAduDH8St4WS27NCtBckViQUNvNnJDPJ5EnMOm5p3pCoWDFQMlN4VlKHtk9 -QQgykolVGlO5t2BD5KboJE7hz53SQR48Z1GdZQIDAQABAoIBAGfjCpevMrQ6WNzk -ywIzzBI9fYHrcQFBA5hJb9pOGf7il99UZ+98U/LU2a+iDCmzUXwT0BgWTh3D6CAP -XDlLAIUUj/ETFTjR9yOceY5yWM6CC6rDKnXvOQg5TBULP1Qo3NIyiqxpiURF8cXj -mx5BKBonli6bOF9WvSGWZa3Plex/slnOTdf6wh1cLVY8PI2HVEVIXb+WgT3HEZVX -Mqo5NczyYuw8upvfKMorSa9xc9Hvc6oIUwV/L5OcS+HDZl7QS6fcF3++kE4EChft -8+9O50JRqruh+tcJ7f1KdVFM8U8G8ihGHEOT2FRrcD7krCtElpYUMqts3zv/TFTc -8+YLZOMCgYEA/lTaJ7ISq7jXIyblR5O/jfnM3rUJ0Bm7HWnb9i4UU/GM7jgbgtLw -JzsvIMjy3QsBIc435TdF3+sa40QYwisUxF8jegPJZXM0MA3SbA1tkadVUpbTUVyY -8uCC4MfPnsXUwFbjPppBNWAODC+6oI36I66SqxRZvAhA5m7yZG22AacCgYEA8aJK -s8eJI6yKcuhjVEwPhNLVYW9AwUbcwh8ZdTXKRftUMHTRAkdZeFIZG2DTW3JfJRf9 -eGMcquA+dHqKcWdopNU4gXb/hvS56gIgwYd1LRItK9fVrOWaNNkzw23rlXtm69Kw -1//DJjE+GApW/3t8ihxtnpKTvjwISrxdmVB4UhMCgYBrGbRcbwKpycbfCKwYvkE2 -OnFpf3dIaO2A72kvfCwXRWsBjiMXrlhvTN8FwVl0eAPcBolHP0VvjAPgnHaInbe7 -Eg1QfnO7Aw6BBfEMi4MOiRbHFriaVJIcBStYGQx3Yfu7m1tKq462OWLxAtBmeCNU -D1m4LXO0WQ1rfGEapZC1lQKBgQCpbZOVxYaqhfQ6KCpl1ENZbgACpuCv5UEruGTA -Y+wl79mTdIWNZHweuuox4U2yJFsEhnLLdCuIwV3pjHcAl3KviXZqiQcZGQY3SDCx -ooqOBN25jUidSA09m0MJeEyk7vc2yfAINKUgZYzVjIJ995dWvCI8+ygvTqa9yKCU -vPDxEwKBgA1H9HjatmUaXvCUqB79jevWIfWvupOocjp8yF5ygA0pSfzmrIrf/TWQ -kxvxdWT2N3veIddr8jULX8e/i9hqJnKEqh2zGXL2M53ZFDdsZOeaBSk8RKAiJhVV -a1ddeAkVJ/m4D4unA0hEM4st55fPVdmb3hGi3eM/HG723XxjL/nF +MIIEowIBAAKCAQEA2F33L5AF6A8eZV3n8ImaHPh0mM0SqmkmQ6DGTEr3yyholr/0 +Mnm98G5hLiCGi+4IHb2S9sxw5ydkr6oTnRhXNJFDOh4E6ju85PO6RJ2blSElrjcU +MCRS0S3hndwakIwiNpHP6YUqYDI3sSIZ6gB46t7UY1zqirBgM0pAp+yEb1gdSY7w +B6cUtNwsJG6vAxKxctOvw7KIvLZlO6zOfunCKwpISJkUh0bDFI9l0qLm04UXGvIJ +opUP8ef40xZNqhfaAEQP/gmCB+1jpimVAy9nI27UXP9gIWOr72wQh9Xbn3kT70y4 +7/Sr2Tn/3EOUO3lL4+NJ3fw3UhrFKF3FMFTcAQIDAQABAoIBABISdy0P2I5zhNRu +rYrX03mL/yEsL9zv/3Qyn52LvXrIm0PMMLdul8DXV2Kk8NgLP75MMVRP6zZDghNy +H0VF3TLU10qpazutVa/B89L7Xx1rsVwF2bfTsN8r9+ZZlhZwvgLU1wroRovWZfRz +prp246Kqjg7mmeiPptlh4FimVsF98U0Iz132z9KTxFufJ5wcTcGvz+Z+p5lVIeBY +hCdYWWLXXT3mjXVQjFGF13NuY2+CT2AL2EzrwN0/+tcytJMUh/ThBxU2PwPyMnZz +fTVddcJt5Ipg4m3LQfVZZX+XpckpEI8lkbsvOC86Y9Iu5FJmPd43X4qAnXgWLzgp +Cm9GVGECgYEA89vpdqNGYbRQR6TrlZ2kYCMyCMj1Op47jtDpW6zE11iDjszE2VWD +XwkWE55hj0tp073kCnJzPM1Y8CslVhDGzygx5wiNRupKE9vRSkYxwsXaJpF0SfYc +ZiaPvL+6MeRtLMZ0Fkk5HbjpwcTtJP7f2oQH/owxd/sWOGS/kWY5hcUCgYEA4yOo +Ewfde3jZY0OUiERq9OadLpaKI2ADJvkyKxZmWzGFUVJ/PVoTYPR1EQurXi1kLXXI +rDA5H+Lz27R+9gTT8K6u7Faanlhp3P65xPIuCiJ78Nh6TnG5NRt7A2P5XY6UGahT +Zzj5UQc4P796DAgB6CPYCCsn0Gxz+u4R3/gW3Q0CgYBIaNBWDf1kHaqI24uojXq1 +oT3GJgXLNhjxO09PjWmVmA7YZC0/a4jqu0P251yItBfka8o+3+Uf9Mmn5ufbOngO +Ix1OQNfSatc8NlVa/KTh9OXl9eLV42JjYqfjn/qlvfI9DWCDDZMMJFAk3VidV6EY +vYOyLeayfbgHXsMTZYtHEQKBgQCw+LkdisVATJpjwuXZfiUvhvb0s4oRod8S4Jn8 +BEnfx6euAu7saGAs7IrBqyvsBsXEvb6KmlAHzhZeGjXJjV1sa04TCi8SLKTe8QDg +uCiy8MdMkf5JXEYHYM/phl1mTY6KpyHEjRmDznI/CPsYoKyLqFHLm4Q72iRLYG5A +6NU3iQKBgByzyily3RuiAhC5+fsiZafqpTx7+9Tc6CZnuS0HlGH6WJ9b7fgXWKD9 +d252qQyaHGzHAtaF2tjzTwEbI3WIJmFU1y+XOXPDdue32saNNhXd6xF7FD1RK4az +T3hOyo14S4RPvpJp6KITPBLD6kUUQS8r/gcGXLWBDudsTFH1UgJy -----END RSA PRIVATE KEY----- diff --git a/kniznica/komunikacia.c b/kniznica/komunikacia.c index 3c365af..beeee7e 100644 --- a/kniznica/komunikacia.c +++ b/kniznica/komunikacia.c @@ -9,6 +9,13 @@ #include "komunikacia.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 uspech; @@ -48,17 +55,6 @@ int poslat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, char* cesta) fseek(subor, 0, SEEK_SET); fread(pole, 1, velkost, 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 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; } 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; } } @@ -109,15 +120,6 @@ int prijat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx) 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 char* pole = malloc(velkost); char* pole_uk = pole; @@ -126,24 +128,42 @@ int prijat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx) uspech = wolfSSL_read(ssl, pole_uk, velkost); if(uspech <= 0) { - fprintf(stderr, "Nastala chyba pri prijati suboru\n"); + fprintf(stderr, "Nastala chyba pri prijati suboru.\n"); return -1; } pole_uk += 1; } 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 - byte* vypocitany_hash; - vypocitany_hash = generovat_hash(cesta); - for(int i = 0; i < VELKOST_HASHU; i++) vypocitany_hash[i] = (char)vypocitany_hash[i]; - if(!strcmp(prijaty_hash, vypocitany_hash)) + for(int i = 0; i < velkost_kontrolneho_suctu; i++) + { + kontrolny_sucet[i] = (char)kontrolny_sucet[i]; + } + printf("%s\n", prijaty_kontrolny_sucet); + printf("%s\n", kontrolny_sucet); + if(!strcmp(prijaty_kontrolny_sucet, kontrolny_sucet)) { printf("Subor prisiel v poriadku.\n"); } 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; } diff --git a/kniznica/komunikacia.h b/kniznica/komunikacia.h index 376aedb..08fd4b4 100644 --- a/kniznica/komunikacia.h +++ b/kniznica/komunikacia.h @@ -14,9 +14,10 @@ #include #include +#include "kryptografia.h" + #define VELKOST_CESTY 64 //velkost retazca, kt. uklada lokaciu suboru #define VELKOST_SUBOR 32 //velkost retazca, kt. uklada velkost prenasaneho suboru -#define VELKOST_HASHU 20 #if defined(_WIN32) //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); +/** + * 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 \ No newline at end of file diff --git a/kniznica/kryptografia.c b/kniznica/kryptografia.c index 8415ea1..38bc620 100644 --- a/kniznica/kryptografia.c +++ b/kniznica/kryptografia.c @@ -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 uspech; + int uspech = 0; //premenne pre ukladanie dat autority RsaKey kluc_autorita; - byte pem_autorita[VELKOST_BUFFERA]; - word32 pem_autorita_velkost; - byte der_autorita[VELKOST_BUFFERA]; - word32 der_autorita_velkost; + byte der_autorita_certifikat[VELKOST_BUFFERA]; + int der_autorita_certifikat_velkost; + byte der_autorita_kluc[VELKOST_BUFFERA]; + int der_autorita_kluc_velkost; - //vytvorenie struktury RsaKey autority zo sukromneho kluca vo formate PEM ulozeneho v subore certifikaty/autorita.key - memset(pem_autorita, 0, sizeof(pem_autorita)); - FILE* subor = fopen("../certifikaty/autorita_rsa.key", "rb"); - pem_autorita_velkost = fread(pem_autorita, 1, VELKOST_BUFFERA, subor); - if(pem_autorita_velkost < 0) + //nacitanie certifikatu autority vo formate DER ulozeneho v subore certifikaty/autorita/autorita_rsa.der + printf("Nacitavanie certifikatu autority zo suboru.\n"); + FILE* subor = fopen("../certifikaty/autorita/autorita_rsa.der", "rb"); + der_autorita_certifikat_velkost = fread(der_autorita_certifikat, 1, VELKOST_BUFFERA , subor); + if(der_autorita_certifikat_velkost < 0) { - 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"); + fprintf(stderr, "Nepodarilo sa nacitat obsah suboru. \n"); return -1; } - RsaKey* k = &kluc_autorita; - if (k == NULL) + fclose(subor); + 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"); 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)); return -1; } - der_kluc_velkost = wc_RsaKeyToDer(&kluc, der_kluc, sizeof(der_kluc)); - if(der_kluc_velkost < 0) + uspech = wc_RsaKeyToDer(&kluc, der_kluc, sizeof(der_kluc)); + if(uspech < 0) { fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER so sukromnym klucom.\n"); 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) + uspech = wc_DerToPem(der_kluc, der_kluc_velkost, pem_kluc, sizeof(pem_kluc), PRIVATEKEY_TYPE); + if(uspech < 0) { fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM so sukromnym klucom\n"); return -1; } + pem_kluc_velkost = uspech; //zapis vygenerovaneho klucu do suboru 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.sigType = algoritmus; 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) { fprintf(stderr, "Nastala chyba pri nastaveni autority.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech)); return -1; } - der_certifikat_velkost = wc_MakeCert(&certifikat, der_certifikat, sizeof(der_certifikat), &kluc, NULL, &generator); - if(der_certifikat_velkost < 0) + uspech = wc_MakeCert(&certifikat, der_certifikat, sizeof(der_certifikat), &kluc, NULL, &generator); + 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; } - der_certifikat_velkost = wc_SignCert(certifikat.bodySz, certifikat.sigType, der_certifikat, sizeof(der_certifikat), &kluc_autorita, NULL, &generator); - if(der_certifikat_velkost < 0) + uspech = wc_SignCert(certifikat.bodySz, certifikat.sigType, der_certifikat, sizeof(der_certifikat), &kluc_autorita, NULL, &generator); + if(uspech < 0) { fprintf(stderr, "Nastala chyba pri podpisovani certifikatu.\n"); return -1; } + der_certifikat_velkost = uspech; memset(pem_certifikat, 0, sizeof(pem_certifikat)); - pem_certifikat_velkost = wc_DerToPem(der_certifikat, der_certifikat_velkost, pem_certifikat, sizeof(pem_certifikat), CERT_TYPE); - if(pem_certifikat_velkost < 0) + uspech = wc_DerToPem(der_certifikat, der_certifikat_velkost, pem_certifikat, sizeof(pem_certifikat), CERT_TYPE); + 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; } + pem_certifikat_velkost = uspech; //zapis vygenerovaneho klucu do suboru 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 ecc_key kluc_autorita; - byte pem_autorita[VELKOST_BUFFERA]; - word32 pem_autorita_velkost; - byte der_autorita[VELKOST_BUFFERA]; - word32 der_autorita_velkost; + byte der_autorita_certifikat[VELKOST_BUFFERA]; + int der_autorita_certifikat_velkost; + byte der_autorita_kluc[VELKOST_BUFFERA]; + int der_autorita_kluc_velkost; - //vytvorenie struktury ecc_key autority zo sukromneho kluca vo formate PEM ulozeneho v subore certifikaty/autorita_ecc.key - memset(pem_autorita, 0, sizeof(pem_autorita)); - FILE* subor = fopen("../certifikaty/autorita_ecc.key", "rb"); - pem_autorita_velkost = fread(pem_autorita, 1, VELKOST_BUFFERA , subor); - if(pem_autorita_velkost < 0) + //nacitanie certifikatu autority vo formate DER ulozeneho v subore certifikaty/autorita/autorita_ecc.der + printf("Nacitavanie certifikatu autority zo suboru.\n"); + FILE* subor = fopen("../certifikaty/autorita/autorita_ecc.der", "rb"); + der_autorita_certifikat_velkost = fread(der_autorita_certifikat, 1, VELKOST_BUFFERA , subor); + 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); - word32 index = 0; //nastavi odkial zacat citat buffer - 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); - ecc_key* k = &kluc_autorita; - if (k == NULL) + printf("Nacitanie ukoncene. Bolo nacitanych %d bajtov.\n", der_autorita_certifikat_velkost); + + //vytvorenie struktury ecc_key autority zo sukromneho kluca vo formate DER ulozeneho v subore certifikaty/autorita/autorita_kluc_ecc.der + printf("Nacitavanie sukromneho kluca autority zo suboru.\n"); + 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; } @@ -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)); return -1; } - der_kluc_velkost = wc_EccKeyToDer(&kluc, der_kluc, sizeof(der_kluc)); - if(der_kluc_velkost < 0) + uspech = wc_EccKeyToDer(&kluc, der_kluc, sizeof(der_kluc)); + 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; } - pem_kluc_velkost = wc_DerToPem(der_kluc, der_kluc_velkost, pem_kluc, sizeof(pem_kluc), ECC_PRIVATEKEY_TYPE); - if(pem_kluc_velkost < 0) + der_kluc_velkost = uspech; + 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; } + pem_kluc_velkost = uspech; //zapis vygenerovaneho kluca do suboru subor = fopen("../certifikaty/vygenerovany_kluc.key", "wb"); fwrite(pem_kluc, 1, pem_kluc_velkost, subor); fclose(subor); - printf("ECC kluc bol uspesne vygenerovany a nacitany.\n"); + printf("ECC kluc bol uspesne vygenerovany.\n"); //premenne pre ukladanie dat certifikatu Cert certifikat; @@ -253,7 +281,7 @@ int generovat_ecc_certifikat(int pocet_bitov, ecc_curve_id kluc_krivka, int algo word32 der_certifikat_velkost; byte pem_certifikat[VELKOST_BUFFERA]; word32 pem_certifikat_velkost; - + //vygenerovanie a podpis certifikatu wc_InitCert(&certifikat); 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.sigType = algoritmus; 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) { fprintf(stderr, "Nastala chyba pri nastaveni autority.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech)); return -1; } - der_certifikat_velkost = wc_MakeCert(&certifikat, der_certifikat, sizeof(der_certifikat), NULL, &kluc, &generator); - if(der_certifikat_velkost < 0) + uspech = wc_MakeCert(&certifikat, der_certifikat, sizeof(der_certifikat), NULL, &kluc, &generator); + 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; } - der_certifikat_velkost = wc_SignCert(certifikat.bodySz, certifikat.sigType, der_certifikat, sizeof(der_certifikat), NULL, &kluc_autorita, &generator); - if(der_certifikat_velkost < 0) + uspech = wc_SignCert(certifikat.bodySz, certifikat.sigType, der_certifikat, sizeof(der_certifikat), NULL, &kluc_autorita, &generator); + 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; } + der_certifikat_velkost = uspech; memset(pem_certifikat, 0, sizeof(pem_certifikat)); - pem_certifikat_velkost = wc_DerToPem(der_certifikat, der_certifikat_velkost, pem_certifikat, sizeof(pem_certifikat), CERT_TYPE); - if(pem_certifikat_velkost < 0) + uspech = wc_DerToPem(der_certifikat, der_certifikat_velkost, pem_certifikat, sizeof(pem_certifikat), CERT_TYPE); + 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; } + pem_certifikat_velkost = uspech; //zapis vygenerovaneho klucu do suboru subor = fopen("../certifikaty/vygenerovany_certifikat.pem", "wb"); fwrite(pem_certifikat, 1, pem_certifikat_velkost, 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) @@ -342,7 +526,7 @@ void zobraz_certifikat(WOLFSSL* ssl) } 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); } 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); } -byte* generovat_hash(char* cesta) +byte* generovat_kontrolny_sucet_suboru(hashovacia_funkcia funkcia, char* cesta, int* velkost) { int pocet_bajtov; FILE* subor = fopen(cesta, "rb"); unsigned char data[1024]; - byte* vysledok = calloc(SHA_DIGEST_SIZE, sizeof(byte)); - Sha sha; - wc_InitSha(&sha); - while ((pocet_bajtov = fread (data, 1, 1024, subor)) != 0) - wc_ShaUpdate(&sha, data, pocet_bajtov); - wc_ShaFinal(&sha, vysledok); + byte* vysledok; + if(funkcia == funkcia_SHA) + { + *velkost = SHA_DIGEST_SIZE; + vysledok = calloc(SHA_DIGEST_SIZE, sizeof(byte)); + 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; } diff --git a/kniznica/kryptografia.h b/kniznica/kryptografia.h index 2d3cca8..98bdf03 100644 --- a/kniznica/kryptografia.h +++ b/kniznica/kryptografia.h @@ -17,15 +17,27 @@ #include #include #include +#include +#include +#include +#include #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 + * @parameter char* funkcia : nazov funkcie pre vypocet kontrolneho suctu * @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 */ -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, @@ -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); +/** + * 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 * na zaklade verzie tls (client method) diff --git a/rs232_kanal/ws2_32.dll b/rs232_kanal/ws2_32.dll deleted file mode 100644 index e660ac0..0000000 Binary files a/rs232_kanal/ws2_32.dll and /dev/null differ diff --git a/rs232_kanal/ws2_32_64.dll b/rs232_kanal/ws2_32_64.dll deleted file mode 100644 index 92d4481..0000000 Binary files a/rs232_kanal/ws2_32_64.dll and /dev/null differ diff --git a/tcpip_kanal/Makefile b/tcpip_kanal/Makefile index 1894452..767b961 100644 --- a/tcpip_kanal/Makefile +++ b/tcpip_kanal/Makefile @@ -11,28 +11,42 @@ CC = gcc #prepinace pre prekladac CFLAGS = -Wcpp -I./../wolfssl_hlavickove_subory/ -LIB32 = -L. -lwolfssl -lws2_32 -Os -LIB64 = -L. -lwolfssl -lws2_32 -m64 +LIB = -L. -lwolfssl + +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 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 - $(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 - $(CC) $(CFLAGS) -c klient.c $(LIB64) + $(CC) $(CFLAGS) -c klient.c $(LIB) server.o: server.c - $(CC) $(CFLAGS) -c server.c $(LIB64) + $(CC) $(CFLAGS) -c server.c $(LIB) 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 - $(CC) $(CFLAGS) -c ../kniznica/komunikacia.c $(LIB64) + $(CC) $(CFLAGS) -c ../kniznica/komunikacia.c $(LIB) .PHONY: clean diff --git a/tcpip_kanal/klient.c b/tcpip_kanal/klient.c index b6fedb4..142b408 100644 --- a/tcpip_kanal/klient.c +++ b/tcpip_kanal/klient.c @@ -15,8 +15,17 @@ #define ECC_VELKOST 32 #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 uspech; int generovanie_certifikatu = 0; int nacitanie_zo_suboru = 0; int uvedeny_subor = 0; @@ -104,19 +113,13 @@ int main(int argc, char** argv) } else if(!strcmp(argv[i+1], "rsa")) { - wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_rsa.pem", NULL); - subor_certifikat = "../certifikaty/klient_rsa.pem"; - 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); + wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_rsa.pem", NULL); + if(nacitat_certifikaty(ctx, RSA_CERTIFIKAT, RSA_KLUC) == -1) return -1; } else if(!strcmp(argv[i+1], "ecc")) { - wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_ecc.pem", NULL); - subor_certifikat = "../certifikaty/klient_ecc.pem"; - 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); + wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_ecc.pem", NULL); + if(nacitat_certifikaty(ctx, ECC_CERTIFIKAT, ECC_KLUC) == -1) return -1; } else { @@ -136,20 +139,15 @@ int main(int argc, char** argv) { 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; - subor_certifikat = "../certifikaty/vygenerovany_certifikat.pem"; - 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, 0); + if(nacitat_certifikaty(ctx, VYGENEROVANY_CERTIFIKAT, VYGENEROVANY_KLUC) == -1) return -1; + wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0); } 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; - subor_certifikat = "../certifikaty/vygenerovany_certifikat.pem"; - 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, 0); - + if(nacitat_certifikaty(ctx, VYGENEROVANY_CERTIFIKAT, VYGENEROVANY_KLUC) == -1) return -1; + wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0); } else { @@ -202,6 +200,7 @@ int main(int argc, char** argv) } zobraz_sifru(ssl); zobraz_certifikat(ssl); + nastav_funkciu(funkcia_BLAKE2B); if(poslat_subor(ssl, ctx, subor) == -1) return -1; ukoncit_spojenie(ssl, ctx); } diff --git a/tcpip_kanal/server.c b/tcpip_kanal/server.c index c6cd059..d373c37 100644 --- a/tcpip_kanal/server.c +++ b/tcpip_kanal/server.c @@ -15,6 +15,14 @@ #define ECC_VELKOST 32 #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) { @@ -34,8 +42,6 @@ int main(int argc, char **argv) int cislo_soketu; int cislo_portu = 0; - const char *subor_certifikat = NULL; - const char *subor_kluc = NULL; WOLFSSL_CTX* ctx; if((ctx = nastavit_ctx_server()) == NULL) @@ -76,20 +82,16 @@ int main(int argc, char **argv) } else if(!strcmp(argv[i+1], "rsa")) { - wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_rsa.pem", NULL); - subor_certifikat = "../certifikaty/server_rsa.pem"; - subor_kluc = "../certifikaty/server_rsa.key"; - if(nacitat_certifikaty(ctx, subor_certifikat, subor_kluc) == -1) return -1; + wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_rsa.pem", NULL); + if(nacitat_certifikaty(ctx, RSA_CERTIFIKAT, RSA_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")) { printf("jo\n"); - wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_ecc.pem", NULL); - subor_certifikat = "../certifikaty/server_ecc.pem"; - subor_kluc = "../certifikaty/server_ecc.key"; - if(nacitat_certifikaty(ctx, subor_certifikat, subor_kluc) == -1) return -1; + wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita/autorita_ecc.pem", NULL); + if(nacitat_certifikaty(ctx, ECC_CERTIFIKAT, ECC_KLUC) == -1) return -1; 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")) { - 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; - subor_certifikat = "../certifikaty/vygenerovany_certifikat.pem"; - 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); + if(nacitat_certifikaty(ctx, VYGENEROVANY_CERTIFIKAT, VYGENEROVANY_KLUC) == -1) return -1; } 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; - subor_certifikat = "../certifikaty/vygenerovany_certifikat.pem"; - 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); - - + if(nacitat_certifikaty(ctx, VYGENEROVANY_CERTIFIKAT, VYGENEROVANY_KLUC) == -1) return -1; } else { @@ -180,6 +174,7 @@ int main(int argc, char **argv) } zobraz_sifru(ssl); zobraz_certifikat(ssl); + nastav_funkciu(funkcia_BLAKE2B); prijat_subor(ssl, ctx); } } diff --git a/tcpip_kanal/wolfssl.dll b/tcpip_kanal/wolfssl.dll index 1d45e0f..635a2d4 100644 Binary files a/tcpip_kanal/wolfssl.dll and b/tcpip_kanal/wolfssl.dll differ diff --git a/tcpip_kanal/ws2_32.dll b/tcpip_kanal/ws2_32.dll deleted file mode 100644 index e660ac0..0000000 Binary files a/tcpip_kanal/ws2_32.dll and /dev/null differ diff --git a/tcpip_kanal/ws2_32_64.dll b/tcpip_kanal/ws2_32_64.dll deleted file mode 100644 index 92d4481..0000000 Binary files a/tcpip_kanal/ws2_32_64.dll and /dev/null differ diff --git a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/asn_public.h b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/asn_public.h index 743ddf6..90cd6c3 100644 --- a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/asn_public.h +++ b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/asn_public.h @@ -344,12 +344,10 @@ WOLFSSL_API int wc_MakeCert_ex(Cert* cert, byte* derBuffer, word32 derSz, int keyType, void* key, WC_RNG* rng); WOLFSSL_API int wc_MakeCert(Cert*, byte* derBuffer, word32 derSz, RsaKey*, ecc_key*, WC_RNG*); -#ifdef WOLFSSL_CERT_REQ WOLFSSL_API int wc_MakeCertReq_ex(Cert*, byte* derBuffer, word32 derSz, int, void*); WOLFSSL_API int wc_MakeCertReq(Cert*, byte* derBuffer, word32 derSz, RsaKey*, ecc_key*); -#endif WOLFSSL_API int wc_SignCert_ex(int requestSz, int sType, byte* buffer, word32 buffSz, int keyType, void* key, WC_RNG* rng); diff --git a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/blake2.h b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/blake2.h index bf34f31..ba85cfd 100644 --- a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/blake2.h +++ b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/blake2.h @@ -28,8 +28,6 @@ #include -#if defined(HAVE_BLAKE2) || defined(HAVE_BLAKE2S) - #include /* 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) */ enum { -#ifdef HAVE_BLAKE2B BLAKE2B_ID = WC_HASH_TYPE_BLAKE2B, BLAKE2B_256 = 32, /* 256 bit type, SSL default */ -#endif #ifdef HAVE_BLAKE2S BLAKE2S_ID = WC_HASH_TYPE_BLAKE2S, BLAKE2S_256 = 32 /* 256 bit type */ @@ -57,13 +53,11 @@ enum { }; -#ifdef HAVE_BLAKE2B /* BLAKE2b digest */ typedef struct Blake2b { blake2b_state S[1]; /* our state */ word32 digestSz; /* digest size used on init */ } Blake2b; -#endif #ifdef HAVE_BLAKE2S /* BLAKE2s digest */ @@ -74,11 +68,9 @@ typedef struct Blake2s { #endif -#ifdef HAVE_BLAKE2B WOLFSSL_API int wc_InitBlake2b(Blake2b*, word32); WOLFSSL_API int wc_Blake2bUpdate(Blake2b*, const byte*, word32); WOLFSSL_API int wc_Blake2bFinal(Blake2b*, byte*, word32); -#endif #ifdef HAVE_BLAKE2S WOLFSSL_API int wc_InitBlake2s(Blake2s*, word32); @@ -91,6 +83,5 @@ WOLFSSL_API int wc_Blake2sFinal(Blake2s*, byte*, word32); } #endif -#endif /* HAVE_BLAKE2 || HAVE_BLAKE2S */ #endif /* WOLF_CRYPT_BLAKE2_H */ diff --git a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/hmac.h b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/hmac.h index 02a7586..6bbfe57 100644 --- a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/hmac.h +++ b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/hmac.h @@ -68,7 +68,7 @@ enum { IPAD = 0x36, 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 WC_MD5 = WC_HASH_TYPE_MD5, #endif @@ -93,6 +93,7 @@ enum { WC_SHA3_384 = WC_HASH_TYPE_SHA3_384, WC_SHA3_512 = WC_HASH_TYPE_SHA3_512, #endif + */ #ifdef HAVE_PKCS11 HMAC_MAX_ID_LEN = 32, #endif diff --git a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/ripemd.h b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/ripemd.h index cc9f130..6f63296 100644 --- a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/ripemd.h +++ b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/ripemd.h @@ -28,8 +28,6 @@ #include -#ifdef WOLFSSL_RIPEMD - #ifdef __cplusplus extern "C" { #endif @@ -63,5 +61,4 @@ WOLFSSL_API int wc_RipeMdFinal(RipeMd*, byte*); } /* extern "C" */ #endif -#endif /* WOLFSSL_RIPEMD */ #endif /* WOLF_CRYPT_RIPEMD_H */ diff --git a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/sha256.h b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/sha256.h index 1d84a84..9d20389 100644 --- a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/sha256.h +++ b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/sha256.h @@ -202,7 +202,6 @@ WOLFSSL_API void wc_Sha256SizeSet(wc_Sha256*, word32); WOLFSSL_API int wc_Sha256GetFlags(wc_Sha256* sha256, word32* flags); #endif -#ifdef WOLFSSL_SHA224 /* avoid redefinition of structs */ #if !defined(HAVE_FIPS) || \ (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); #endif -#endif /* WOLFSSL_SHA224 */ - #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/sha512.h b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/sha512.h index e80b567..83adb41 100644 --- a/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/sha512.h +++ b/wolfssl_hlavickove_subory/wolfssl/wolfcrypt/sha512.h @@ -29,8 +29,6 @@ #include -#if defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA384) - #if defined(HAVE_FIPS) && \ defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2) #include @@ -151,7 +149,6 @@ WOLFSSL_LOCAL void Transform_Sha512_Len(wc_Sha512* sha512, const byte* data, word32 len); #endif -#ifdef WOLFSSL_SHA512 WOLFSSL_API int wc_InitSha512(wc_Sha512*); 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); #endif -#endif /* WOLFSSL_SHA512 */ - -#if defined(WOLFSSL_SHA384) /* avoid redefinition of structs */ #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); #endif -#endif /* WOLFSSL_SHA384 */ - #ifdef __cplusplus } /* extern "C" */ #endif -#endif /* WOLFSSL_SHA512 || WOLFSSL_SHA384 */ #endif /* WOLF_CRYPT_SHA512_H */