nahratie suborov
This commit is contained in:
commit
ee3003e2d6
8
certifikaty/autorita_ecc.key
Normal file
8
certifikaty/autorita_ecc.key
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
-----BEGIN EC PARAMETERS-----
|
||||||
|
BggqhkjOPQMBBw==
|
||||||
|
-----END EC PARAMETERS-----
|
||||||
|
-----BEGIN EC PRIVATE KEY-----
|
||||||
|
MHcCAQEEIEuYLm4s3SUBBm7VOdIJq+FlZgRMq+V3o4wQG7VaMgZaoAoGCCqGSM49
|
||||||
|
AwEHoUQDQgAEVL+Z4OXsPkJkgObU3CfMSZK5BqDaavIA3fsPTzKyxsHbvZZNR111
|
||||||
|
BiLEX7tlFvSTIvxo64eB352ys4MFnGDiAQ==
|
||||||
|
-----END EC PRIVATE KEY-----
|
13
certifikaty/autorita_ecc.pem
Normal file
13
certifikaty/autorita_ecc.pem
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIB4jCCAYcCFBk7etptGRbWY8jIvU8DB1eoNpxAMAoGCCqGSM49BAMCMHMxCzAJ
|
||||||
|
BgNVBAYTAlNLMQowCAYDVQQIDAEtMQ8wDQYDVQQHDAZLb3NpY2UxETAPBgNVBAoM
|
||||||
|
CEF1dG9yaXRhMSAwHgYJKoZIhvcNAQkBFhFhdXRvcml0YUB0dWtlLmNvbTESMBAG
|
||||||
|
A1UEAwwJbG9jYWwuZGV2MB4XDTIwMDMxMDE5MTQ1M1oXDTI1MDMwOTE5MTQ1M1ow
|
||||||
|
czELMAkGA1UEBhMCU0sxCjAIBgNVBAgMAS0xDzANBgNVBAcMBktvc2ljZTERMA8G
|
||||||
|
A1UECgwIQXV0b3JpdGExIDAeBgkqhkiG9w0BCQEWEWF1dG9yaXRhQHR1a2UuY29t
|
||||||
|
MRIwEAYDVQQDDAlsb2NhbC5kZXYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARU
|
||||||
|
v5ng5ew+QmSA5tTcJ8xJkrkGoNpq8gDd+w9PMrLGwdu9lk1HXXUGIsRfu2UW9JMi
|
||||||
|
/Gjrh4HfnbKzgwWcYOIBMAoGCCqGSM49BAMCA0kAMEYCIQDBPCxKKXPXYWa6kybL
|
||||||
|
v+2DFhby5iW5ko0R6dgyH1ce9AIhAJHGx9URfnuN3GKEYuJ2VDVHD+ZWl27gbBFP
|
||||||
|
DvGrgUNy
|
||||||
|
-----END CERTIFICATE-----
|
15
certifikaty/autorita_rsa.key
Normal file
15
certifikaty/autorita_rsa.key
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
-----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-----
|
15
certifikaty/autorita_rsa.pem
Normal file
15
certifikaty/autorita_rsa.pem
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICaDCCAdECFFukrYp09IcdOmB1UlP2XbyZetRDMA0GCSqGSIb3DQEBCwUAMHMx
|
||||||
|
CzAJBgNVBAYTAlNLMQowCAYDVQQIDAEtMQ8wDQYDVQQHDAZLb3NpY2UxETAPBgNV
|
||||||
|
BAoMCEF1dG9yaXRhMSAwHgYJKoZIhvcNAQkBFhFhdXRvcml0YUB0dWtlLmNvbTES
|
||||||
|
MBAGA1UEAwwJbG9jYWwuZGV2MB4XDTIwMDMwNTAxMTIwNVoXDTI1MDMwNDAxMTIw
|
||||||
|
NVowczELMAkGA1UEBhMCU0sxCjAIBgNVBAgMAS0xDzANBgNVBAcMBktvc2ljZTER
|
||||||
|
MA8GA1UECgwIQXV0b3JpdGExIDAeBgkqhkiG9w0BCQEWEWF1dG9yaXRhQHR1a2Uu
|
||||||
|
Y29tMRIwEAYDVQQDDAlsb2NhbC5kZXYwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
|
||||||
|
AoGBAJUo1ss1jhgttk17lum6lgpjXK1CJZ1TkY+g3VWkFPYFiTfrJN1Eq98vDFDA
|
||||||
|
uAEOIjayJ8DGr8wgQWBp1r3d0m/D0Z9rCcsYQN+x3yVWvpx58sm4AdpvisfLlUMV
|
||||||
|
m7MvIQODFj7U28rfV5/JAK7TwZ2dOmgd0ci5VBL4QBmclw4/AgMBAAEwDQYJKoZI
|
||||||
|
hvcNAQELBQADgYEAj4WUeYeVX8ZcXUlYCo6KYb0NLF37eWjfaO9VHShto+Y2wqjN
|
||||||
|
jilDuNLBuoha5GHXpGe0lzYwKih5qXwhvcWn70SXeYZxtScfNuWufbmWA+0oGwWJ
|
||||||
|
SiKCA81A+UrDnCEW4MCyfgXIwGpT6ljayDCpIwqSzVe3+K/L9AoBCuw9bMg=
|
||||||
|
-----END CERTIFICATE-----
|
8
certifikaty/klient_ecc.key
Normal file
8
certifikaty/klient_ecc.key
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
-----BEGIN EC PARAMETERS-----
|
||||||
|
BggqhkjOPQMBBw==
|
||||||
|
-----END EC PARAMETERS-----
|
||||||
|
-----BEGIN EC PRIVATE KEY-----
|
||||||
|
MHcCAQEEIEiOAuoubpho9KV8F1aMXamrOpJMT6TFCzcktOuliEiQoAoGCCqGSM49
|
||||||
|
AwEHoUQDQgAENFi5L65dyn1XTUrS9rBa8x0nDfDJNhqKxYS8kjPl7pSajrl/Cj3w
|
||||||
|
B5Jr/RxntAhi17bAOZZMZx3f0BKKgJH9lA==
|
||||||
|
-----END EC PRIVATE KEY-----
|
12
certifikaty/klient_ecc.pem
Normal file
12
certifikaty/klient_ecc.pem
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIB3DCCAYMCFH9I4ZXZiyO2Y4w+lFzlrxYivgHjMAoGCCqGSM49BAMCMHMxCzAJ
|
||||||
|
BgNVBAYTAlNLMQowCAYDVQQIDAEtMQ8wDQYDVQQHDAZLb3NpY2UxETAPBgNVBAoM
|
||||||
|
CEF1dG9yaXRhMSAwHgYJKoZIhvcNAQkBFhFhdXRvcml0YUB0dWtlLmNvbTESMBAG
|
||||||
|
A1UEAwwJbG9jYWwuZGV2MB4XDTIwMDMxMDE5MjA1OFoXDTI1MDMwOTE5MjA1OFow
|
||||||
|
bzELMAkGA1UEBhMCU0sxCjAIBgNVBAgMAS0xDzANBgNVBAcMBktvc2ljZTEPMA0G
|
||||||
|
A1UECgwGS2xpZW50MR4wHAYJKoZIhvcNAQkBFg9rbGllbnRAdHVrZS5jb20xEjAQ
|
||||||
|
BgNVBAMMCWxvY2FsLmRldjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDRYuS+u
|
||||||
|
Xcp9V01K0vawWvMdJw3wyTYaisWEvJIz5e6Umo65fwo98AeSa/0cZ7QIYte2wDmW
|
||||||
|
TGcd39ASioCR/ZQwCgYIKoZIzj0EAwIDRwAwRAIgG2q3mO5PEsyk6ZbibyyT8hZJ
|
||||||
|
U8SceTjxbLK9fbsmCiwCIFNF69S3kNHOAGNCOyXmkGnTC5/P1DAEZWqMlhjWvZP7
|
||||||
|
-----END CERTIFICATE-----
|
15
certifikaty/klient_rsa.key
Normal file
15
certifikaty/klient_rsa.key
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIICXAIBAAKBgQC/DedvqCZsH2XVumJAHd79eWTQWtaShA14R1T4YGxN4F7EjEFW
|
||||||
|
mEW7vu+w356SLjaL7arbRI1U5UWBRkknjcftSJqf1HahyzcPkXOnbJmvf+z9gn4p
|
||||||
|
QdmzPxC+5T+deD2tr6l+/yuoJHNAe9DxE1CSquiENBzijMSTLHp4/eFPKwIDAQAB
|
||||||
|
AoGAdSUZWyVHKdS2pC38QEQQjmr4naiVGJFPkQhr2T+GKNoCQZGeHnKPj2aroU/7
|
||||||
|
8rXTTEkWEgwefId37qQiBtawVoZHzx4afuRi+DZptMnHk618TenxL6rWTQy95KxR
|
||||||
|
cUQoJcbStu3+aENAVd8iVB3zNWY+GZbdDoISF9yu2810egECQQDninwFiXs+zdVX
|
||||||
|
HMj6+OxqPoNq1/a30FipSOOuxqUK90qww63OncNfmVWXXWvm+ONe+yB43hkyK5ZE
|
||||||
|
DNbU97jhAkEA0zyMJeoPkfRViV/rnynTG0myRIEvqNUqdEcOrIVRyObqd/0fatMq
|
||||||
|
u+2vXjTp7is4sMQOvX8SI2XoeoDyQAyNiwJBALS4+b6UpXbK0BcTZ6fEvTrcGlU9
|
||||||
|
xduJKnrPYq9baxzZEhpQUYwwxXsLwqvHhl4cq9PJ7XmJ2V64eKwa3WATDuECQFw7
|
||||||
|
69YCRZotXcwGHhP5ZzxbCYPwBKdrrIXpIPcjn3phma+azsUOP3Kfbhtsb1iXdsF4
|
||||||
|
WhdUDM94B/K1qxFcadECQBWTRd++2ASbE6Z6bbS5XWnVgJAuSjk0MDvrP9gm1+uX
|
||||||
|
BYbdZI6VXOt5VJ/pN2nPrDNhWQfJZWSv8qt5ibq3VKs=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
15
certifikaty/klient_rsa.pem
Normal file
15
certifikaty/klient_rsa.pem
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICZDCCAc0CFGSwoxKJ+ivTvM/jTdI8s78xF4MSMA0GCSqGSIb3DQEBCwUAMHMx
|
||||||
|
CzAJBgNVBAYTAlNLMQowCAYDVQQIDAEtMQ8wDQYDVQQHDAZLb3NpY2UxETAPBgNV
|
||||||
|
BAoMCEF1dG9yaXRhMSAwHgYJKoZIhvcNAQkBFhFhdXRvcml0YUB0dWtlLmNvbTES
|
||||||
|
MBAGA1UEAwwJbG9jYWwuZGV2MB4XDTIwMDMwNTAxMTU0MVoXDTI1MDMwNDAxMTU0
|
||||||
|
MVowbzELMAkGA1UEBhMCU0sxCjAIBgNVBAgMAS0xDzANBgNVBAcMBktvc2ljZTEP
|
||||||
|
MA0GA1UECgwGS2xpZW50MR4wHAYJKoZIhvcNAQkBFg9rbGllbnRAdHVrZS5jb20x
|
||||||
|
EjAQBgNVBAMMCWxvY2FsLmRldjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
|
||||||
|
vw3nb6gmbB9l1bpiQB3e/Xlk0FrWkoQNeEdU+GBsTeBexIxBVphFu77vsN+eki42
|
||||||
|
i+2q20SNVOVFgUZJJ43H7Uian9R2ocs3D5Fzp2yZr3/s/YJ+KUHZsz8QvuU/nXg9
|
||||||
|
ra+pfv8rqCRzQHvQ8RNQkqrohDQc4ozEkyx6eP3hTysCAwEAATANBgkqhkiG9w0B
|
||||||
|
AQsFAAOBgQCL4xhQ+gvnmTHR7CJH4iKmX86V5+vdVMowoF4XNssl/5BCKuk3zLFb
|
||||||
|
TkP8YHbwHbPNMAnh2qoiNICEZTP02HyIn7ehdq/r9eApotlE5Tgqb4cGc4UGSqhx
|
||||||
|
mXKLdQemTxe40rDNfB6wZ0ggW5JFgt20woXDnDl4i3jrbykrQKZTHQ==
|
||||||
|
-----END CERTIFICATE-----
|
3
certifikaty/params.txt
Normal file
3
certifikaty/params.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
-----BEGIN EC PARAMETERS-----
|
||||||
|
BggqhkjOPQMBBw==
|
||||||
|
-----END EC PARAMETERS-----
|
8
certifikaty/server_ecc.key
Normal file
8
certifikaty/server_ecc.key
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
-----BEGIN EC PARAMETERS-----
|
||||||
|
BggqhkjOPQMBBw==
|
||||||
|
-----END EC PARAMETERS-----
|
||||||
|
-----BEGIN EC PRIVATE KEY-----
|
||||||
|
MHcCAQEEIKBCwKxCE+XrPsnUhnP7AOaTq3Oao9r0wx5KxyOySKZ9oAoGCCqGSM49
|
||||||
|
AwEHoUQDQgAEAk6bltpNprRbPvxe2bHnnkCn9vlR2Dkqy0Gmo+mHVnl61skd/AVR
|
||||||
|
NWJD+O5ryXHmV08pTxC1FTDjeCEBvfivuQ==
|
||||||
|
-----END EC PRIVATE KEY-----
|
12
certifikaty/server_ecc.pem
Normal file
12
certifikaty/server_ecc.pem
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIB3DCCAYMCFH9I4ZXZiyO2Y4w+lFzlrxYivgHiMAoGCCqGSM49BAMCMHMxCzAJ
|
||||||
|
BgNVBAYTAlNLMQowCAYDVQQIDAEtMQ8wDQYDVQQHDAZLb3NpY2UxETAPBgNVBAoM
|
||||||
|
CEF1dG9yaXRhMSAwHgYJKoZIhvcNAQkBFhFhdXRvcml0YUB0dWtlLmNvbTESMBAG
|
||||||
|
A1UEAwwJbG9jYWwuZGV2MB4XDTIwMDMxMDE5MTgzN1oXDTI1MDMwOTE5MTgzN1ow
|
||||||
|
bzELMAkGA1UEBhMCU0sxCjAIBgNVBAgMAS0xDzANBgNVBAcMBktvc2ljZTEPMA0G
|
||||||
|
A1UECgwGU2VydmVyMR4wHAYJKoZIhvcNAQkBFg9zZXJ2ZXJAdHVrZS5jb20xEjAQ
|
||||||
|
BgNVBAMMCWxvY2FsLmRldjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAJOm5ba
|
||||||
|
Taa0Wz78Xtmx555Ap/b5Udg5KstBpqPph1Z5etbJHfwFUTViQ/jua8lx5ldPKU8Q
|
||||||
|
tRUw43ghAb34r7kwCgYIKoZIzj0EAwIDRwAwRAIgP3/bEfhPBcaGPzMT2+6HnACc
|
||||||
|
MjGaYiLP5BDP1VJpWEgCIHqlNP4euj0NE3Lo3Vpg7xJBn4MVQ9/IrtSASAa+k9sk
|
||||||
|
-----END CERTIFICATE-----
|
15
certifikaty/server_rsa.key
Normal file
15
certifikaty/server_rsa.key
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIICXAIBAAKBgQC1Zh/qu4/E8TYZxTl7CH+fv9+VsDf0kRgKXTx/7XM7hjyIV09p
|
||||||
|
OWMZOWsIW43VDre5qY4u69AXdnAT9BKRbGXw8ySnIMLrq9DkhdMvwFo70Q4Tm/aI
|
||||||
|
7lgvZ4KPZjAeRbv8Kn/8nZtLvMn75K8pw1GFqNf9OYu/C7E6gmtaiTg3NQIDAQAB
|
||||||
|
AoGAa/9TPUNRwyUA2rLrF+7lXMy1Zr81cSv5LiJ4ZImQM34mB95Dbxg1gc0HhkBL
|
||||||
|
3u8WPzlNZ24JxA5Fh/umGmJ5BcsLwU2zGM4S6cOrF23YZHIuy7Gj2suHQwXZt7Ui
|
||||||
|
DDxuHHjGsLTN7Dgx51p+UKOnOEXJDz5AgqXLoWCzFanzKEECQQDv0Ouyw4S4ox5v
|
||||||
|
Z1c96ceg7DsVY0TDyE6EkW/nLbxY08Pc/WHUiJzf6jDoT5bqjFltmBS6ZmGMydaM
|
||||||
|
dGMzLG0ZAkEAwaP8I3lvUG04bh/E+kWbrpGvyqtG5lOUHVf9joIXZs9BdMpOtN+1
|
||||||
|
vO8fXywTKyAwQNtwMoOkVxbl6EMckerCfQJAFcAlIHmLOBPTVtdQmlTxvi6uzSnL
|
||||||
|
utYYCP4H4DfNtWC/ivOQQ+6AC+75sJhHX86K7d21Q5K1lkdYJjUIKkQFQQJAVDnZ
|
||||||
|
wCxfyKHZO71B1oJUdxgTWJorWp/b+u988HGRcDySAhTFK1NrH2T7RlBLfiSgGHXa
|
||||||
|
VX6BCwiAtAgM80MjmQJBAK6d2T7io3Hvc+cxudmwmHS66BGET1w/04H3Sjz1L7f8
|
||||||
|
LR5SR5hEXiGl8k5oEcUvyigZwpBf/G5uM9Msi0gZjJ4=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
15
certifikaty/server_rsa.pem
Normal file
15
certifikaty/server_rsa.pem
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICZDCCAc0CFGSwoxKJ+ivTvM/jTdI8s78xF4MRMA0GCSqGSIb3DQEBCwUAMHMx
|
||||||
|
CzAJBgNVBAYTAlNLMQowCAYDVQQIDAEtMQ8wDQYDVQQHDAZLb3NpY2UxETAPBgNV
|
||||||
|
BAoMCEF1dG9yaXRhMSAwHgYJKoZIhvcNAQkBFhFhdXRvcml0YUB0dWtlLmNvbTES
|
||||||
|
MBAGA1UEAwwJbG9jYWwuZGV2MB4XDTIwMDMwNTAxMTQzM1oXDTI1MDMwNDAxMTQz
|
||||||
|
M1owbzELMAkGA1UEBhMCU0sxCjAIBgNVBAgMAS0xDzANBgNVBAcMBktvc2ljZTEP
|
||||||
|
MA0GA1UECgwGU2VydmVyMR4wHAYJKoZIhvcNAQkBFg9zZXJ2ZXJAdHVrZS5jb20x
|
||||||
|
EjAQBgNVBAMMCWxvY2FsLmRldjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
|
||||||
|
tWYf6ruPxPE2GcU5ewh/n7/flbA39JEYCl08f+1zO4Y8iFdPaTljGTlrCFuN1Q63
|
||||||
|
uamOLuvQF3ZwE/QSkWxl8PMkpyDC66vQ5IXTL8BaO9EOE5v2iO5YL2eCj2YwHkW7
|
||||||
|
/Cp//J2bS7zJ++SvKcNRhajX/TmLvwuxOoJrWok4NzUCAwEAATANBgkqhkiG9w0B
|
||||||
|
AQsFAAOBgQBt7oH2dMonlq9rGrnVq5BpHPg4RDtKT4cFHFrMyYAw1OjGwgzWJadK
|
||||||
|
M8je3WJ8vaTBmXrLqmx5lO7q/Fqb+dZpa1Zd4GZ7xqP0KZkiiOsdQ8s898CpZ/2F
|
||||||
|
V8WGMklX8Jn1noMJ/i/wQwvGw6WaJZ2mv9ZSL4RitjKGMk4X0zzZ+g==
|
||||||
|
-----END CERTIFICATE-----
|
199
kniznica/komunikacia.c
Normal file
199
kniznica/komunikacia.c
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
//////////////////////////////////////////////////
|
||||||
|
// Bakalarska praca //
|
||||||
|
// Meno studenta: Tomas Lukac //
|
||||||
|
// Veduci BP: prof. Ing. Milos Drutarovsky CSc. //
|
||||||
|
// Skola: KEMT FEI TUKE //
|
||||||
|
// Datum poslednej upravy: 9.3.2020 //
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "komunikacia.h"
|
||||||
|
#include "kryptografia.h"
|
||||||
|
|
||||||
|
int poslat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, char* cesta)
|
||||||
|
{
|
||||||
|
wolfSSL_write(ssl, cesta, 64);
|
||||||
|
|
||||||
|
FILE* subor = fopen(cesta, "r");
|
||||||
|
if(subor == NULL)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nebolo mozne najst pozadovany subor.\n");
|
||||||
|
ukoncit_spojenie(ssl, ctx);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Posielam subor.\n");
|
||||||
|
|
||||||
|
//nastavi ukazovatel na koniec suboru
|
||||||
|
//a zisti velkost suboru
|
||||||
|
fseek(subor, 0, SEEK_END);
|
||||||
|
long velkost = ftell(subor);
|
||||||
|
char velkost_suboru[32];
|
||||||
|
sprintf(velkost_suboru, "%ld", velkost);
|
||||||
|
printf("Velkost suboru: %s bajtov\n", velkost_suboru);
|
||||||
|
wolfSSL_write(ssl, velkost_suboru, 32);
|
||||||
|
|
||||||
|
//nastavi ukazovatel na zaciatok suboru
|
||||||
|
//a nacita data zo suboru do pola
|
||||||
|
char* pole = malloc(velkost);
|
||||||
|
char* pole_uk = pole;
|
||||||
|
fseek(subor, 0, SEEK_SET);
|
||||||
|
fread(pole, 1, velkost, subor);
|
||||||
|
fclose(subor);
|
||||||
|
|
||||||
|
//posielanie jednotlivych bajtov
|
||||||
|
for(int i = 0; i < velkost + 1; ++i)
|
||||||
|
{
|
||||||
|
wolfSSL_write(ssl, pole_uk, velkost);
|
||||||
|
pole_uk += 1;
|
||||||
|
}
|
||||||
|
printf("Subor bol uspesne odoslany.\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int prijat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx)
|
||||||
|
{
|
||||||
|
char* cesta = calloc(100, sizeof(char));
|
||||||
|
wolfSSL_read(ssl, cesta, 64);
|
||||||
|
printf("Prebieha prijimanie suboru %s\n", cesta);
|
||||||
|
|
||||||
|
//ziskanie informacie od klienta o velkosti odoslaneho suboru
|
||||||
|
char velkost_suboru[32];
|
||||||
|
wolfSSL_read(ssl, velkost_suboru, 32);
|
||||||
|
long velkost = atol(velkost_suboru);
|
||||||
|
if(velkost < 1)
|
||||||
|
{
|
||||||
|
printf("Nastala chyba pri prijati suboru\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Velkost suboru: %s bajtov\n", velkost_suboru);
|
||||||
|
}
|
||||||
|
|
||||||
|
//prijem jednotlivych bajtov
|
||||||
|
char* pole = malloc(velkost);
|
||||||
|
char* pole_uk = pole;
|
||||||
|
for(int i = 0; i < velkost + 1; ++i)
|
||||||
|
{
|
||||||
|
wolfSSL_read(ssl, pole_uk, velkost);
|
||||||
|
pole_uk += 1;
|
||||||
|
}
|
||||||
|
printf("Subor bol uspesne prijaty.\n");
|
||||||
|
|
||||||
|
//zapis nacitanych dat do suboru
|
||||||
|
FILE* subor = fopen(cesta, "w");
|
||||||
|
fwrite(pole, 1, velkost, subor);
|
||||||
|
fclose(subor);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int pripojit_na_server(char *ip_adresa, int cislo_portu, int pocet_sekund)
|
||||||
|
{
|
||||||
|
struct timeval casovy_interval;
|
||||||
|
int uspech;
|
||||||
|
int cislo_soketu;
|
||||||
|
struct hostent* hostitel;
|
||||||
|
struct sockaddr_in adresa;
|
||||||
|
fd_set sada_soketov;
|
||||||
|
socklen_t velkost_soketu;
|
||||||
|
int optval;
|
||||||
|
|
||||||
|
if((hostitel = gethostbyname(ip_adresa)) == NULL)
|
||||||
|
{
|
||||||
|
printf("Nastala chyba pri spracovani nazvu hostitela.\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
printf("Vytvaranie soketu...\n");
|
||||||
|
cislo_soketu = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
|
memset(&adresa, 0, sizeof(adresa));
|
||||||
|
adresa.sin_family = AF_INET; //IPv4
|
||||||
|
adresa.sin_port = htons(cislo_portu);
|
||||||
|
adresa.sin_addr.s_addr = *(long*)(hostitel->h_addr);
|
||||||
|
|
||||||
|
//pokus o pripojenie s casovym intervalom
|
||||||
|
uspech = connect(cislo_soketu, (struct sockaddr*)&adresa, sizeof(adresa));
|
||||||
|
if(uspech < 0)
|
||||||
|
{
|
||||||
|
if(errno == EINPROGRESS)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nebolo mozne okamzite vytvorit spojenie\n");
|
||||||
|
do
|
||||||
|
{
|
||||||
|
casovy_interval.tv_sec = pocet_sekund;
|
||||||
|
casovy_interval.tv_usec = 0;
|
||||||
|
FD_ZERO(&sada_soketov);
|
||||||
|
FD_SET(cislo_soketu, &sada_soketov);
|
||||||
|
uspech = select(cislo_soketu + 1, NULL, &sada_soketov, NULL, &casovy_interval);
|
||||||
|
if (uspech < 0 && errno != EINTR)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri pokuse o vytvorenie spojenia\nCislo chyby: %d\nPopis: %s\n", errno, strerror(errno));
|
||||||
|
ukoncit_soket(cislo_soketu);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
//bol zvoleny soket
|
||||||
|
else if(uspech > 0)
|
||||||
|
{
|
||||||
|
velkost_soketu = sizeof(int);
|
||||||
|
if (getsockopt(cislo_soketu, SOL_SOCKET, SO_ERROR, (void*)(&optval), &velkost_soketu) < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba v nastaveni soketu\nCislo chyby: %d\nPopis: %s\n", errno, strerror(errno));
|
||||||
|
ukoncit_soket(cislo_soketu);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
if(optval)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba v spojeni\nCislo chyby: %d\nPopis: %s\n", optval, strerror(optval));
|
||||||
|
ukoncit_soket(cislo_soketu);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Casovy interval vyprsal\n");
|
||||||
|
ukoncit_soket(cislo_soketu);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
} while(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Spojenie zlyhalo.\nCislo chyby: %d\nPopis: %s\n", errno, strerror(errno));
|
||||||
|
ukoncit_soket(cislo_soketu);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cislo_soketu;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cakat_na_komunikaciu(int cislo_portu)
|
||||||
|
{
|
||||||
|
int cislo_soketu;
|
||||||
|
struct sockaddr_in adresa;
|
||||||
|
|
||||||
|
printf("Vytvaranie socketu...\n");
|
||||||
|
cislo_soketu = socket(PF_INET, SOCK_STREAM, 0);
|
||||||
|
memset(&adresa, 0, sizeof(adresa));
|
||||||
|
adresa.sin_family = AF_INET; //IPv4
|
||||||
|
adresa.sin_port = htons(cislo_portu);
|
||||||
|
adresa.sin_addr.s_addr = INADDR_ANY;
|
||||||
|
|
||||||
|
if(bind(cislo_soketu, (struct sockaddr*)&adresa, sizeof(adresa)) != 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nebolo mozne priradit soket ku danemu portu.\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(listen(cislo_soketu, 10) != 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Na danom porte nie je mozne cakat na komunikaciu.\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Server caka na komunikaciu na porte %d.\n", cislo_portu);
|
||||||
|
}
|
||||||
|
return cislo_soketu;
|
||||||
|
}
|
111
kniznica/komunikacia.h
Normal file
111
kniznica/komunikacia.h
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
//////////////////////////////////////////////////
|
||||||
|
// Bakalarska praca //
|
||||||
|
// Meno studenta: Tomas Lukac //
|
||||||
|
// Veduci BP: prof. Ing. Milos Drutarovsky CSc. //
|
||||||
|
// Skola: KEMT FEI TUKE //
|
||||||
|
// Datum poslednej upravy: 9.3.2020 //
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef __KOMUNIKACIA_H__
|
||||||
|
#define __KOMUNIKACIA_H__
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <wolfssl/ssl.h>
|
||||||
|
|
||||||
|
#if defined(_WIN32)
|
||||||
|
//makro ktore urcuje win distribuciu ak nieje detekovana
|
||||||
|
#ifndef _WIN32_WINNT
|
||||||
|
#define _WIN32_WINNT 0x0600
|
||||||
|
#endif
|
||||||
|
#include <winsock.h>
|
||||||
|
#include <windows.h>
|
||||||
|
#include <ws2tcpip.h>
|
||||||
|
#define ukoncit_soket closesocket
|
||||||
|
#define socklen_t int
|
||||||
|
#define EINPROGRESS WSAEINPROGRESS
|
||||||
|
#define EINTR WSAEINTR
|
||||||
|
|
||||||
|
//hovori visual c prekladacu aby nalinkoval ws2_32 kniznicu
|
||||||
|
//ak pouzivame minqw pragma sa ignoruje a musime ju zadat pri kompilaci manualne : -lws2_32
|
||||||
|
#pragma comment(lib, "ws2_32.lib")
|
||||||
|
#else
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
#include <netdb.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#define ukoncit_soket close
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//////////////////////////////
|
||||||
|
// TCP/IP KOMUNIKACNY KANAL //
|
||||||
|
//////////////////////////////
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pripojit_na_server: realizuje pripojenie na server
|
||||||
|
* @parameter char* ip_adresa : ip adresa servera, na ktory sa chce klient pripojit
|
||||||
|
* @parameter int cislo_portu : cislo portu na ktorom server ocakava komunikaciu
|
||||||
|
* @parameter int pocet_sekund : casovy interval
|
||||||
|
* @vrati int : cislo soketu
|
||||||
|
*/
|
||||||
|
int pripojit_na_server(char *ip_adresa, int cislo_portu, int pocet_sekund);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cakat_na_komunikaciu : realizuje vytvorenie soketu a jeho priradenie ku portu,
|
||||||
|
* na ktorom server ocakava komunikaciu
|
||||||
|
* @parameter int cislo_portu: cislo portu na ktorom server bude ocakavat komunikaciu
|
||||||
|
* @vrati int : cislo soketu
|
||||||
|
*/
|
||||||
|
int cakat_na_komunikaciu(int cislo_portu);
|
||||||
|
|
||||||
|
/////////////////////////////
|
||||||
|
// RS232 KOMUNIKACNY KANAL //
|
||||||
|
/////////////////////////////
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rs232_zapis: umoznuje zapis dat do serialoveho portu
|
||||||
|
* @parameter WOLSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
* @parameter char* buf : ukazuje na buffer, do kt. zapise wolfssl zasifrovany text na odoslanie
|
||||||
|
* @parameter int sz : velkost buffera
|
||||||
|
* @parameter void* ctx : ukazuje na WOLFSSL_CTX strukturu
|
||||||
|
* @vrati int
|
||||||
|
*/
|
||||||
|
int rs232_zapis(WOLFSSL *ssl, char *buf, int sz, void *ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rs232_citanie: umoznuje citanie dat zo serialoveho portu
|
||||||
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
* @parameter char* buf : ukazuje na buffer, kde prichadzajuci zasifrovany text by mal byt nakopirovany
|
||||||
|
* aby ho wolfssl mohla odsifrovat
|
||||||
|
* @parameter int sz : velkost buffera
|
||||||
|
* @parameter void* ctx : ukazuje na WOLFSSL_CTX strukturu
|
||||||
|
* @vrati int
|
||||||
|
*/
|
||||||
|
int rs232_citanie(WOLFSSL *ssl, char *buf, int sz, void *ctx);
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
// PRACA SO SUBORMI //
|
||||||
|
//////////////////////
|
||||||
|
|
||||||
|
/**
|
||||||
|
* poslat_subor: realizuje odoslanie suboru
|
||||||
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
* @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu
|
||||||
|
* @parameter char* cesta: ukazuje na retazec, ktory reprezentuje cestu k suboru
|
||||||
|
* @vrati int : operacia bola uspesna(0), neuspesna(-1)
|
||||||
|
*/
|
||||||
|
int poslat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx, char* cesta);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* prijat_subor: realizuje prijem suboru
|
||||||
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
* @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu
|
||||||
|
* @vrati int : operacia bola uspesna(0), neuspesna(-1)
|
||||||
|
*/
|
||||||
|
int prijat_subor(WOLFSSL* ssl, WOLFSSL_CTX* ctx);
|
||||||
|
|
||||||
|
#endif
|
373
kniznica/kryptografia.c
Normal file
373
kniznica/kryptografia.c
Normal file
@ -0,0 +1,373 @@
|
|||||||
|
//////////////////////////////////////////////////
|
||||||
|
// Bakalarska praca //
|
||||||
|
// Meno studenta: Tomas Lukac //
|
||||||
|
// Veduci BP: prof. Ing. Milos Drutarovsky CSc. //
|
||||||
|
// Skola: KEMT FEI TUKE //
|
||||||
|
// Datum poslednej upravy: 9.3.2020 //
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "kryptografia.h"
|
||||||
|
|
||||||
|
WOLFSSL_CTX* nastavit_ctx_klient()
|
||||||
|
{
|
||||||
|
WOLFSSL_METHOD* method;
|
||||||
|
wolfSSL_Init();
|
||||||
|
method = wolfTLSv1_2_client_method();
|
||||||
|
WOLFSSL_CTX *ctx = wolfSSL_CTX_new(method);
|
||||||
|
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
|
||||||
|
if (ctx == NULL)
|
||||||
|
{
|
||||||
|
printf("Nepodarilo sa inicializovat WOLFSSL_CTX\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
WOLFSSL_CTX* nastavit_ctx_server()
|
||||||
|
{
|
||||||
|
WOLFSSL_METHOD* method;
|
||||||
|
wolfSSL_Init();
|
||||||
|
method = wolfTLSv1_2_server_method();
|
||||||
|
WOLFSSL_CTX *ctx = wolfSSL_CTX_new(method);
|
||||||
|
|
||||||
|
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
|
||||||
|
if (ctx == NULL)
|
||||||
|
{
|
||||||
|
printf("Nepodarilo sa inicializovat WOLFSSL_CTX\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
void nastav_sifry(WOLFSSL_CTX* ctx, const char* sifry)
|
||||||
|
{
|
||||||
|
wolfSSL_CTX_set_cipher_list(ctx, sifry);
|
||||||
|
}
|
||||||
|
|
||||||
|
void zobraz_sifru(WOLFSSL* ssl)
|
||||||
|
{
|
||||||
|
printf ("Pouzita sifra: %s\n", wolfSSL_get_cipher(ssl));
|
||||||
|
}
|
||||||
|
|
||||||
|
int generovat_rsa_certifikat(WOLFSSL_CTX* ctx, int pocet_bitov, int exponent, int algoritmus, char* krajina, char* mesto, char* domena, char* email)
|
||||||
|
{
|
||||||
|
int uspech;
|
||||||
|
|
||||||
|
//premenne pre ukladanie dat autority
|
||||||
|
RsaKey kluc_autorita;
|
||||||
|
byte pem_autorita[4096];
|
||||||
|
word32 pem_autorita_velkost;
|
||||||
|
byte der_autorita[4096];
|
||||||
|
word32 der_autorita_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, 4096, subor);
|
||||||
|
if(pem_autorita_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");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
RsaKey* k = &kluc_autorita;
|
||||||
|
if (k == NULL)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nepodarilo sa vytvorit RsaKey strukturu z kluca autority\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//generator nahodnych cisel
|
||||||
|
WC_RNG generator;
|
||||||
|
wc_InitRng(&generator);
|
||||||
|
|
||||||
|
//premenne pre ukladanie dat vygenerovaneho kluca
|
||||||
|
RsaKey kluc;
|
||||||
|
byte der_kluc[4096];
|
||||||
|
word32 der_kluc_velkost;
|
||||||
|
byte pem_kluc[4096];
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
der_kluc_velkost = wc_RsaKeyToDer(&kluc, der_kluc, sizeof(der_kluc));
|
||||||
|
if(der_kluc_velkost < 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER so sukromnym klucom.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
//nacitanie vygenerovaneho kluca do WOLFSSL_CTX struktury
|
||||||
|
uspech = wolfSSL_CTX_use_PrivateKey_buffer(ctx, pem_kluc, pem_kluc_velkost, SSL_FILETYPE_PEM);
|
||||||
|
if(uspech != SSL_SUCCESS)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Chyba pri nacitani vygenerovaneho kluca.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("RSA kluc bol uspesne vygenerovany a nacitany.\n");
|
||||||
|
|
||||||
|
//premenne pre ukladanie dat certifikatu
|
||||||
|
Cert certifikat;
|
||||||
|
byte der_certifikat[4096];
|
||||||
|
word32 der_certifikat_velkost;
|
||||||
|
byte pem_certifikat[4096];
|
||||||
|
word32 pem_certifikat_velkost;
|
||||||
|
|
||||||
|
//vygenerovanie a podpis certifikatu
|
||||||
|
wc_InitCert(&certifikat);
|
||||||
|
strncpy(certifikat.subject.country, krajina, CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.state, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.locality, mesto, CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.org, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.unit, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.commonName, domena, CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.email, email, CTC_NAME_SIZE);
|
||||||
|
//certifikat.isCA = 0;
|
||||||
|
certifikat.sigType = algoritmus;
|
||||||
|
uspech = wc_SetIssuer(&certifikat, "../certifikaty/autorita_rsa.pem");
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER s certifikatom.\n");
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri podpisovani certifikatu.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM s certifikatom.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//nacitanie vygenerovaneho certifikatu do WOLFSSL_CTX struktury
|
||||||
|
uspech = wolfSSL_CTX_use_certificate_buffer(ctx, pem_certifikat, pem_certifikat_velkost, SSL_FILETYPE_PEM);
|
||||||
|
if(uspech != SSL_SUCCESS)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Chyba pri generovani certifikatu.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
printf("Certifikat bol uspesne vygenerovany a podpisany\n");
|
||||||
|
|
||||||
|
if(!wolfSSL_CTX_check_private_key(ctx))
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Sukromny kluc sa nezhoduje s certifikatom\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int generovat_ecc_certifikat(WOLFSSL_CTX* ctx, int pocet_bitov, ecc_curve_id kluc_krivka, int algoritmus, char* krajina, char* mesto, char* domena, char* email)
|
||||||
|
{
|
||||||
|
int uspech = 0;
|
||||||
|
|
||||||
|
//premenne pre ukladanie dat autority
|
||||||
|
ecc_key kluc_autorita;
|
||||||
|
byte pem_autorita[4096];
|
||||||
|
byte der_autorita[4096];
|
||||||
|
word32 der_autorita_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");
|
||||||
|
fread(pem_autorita, 1, 4096 , subor);
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nepodarilo sa vytvorit ecc_key strukturu z kluca autority\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//generator nahodnych cisel
|
||||||
|
WC_RNG generator;
|
||||||
|
wc_InitRng(&generator);
|
||||||
|
|
||||||
|
//premenne pre ukladanie dat vygenerovaneho kluca
|
||||||
|
ecc_key kluc;
|
||||||
|
byte der_kluc[4096];
|
||||||
|
word32 der_kluc_velkost;
|
||||||
|
byte pem_kluc[4096];
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
der_kluc_velkost = wc_EccKeyToDer(&kluc, der_kluc, sizeof(der_kluc));
|
||||||
|
pem_kluc_velkost = wc_DerToPem(der_kluc, der_kluc_velkost, pem_kluc, sizeof(pem_kluc), ECC_PRIVATEKEY_TYPE);
|
||||||
|
|
||||||
|
//nacitanie vygenerovaneho kluca do WOLFSSL_CTX struktury
|
||||||
|
uspech = wolfSSL_CTX_use_PrivateKey_buffer(ctx, pem_kluc, pem_kluc_velkost, SSL_FILETYPE_PEM);
|
||||||
|
if(uspech != SSL_SUCCESS)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Chyba pri nacitani vygenerovaneho kluca.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("ECC kluc bol uspesne vygenerovany a nacitany.\n");
|
||||||
|
|
||||||
|
//premenne pre ukladanie dat certifikatu
|
||||||
|
Cert certifikat;
|
||||||
|
byte der_certifikat[4096];
|
||||||
|
word32 der_certifikat_velkost;
|
||||||
|
byte pem_certifikat[4096];
|
||||||
|
word32 pem_certifikat_velkost;
|
||||||
|
|
||||||
|
//vygenerovanie a podpis certifikatu
|
||||||
|
wc_InitCert(&certifikat);
|
||||||
|
strncpy(certifikat.subject.country, krajina, CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.state, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.locality, mesto, CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.org, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.unit, "-", CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.commonName, domena, CTC_NAME_SIZE);
|
||||||
|
strncpy(certifikat.subject.email, email, CTC_NAME_SIZE);
|
||||||
|
certifikat.isCA = 0;
|
||||||
|
certifikat.sigType = algoritmus;
|
||||||
|
uspech = wc_SetIssuer(&certifikat, "../certifikaty/autorita_ecc.pem");
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru DER s certifikatom.\n");
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri podpisovani certifikatu.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba pri vytvoreni suboru PEM s certifikatom.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//nacitanie vygenerovaneho certifikatu do WOLFSSL_CTX struktury
|
||||||
|
uspech = wolfSSL_CTX_use_certificate_buffer(ctx, pem_certifikat, pem_certifikat_velkost, SSL_FILETYPE_PEM);
|
||||||
|
if(uspech != SSL_SUCCESS)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Chyba pri generovani certifikatu.\nCislo chyby: %d\nDovod chyby: %s\n", uspech, wc_GetErrorString(uspech));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
printf("Certifikat bol uspesne vygenerovany a podpisany\n");
|
||||||
|
|
||||||
|
if(!wolfSSL_CTX_check_private_key(ctx))
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Sukromny kluc sa nezhoduje s certifikatom\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int nacitat_certifikaty(WOLFSSL_CTX* ctx, const char* subor_certifikat, const char* subor_kluc)
|
||||||
|
{
|
||||||
|
int uspech = 0;
|
||||||
|
|
||||||
|
//nacitanie certifikatu do WOLFSSL_CTX struktury, cesta ku suboru sa predava z argumentu funkcie
|
||||||
|
uspech = wolfSSL_CTX_use_certificate_file(ctx, subor_certifikat, SSL_FILETYPE_PEM);
|
||||||
|
if(uspech != SSL_SUCCESS)
|
||||||
|
{
|
||||||
|
printf("Chyba pri nacitani certifikatu\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//nacitanie sukromneho kluca do WOLFSSL_CTX struktury, cesta ku suboru sa predava z argumentu funkcie
|
||||||
|
uspech = wolfSSL_CTX_use_PrivateKey_file(ctx, subor_kluc, SSL_FILETYPE_PEM);
|
||||||
|
if(uspech != SSL_SUCCESS)
|
||||||
|
{
|
||||||
|
printf("Chyba pri nacitani kluca\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Certifikat a kluc boli uspesne nacitane\n");
|
||||||
|
|
||||||
|
//kontrola sukromneho kluca
|
||||||
|
if(!wolfSSL_CTX_check_private_key(ctx))
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Sukromny kluc sa nezhoduje s certifikatom\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void zobraz_certifikat(WOLFSSL* ssl)
|
||||||
|
{
|
||||||
|
printf("Informacie o certifikate:\n");
|
||||||
|
WOLFSSL_X509 *certifikat = wolfSSL_get_peer_certificate(ssl);
|
||||||
|
char* pole;
|
||||||
|
if (!certifikat)
|
||||||
|
{
|
||||||
|
printf("Nebolo mozne ziskat ziadny certifikat\n");
|
||||||
|
}
|
||||||
|
if ((pole = wolfSSL_X509_NAME_oneline(wolfSSL_X509_get_subject_name(certifikat), 0, 0)))
|
||||||
|
{
|
||||||
|
printf("Nazov domeny: %s\n", pole);
|
||||||
|
//wolfSSL_free(line);
|
||||||
|
}
|
||||||
|
if ((pole = wolfSSL_X509_NAME_oneline(wolfSSL_X509_get_issuer_name(certifikat), 0, 0)))
|
||||||
|
{
|
||||||
|
printf("Certifikacna autorita: %s\n", pole);
|
||||||
|
//wolfSSL_free(line);
|
||||||
|
}
|
||||||
|
X509_free(certifikat);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ukoncit_spojenie(WOLFSSL *ssl, WOLFSSL_CTX *ctx)
|
||||||
|
{
|
||||||
|
printf("Ukoncujem program.\n");
|
||||||
|
wolfSSL_shutdown(ssl);
|
||||||
|
wolfSSL_free(ssl);
|
||||||
|
printf("Spojenie ukoncene.\n");
|
||||||
|
wolfSSL_CTX_free(ctx);
|
||||||
|
wolfSSL_Cleanup();
|
||||||
|
printf("Program bol ukonceny.\n");
|
||||||
|
}
|
73
kniznica/kryptografia.h
Normal file
73
kniznica/kryptografia.h
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
//////////////////////////////////////////////////
|
||||||
|
// Bakalarska praca //
|
||||||
|
// Meno studenta: Tomas Lukac //
|
||||||
|
// Veduci BP: prof. Ing. Milos Drutarovsky CSc. //
|
||||||
|
// Skola: KEMT FEI TUKE //
|
||||||
|
// Datum poslednej upravy: 9.3.2020 //
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef __KRYPTOGRAFIA_H__
|
||||||
|
#define __KRYPTOGRAFIA_H__
|
||||||
|
|
||||||
|
#include <wolfssl/ssl.h>
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <wolfssl/wolfcrypt/random.h>
|
||||||
|
#include <wolfssl/wolfcrypt/ecc.h>
|
||||||
|
#include <wolfssl/wolfcrypt/rsa.h>
|
||||||
|
#include <wolfssl/wolfcrypt/asn_public.h>
|
||||||
|
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||||
|
|
||||||
|
int generovat_ecc_certifikat(WOLFSSL_CTX* ctx, int pocet_bitov, ecc_curve_id kluc_krivka, int algoritmus, char* krajina, char* mesto, char* domena, char* email);
|
||||||
|
int generovat_rsa_certifikat(WOLFSSL_CTX* ctx, int pocet_bitov, int exponent, int algoritmus, char* krajina, char* mesto, char* domena, char* email);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nastav_ctx_klient : realizuje vytvorenie a inicializaciu CTX struktury
|
||||||
|
* na zaklade verzie tls (client method)
|
||||||
|
* @vrati smernik na ctx strukturu
|
||||||
|
*/
|
||||||
|
WOLFSSL_CTX* nastavit_ctx_klient();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nastav_ctx_server: realizuje vytvorenie a inicializaciu CTX struktury
|
||||||
|
* na zaklade verzie tls (server method)
|
||||||
|
* @vrati smernik na ctx strukturu
|
||||||
|
*/
|
||||||
|
WOLFSSL_CTX* nastavit_ctx_server();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Zobrazi sifru na ktorej sa strany dohodli
|
||||||
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
*/
|
||||||
|
void zobraz_sifru(WOLFSSL* ssl);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nastav_sifry: umoznuje manualne nastavit sifrovaci subor
|
||||||
|
* @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu
|
||||||
|
* @parameter const char* sifry : retazec, ktory sa sklada z nazvov sifier oddelenych pomocou znak ":"
|
||||||
|
* vyber sifry zakazeme vlozenim znaku "!" pred danu sifru
|
||||||
|
*/
|
||||||
|
void nastav_sifry(WOLFSSL_CTX* ctx, const char* sifry);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nacitat_certifikaty: realizuje nacitanie certifikatov zo suborov do struktury WOLFSSL_CTX
|
||||||
|
* @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu
|
||||||
|
* @parameter const char* subor_certifikat : absolutna cesta ku suboru s certifikatom vo formate PEM
|
||||||
|
* @parameter const char* subor_kluc : absolutna cesta ku suboru so sukromnym klucom vo formate PEM
|
||||||
|
* @vrati int : operacia bola uspesna(0), neuspesna(-1)
|
||||||
|
*/
|
||||||
|
int nacitat_certifikaty(WOLFSSL_CTX* ctx, const char* subor_certifikat, const char* subor_kluc);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* zobraz_certifikat: realizuje vypis udajov extrahovanych z prijateho certifikatu
|
||||||
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
*/
|
||||||
|
void zobraz_certifikat(WOLFSSL* ssl);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ukoncit_spojenie: realizuje ukoncenie zabezpeceneho tls prenosoveho kanalu
|
||||||
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
* @parameter WOLFSSL_CTX* ctx : ukazuje na WOLFSSL_CTX strukturu
|
||||||
|
*/
|
||||||
|
void ukoncit_spojenie(WOLFSSL *ssl, WOLFSSL_CTX *ctx);
|
||||||
|
|
||||||
|
#endif
|
873
kniznica/rs232.c
Normal file
873
kniznica/rs232.c
Normal file
@ -0,0 +1,873 @@
|
|||||||
|
/*
|
||||||
|
***************************************************************************
|
||||||
|
*
|
||||||
|
* Author: Teunis van Beelen
|
||||||
|
*
|
||||||
|
* Copyright (C) 2005 - 2019 Teunis van Beelen
|
||||||
|
*
|
||||||
|
* Email: teuniz@protonmail.com
|
||||||
|
*
|
||||||
|
***************************************************************************
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
***************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Last revision: May 31, 2019 */
|
||||||
|
/* Added support for hardware flow control using RTS and CTS lines */
|
||||||
|
/* For more info and how to use this library, visit: http://www.teuniz.net/RS-232/ */
|
||||||
|
|
||||||
|
|
||||||
|
#include "rs232.h"
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__linux__) || defined(__FreeBSD__) /* Linux & FreeBSD */
|
||||||
|
|
||||||
|
#define RS232_PORTNR 38
|
||||||
|
|
||||||
|
|
||||||
|
int Cport[RS232_PORTNR],
|
||||||
|
error;
|
||||||
|
|
||||||
|
struct termios new_port_settings,
|
||||||
|
old_port_settings[RS232_PORTNR];
|
||||||
|
|
||||||
|
const char *comports[RS232_PORTNR]={"/dev/ttyS0","/dev/ttyS1","/dev/ttyS2","/dev/ttyS3","/dev/ttyS4","/dev/ttyS5",
|
||||||
|
"/dev/ttyS6","/dev/ttyS7","/dev/ttyS8","/dev/ttyS9","/dev/ttyS10","/dev/ttyS11",
|
||||||
|
"/dev/ttyS12","/dev/ttyS13","/dev/ttyS14","/dev/ttyS15","/dev/ttyUSB0",
|
||||||
|
"/dev/ttyUSB1","/dev/ttyUSB2","/dev/ttyUSB3","/dev/ttyUSB4","/dev/ttyUSB5",
|
||||||
|
"/dev/ttyAMA0","/dev/ttyAMA1","/dev/ttyACM0","/dev/ttyACM1",
|
||||||
|
"/dev/rfcomm0","/dev/rfcomm1","/dev/ircomm0","/dev/ircomm1",
|
||||||
|
"/dev/cuau0","/dev/cuau1","/dev/cuau2","/dev/cuau3",
|
||||||
|
"/dev/cuaU0","/dev/cuaU1","/dev/cuaU2","/dev/cuaU3"};
|
||||||
|
|
||||||
|
int RS232_OpenComport(int comport_number, int baudrate, const char *mode, int flowctrl)
|
||||||
|
{
|
||||||
|
int baudr,
|
||||||
|
status;
|
||||||
|
|
||||||
|
if((comport_number>=RS232_PORTNR)||(comport_number<0))
|
||||||
|
{
|
||||||
|
printf("illegal comport number\n");
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(baudrate)
|
||||||
|
{
|
||||||
|
case 50 : baudr = B50;
|
||||||
|
break;
|
||||||
|
case 75 : baudr = B75;
|
||||||
|
break;
|
||||||
|
case 110 : baudr = B110;
|
||||||
|
break;
|
||||||
|
case 134 : baudr = B134;
|
||||||
|
break;
|
||||||
|
case 150 : baudr = B150;
|
||||||
|
break;
|
||||||
|
case 200 : baudr = B200;
|
||||||
|
break;
|
||||||
|
case 300 : baudr = B300;
|
||||||
|
break;
|
||||||
|
case 600 : baudr = B600;
|
||||||
|
break;
|
||||||
|
case 1200 : baudr = B1200;
|
||||||
|
break;
|
||||||
|
case 1800 : baudr = B1800;
|
||||||
|
break;
|
||||||
|
case 2400 : baudr = B2400;
|
||||||
|
break;
|
||||||
|
case 4800 : baudr = B4800;
|
||||||
|
break;
|
||||||
|
case 9600 : baudr = B9600;
|
||||||
|
break;
|
||||||
|
case 19200 : baudr = B19200;
|
||||||
|
break;
|
||||||
|
case 38400 : baudr = B38400;
|
||||||
|
break;
|
||||||
|
case 57600 : baudr = B57600;
|
||||||
|
break;
|
||||||
|
case 115200 : baudr = B115200;
|
||||||
|
break;
|
||||||
|
case 230400 : baudr = B230400;
|
||||||
|
break;
|
||||||
|
case 460800 : baudr = B460800;
|
||||||
|
break;
|
||||||
|
case 500000 : baudr = B500000;
|
||||||
|
break;
|
||||||
|
case 576000 : baudr = B576000;
|
||||||
|
break;
|
||||||
|
case 921600 : baudr = B921600;
|
||||||
|
break;
|
||||||
|
case 1000000 : baudr = B1000000;
|
||||||
|
break;
|
||||||
|
case 1152000 : baudr = B1152000;
|
||||||
|
break;
|
||||||
|
case 1500000 : baudr = B1500000;
|
||||||
|
break;
|
||||||
|
case 2000000 : baudr = B2000000;
|
||||||
|
break;
|
||||||
|
case 2500000 : baudr = B2500000;
|
||||||
|
break;
|
||||||
|
case 3000000 : baudr = B3000000;
|
||||||
|
break;
|
||||||
|
case 3500000 : baudr = B3500000;
|
||||||
|
break;
|
||||||
|
case 4000000 : baudr = B4000000;
|
||||||
|
break;
|
||||||
|
default : printf("invalid baudrate\n");
|
||||||
|
return(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cbits=CS8,
|
||||||
|
cpar=0,
|
||||||
|
ipar=IGNPAR,
|
||||||
|
bstop=0;
|
||||||
|
|
||||||
|
if(strlen(mode) != 3)
|
||||||
|
{
|
||||||
|
printf("invalid mode \"%s\"\n", mode);
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(mode[0])
|
||||||
|
{
|
||||||
|
case '8': cbits = CS8;
|
||||||
|
break;
|
||||||
|
case '7': cbits = CS7;
|
||||||
|
break;
|
||||||
|
case '6': cbits = CS6;
|
||||||
|
break;
|
||||||
|
case '5': cbits = CS5;
|
||||||
|
break;
|
||||||
|
default : printf("invalid number of data-bits '%c'\n", mode[0]);
|
||||||
|
return(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(mode[1])
|
||||||
|
{
|
||||||
|
case 'N':
|
||||||
|
case 'n': cpar = 0;
|
||||||
|
ipar = IGNPAR;
|
||||||
|
break;
|
||||||
|
case 'E':
|
||||||
|
case 'e': cpar = PARENB;
|
||||||
|
ipar = INPCK;
|
||||||
|
break;
|
||||||
|
case 'O':
|
||||||
|
case 'o': cpar = (PARENB | PARODD);
|
||||||
|
ipar = INPCK;
|
||||||
|
break;
|
||||||
|
default : printf("invalid parity '%c'\n", mode[1]);
|
||||||
|
return(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(mode[2])
|
||||||
|
{
|
||||||
|
case '1': bstop = 0;
|
||||||
|
break;
|
||||||
|
case '2': bstop = CSTOPB;
|
||||||
|
break;
|
||||||
|
default : printf("invalid number of stop bits '%c'\n", mode[2]);
|
||||||
|
return(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
http://pubs.opengroup.org/onlinepubs/7908799/xsh/termios.h.html
|
||||||
|
|
||||||
|
http://man7.org/linux/man-pages/man3/termios.3.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
Cport[comport_number] = open(comports[comport_number], O_RDWR | O_NOCTTY | O_NDELAY);
|
||||||
|
if(Cport[comport_number]==-1)
|
||||||
|
{
|
||||||
|
perror("unable to open comport ");
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* lock access so that another process can't also use the port */
|
||||||
|
if(flock(Cport[comport_number], LOCK_EX | LOCK_NB) != 0)
|
||||||
|
{
|
||||||
|
close(Cport[comport_number]);
|
||||||
|
perror("Another process has locked the comport.");
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
error = tcgetattr(Cport[comport_number], old_port_settings + comport_number);
|
||||||
|
if(error==-1)
|
||||||
|
{
|
||||||
|
close(Cport[comport_number]);
|
||||||
|
flock(Cport[comport_number], LOCK_UN); /* free the port so that others can use it. */
|
||||||
|
perror("unable to read portsettings ");
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
memset(&new_port_settings, 0, sizeof(new_port_settings)); /* clear the new struct */
|
||||||
|
|
||||||
|
new_port_settings.c_cflag = cbits | cpar | bstop | CLOCAL | CREAD;
|
||||||
|
if(flowctrl)
|
||||||
|
{
|
||||||
|
new_port_settings.c_cflag |= CRTSCTS;
|
||||||
|
}
|
||||||
|
new_port_settings.c_iflag = ipar;
|
||||||
|
new_port_settings.c_oflag = 0;
|
||||||
|
new_port_settings.c_lflag = 0;
|
||||||
|
new_port_settings.c_cc[VMIN] = 0; /* block untill n bytes are received */
|
||||||
|
new_port_settings.c_cc[VTIME] = 0; /* block untill a timer expires (n * 100 mSec.) */
|
||||||
|
|
||||||
|
cfsetispeed(&new_port_settings, baudr);
|
||||||
|
cfsetospeed(&new_port_settings, baudr);
|
||||||
|
|
||||||
|
error = tcsetattr(Cport[comport_number], TCSANOW, &new_port_settings);
|
||||||
|
if(error==-1)
|
||||||
|
{
|
||||||
|
tcsetattr(Cport[comport_number], TCSANOW, old_port_settings + comport_number);
|
||||||
|
close(Cport[comport_number]);
|
||||||
|
flock(Cport[comport_number], LOCK_UN); /* free the port so that others can use it. */
|
||||||
|
perror("unable to adjust portsettings ");
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* http://man7.org/linux/man-pages/man4/tty_ioctl.4.html */
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
|
||||||
|
{
|
||||||
|
tcsetattr(Cport[comport_number], TCSANOW, old_port_settings + comport_number);
|
||||||
|
flock(Cport[comport_number], LOCK_UN); /* free the port so that others can use it. */
|
||||||
|
perror("unable to get portstatus");
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
status |= TIOCM_DTR; /* turn on DTR */
|
||||||
|
status |= TIOCM_RTS; /* turn on RTS */
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
|
||||||
|
{
|
||||||
|
tcsetattr(Cport[comport_number], TCSANOW, old_port_settings + comport_number);
|
||||||
|
flock(Cport[comport_number], LOCK_UN); /* free the port so that others can use it. */
|
||||||
|
perror("unable to set portstatus");
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_PollComport(int comport_number, unsigned char *buf, int size)
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
|
||||||
|
n = read(Cport[comport_number], buf, size);
|
||||||
|
|
||||||
|
if(n < 0)
|
||||||
|
{
|
||||||
|
if(errno == EAGAIN) return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_SendByte(int comport_number, unsigned char byte)
|
||||||
|
{
|
||||||
|
int n = write(Cport[comport_number], &byte, 1);
|
||||||
|
if(n < 0)
|
||||||
|
{
|
||||||
|
if(errno == EAGAIN)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_SendBuf(int comport_number, unsigned char *buf, int size)
|
||||||
|
{
|
||||||
|
int n = write(Cport[comport_number], buf, size);
|
||||||
|
if(n < 0)
|
||||||
|
{
|
||||||
|
if(errno == EAGAIN)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_CloseComport(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
|
||||||
|
{
|
||||||
|
perror("unable to get portstatus");
|
||||||
|
}
|
||||||
|
|
||||||
|
status &= ~TIOCM_DTR; /* turn off DTR */
|
||||||
|
status &= ~TIOCM_RTS; /* turn off RTS */
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
|
||||||
|
{
|
||||||
|
perror("unable to set portstatus");
|
||||||
|
}
|
||||||
|
|
||||||
|
tcsetattr(Cport[comport_number], TCSANOW, old_port_settings + comport_number);
|
||||||
|
close(Cport[comport_number]);
|
||||||
|
|
||||||
|
flock(Cport[comport_number], LOCK_UN); /* free the port so that others can use it. */
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Constant Description
|
||||||
|
TIOCM_LE DSR (data set ready/line enable)
|
||||||
|
TIOCM_DTR DTR (data terminal ready)
|
||||||
|
TIOCM_RTS RTS (request to send)
|
||||||
|
TIOCM_ST Secondary TXD (transmit)
|
||||||
|
TIOCM_SR Secondary RXD (receive)
|
||||||
|
TIOCM_CTS CTS (clear to send)
|
||||||
|
TIOCM_CAR DCD (data carrier detect)
|
||||||
|
TIOCM_CD see TIOCM_CAR
|
||||||
|
TIOCM_RNG RNG (ring)
|
||||||
|
TIOCM_RI see TIOCM_RNG
|
||||||
|
TIOCM_DSR DSR (data set ready)
|
||||||
|
|
||||||
|
http://man7.org/linux/man-pages/man4/tty_ioctl.4.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
int RS232_IsDCDEnabled(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
ioctl(Cport[comport_number], TIOCMGET, &status);
|
||||||
|
|
||||||
|
if(status&TIOCM_CAR) return(1);
|
||||||
|
else return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_IsRINGEnabled(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
ioctl(Cport[comport_number], TIOCMGET, &status);
|
||||||
|
|
||||||
|
if(status&TIOCM_RNG) return(1);
|
||||||
|
else return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_IsCTSEnabled(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
ioctl(Cport[comport_number], TIOCMGET, &status);
|
||||||
|
|
||||||
|
if(status&TIOCM_CTS) return(1);
|
||||||
|
else return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_IsDSREnabled(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
ioctl(Cport[comport_number], TIOCMGET, &status);
|
||||||
|
|
||||||
|
if(status&TIOCM_DSR) return(1);
|
||||||
|
else return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_enableDTR(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
|
||||||
|
{
|
||||||
|
perror("unable to get portstatus");
|
||||||
|
}
|
||||||
|
|
||||||
|
status |= TIOCM_DTR; /* turn on DTR */
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
|
||||||
|
{
|
||||||
|
perror("unable to set portstatus");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_disableDTR(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
|
||||||
|
{
|
||||||
|
perror("unable to get portstatus");
|
||||||
|
}
|
||||||
|
|
||||||
|
status &= ~TIOCM_DTR; /* turn off DTR */
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
|
||||||
|
{
|
||||||
|
perror("unable to set portstatus");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_enableRTS(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
|
||||||
|
{
|
||||||
|
perror("unable to get portstatus");
|
||||||
|
}
|
||||||
|
|
||||||
|
status |= TIOCM_RTS; /* turn on RTS */
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
|
||||||
|
{
|
||||||
|
perror("unable to set portstatus");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_disableRTS(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
|
||||||
|
{
|
||||||
|
perror("unable to get portstatus");
|
||||||
|
}
|
||||||
|
|
||||||
|
status &= ~TIOCM_RTS; /* turn off RTS */
|
||||||
|
|
||||||
|
if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
|
||||||
|
{
|
||||||
|
perror("unable to set portstatus");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_flushRX(int comport_number)
|
||||||
|
{
|
||||||
|
tcflush(Cport[comport_number], TCIFLUSH);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_flushTX(int comport_number)
|
||||||
|
{
|
||||||
|
tcflush(Cport[comport_number], TCOFLUSH);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_flushRXTX(int comport_number)
|
||||||
|
{
|
||||||
|
tcflush(Cport[comport_number], TCIOFLUSH);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#else /* windows */
|
||||||
|
|
||||||
|
#define RS232_PORTNR 32
|
||||||
|
|
||||||
|
HANDLE Cport[RS232_PORTNR];
|
||||||
|
|
||||||
|
|
||||||
|
const char *comports[RS232_PORTNR]={"\\\\.\\COM1", "\\\\.\\COM2", "\\\\.\\COM3", "\\\\.\\COM4",
|
||||||
|
"\\\\.\\COM5", "\\\\.\\COM6", "\\\\.\\COM7", "\\\\.\\COM8",
|
||||||
|
"\\\\.\\COM9", "\\\\.\\COM10", "\\\\.\\COM11", "\\\\.\\COM12",
|
||||||
|
"\\\\.\\COM13", "\\\\.\\COM14", "\\\\.\\COM15", "\\\\.\\COM16",
|
||||||
|
"\\\\.\\COM17", "\\\\.\\COM18", "\\\\.\\COM19", "\\\\.\\COM20",
|
||||||
|
"\\\\.\\COM21", "\\\\.\\COM22", "\\\\.\\COM23", "\\\\.\\COM24",
|
||||||
|
"\\\\.\\COM25", "\\\\.\\COM26", "\\\\.\\COM27", "\\\\.\\COM28",
|
||||||
|
"\\\\.\\COM29", "\\\\.\\COM30", "\\\\.\\COM31", "\\\\.\\COM32"};
|
||||||
|
|
||||||
|
char mode_str[128];
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_OpenComport(int comport_number, int baudrate, const char *mode, int flowctrl)
|
||||||
|
{
|
||||||
|
if((comport_number>=RS232_PORTNR)||(comport_number<0))
|
||||||
|
{
|
||||||
|
printf("illegal comport number\n");
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(baudrate)
|
||||||
|
{
|
||||||
|
case 110 : strcpy(mode_str, "baud=110");
|
||||||
|
break;
|
||||||
|
case 300 : strcpy(mode_str, "baud=300");
|
||||||
|
break;
|
||||||
|
case 600 : strcpy(mode_str, "baud=600");
|
||||||
|
break;
|
||||||
|
case 1200 : strcpy(mode_str, "baud=1200");
|
||||||
|
break;
|
||||||
|
case 2400 : strcpy(mode_str, "baud=2400");
|
||||||
|
break;
|
||||||
|
case 4800 : strcpy(mode_str, "baud=4800");
|
||||||
|
break;
|
||||||
|
case 9600 : strcpy(mode_str, "baud=9600");
|
||||||
|
break;
|
||||||
|
case 19200 : strcpy(mode_str, "baud=19200");
|
||||||
|
break;
|
||||||
|
case 38400 : strcpy(mode_str, "baud=38400");
|
||||||
|
break;
|
||||||
|
case 57600 : strcpy(mode_str, "baud=57600");
|
||||||
|
break;
|
||||||
|
case 115200 : strcpy(mode_str, "baud=115200");
|
||||||
|
break;
|
||||||
|
case 128000 : strcpy(mode_str, "baud=128000");
|
||||||
|
break;
|
||||||
|
case 256000 : strcpy(mode_str, "baud=256000");
|
||||||
|
break;
|
||||||
|
case 500000 : strcpy(mode_str, "baud=500000");
|
||||||
|
break;
|
||||||
|
case 921600 : strcpy(mode_str, "baud=921600");
|
||||||
|
break;
|
||||||
|
case 1000000 : strcpy(mode_str, "baud=1000000");
|
||||||
|
break;
|
||||||
|
case 1500000 : strcpy(mode_str, "baud=1500000");
|
||||||
|
break;
|
||||||
|
case 2000000 : strcpy(mode_str, "baud=2000000");
|
||||||
|
break;
|
||||||
|
case 3000000 : strcpy(mode_str, "baud=3000000");
|
||||||
|
break;
|
||||||
|
default : printf("invalid baudrate\n");
|
||||||
|
return(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(strlen(mode) != 3)
|
||||||
|
{
|
||||||
|
printf("invalid mode \"%s\"\n", mode);
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(mode[0])
|
||||||
|
{
|
||||||
|
case '8': strcat(mode_str, " data=8");
|
||||||
|
break;
|
||||||
|
case '7': strcat(mode_str, " data=7");
|
||||||
|
break;
|
||||||
|
case '6': strcat(mode_str, " data=6");
|
||||||
|
break;
|
||||||
|
case '5': strcat(mode_str, " data=5");
|
||||||
|
break;
|
||||||
|
default : printf("invalid number of data-bits '%c'\n", mode[0]);
|
||||||
|
return(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(mode[1])
|
||||||
|
{
|
||||||
|
case 'N':
|
||||||
|
case 'n': strcat(mode_str, " parity=n");
|
||||||
|
break;
|
||||||
|
case 'E':
|
||||||
|
case 'e': strcat(mode_str, " parity=e");
|
||||||
|
break;
|
||||||
|
case 'O':
|
||||||
|
case 'o': strcat(mode_str, " parity=o");
|
||||||
|
break;
|
||||||
|
default : printf("invalid parity '%c'\n", mode[1]);
|
||||||
|
return(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(mode[2])
|
||||||
|
{
|
||||||
|
case '1': strcat(mode_str, " stop=1");
|
||||||
|
break;
|
||||||
|
case '2': strcat(mode_str, " stop=2");
|
||||||
|
break;
|
||||||
|
default : printf("invalid number of stop bits '%c'\n", mode[2]);
|
||||||
|
return(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(flowctrl)
|
||||||
|
{
|
||||||
|
strcat(mode_str, " xon=off to=off odsr=off dtr=on rts=off");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strcat(mode_str, " xon=off to=off odsr=off dtr=on rts=on");
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363145%28v=vs.85%29.aspx
|
||||||
|
|
||||||
|
http://technet.microsoft.com/en-us/library/cc732236.aspx
|
||||||
|
|
||||||
|
https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_dcb
|
||||||
|
*/
|
||||||
|
|
||||||
|
Cport[comport_number] = CreateFileA(comports[comport_number],
|
||||||
|
GENERIC_READ|GENERIC_WRITE,
|
||||||
|
0, /* no share */
|
||||||
|
NULL, /* no security */
|
||||||
|
OPEN_EXISTING,
|
||||||
|
0, /* no threads */
|
||||||
|
NULL); /* no templates */
|
||||||
|
|
||||||
|
if(Cport[comport_number]==INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
printf("unable to open comport\n");
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
DCB port_settings;
|
||||||
|
memset(&port_settings, 0, sizeof(port_settings)); /* clear the new struct */
|
||||||
|
port_settings.DCBlength = sizeof(port_settings);
|
||||||
|
|
||||||
|
if(!BuildCommDCBA(mode_str, &port_settings))
|
||||||
|
{
|
||||||
|
printf("unable to set comport dcb settings\n");
|
||||||
|
CloseHandle(Cport[comport_number]);
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(flowctrl)
|
||||||
|
{
|
||||||
|
port_settings.fOutxCtsFlow = TRUE;
|
||||||
|
port_settings.fRtsControl = RTS_CONTROL_HANDSHAKE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!SetCommState(Cport[comport_number], &port_settings))
|
||||||
|
{
|
||||||
|
printf("unable to set comport cfg settings\n");
|
||||||
|
CloseHandle(Cport[comport_number]);
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
COMMTIMEOUTS Cptimeouts;
|
||||||
|
|
||||||
|
Cptimeouts.ReadIntervalTimeout = MAXDWORD;
|
||||||
|
Cptimeouts.ReadTotalTimeoutMultiplier = 0;
|
||||||
|
Cptimeouts.ReadTotalTimeoutConstant = 0;
|
||||||
|
Cptimeouts.WriteTotalTimeoutMultiplier = 0;
|
||||||
|
Cptimeouts.WriteTotalTimeoutConstant = 0;
|
||||||
|
|
||||||
|
if(!SetCommTimeouts(Cport[comport_number], &Cptimeouts))
|
||||||
|
{
|
||||||
|
printf("unable to set comport time-out settings\n");
|
||||||
|
CloseHandle(Cport[comport_number]);
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_PollComport(int comport_number, unsigned char *buf, int size)
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
|
||||||
|
/* added the void pointer cast, otherwise gcc will complain about */
|
||||||
|
/* "warning: dereferencing type-punned pointer will break strict aliasing rules" */
|
||||||
|
|
||||||
|
ReadFile(Cport[comport_number], buf, size, (LPDWORD)((void *)&n), NULL);
|
||||||
|
|
||||||
|
return(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_SendByte(int comport_number, unsigned char byte)
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
|
||||||
|
WriteFile(Cport[comport_number], &byte, 1, (LPDWORD)((void *)&n), NULL);
|
||||||
|
|
||||||
|
if(n<0) return(1);
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_SendBuf(int comport_number, unsigned char *buf, int size)
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
|
||||||
|
if(WriteFile(Cport[comport_number], buf, size, (LPDWORD)((void *)&n), NULL))
|
||||||
|
{
|
||||||
|
return(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_CloseComport(int comport_number)
|
||||||
|
{
|
||||||
|
CloseHandle(Cport[comport_number]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363258%28v=vs.85%29.aspx
|
||||||
|
*/
|
||||||
|
|
||||||
|
int RS232_IsDCDEnabled(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status));
|
||||||
|
|
||||||
|
if(status&MS_RLSD_ON) return(1);
|
||||||
|
else return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_IsRINGEnabled(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status));
|
||||||
|
|
||||||
|
if(status&MS_RING_ON) return(1);
|
||||||
|
else return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_IsCTSEnabled(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status));
|
||||||
|
|
||||||
|
if(status&MS_CTS_ON) return(1);
|
||||||
|
else return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RS232_IsDSREnabled(int comport_number)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
|
||||||
|
GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status));
|
||||||
|
|
||||||
|
if(status&MS_DSR_ON) return(1);
|
||||||
|
else return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_enableDTR(int comport_number)
|
||||||
|
{
|
||||||
|
EscapeCommFunction(Cport[comport_number], SETDTR);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_disableDTR(int comport_number)
|
||||||
|
{
|
||||||
|
EscapeCommFunction(Cport[comport_number], CLRDTR);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_enableRTS(int comport_number)
|
||||||
|
{
|
||||||
|
EscapeCommFunction(Cport[comport_number], SETRTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_disableRTS(int comport_number)
|
||||||
|
{
|
||||||
|
EscapeCommFunction(Cport[comport_number], CLRRTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
https://msdn.microsoft.com/en-us/library/windows/desktop/aa363428%28v=vs.85%29.aspx
|
||||||
|
*/
|
||||||
|
|
||||||
|
void RS232_flushRX(int comport_number)
|
||||||
|
{
|
||||||
|
PurgeComm(Cport[comport_number], PURGE_RXCLEAR | PURGE_RXABORT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_flushTX(int comport_number)
|
||||||
|
{
|
||||||
|
PurgeComm(Cport[comport_number], PURGE_TXCLEAR | PURGE_TXABORT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_flushRXTX(int comport_number)
|
||||||
|
{
|
||||||
|
PurgeComm(Cport[comport_number], PURGE_RXCLEAR | PURGE_RXABORT);
|
||||||
|
PurgeComm(Cport[comport_number], PURGE_TXCLEAR | PURGE_TXABORT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
void RS232_cputs(int comport_number, const char *text) /* sends a string to serial port */
|
||||||
|
{
|
||||||
|
while(*text != 0) RS232_SendByte(comport_number, *(text++));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* return index in comports matching to device name or -1 if not found */
|
||||||
|
int RS232_GetPortnr(const char *devname)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
char str[32];
|
||||||
|
|
||||||
|
#if defined(__linux__) || defined(__FreeBSD__) /* Linux & FreeBSD */
|
||||||
|
strcpy(str, "/dev/");
|
||||||
|
#else /* windows */
|
||||||
|
strcpy(str, "\\\\.\\");
|
||||||
|
#endif
|
||||||
|
strncat(str, devname, 16);
|
||||||
|
str[31] = 0;
|
||||||
|
|
||||||
|
for(i=0; i<RS232_PORTNR; i++)
|
||||||
|
{
|
||||||
|
if(!strcmp(comports[i], str))
|
||||||
|
{
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1; /* device not found */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
88
kniznica/rs232.h
Normal file
88
kniznica/rs232.h
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
***************************************************************************
|
||||||
|
*
|
||||||
|
* Author: Teunis van Beelen
|
||||||
|
*
|
||||||
|
* Copyright (C) 2005 - 2019 Teunis van Beelen
|
||||||
|
*
|
||||||
|
* Email: teuniz@protonmail.com
|
||||||
|
*
|
||||||
|
***************************************************************************
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
***************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Last revision: May 31, 2019 */
|
||||||
|
|
||||||
|
/* For more info and how to use this library, visit: http://www.teuniz.net/RS-232/ */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef rs232_INCLUDED
|
||||||
|
#define rs232_INCLUDED
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__linux__) || defined(__FreeBSD__)
|
||||||
|
|
||||||
|
#include <termios.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <limits.h>
|
||||||
|
#include <sys/file.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int RS232_OpenComport(int, int, const char *, int);
|
||||||
|
int RS232_PollComport(int, unsigned char *, int);
|
||||||
|
int RS232_SendByte(int, unsigned char);
|
||||||
|
int RS232_SendBuf(int, unsigned char *, int);
|
||||||
|
void RS232_CloseComport(int);
|
||||||
|
void RS232_cputs(int, const char *);
|
||||||
|
int RS232_IsDCDEnabled(int);
|
||||||
|
int RS232_IsRINGEnabled(int);
|
||||||
|
int RS232_IsCTSEnabled(int);
|
||||||
|
int RS232_IsDSREnabled(int);
|
||||||
|
void RS232_enableDTR(int);
|
||||||
|
void RS232_disableDTR(int);
|
||||||
|
void RS232_enableRTS(int);
|
||||||
|
void RS232_disableRTS(int);
|
||||||
|
void RS232_flushRX(int);
|
||||||
|
void RS232_flushTX(int);
|
||||||
|
void RS232_flushRXTX(int);
|
||||||
|
int RS232_GetPortnr(const char *);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
54
readme.txt
Normal file
54
readme.txt
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
Repozitar: Bakalarska praca
|
||||||
|
Meno studenta: Tomas Lukac
|
||||||
|
Datum poslednej upravy: 24.2.2020
|
||||||
|
----------------------------
|
||||||
|
Zoznam zdrojovych suborov
|
||||||
|
certifikaty
|
||||||
|
|__server.pem
|
||||||
|
|__server.key
|
||||||
|
kniznica
|
||||||
|
|__komunikacia.h
|
||||||
|
|__komunikacia.c
|
||||||
|
|__kryptografia.h
|
||||||
|
|__kryptografia.c
|
||||||
|
|__vstup.h
|
||||||
|
|__vstup.c
|
||||||
|
klient.c
|
||||||
|
server.c
|
||||||
|
Makefile
|
||||||
|
|
||||||
|
Opis aplikacie
|
||||||
|
Realizuje zabezpecenu vymenu sprav medzi klientom a serverom
|
||||||
|
a autentizaciu servera klientom vyuzitim kniznice WolfSSL
|
||||||
|
|
||||||
|
Navod na prelozenie a spustenie (Linux)
|
||||||
|
1. prelozenie kniznice wolfssl s podporou OpenSSL (v adresari s kniznicou)
|
||||||
|
./configure --enable-opensslextra --enable-certgen --enable-keygen
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
2. prelozenie programov (v adresari)
|
||||||
|
make all
|
||||||
|
3. spustenie
|
||||||
|
./server -port port
|
||||||
|
./server -port -g rsa|ecc
|
||||||
|
./klient -ip 127.0.0.1 -port
|
||||||
|
|
||||||
|
Navod na prelozenie a spustenie (Windows)
|
||||||
|
1. prelozenie programov (v adresari)
|
||||||
|
mingw32-make all
|
||||||
|
2. spustenie
|
||||||
|
server -port port
|
||||||
|
server -port -g rsa|ecc
|
||||||
|
klient -ip 127.0.0.1 -port port
|
||||||
|
|
||||||
|
Postup prace:
|
||||||
|
1. Spracovanie chyb pomocou stderr
|
||||||
|
2. Doplnenie hlavicky do zdrojovych suborov
|
||||||
|
3. Vytvorenie rutiny pre odosielanie suborov namiesto sprav
|
||||||
|
4. Upravenie Makefile pre kompilovanie na platforme Windows
|
||||||
|
5. Implementacia generovania certifikatov
|
||||||
|
6. Implementacia obojsmernej autentizacie
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
4. vytvorenie rozhrania pre komunikacny kanal rs232 pomocou wolfssl abstraction layer
|
||||||
|
(wolfssl.com/docs/wolfssl-manual/ch5)
|
46
rs232_kanal/Makefile
Normal file
46
rs232_kanal/Makefile
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
##################################################
|
||||||
|
## Bakalarska praca ##
|
||||||
|
## Meno studenta: Tomas Lukac ##
|
||||||
|
## Veduci BP: prof. Ing. Milos Drutarovsky CSc. ##
|
||||||
|
## Skola: KEMT FEI TUKE ##
|
||||||
|
## Datum poslednej upravy: 9.3.2020 ##
|
||||||
|
##################################################
|
||||||
|
|
||||||
|
#prekladac
|
||||||
|
CC = gcc
|
||||||
|
|
||||||
|
#prepinace pre prekladac
|
||||||
|
CFLAGS = -Wall -Wcpp -fPIC -DREPLICATION_ENABLED -DJOURNALING_ENABLED -I./../wolfssl_hlavickove_subory/
|
||||||
|
LIB32 = -L. -lwolfssl -lws2_32 -Os
|
||||||
|
LIB64 = -L. -lwolfssl -lws2_32 -m64
|
||||||
|
|
||||||
|
all: klient server
|
||||||
|
|
||||||
|
klient: klient.o kryptografia.o komunikacia.o rs232.o
|
||||||
|
$(CC) $(CFLAGS) -o klient klient.o kryptografia.o komunikacia.o rs232.o $(LIB64)
|
||||||
|
|
||||||
|
server: server.o kryptografia.o komunikacia.o rs232.o
|
||||||
|
$(CC) $(CFLAGS) -o server server.o kryptografia.o komunikacia.o rs232.o $(LIB64)
|
||||||
|
|
||||||
|
klient.o: klient.c
|
||||||
|
$(CC) -c klient.c $(LIB64)
|
||||||
|
|
||||||
|
server.o: server.c
|
||||||
|
$(CC) -c server.c $(LIB64)
|
||||||
|
|
||||||
|
kryptografia.o: ../kniznica/kryptografia.c ../kniznica/kryptografia.h
|
||||||
|
$(CC) -c ../kniznica/kryptografia.c $(LIB64)
|
||||||
|
|
||||||
|
komunikacia.o: ../kniznica/komunikacia.c ../kniznica/komunikacia.h
|
||||||
|
$(CC) -c ../kniznica/komunikacia.c $(LIB64)
|
||||||
|
|
||||||
|
rs232.o: ../kniznica/rs232.c ../kniznica/rs232.h
|
||||||
|
$(CC) -c ../kniznica/rs232.c $(LIB64)
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
|
||||||
|
clean-linux:
|
||||||
|
rm *.o -f klient server
|
||||||
|
|
||||||
|
clean-win:
|
||||||
|
del *.o klient.exe server.exe
|
105
rs232_kanal/klient.c
Normal file
105
rs232_kanal/klient.c
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
//////////////////////////////////////////////////
|
||||||
|
// Bakalarska praca //
|
||||||
|
// Meno studenta: Tomas Lukac //
|
||||||
|
// Veduci BP: prof. Ing. Milos Drutarovsky CSc. //
|
||||||
|
// Skola: KEMT FEI TUKE //
|
||||||
|
// Datum poslednej upravy: 9.3.2020 //
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <wolfssl/options.h>
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <wolfssl/ssl.h>
|
||||||
|
#include <wolfssl/certs_test.h>
|
||||||
|
#include <wolfssl/wolfcrypt/types.h>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <Windows.h>
|
||||||
|
#else
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../kniznica/kryptografia.h"
|
||||||
|
#include "../kniznica/rs232.h"
|
||||||
|
|
||||||
|
int cislo_portu = 2;
|
||||||
|
int baud_frekvencia = 9600;
|
||||||
|
char rezim[]={'8','N','1', 0};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rs232_zapis: umoznuje zapis dat do serialoveho portu
|
||||||
|
* @parameter WOLSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
* @parameter char* buf : ukazuje na buffer, do kt. zapise wolfssl zasifrovany text na odoslanie
|
||||||
|
* @parameter int sz : velkost buffera
|
||||||
|
* @vrati int
|
||||||
|
*/
|
||||||
|
int rs232_zapis(WOLFSSL *ssl, char *buf, int sz, void *ctx)
|
||||||
|
{
|
||||||
|
printf("Klient posiela ...\n");
|
||||||
|
int n = RS232_SendBuf(cislo_portu, buf, sz);
|
||||||
|
printf("Klient poslal %d bajtov...\n", n);
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rs232_citanie: umoznuje citanie dat zo serialoveho portu
|
||||||
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
* @parameter char* buf : ukazuje na buffer, kde prichadzajuci zasifrovany text by mal byt nakopirovany
|
||||||
|
* aby ho wolfssl mohla odsifrovat
|
||||||
|
* @parameter int sz : velkost buffera
|
||||||
|
* @vrati int
|
||||||
|
*/
|
||||||
|
int rs232_citanie(WOLFSSL *ssl, char *buf, int sz, void *ctx)
|
||||||
|
{
|
||||||
|
printf("Klienta prijima...\n");
|
||||||
|
int n;
|
||||||
|
while(n <= 0)
|
||||||
|
n = RS232_PollComport(cislo_portu, buf, sz);
|
||||||
|
printf("Klienta prijal %d bajtov.\n", n);
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char const *argv[])
|
||||||
|
{
|
||||||
|
WOLFSSL *ssl;
|
||||||
|
WOLFSSL_CTX *ctx = NULL;
|
||||||
|
|
||||||
|
if(RS232_OpenComport(cislo_portu, baud_frekvencia, rezim, 1))
|
||||||
|
{
|
||||||
|
printf("Nebolo mozne otvorit serialovy port\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if((ctx = nastavit_ctx_klient()) == NULL)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
const char* subor_certifikat = "../certifikaty/klient.pem";
|
||||||
|
const char* subor_kluc = "../certifikaty/klient.key";
|
||||||
|
if(!nacitat_certifikaty(ctx, subor_certifikat, subor_kluc)) return -1;
|
||||||
|
|
||||||
|
wolfSSL_SetIOSend(ctx, rs232_zapis);
|
||||||
|
wolfSSL_SetIORecv(ctx, rs232_citanie);
|
||||||
|
|
||||||
|
|
||||||
|
if ((ssl = wolfSSL_new(ctx)) == NULL)
|
||||||
|
{
|
||||||
|
printf("Nepodarilo sa vytvorit ssl relaciu\n");
|
||||||
|
wolfSSL_CTX_free(ctx);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
wolfSSL_set_fd(ssl, *(int*)ctx);
|
||||||
|
wolfSSL_set_using_nonblock(ssl, *(int*)ctx);
|
||||||
|
|
||||||
|
int uspech = 0;
|
||||||
|
if(wolfSSL_connect(ssl) != SSL_SUCCESS)
|
||||||
|
{
|
||||||
|
printf("nepodarilo sa pripojit\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
RS232_CloseComport(cislo_portu);
|
||||||
|
return 0;
|
||||||
|
}
|
BIN
rs232_kanal/klient.exe
Normal file
BIN
rs232_kanal/klient.exe
Normal file
Binary file not shown.
BIN
rs232_kanal/klient.o
Normal file
BIN
rs232_kanal/klient.o
Normal file
Binary file not shown.
BIN
rs232_kanal/komunikacia.o
Normal file
BIN
rs232_kanal/komunikacia.o
Normal file
Binary file not shown.
BIN
rs232_kanal/kryptografia.o
Normal file
BIN
rs232_kanal/kryptografia.o
Normal file
Binary file not shown.
BIN
rs232_kanal/rs232.o
Normal file
BIN
rs232_kanal/rs232.o
Normal file
Binary file not shown.
118
rs232_kanal/server.c
Normal file
118
rs232_kanal/server.c
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
//////////////////////////////////////////////////
|
||||||
|
// Bakalarska praca //
|
||||||
|
// Meno studenta: Tomas Lukac //
|
||||||
|
// Veduci BP: prof. Ing. Milos Drutarovsky CSc. //
|
||||||
|
// Skola: KEMT FEI TUKE //
|
||||||
|
// Datum poslednej upravy: 9.3.2020 //
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <wolfssl/ssl.h>
|
||||||
|
#include <wolfssl/certs_test.h>
|
||||||
|
#include <wolfssl/wolfcrypt/types.h>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <Windows.h>
|
||||||
|
#else
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../kniznica/kryptografia.h"
|
||||||
|
#include "../kniznica/rs232.h"
|
||||||
|
|
||||||
|
int cislo_portu = 3;
|
||||||
|
int baud_frekvencia = 9600;
|
||||||
|
char rezim[]={'8','N','1', 0};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rs232_zapis: umoznuje zapis dat do serialoveho portu
|
||||||
|
* @parameter WOLSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
* @parameter char* buf : ukazuje na buffer, do kt. zapise wolfssl zasifrovany text na odoslanie
|
||||||
|
* @parameter int sz : velkost buffera
|
||||||
|
* @vrati int
|
||||||
|
*/
|
||||||
|
int rs232_zapis(WOLFSSL *ssl, char *buf, int sz, void *ctx)
|
||||||
|
{
|
||||||
|
printf("Server posiela ...\n");
|
||||||
|
int n = RS232_SendBuf(cislo_portu, buf, sz);
|
||||||
|
printf("Server poslal %d bajtov\n", n);
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rs232_citanie: umoznuje citanie dat zo serialoveho portu
|
||||||
|
* @parameter WOLFSSL* ssl : ukazuje na aktualnu relaciu
|
||||||
|
* @parameter char* buf : ukazuje na buffer, kde prichadzajuci zasifrovany text by mal byt nakopirovany
|
||||||
|
* aby ho wolfssl mohla odsifrovat
|
||||||
|
* @parameter int sz : velkost buffera
|
||||||
|
* @vrati int
|
||||||
|
*/
|
||||||
|
int rs232_citanie(WOLFSSL *ssl, char *buf, int sz, void *ctx)
|
||||||
|
{
|
||||||
|
printf("Server prijima...\n");
|
||||||
|
int n;
|
||||||
|
int prijal = 0;
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
n = RS232_PollComport(cislo_portu, buf, sz);
|
||||||
|
if(n > 0)
|
||||||
|
{
|
||||||
|
buf[n] = '\0'; /* always put a "null" at the end of a string! */
|
||||||
|
for(int i=0; i < n; i++)
|
||||||
|
{
|
||||||
|
if(buf[i] < 32) /* replace unreadable control-codes by dots */
|
||||||
|
{
|
||||||
|
buf[i] = '.';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("received %i bytes: %s\n", n, (char *)buf);
|
||||||
|
}
|
||||||
|
prijal += n;
|
||||||
|
|
||||||
|
}
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char const *argv[])
|
||||||
|
{
|
||||||
|
WOLFSSL *ssl;
|
||||||
|
WOLFSSL_CTX *ctx = NULL;
|
||||||
|
|
||||||
|
//otvorenie portu pre citanie
|
||||||
|
if(RS232_OpenComport(cislo_portu, baud_frekvencia, rezim, 1))
|
||||||
|
{
|
||||||
|
printf("Nebolo mozne otvorit serialovy port\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if((ctx = nastavit_ctx_server()) == NULL)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
const char* subor_certifikat = "../certifikaty/klient.pem";
|
||||||
|
const char* subor_kluc = "../certifikaty/klient.key";
|
||||||
|
if(!nacitat_certifikaty(ctx, subor_certifikat, subor_kluc)) return -1;
|
||||||
|
|
||||||
|
wolfSSL_SetIOSend(ctx, rs232_zapis);
|
||||||
|
wolfSSL_SetIORecv(ctx, rs232_citanie);
|
||||||
|
|
||||||
|
if ((ssl = wolfSSL_new(ctx)) == NULL)
|
||||||
|
{
|
||||||
|
printf("Nepodarilo sa vytvorit ssl relaciu\n");
|
||||||
|
wolfSSL_CTX_free(ctx);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ret;
|
||||||
|
if(wolfSSL_accept(ssl) == -1)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
RS232_CloseComport(cislo_portu);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
BIN
rs232_kanal/server.exe
Normal file
BIN
rs232_kanal/server.exe
Normal file
Binary file not shown.
BIN
rs232_kanal/server.o
Normal file
BIN
rs232_kanal/server.o
Normal file
Binary file not shown.
BIN
rs232_kanal/wolfssl.dll
Normal file
BIN
rs232_kanal/wolfssl.dll
Normal file
Binary file not shown.
43
tcpip_kanal/Makefile
Normal file
43
tcpip_kanal/Makefile
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
##################################################
|
||||||
|
## Bakalarska praca ##
|
||||||
|
## Meno studenta: Tomas Lukac ##
|
||||||
|
## Veduci BP: prof. Ing. Milos Drutarovsky CSc. ##
|
||||||
|
## Skola: KEMT FEI TUKE ##
|
||||||
|
## Datum poslednej upravy: 9.3.2020 ##
|
||||||
|
##################################################
|
||||||
|
|
||||||
|
#prekladac
|
||||||
|
CC = gcc
|
||||||
|
|
||||||
|
#prepinace pre prekladac
|
||||||
|
CFLAGS = -Wall -Wcpp -fPIC -DREPLICATION_ENABLED -DJOURNALING_ENABLED -I./../wolfssl_hlavickove_subory/
|
||||||
|
LIB32 = -L. -lwolfssl -lws2_32 -Os
|
||||||
|
LIB64 = -L. -lwolfssl -lws2_32 -m64
|
||||||
|
|
||||||
|
all: klient server
|
||||||
|
|
||||||
|
klient: klient.o kryptografia.o komunikacia.o
|
||||||
|
$(CC) $(CFLAGS) -o klient klient.o kryptografia.o komunikacia.o $(LIB64)
|
||||||
|
|
||||||
|
server: server.o kryptografia.o komunikacia.o
|
||||||
|
$(CC) $(CFLAGS) -o server server.o kryptografia.o komunikacia.o $(LIB64)
|
||||||
|
|
||||||
|
klient.o: klient.c
|
||||||
|
$(CC) $(CFLAGS) -c klient.c $(LIB64)
|
||||||
|
|
||||||
|
server.o: server.c
|
||||||
|
$(CC) $(CFLAGS) -c server.c $(LIB64)
|
||||||
|
|
||||||
|
kryptografia.o: ../kniznica/kryptografia.c ../kniznica/kryptografia.h
|
||||||
|
$(CC) $(CFLAGS) -c ../kniznica/kryptografia.c $(LIB64)
|
||||||
|
|
||||||
|
komunikacia.o: ../kniznica/komunikacia.c ../kniznica/komunikacia.h
|
||||||
|
$(CC) $(CFLAGS) -c ../kniznica/komunikacia.c $(LIB64)
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
|
||||||
|
clean-linux:
|
||||||
|
rm *.o -f klient server
|
||||||
|
|
||||||
|
clean-win:
|
||||||
|
del *.o klient.exe server.exe
|
180
tcpip_kanal/klient.c
Normal file
180
tcpip_kanal/klient.c
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
//////////////////////////////////////////////////
|
||||||
|
// Bakalarska praca //
|
||||||
|
// Meno studenta: Tomas Lukac //
|
||||||
|
// Veduci BP: prof. Ing. Milos Drutarovsky CSc. //
|
||||||
|
// Skola: KEMT FEI TUKE //
|
||||||
|
// Datum poslednej upravy: 9.3.2020 //
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "../kniznica/kryptografia.h"
|
||||||
|
#include "../kniznica/komunikacia.h"
|
||||||
|
|
||||||
|
#include <wolfssl/ssl.h>
|
||||||
|
|
||||||
|
#define RSA_VELKOST 1024
|
||||||
|
#define ECC_VELKOST 32
|
||||||
|
#define RSA_EXPONENT 65537
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
int autentizacia_klienta = 0;
|
||||||
|
int generovanie_certifikatu = 0;
|
||||||
|
int nacitanie_zo_suboru = 0;
|
||||||
|
int ip = 0;
|
||||||
|
int port = 0;
|
||||||
|
|
||||||
|
#if defined (_WIN32)
|
||||||
|
WSADATA d;
|
||||||
|
if(WSAStartup(MAKEWORD(2,2), &d))
|
||||||
|
{
|
||||||
|
printf("Nastala chyba pri inicializacii winsocketu\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int cislo_soketu = 0;
|
||||||
|
int cislo_portu = 0;
|
||||||
|
char *ip_adresa = NULL;
|
||||||
|
const char *subor_certifikat = NULL;
|
||||||
|
const char *subor_kluc = NULL;
|
||||||
|
WOLFSSL *ssl; WOLFSSL_CTX *ctx;
|
||||||
|
|
||||||
|
if((ctx = nastavit_ctx_klient()) == NULL)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//skontroluje ci nebol zadany prepinac "-g" pre moznost generovanie certifikatu,
|
||||||
|
//ak ano pozrie aky typ certifikatu (v CLI argument hned za nim) bol zvoleny
|
||||||
|
for(int i = 0; i < argc; i++)
|
||||||
|
{
|
||||||
|
if( (!strcmp(argv[i], "-ip")) )
|
||||||
|
{
|
||||||
|
port = 1;
|
||||||
|
if((argv[i+1] == NULL) )
|
||||||
|
{
|
||||||
|
printf("Nezadali ste ip adresu\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ip_adresa = argv[i+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( (!strcmp(argv[i], "-port")) )
|
||||||
|
{
|
||||||
|
ip = 1;
|
||||||
|
if((argv[i+1] == NULL) )
|
||||||
|
{
|
||||||
|
printf("Nezadali ste cislo portu\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cislo_portu = atoi(argv[i+1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( (!strcmp(argv[i], "-n")) )
|
||||||
|
{
|
||||||
|
nacitanie_zo_suboru = 1;
|
||||||
|
if(generovanie_certifikatu)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nie je mozne zvolit obidve metody nacitania certifikatov naraz\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if((argv[i+1] == NULL) || (i == argc-1))
|
||||||
|
{
|
||||||
|
printf("Nezadali ste typ certifikatu ktory chcete nacitat zo suboru\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
else if(!strcmp(argv[i+1], "ecc"))
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Zadali ste nespravny typ certifikatu\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( (!strcmp(argv[i], "-g")) )
|
||||||
|
{
|
||||||
|
generovanie_certifikatu = 1;
|
||||||
|
if((argv[i+1] == NULL) || (i == argc-1))
|
||||||
|
{
|
||||||
|
printf("Nezadali ste typ certifikatu ktory chcete vygenerovat\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else if(!strcmp(argv[i+1], "rsa"))
|
||||||
|
{
|
||||||
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_rsa.pem", NULL);
|
||||||
|
if(generovat_rsa_certifikat(ctx, RSA_VELKOST, RSA_EXPONENT, CTC_SHA256wRSA, "SR", "Kosice", "Klient.sk", "klient@klient.sk") == -1)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else if(!strcmp(argv[i+1], "ecc"))
|
||||||
|
{
|
||||||
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_ecc.pem", NULL);
|
||||||
|
if(generovat_ecc_certifikat(ctx, ECC_VELKOST, ECC_PRIME239V1, CTC_SHAwECDSA, "SR", "Kosice", "Klient.sk", "klient@klient.sk") == -1)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Zadali ste nespravny typ certifikatu\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!ip)
|
||||||
|
{
|
||||||
|
printf("Nebola zadana ip adresa servera\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else if(!port)
|
||||||
|
{
|
||||||
|
printf("Nebol urceny port\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if(!generovanie_certifikatu && !nacitanie_zo_suboru)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nebola zvolena metoda nacitania certifikatov\n");
|
||||||
|
printf("Zadajde prepinac -g (generovanie), alebo -n (nacitanie_zo_suboru) s parametrom rsa alebo ecc\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
//umoznuje vybrat sifry ktore sa budu nachadzat v sifrovacom subore
|
||||||
|
//nastav_sifry(ctx, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256");
|
||||||
|
|
||||||
|
cislo_soketu = pripojit_na_server(ip_adresa, cislo_portu, 10);
|
||||||
|
|
||||||
|
if(!cislo_soketu) return -1;
|
||||||
|
ssl = wolfSSL_new(ctx);
|
||||||
|
wolfSSL_set_fd(ssl, cislo_soketu);
|
||||||
|
int uspech = wolfSSL_connect(ssl);
|
||||||
|
if(uspech != SSL_SUCCESS)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba v spojeni.\n");
|
||||||
|
printf("Skontrolujte certifikaty.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
zobraz_sifru(ssl);
|
||||||
|
zobraz_certifikat(ssl);
|
||||||
|
if(poslat_subor(ssl, ctx, "nieco.txt") == -1) return -1;
|
||||||
|
ukoncit_spojenie(ssl, ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined (_WIN32)
|
||||||
|
WSACleanup();
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
BIN
tcpip_kanal/klient.exe
Normal file
BIN
tcpip_kanal/klient.exe
Normal file
Binary file not shown.
BIN
tcpip_kanal/klient.o
Normal file
BIN
tcpip_kanal/klient.o
Normal file
Binary file not shown.
BIN
tcpip_kanal/komunikacia.o
Normal file
BIN
tcpip_kanal/komunikacia.o
Normal file
Binary file not shown.
BIN
tcpip_kanal/kryptografia.o
Normal file
BIN
tcpip_kanal/kryptografia.o
Normal file
Binary file not shown.
BIN
tcpip_kanal/nieco.txt
Normal file
BIN
tcpip_kanal/nieco.txt
Normal file
Binary file not shown.
173
tcpip_kanal/server.c
Normal file
173
tcpip_kanal/server.c
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
//////////////////////////////////////////////////
|
||||||
|
// Bakalarska praca //
|
||||||
|
// Meno studenta: Tomas Lukac //
|
||||||
|
// Veduci BP: prof. Ing. Milos Drutarovsky CSc. //
|
||||||
|
// Skola: KEMT FEI TUKE //
|
||||||
|
// Datum poslednej upravy: 9.3.2020 //
|
||||||
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "../kniznica/kryptografia.h"
|
||||||
|
#include "../kniznica/komunikacia.h"
|
||||||
|
|
||||||
|
#include <wolfssl/ssl.h>
|
||||||
|
|
||||||
|
#define RSA_VELKOST 1024
|
||||||
|
#define ECC_VELKOST 32
|
||||||
|
#define RSA_EXPONENT 65537
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
|
||||||
|
int autentizacia_klienta = 0;
|
||||||
|
int generovanie_certifikatu = 0;
|
||||||
|
int nacitanie_zo_suboru = 0;
|
||||||
|
int port = 0;
|
||||||
|
|
||||||
|
#if defined (_WIN32)
|
||||||
|
WSADATA d;
|
||||||
|
if(WSAStartup(MAKEWORD(2,2), &d))
|
||||||
|
{
|
||||||
|
printf("Nastala chyba pri inicializacii winsocketu\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//skontroluje ci nebol zadany prepinac "-g" pre moznost generovanie certifikatu,
|
||||||
|
//ak ano pozrie aky typ certifikatu (v CLI argument hned za nim) bol zvoleny
|
||||||
|
for(int i = 0; i < argc; i++)
|
||||||
|
{
|
||||||
|
if( (!strcmp(argv[i], "-port")) )
|
||||||
|
{
|
||||||
|
port = 1;
|
||||||
|
if((argv[i+1] == NULL) )
|
||||||
|
{
|
||||||
|
printf("Nezadali ste cislo portu\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cislo_portu = atoi(argv[i+1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( (!strcmp(argv[i], "-n")) )
|
||||||
|
{
|
||||||
|
nacitanie_zo_suboru = 1;
|
||||||
|
if(generovanie_certifikatu)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nie je mozne zvolit obidve metody nacitania certifikatov naraz\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if((argv[i+1] == NULL) || (i == argc-1))
|
||||||
|
{
|
||||||
|
printf("Nezadali ste typ certifikatu ktory chcete nacitat zo suboru\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
else if(!strcmp(argv[i+1], "ecc"))
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Zadali ste nespravny typ certifikatu\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( (!strcmp(argv[i], "-g")) )
|
||||||
|
{
|
||||||
|
generovanie_certifikatu = 1;
|
||||||
|
if(nacitanie_zo_suboru)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nie je mozne zvolit obidve metody nacitania certifikatov naraz\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if((argv[i+1] == NULL) || (i == argc-1))
|
||||||
|
{
|
||||||
|
printf("Nezadali ste typ certifikatu ktory chcete vygenerovat\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else if(!strcmp(argv[i+1], "rsa"))
|
||||||
|
{
|
||||||
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_rsa.pem", NULL);
|
||||||
|
if(generovat_rsa_certifikat(ctx, RSA_VELKOST, RSA_EXPONENT, CTC_SHA256wRSA, "SR", "Kosice", "Server.sk", "server@server.sk") == -1)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(!strcmp(argv[i+1], "ecc"))
|
||||||
|
{
|
||||||
|
wolfSSL_CTX_load_verify_locations(ctx, "../certifikaty/autorita_ecc.pem", NULL);
|
||||||
|
if(generovat_ecc_certifikat(ctx, ECC_VELKOST, ECC_PRIME239V1, CTC_SHAwECDSA, "SR", "Kosice", "Server.sk", "server@server.sk") == -1)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Zadali ste nespravny typ certifikatu\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!port)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nebol urceny port\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if(!generovanie_certifikatu && !nacitanie_zo_suboru)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nebola zvolena metoda nacitania certifikatov\n");
|
||||||
|
printf("Zadajde prepinac -g (generovanie), alebo -n (nacitanie_zo_suboru) s parametrom rsa alebo ecc\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//umoznuje vybrat sifry ktore sa budu nachadzat v sifrovacom subore
|
||||||
|
//nastav_sifry(ctx, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256");
|
||||||
|
|
||||||
|
cislo_soketu = cakat_na_komunikaciu(cislo_portu);
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
printf("------------\n");
|
||||||
|
struct sockaddr_in adresa;
|
||||||
|
WOLFSSL* ssl;
|
||||||
|
int velkost = sizeof(adresa);
|
||||||
|
int cislo_soketu_klienta = accept(cislo_soketu, (struct sockaddr*)&adresa, &velkost);
|
||||||
|
printf("Spojenie [%s:%d]\n", inet_ntoa(adresa.sin_addr), ntohs(adresa.sin_port));
|
||||||
|
ssl = wolfSSL_new(ctx);
|
||||||
|
wolfSSL_set_fd(ssl, cislo_soketu_klienta);
|
||||||
|
int uspech;
|
||||||
|
zobraz_sifru(ssl);
|
||||||
|
zobraz_certifikat(ssl);
|
||||||
|
if(wolfSSL_accept(ssl) != SSL_SUCCESS)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Nastala chyba v spojeni.\n");
|
||||||
|
printf("Skontrolujte certifikaty.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
prijat_subor(ssl, ctx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ukoncit_soket(cislo_soketu);
|
||||||
|
return 0;
|
||||||
|
}
|
BIN
tcpip_kanal/server.exe
Normal file
BIN
tcpip_kanal/server.exe
Normal file
Binary file not shown.
BIN
tcpip_kanal/server.o
Normal file
BIN
tcpip_kanal/server.o
Normal file
Binary file not shown.
14
tcpip_kanal/spustit_klient.bat
Normal file
14
tcpip_kanal/spustit_klient.bat
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
|
:: Bakalarska praca ::
|
||||||
|
:: Meno studenta: Tomas Lukac ::
|
||||||
|
:: Veduci BP: prof. Ing. Milos Drutarovsky CSc. ::
|
||||||
|
:: Skola: KEMT FEI TUKE ::
|
||||||
|
:: Datum poslednej upravy: 9.3.2020 ::
|
||||||
|
::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
|
|
||||||
|
:: Program je mozne spustit s prepinacmi:
|
||||||
|
:: -g rsa|ecc sluzi na generovanie certifikatu, ak ho neuvedieme program sa pokusi nacitat certifikaty z adresara /certifikaty
|
||||||
|
:: -s cesta-ku-suboru sluzi na nacitanie cesty k suboru, ktory chceme odoslat (este nie je)
|
||||||
|
|
||||||
|
::Priklady spustenia:
|
||||||
|
klient -ip 127.0.0.1 -port 8080
|
15
tcpip_kanal/spustit_server.bat
Normal file
15
tcpip_kanal/spustit_server.bat
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
|
:: Bakalarska praca ::
|
||||||
|
:: Meno studenta: Tomas Lukac ::
|
||||||
|
:: Veduci BP: prof. Ing. Milos Drutarovsky CSc. ::
|
||||||
|
:: Skola: KEMT FEI TUKE ::
|
||||||
|
:: Datum poslednej upravy: 9.3.2020 ::
|
||||||
|
::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
|
|
||||||
|
:: Program server je mozne spustit s prepinacmi:
|
||||||
|
:: -g rsa|ecc sluzi na generovanie certifikatu, ak ho neuvedieme program sa pokusi nacitat certifikaty z adresara /certifikaty
|
||||||
|
|
||||||
|
::Priklady spustenia:
|
||||||
|
server -port 8080
|
||||||
|
::server -port 8080 -g ecc
|
||||||
|
::server -port 8080
|
BIN
tcpip_kanal/vcruntime140.dll
Normal file
BIN
tcpip_kanal/vcruntime140.dll
Normal file
Binary file not shown.
BIN
tcpip_kanal/vcruntime140_64.dll
Normal file
BIN
tcpip_kanal/vcruntime140_64.dll
Normal file
Binary file not shown.
BIN
tcpip_kanal/wolfssl.dll
Normal file
BIN
tcpip_kanal/wolfssl.dll
Normal file
Binary file not shown.
BIN
tcpip_kanal/wolfssl_32.dll
Normal file
BIN
tcpip_kanal/wolfssl_32.dll
Normal file
Binary file not shown.
16
teoria.txt
Normal file
16
teoria.txt
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
I/O rutiny
|
||||||
|
- implicitne su pouzite recv() a send() funkcie ktore realizuju citanie zapis do file descriptoru nastavenho pomocou wolfssl_set_fd()
|
||||||
|
- prototypy vlastnych funkcii
|
||||||
|
int CBIORecv(CYASSL* ssl, char* buf, int sz, void* ctx)
|
||||||
|
int CBIOSend(CYASSL* ssl, char* buf, int sz, void* ctx)
|
||||||
|
- implicitne je descriptor sietoveho soketu posunuty do i/o rutiny v ctx parametri
|
||||||
|
- ssl je ukazovatel na aktualnu relaciu
|
||||||
|
- receive
|
||||||
|
- buf -> ukazuje na buffer, kde prichadzajuci zasifrovany text by mal byt nakopirovany aby ho wolfssl mohla odsifrovat
|
||||||
|
- sz -> velkost bufferu
|
||||||
|
- send
|
||||||
|
- buf -> ukazuje na buffer do ktoreho wolfssl zapisala zasifrovany text na odoslanie
|
||||||
|
- sz -> velkost bufferu
|
||||||
|
- registracia funkcii
|
||||||
|
wolfSSL_SetIORecv(ctx, myCBIORecv)
|
||||||
|
wolfSSL_SetIOSend(ctx, myCBIOSend)
|
91
wolfssl_hlavickove_subory/wolfssl/callbacks.h
Normal file
91
wolfssl_hlavickove_subory/wolfssl/callbacks.h
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
/* callbacks.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_CALLBACKS_H
|
||||||
|
#define WOLFSSL_CALLBACKS_H
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/wc_port.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
enum { /* CALLBACK CONTSTANTS */
|
||||||
|
MAX_PACKETNAME_SZ = 24,
|
||||||
|
MAX_CIPHERNAME_SZ = 24,
|
||||||
|
MAX_TIMEOUT_NAME_SZ = 24,
|
||||||
|
MAX_PACKETS_HANDSHAKE = 14, /* 12 for client auth plus 2 alerts */
|
||||||
|
MAX_VALUE_SZ = 128, /* all handshake packets but Cert should
|
||||||
|
fit here */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct WOLFSSL;
|
||||||
|
|
||||||
|
typedef struct handShakeInfo_st {
|
||||||
|
struct WOLFSSL* ssl;
|
||||||
|
char cipherName[MAX_CIPHERNAME_SZ + 1]; /* negotiated cipher */
|
||||||
|
char packetNames[MAX_PACKETS_HANDSHAKE][MAX_PACKETNAME_SZ + 1];
|
||||||
|
/* SSL packet names */
|
||||||
|
int numberPackets; /* actual # of packets */
|
||||||
|
int negotiationError; /* cipher/parameter err */
|
||||||
|
} HandShakeInfo;
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(HAVE_SYS_TIME_H) && !defined(NO_TIMEVAL)
|
||||||
|
typedef struct timeval Timeval;
|
||||||
|
#else /* HAVE_SYS_TIME_H */
|
||||||
|
/* Define the Timeval explicitly. */
|
||||||
|
typedef struct {
|
||||||
|
long tv_sec; /* Seconds. */
|
||||||
|
long tv_usec; /* Microseconds. */
|
||||||
|
} Timeval;
|
||||||
|
#endif /* HAVE_SYS_TIME_H */
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct packetInfo_st {
|
||||||
|
char packetName[MAX_PACKETNAME_SZ + 1]; /* SSL packet name */
|
||||||
|
Timeval timestamp; /* when it occurred */
|
||||||
|
unsigned char value[MAX_VALUE_SZ]; /* if fits, it's here */
|
||||||
|
unsigned char* bufferValue; /* otherwise here (non 0) */
|
||||||
|
int valueSz; /* sz of value or buffer */
|
||||||
|
} PacketInfo;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct timeoutInfo_st {
|
||||||
|
char timeoutName[MAX_TIMEOUT_NAME_SZ + 1]; /* timeout Name */
|
||||||
|
int flags; /* for future use */
|
||||||
|
int numberPackets; /* actual # of packets */
|
||||||
|
PacketInfo packets[MAX_PACKETS_HANDSHAKE]; /* list of all packets */
|
||||||
|
Timeval timeoutValue; /* timer that caused it */
|
||||||
|
} TimeoutInfo;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_CALLBACKS_H */
|
||||||
|
|
3207
wolfssl_hlavickove_subory/wolfssl/certs_test.h
Normal file
3207
wolfssl_hlavickove_subory/wolfssl/certs_test.h
Normal file
File diff suppressed because it is too large
Load Diff
50
wolfssl_hlavickove_subory/wolfssl/crl.h
Normal file
50
wolfssl_hlavickove_subory/wolfssl/crl.h
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/* crl.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_CRL_H
|
||||||
|
#define WOLFSSL_CRL_H
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
|
||||||
|
#include <wolfssl/ssl.h>
|
||||||
|
#include <wolfssl/wolfcrypt/asn.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
WOLFSSL_LOCAL int InitCRL(WOLFSSL_CRL*, WOLFSSL_CERT_MANAGER*);
|
||||||
|
WOLFSSL_LOCAL void FreeCRL(WOLFSSL_CRL*, int dynamic);
|
||||||
|
|
||||||
|
WOLFSSL_LOCAL int LoadCRL(WOLFSSL_CRL* crl, const char* path, int type, int mon);
|
||||||
|
WOLFSSL_LOCAL int BufferLoadCRL(WOLFSSL_CRL*, const byte*, long, int, int);
|
||||||
|
WOLFSSL_LOCAL int CheckCertCRL(WOLFSSL_CRL*, DecodedCert*);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* HAVE_CRL */
|
||||||
|
#endif /* WOLFSSL_CRL_H */
|
203
wolfssl_hlavickove_subory/wolfssl/error-ssl.h
Normal file
203
wolfssl_hlavickove_subory/wolfssl/error-ssl.h
Normal file
@ -0,0 +1,203 @@
|
|||||||
|
/* error-ssl.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_ERROR_H
|
||||||
|
#define WOLFSSL_ERROR_H
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/error-crypt.h> /* pull in wolfCrypt errors */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
enum wolfSSL_ErrorCodes {
|
||||||
|
INPUT_CASE_ERROR = -301, /* process input state error */
|
||||||
|
PREFIX_ERROR = -302, /* bad index to key rounds */
|
||||||
|
MEMORY_ERROR = -303, /* out of memory */
|
||||||
|
VERIFY_FINISHED_ERROR = -304, /* verify problem on finished */
|
||||||
|
VERIFY_MAC_ERROR = -305, /* verify mac problem */
|
||||||
|
PARSE_ERROR = -306, /* parse error on header */
|
||||||
|
UNKNOWN_HANDSHAKE_TYPE = -307, /* weird handshake type */
|
||||||
|
SOCKET_ERROR_E = -308, /* error state on socket */
|
||||||
|
SOCKET_NODATA = -309, /* expected data, not there */
|
||||||
|
INCOMPLETE_DATA = -310, /* don't have enough data to
|
||||||
|
complete task */
|
||||||
|
UNKNOWN_RECORD_TYPE = -311, /* unknown type in record hdr */
|
||||||
|
DECRYPT_ERROR = -312, /* error during decryption */
|
||||||
|
FATAL_ERROR = -313, /* recvd alert fatal error */
|
||||||
|
ENCRYPT_ERROR = -314, /* error during encryption */
|
||||||
|
FREAD_ERROR = -315, /* fread problem */
|
||||||
|
NO_PEER_KEY = -316, /* need peer's key */
|
||||||
|
NO_PRIVATE_KEY = -317, /* need the private key */
|
||||||
|
RSA_PRIVATE_ERROR = -318, /* error during rsa priv op */
|
||||||
|
NO_DH_PARAMS = -319, /* server missing DH params */
|
||||||
|
BUILD_MSG_ERROR = -320, /* build message failure */
|
||||||
|
|
||||||
|
BAD_HELLO = -321, /* client hello malformed */
|
||||||
|
DOMAIN_NAME_MISMATCH = -322, /* peer subject name mismatch */
|
||||||
|
WANT_READ = -323, /* want read, call again */
|
||||||
|
NOT_READY_ERROR = -324, /* handshake layer not ready */
|
||||||
|
IPADDR_MISMATCH = -325, /* peer ip address mismatch */
|
||||||
|
VERSION_ERROR = -326, /* record layer version error */
|
||||||
|
WANT_WRITE = -327, /* want write, call again */
|
||||||
|
BUFFER_ERROR = -328, /* malformed buffer input */
|
||||||
|
VERIFY_CERT_ERROR = -329, /* verify cert error */
|
||||||
|
VERIFY_SIGN_ERROR = -330, /* verify sign error */
|
||||||
|
CLIENT_ID_ERROR = -331, /* psk client identity error */
|
||||||
|
SERVER_HINT_ERROR = -332, /* psk server hint error */
|
||||||
|
PSK_KEY_ERROR = -333, /* psk key error */
|
||||||
|
|
||||||
|
GETTIME_ERROR = -337, /* gettimeofday failed ??? */
|
||||||
|
GETITIMER_ERROR = -338, /* getitimer failed ??? */
|
||||||
|
SIGACT_ERROR = -339, /* sigaction failed ??? */
|
||||||
|
SETITIMER_ERROR = -340, /* setitimer failed ??? */
|
||||||
|
LENGTH_ERROR = -341, /* record layer length error */
|
||||||
|
PEER_KEY_ERROR = -342, /* can't decode peer key */
|
||||||
|
ZERO_RETURN = -343, /* peer sent close notify */
|
||||||
|
SIDE_ERROR = -344, /* wrong client/server type */
|
||||||
|
NO_PEER_CERT = -345, /* peer didn't send key */
|
||||||
|
NTRU_KEY_ERROR = -346, /* NTRU key error */
|
||||||
|
NTRU_DRBG_ERROR = -347, /* NTRU drbg error */
|
||||||
|
NTRU_ENCRYPT_ERROR = -348, /* NTRU encrypt error */
|
||||||
|
NTRU_DECRYPT_ERROR = -349, /* NTRU decrypt error */
|
||||||
|
ECC_CURVETYPE_ERROR = -350, /* Bad ECC Curve Type */
|
||||||
|
ECC_CURVE_ERROR = -351, /* Bad ECC Curve */
|
||||||
|
ECC_PEERKEY_ERROR = -352, /* Bad Peer ECC Key */
|
||||||
|
ECC_MAKEKEY_ERROR = -353, /* Bad Make ECC Key */
|
||||||
|
ECC_EXPORT_ERROR = -354, /* Bad ECC Export Key */
|
||||||
|
ECC_SHARED_ERROR = -355, /* Bad ECC Shared Secret */
|
||||||
|
NOT_CA_ERROR = -357, /* Not a CA cert error */
|
||||||
|
|
||||||
|
BAD_CERT_MANAGER_ERROR = -359, /* Bad Cert Manager */
|
||||||
|
OCSP_CERT_REVOKED = -360, /* OCSP Certificate revoked */
|
||||||
|
CRL_CERT_REVOKED = -361, /* CRL Certificate revoked */
|
||||||
|
CRL_MISSING = -362, /* CRL Not loaded */
|
||||||
|
MONITOR_SETUP_E = -363, /* CRL Monitor setup error */
|
||||||
|
THREAD_CREATE_E = -364, /* Thread Create Error */
|
||||||
|
OCSP_NEED_URL = -365, /* OCSP need an URL for lookup */
|
||||||
|
OCSP_CERT_UNKNOWN = -366, /* OCSP responder doesn't know */
|
||||||
|
OCSP_LOOKUP_FAIL = -367, /* OCSP lookup not successful */
|
||||||
|
MAX_CHAIN_ERROR = -368, /* max chain depth exceeded */
|
||||||
|
COOKIE_ERROR = -369, /* dtls cookie error */
|
||||||
|
SEQUENCE_ERROR = -370, /* dtls sequence error */
|
||||||
|
SUITES_ERROR = -371, /* suites pointer error */
|
||||||
|
|
||||||
|
OUT_OF_ORDER_E = -373, /* out of order message */
|
||||||
|
BAD_KEA_TYPE_E = -374, /* bad KEA type found */
|
||||||
|
SANITY_CIPHER_E = -375, /* sanity check on cipher error */
|
||||||
|
RECV_OVERFLOW_E = -376, /* RXCB returned more than rqed */
|
||||||
|
GEN_COOKIE_E = -377, /* Generate Cookie Error */
|
||||||
|
NO_PEER_VERIFY = -378, /* Need peer cert verify Error */
|
||||||
|
FWRITE_ERROR = -379, /* fwrite problem */
|
||||||
|
CACHE_MATCH_ERROR = -380, /* chache hdr match error */
|
||||||
|
UNKNOWN_SNI_HOST_NAME_E = -381, /* Unrecognized host name Error */
|
||||||
|
UNKNOWN_MAX_FRAG_LEN_E = -382, /* Unrecognized max frag len Error */
|
||||||
|
KEYUSE_SIGNATURE_E = -383, /* KeyUse digSignature error */
|
||||||
|
KEYUSE_ENCIPHER_E = -385, /* KeyUse keyEncipher error */
|
||||||
|
EXTKEYUSE_AUTH_E = -386, /* ExtKeyUse server|client_auth */
|
||||||
|
SEND_OOB_READ_E = -387, /* Send Cb out of bounds read */
|
||||||
|
SECURE_RENEGOTIATION_E = -388, /* Invalid Renegotiation Info */
|
||||||
|
SESSION_TICKET_LEN_E = -389, /* Session Ticket too large */
|
||||||
|
SESSION_TICKET_EXPECT_E = -390, /* Session Ticket missing */
|
||||||
|
SCR_DIFFERENT_CERT_E = -391, /* SCR Different cert error */
|
||||||
|
SESSION_SECRET_CB_E = -392, /* Session secret Cb fcn failure */
|
||||||
|
NO_CHANGE_CIPHER_E = -393, /* Finished before change cipher */
|
||||||
|
SANITY_MSG_E = -394, /* Sanity check on msg order error */
|
||||||
|
DUPLICATE_MSG_E = -395, /* Duplicate message error */
|
||||||
|
SNI_UNSUPPORTED = -396, /* SSL 3.0 does not support SNI */
|
||||||
|
SOCKET_PEER_CLOSED_E = -397, /* Underlying transport closed */
|
||||||
|
BAD_TICKET_KEY_CB_SZ = -398, /* Bad session ticket key cb size */
|
||||||
|
BAD_TICKET_MSG_SZ = -399, /* Bad session ticket msg size */
|
||||||
|
BAD_TICKET_ENCRYPT = -400, /* Bad user ticket encrypt */
|
||||||
|
DH_KEY_SIZE_E = -401, /* DH Key too small */
|
||||||
|
SNI_ABSENT_ERROR = -402, /* No SNI request. */
|
||||||
|
RSA_SIGN_FAULT = -403, /* RSA Sign fault */
|
||||||
|
HANDSHAKE_SIZE_ERROR = -404, /* Handshake message too large */
|
||||||
|
UNKNOWN_ALPN_PROTOCOL_NAME_E = -405, /* Unrecognized protocol name Error*/
|
||||||
|
BAD_CERTIFICATE_STATUS_ERROR = -406, /* Bad certificate status message */
|
||||||
|
OCSP_INVALID_STATUS = -407, /* Invalid OCSP Status */
|
||||||
|
OCSP_WANT_READ = -408, /* OCSP callback response WOLFSSL_CBIO_ERR_WANT_READ */
|
||||||
|
RSA_KEY_SIZE_E = -409, /* RSA key too small */
|
||||||
|
ECC_KEY_SIZE_E = -410, /* ECC key too small */
|
||||||
|
DTLS_EXPORT_VER_E = -411, /* export version error */
|
||||||
|
INPUT_SIZE_E = -412, /* input size too big error */
|
||||||
|
CTX_INIT_MUTEX_E = -413, /* initialize ctx mutex error */
|
||||||
|
EXT_MASTER_SECRET_NEEDED_E = -414, /* need EMS enabled to resume */
|
||||||
|
DTLS_POOL_SZ_E = -415, /* exceeded DTLS pool size */
|
||||||
|
DECODE_E = -416, /* decode handshake message error */
|
||||||
|
HTTP_TIMEOUT = -417, /* HTTP timeout for OCSP or CRL req */
|
||||||
|
WRITE_DUP_READ_E = -418, /* Write dup write side can't read */
|
||||||
|
WRITE_DUP_WRITE_E = -419, /* Write dup read side can't write */
|
||||||
|
INVALID_CERT_CTX_E = -420, /* TLS cert ctx not matching */
|
||||||
|
BAD_KEY_SHARE_DATA = -421, /* Key Share data invalid */
|
||||||
|
MISSING_HANDSHAKE_DATA = -422, /* Handshake message missing data */
|
||||||
|
BAD_BINDER = -423, /* Binder does not match */
|
||||||
|
EXT_NOT_ALLOWED = -424, /* Extension not allowed in msg */
|
||||||
|
INVALID_PARAMETER = -425, /* Security parameter invalid */
|
||||||
|
MCAST_HIGHWATER_CB_E = -426, /* Multicast highwater cb err */
|
||||||
|
ALERT_COUNT_E = -427, /* Alert Count exceeded err */
|
||||||
|
EXT_MISSING = -428, /* Required extension not found */
|
||||||
|
UNSUPPORTED_EXTENSION = -429, /* TLSX not requested by client */
|
||||||
|
PRF_MISSING = -430, /* PRF not compiled in */
|
||||||
|
DTLS_RETX_OVER_TX = -431, /* Retransmit DTLS flight over */
|
||||||
|
DH_PARAMS_NOT_FFDHE_E = -432, /* DH params from server not FFDHE */
|
||||||
|
TCA_INVALID_ID_TYPE = -433, /* TLSX TCA ID type invalid */
|
||||||
|
TCA_ABSENT_ERROR = -434, /* TLSX TCA ID no response */
|
||||||
|
TSIP_MAC_DIGSZ_E = -435, /* Invalid MAC size for TSIP */
|
||||||
|
CLIENT_CERT_CB_ERROR = -436, /* Client cert callback error */
|
||||||
|
SSL_SHUTDOWN_ALREADY_DONE_E = -437, /* Shutdown called redundantly */
|
||||||
|
|
||||||
|
/* add strings to wolfSSL_ERR_reason_error_string in internal.c !!!!! */
|
||||||
|
|
||||||
|
/* begin negotiation parameter errors */
|
||||||
|
UNSUPPORTED_SUITE = -500, /* unsupported cipher suite */
|
||||||
|
MATCH_SUITE_ERROR = -501, /* can't match cipher suite */
|
||||||
|
COMPRESSION_ERROR = -502, /* compression mismatch */
|
||||||
|
KEY_SHARE_ERROR = -503, /* key share mismatch */
|
||||||
|
POST_HAND_AUTH_ERROR = -504, /* client won't do post-hand auth */
|
||||||
|
HRR_COOKIE_ERROR = -505 /* HRR msg cookie mismatch */
|
||||||
|
/* end negotiation parameter errors only 10 for now */
|
||||||
|
/* add strings to wolfSSL_ERR_reason_error_string in internal.c !!!!! */
|
||||||
|
|
||||||
|
/* no error stings go down here, add above negotiation errors !!!! */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||||
|
enum {
|
||||||
|
MIN_PARAM_ERR = UNSUPPORTED_SUITE,
|
||||||
|
MAX_PARAM_ERR = MIN_PARAM_ERR - 10
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_LOCAL
|
||||||
|
void SetErrorString(int err, char* buff);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* wolfSSL_ERROR_H */
|
32
wolfssl_hlavickove_subory/wolfssl/include.am
Normal file
32
wolfssl_hlavickove_subory/wolfssl/include.am
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# vim:ft=automake
|
||||||
|
# All paths should be given relative to the root
|
||||||
|
#
|
||||||
|
|
||||||
|
include wolfssl/wolfcrypt/include.am
|
||||||
|
include wolfssl/openssl/include.am
|
||||||
|
|
||||||
|
EXTRA_DIST+= wolfssl/sniffer_error.rc
|
||||||
|
|
||||||
|
nobase_include_HEADERS+= \
|
||||||
|
wolfssl/error-ssl.h \
|
||||||
|
wolfssl/ssl.h \
|
||||||
|
wolfssl/sniffer_error.h \
|
||||||
|
wolfssl/sniffer.h \
|
||||||
|
wolfssl/callbacks.h \
|
||||||
|
wolfssl/certs_test.h \
|
||||||
|
wolfssl/test.h \
|
||||||
|
wolfssl/version.h \
|
||||||
|
wolfssl/ocsp.h \
|
||||||
|
wolfssl/crl.h \
|
||||||
|
wolfssl/wolfio.h
|
||||||
|
|
||||||
|
noinst_HEADERS+= \
|
||||||
|
wolfssl/internal.h
|
||||||
|
|
||||||
|
# For distro build don't install options.h.
|
||||||
|
# It depends on the architecture and conflicts with Multi-Arch.
|
||||||
|
if BUILD_DISTRO
|
||||||
|
noinst_HEADERS+= wolfssl/options.h
|
||||||
|
else
|
||||||
|
nobase_include_HEADERS+= wolfssl/options.h
|
||||||
|
endif
|
4430
wolfssl_hlavickove_subory/wolfssl/internal.h
Normal file
4430
wolfssl_hlavickove_subory/wolfssl/internal.h
Normal file
File diff suppressed because it is too large
Load Diff
133
wolfssl_hlavickove_subory/wolfssl/ocsp.h
Normal file
133
wolfssl_hlavickove_subory/wolfssl/ocsp.h
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
/* ocsp.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* wolfSSL OCSP API */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_OCSP_H
|
||||||
|
#define WOLFSSL_OCSP_H
|
||||||
|
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
|
||||||
|
#include <wolfssl/ssl.h>
|
||||||
|
#include <wolfssl/wolfcrypt/asn.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_OCSP WOLFSSL_OCSP;
|
||||||
|
|
||||||
|
#if defined(OPENSSL_ALL) || defined(OPENSSL_EXTRA) || defined(WOLFSSL_NGINX) ||\
|
||||||
|
defined(WOLFSSL_HAPROXY)
|
||||||
|
typedef struct OcspResponse WOLFSSL_OCSP_BASICRESP;
|
||||||
|
|
||||||
|
typedef struct OcspRequest WOLFSSL_OCSP_CERTID;
|
||||||
|
|
||||||
|
typedef struct OcspRequest WOLFSSL_OCSP_ONEREQ;
|
||||||
|
|
||||||
|
typedef struct OcspRequest WOLFSSL_OCSP_REQUEST;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
WOLFSSL_LOCAL int InitOCSP(WOLFSSL_OCSP*, WOLFSSL_CERT_MANAGER*);
|
||||||
|
WOLFSSL_LOCAL void FreeOCSP(WOLFSSL_OCSP*, int dynamic);
|
||||||
|
|
||||||
|
WOLFSSL_LOCAL int CheckCertOCSP(WOLFSSL_OCSP*, DecodedCert*,
|
||||||
|
WOLFSSL_BUFFER_INFO* responseBuffer);
|
||||||
|
WOLFSSL_LOCAL int CheckCertOCSP_ex(WOLFSSL_OCSP*, DecodedCert*,
|
||||||
|
WOLFSSL_BUFFER_INFO* responseBuffer, WOLFSSL* ssl);
|
||||||
|
WOLFSSL_LOCAL int CheckOcspRequest(WOLFSSL_OCSP* ocsp,
|
||||||
|
OcspRequest* ocspRequest, WOLFSSL_BUFFER_INFO* responseBuffer);
|
||||||
|
WOLFSSL_LOCAL int CheckOcspResponse(WOLFSSL_OCSP *ocsp, byte *response, int responseSz,
|
||||||
|
WOLFSSL_BUFFER_INFO *responseBuffer, CertStatus *status,
|
||||||
|
OcspEntry *entry, OcspRequest *ocspRequest);
|
||||||
|
|
||||||
|
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY) || \
|
||||||
|
defined(WOLFSSL_APACHE_HTTPD)
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_OCSP_resp_find_status(WOLFSSL_OCSP_BASICRESP *bs,
|
||||||
|
WOLFSSL_OCSP_CERTID *id, int *status, int *reason,
|
||||||
|
WOLFSSL_ASN1_TIME **revtime, WOLFSSL_ASN1_TIME **thisupd,
|
||||||
|
WOLFSSL_ASN1_TIME **nextupd);
|
||||||
|
WOLFSSL_API const char *wolfSSL_OCSP_cert_status_str(long s);
|
||||||
|
WOLFSSL_API int wolfSSL_OCSP_check_validity(WOLFSSL_ASN1_TIME* thisupd,
|
||||||
|
WOLFSSL_ASN1_TIME* nextupd, long sec, long maxsec);
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_OCSP_CERTID_free(WOLFSSL_OCSP_CERTID* certId);
|
||||||
|
WOLFSSL_API WOLFSSL_OCSP_CERTID* wolfSSL_OCSP_cert_to_id(
|
||||||
|
const WOLFSSL_EVP_MD *dgst, const WOLFSSL_X509 *subject,
|
||||||
|
const WOLFSSL_X509 *issuer);
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_OCSP_BASICRESP_free(WOLFSSL_OCSP_BASICRESP* basicResponse);
|
||||||
|
WOLFSSL_API int wolfSSL_OCSP_basic_verify(WOLFSSL_OCSP_BASICRESP *bs,
|
||||||
|
WOLF_STACK_OF(WOLFSSL_X509) *certs, WOLFSSL_X509_STORE *st, unsigned long flags);
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_OCSP_RESPONSE_free(OcspResponse* response);
|
||||||
|
WOLFSSL_API OcspResponse* wolfSSL_d2i_OCSP_RESPONSE_bio(WOLFSSL_BIO* bio,
|
||||||
|
OcspResponse** response);
|
||||||
|
WOLFSSL_API OcspResponse* wolfSSL_d2i_OCSP_RESPONSE(OcspResponse** response,
|
||||||
|
const unsigned char** data, int len);
|
||||||
|
WOLFSSL_API int wolfSSL_i2d_OCSP_RESPONSE(OcspResponse* response,
|
||||||
|
unsigned char** data);
|
||||||
|
WOLFSSL_API int wolfSSL_OCSP_response_status(OcspResponse *response);
|
||||||
|
WOLFSSL_API const char *wolfSSL_OCSP_response_status_str(long s);
|
||||||
|
WOLFSSL_API WOLFSSL_OCSP_BASICRESP* wolfSSL_OCSP_response_get1_basic(
|
||||||
|
OcspResponse* response);
|
||||||
|
|
||||||
|
WOLFSSL_API OcspRequest* wolfSSL_OCSP_REQUEST_new(void);
|
||||||
|
WOLFSSL_API void wolfSSL_OCSP_REQUEST_free(OcspRequest* request);
|
||||||
|
WOLFSSL_API int wolfSSL_i2d_OCSP_REQUEST(OcspRequest* request,
|
||||||
|
unsigned char** data);
|
||||||
|
WOLFSSL_API WOLFSSL_OCSP_ONEREQ* wolfSSL_OCSP_request_add0_id(OcspRequest *req,
|
||||||
|
WOLFSSL_OCSP_CERTID *cid);
|
||||||
|
WOLFSSL_API WOLFSSL_OCSP_CERTID* wolfSSL_OCSP_CERTID_dup(WOLFSSL_OCSP_CERTID*);
|
||||||
|
WOLFSSL_API int wolfSSL_i2d_OCSP_REQUEST_bio(WOLFSSL_BIO* out,
|
||||||
|
WOLFSSL_OCSP_REQUEST *req);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#ifdef OPENSSL_EXTRA
|
||||||
|
WOLFSSL_API int wolfSSL_OCSP_REQUEST_add_ext(OcspRequest* req,
|
||||||
|
WOLFSSL_X509_EXTENSION* ext, int idx);
|
||||||
|
WOLFSSL_API OcspResponse* wolfSSL_OCSP_response_create(int status,
|
||||||
|
WOLFSSL_OCSP_BASICRESP* bs);
|
||||||
|
WOLFSSL_API const char* wolfSSL_OCSP_crl_reason_str(long s);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_OCSP_id_get0_info(WOLFSSL_ASN1_STRING**,
|
||||||
|
WOLFSSL_ASN1_OBJECT**, WOLFSSL_ASN1_STRING**,
|
||||||
|
WOLFSSL_ASN1_INTEGER**, WOLFSSL_OCSP_CERTID*);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_OCSP_request_add1_nonce(OcspRequest* req,
|
||||||
|
unsigned char* val, int sz);
|
||||||
|
WOLFSSL_API int wolfSSL_OCSP_check_nonce(OcspRequest* req,
|
||||||
|
WOLFSSL_OCSP_BASICRESP* bs);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* HAVE_OCSP */
|
||||||
|
#endif /* WOLFSSL_OCSP_H */
|
||||||
|
|
||||||
|
|
111
wolfssl_hlavickove_subory/wolfssl/openssl/aes.h
Normal file
111
wolfssl_hlavickove_subory/wolfssl/openssl/aes.h
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
/* aes.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* aes.h defines mini des openssl compatibility layer
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_AES_H_
|
||||||
|
#define WOLFSSL_AES_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
|
||||||
|
#ifndef NO_AES
|
||||||
|
#include <wolfssl/openssl/ssl.h> /* for size_t */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* This structure wrapper is done because there is no aes_new function with
|
||||||
|
* OpenSSL compatibility layer. This makes code working with an AES structure
|
||||||
|
* to need the size of the structure. */
|
||||||
|
typedef struct WOLFSSL_AES_KEY {
|
||||||
|
/* aligned and big enough for Aes from wolfssl/wolfcrypt/aes.h */
|
||||||
|
ALIGN16 void* holder[(376 + WC_ASYNC_DEV_SIZE)/ sizeof(void*)];
|
||||||
|
#ifdef GCM_TABLE
|
||||||
|
/* key-based fast multiplication table. */
|
||||||
|
ALIGN16 void* M0[4096 / sizeof(void*)];
|
||||||
|
#endif /* GCM_TABLE */
|
||||||
|
#if defined(WOLFSSL_DEVCRYPTO) && \
|
||||||
|
(defined(WOLFSSL_DEVCRYPTO_AES) || defined(WOLFSSL_DEVCRYPTO_CBC))
|
||||||
|
/* large enough for additional devcrypto information */
|
||||||
|
void* devKey[288 / sizeof(void*)];
|
||||||
|
#endif
|
||||||
|
#ifdef WOLFSSL_AFALG
|
||||||
|
void* afalg_holder[288 / sizeof(void*)];
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_PKCS11
|
||||||
|
void* pkcs11_holder[(AES_MAX_ID_LEN + sizeof(int)) / sizeof(void*)];
|
||||||
|
#endif
|
||||||
|
#if defined(WOLFSSL_ASYNC_CRYPT) || defined(WOLF_CRYPTO_CB)
|
||||||
|
void* async_holder[128 / sizeof(void*)];
|
||||||
|
#endif
|
||||||
|
} WOLFSSL_AES_KEY;
|
||||||
|
typedef WOLFSSL_AES_KEY AES_KEY;
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_AES_set_encrypt_key
|
||||||
|
(const unsigned char *, const int bits, AES_KEY *);
|
||||||
|
WOLFSSL_API int wolfSSL_AES_set_decrypt_key
|
||||||
|
(const unsigned char *, const int bits, AES_KEY *);
|
||||||
|
WOLFSSL_API void wolfSSL_AES_cbc_encrypt
|
||||||
|
(const unsigned char *in, unsigned char* out, size_t len,
|
||||||
|
AES_KEY *key, unsigned char* iv, const int enc);
|
||||||
|
WOLFSSL_API void wolfSSL_AES_ecb_encrypt
|
||||||
|
(const unsigned char *in, unsigned char* out,
|
||||||
|
AES_KEY *key, const int enc);
|
||||||
|
WOLFSSL_API void wolfSSL_AES_cfb128_encrypt
|
||||||
|
(const unsigned char *in, unsigned char* out, size_t len,
|
||||||
|
AES_KEY *key, unsigned char* iv, int* num, const int enc);
|
||||||
|
|
||||||
|
#define AES_cbc_encrypt wolfSSL_AES_cbc_encrypt
|
||||||
|
#define AES_ecb_encrypt wolfSSL_AES_ecb_encrypt
|
||||||
|
#define AES_cfb128_encrypt wolfSSL_AES_cfb128_encrypt
|
||||||
|
#define AES_set_encrypt_key wolfSSL_AES_set_encrypt_key
|
||||||
|
#define AES_set_decrypt_key wolfSSL_AES_set_decrypt_key
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_AES_DIRECT
|
||||||
|
WOLFSSL_API void wolfSSL_AES_encrypt
|
||||||
|
(const unsigned char* input, unsigned char* output, AES_KEY *);
|
||||||
|
WOLFSSL_API void wolfSSL_AES_decrypt
|
||||||
|
(const unsigned char* input, unsigned char* output, AES_KEY *);
|
||||||
|
|
||||||
|
#define AES_encrypt wolfSSL_AES_encrypt
|
||||||
|
#define AES_decrypt wolfSSL_AES_decrypt
|
||||||
|
#endif /* HAVE_AES_DIRECT */
|
||||||
|
|
||||||
|
#ifndef AES_ENCRYPT
|
||||||
|
#define AES_ENCRYPT AES_ENCRYPTION
|
||||||
|
#endif
|
||||||
|
#ifndef AES_DECRYPT
|
||||||
|
#define AES_DECRYPT AES_DECRYPTION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_AES */
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_AES_H_ */
|
84
wolfssl_hlavickove_subory/wolfssl/openssl/asn1.h
Normal file
84
wolfssl_hlavickove_subory/wolfssl/openssl/asn1.h
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/* asn1.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* asn1.h for openssl */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_ASN1_H_
|
||||||
|
#define WOLFSSL_ASN1_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
|
||||||
|
#define ASN1_STRING_new wolfSSL_ASN1_STRING_new
|
||||||
|
#define ASN1_STRING_type_new wolfSSL_ASN1_STRING_type_new
|
||||||
|
#define ASN1_STRING_type wolfSSL_ASN1_STRING_type
|
||||||
|
#define ASN1_STRING_set wolfSSL_ASN1_STRING_set
|
||||||
|
#define ASN1_STRING_free wolfSSL_ASN1_STRING_free
|
||||||
|
|
||||||
|
#define V_ASN1_INTEGER 0x02
|
||||||
|
#define V_ASN1_OCTET_STRING 0x04 /* tag for ASN1_OCTET_STRING */
|
||||||
|
#define V_ASN1_NEG 0x100
|
||||||
|
#define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG)
|
||||||
|
#define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG)
|
||||||
|
|
||||||
|
/* Type for ASN1_print_ex */
|
||||||
|
# define ASN1_STRFLGS_ESC_2253 1
|
||||||
|
# define ASN1_STRFLGS_ESC_CTRL 2
|
||||||
|
# define ASN1_STRFLGS_ESC_MSB 4
|
||||||
|
# define ASN1_STRFLGS_ESC_QUOTE 8
|
||||||
|
# define ASN1_STRFLGS_UTF8_CONVERT 0x10
|
||||||
|
# define ASN1_STRFLGS_IGNORE_TYPE 0x20
|
||||||
|
# define ASN1_STRFLGS_SHOW_TYPE 0x40
|
||||||
|
# define ASN1_STRFLGS_DUMP_ALL 0x80
|
||||||
|
# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100
|
||||||
|
# define ASN1_STRFLGS_DUMP_DER 0x200
|
||||||
|
# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \
|
||||||
|
ASN1_STRFLGS_ESC_CTRL | \
|
||||||
|
ASN1_STRFLGS_ESC_MSB | \
|
||||||
|
ASN1_STRFLGS_UTF8_CONVERT | \
|
||||||
|
ASN1_STRFLGS_DUMP_UNKNOWN | \
|
||||||
|
ASN1_STRFLGS_DUMP_DER)
|
||||||
|
|
||||||
|
#define MBSTRING_UTF8 0x1000
|
||||||
|
#define MBSTRING_ASC 0x1001
|
||||||
|
#define MBSTRING_BMP 0x1002
|
||||||
|
#define MBSTRING_UNIV 0x1004
|
||||||
|
|
||||||
|
#define ASN1_UTCTIME_print wolfSSL_ASN1_UTCTIME_print
|
||||||
|
#define ASN1_TIME_check wolfSSL_ASN1_TIME_check
|
||||||
|
#define ASN1_TIME_diff wolfSSL_ASN1_TIME_diff
|
||||||
|
#define ASN1_TIME_set wolfSSL_ASN1_TIME_set
|
||||||
|
|
||||||
|
#define V_ASN1_UTCTIME 23
|
||||||
|
#define V_ASN1_GENERALIZEDTIME 24
|
||||||
|
|
||||||
|
#define ASN1_STRING_FLAG_BITS_LEFT 0x008
|
||||||
|
#define ASN1_STRING_FLAG_NDEF 0x010
|
||||||
|
#define ASN1_STRING_FLAG_CONT 0x020
|
||||||
|
#define ASN1_STRING_FLAG_MSTRING 0x040
|
||||||
|
#define ASN1_STRING_FLAG_EMBED 0x080
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_ASN1_INTEGER *wolfSSL_BN_to_ASN1_INTEGER(
|
||||||
|
const WOLFSSL_BIGNUM*, WOLFSSL_ASN1_INTEGER*);
|
||||||
|
#define BN_to_ASN1_INTEGER wolfSSL_BN_to_ASN1_INTEGER
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_ASN1_H_ */
|
159
wolfssl_hlavickove_subory/wolfssl/openssl/bio.h
Normal file
159
wolfssl_hlavickove_subory/wolfssl/openssl/bio.h
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
/* bio.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* bio.h for openssl */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_BIO_H_
|
||||||
|
#define WOLFSSL_BIO_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define BIO_FLAG_BASE64_NO_NL WOLFSSL_BIO_FLAG_BASE64_NO_NL
|
||||||
|
#define BIO_FLAG_READ WOLFSSL_BIO_FLAG_READ
|
||||||
|
#define BIO_FLAG_WRITE WOLFSSL_BIO_FLAG_WRITE
|
||||||
|
#define BIO_FLAG_IO_SPECIAL WOLFSSL_BIO_FLAG_IO_SPECIAL
|
||||||
|
#define BIO_FLAG_RETRY WOLFSSL_BIO_FLAG_RETRY
|
||||||
|
|
||||||
|
#define BIO_new_fp wolfSSL_BIO_new_fp
|
||||||
|
#define BIO_new_file wolfSSL_BIO_new_file
|
||||||
|
#define BIO_new_fp wolfSSL_BIO_new_fp
|
||||||
|
#define BIO_ctrl wolfSSL_BIO_ctrl
|
||||||
|
#define BIO_ctrl_pending wolfSSL_BIO_ctrl_pending
|
||||||
|
#define BIO_wpending wolfSSL_BIO_wpending
|
||||||
|
#define BIO_get_mem_ptr wolfSSL_BIO_get_mem_ptr
|
||||||
|
#define BIO_int_ctrl wolfSSL_BIO_int_ctrl
|
||||||
|
#define BIO_reset wolfSSL_BIO_reset
|
||||||
|
#define BIO_s_file wolfSSL_BIO_s_file
|
||||||
|
#define BIO_s_bio wolfSSL_BIO_s_bio
|
||||||
|
#define BIO_s_socket wolfSSL_BIO_s_socket
|
||||||
|
#define BIO_set_fd wolfSSL_BIO_set_fd
|
||||||
|
#define BIO_ctrl_reset_read_request wolfSSL_BIO_ctrl_reset_read_request
|
||||||
|
|
||||||
|
#define BIO_set_write_buf_size wolfSSL_BIO_set_write_buf_size
|
||||||
|
#define BIO_make_bio_pair wolfSSL_BIO_make_bio_pair
|
||||||
|
|
||||||
|
#define BIO_set_fp wolfSSL_BIO_set_fp
|
||||||
|
#define BIO_get_fp wolfSSL_BIO_get_fp
|
||||||
|
#define BIO_seek wolfSSL_BIO_seek
|
||||||
|
#define BIO_write_filename wolfSSL_BIO_write_filename
|
||||||
|
#define BIO_set_mem_eof_return wolfSSL_BIO_set_mem_eof_return
|
||||||
|
|
||||||
|
#define BIO_find_type wolfSSL_BIO_find_type
|
||||||
|
#define BIO_next wolfSSL_BIO_next
|
||||||
|
#define BIO_gets wolfSSL_BIO_gets
|
||||||
|
#define BIO_puts wolfSSL_BIO_puts
|
||||||
|
|
||||||
|
#define BIO_should_retry(...) 1
|
||||||
|
|
||||||
|
#define BIO_TYPE_FILE WOLFSSL_BIO_FILE
|
||||||
|
#define BIO_TYPE_BIO WOLFSSL_BIO_BIO
|
||||||
|
#define BIO_TYPE_MEM WOLFSSL_BIO_MEMORY
|
||||||
|
#define BIO_TYPE_BASE64 WOLFSSL_BIO_BASE64
|
||||||
|
|
||||||
|
#define BIO_printf wolfSSL_BIO_printf
|
||||||
|
#define BIO_dump wolfSSL_BIO_dump
|
||||||
|
|
||||||
|
/* BIO info callback */
|
||||||
|
#define BIO_CB_FREE WOLFSSL_BIO_CB_FREE
|
||||||
|
#define BIO_CB_READ WOLFSSL_BIO_CB_READ
|
||||||
|
#define BIO_CB_WRITE WOLFSSL_BIO_CB_WRITE
|
||||||
|
#define BIO_CB_PUTS WOLFSSL_BIO_CB_PUTS
|
||||||
|
#define BIO_CB_GETS WOLFSSL_BIO_CB_GETS
|
||||||
|
#define BIO_CB_CTRL WOLFSSL_BIO_CB_CTRL
|
||||||
|
#define BIO_CB_RETURN WOLFSSL_BIO_CB_RETURN
|
||||||
|
|
||||||
|
#define BIO_set_callback wolfSSL_BIO_set_callback
|
||||||
|
#define BIO_get_callback wolfSSL_BIO_get_callback
|
||||||
|
#define BIO_set_callback_arg wolfSSL_BIO_set_callback_arg
|
||||||
|
#define BIO_get_callback_arg wolfSSL_BIO_get_callback_arg
|
||||||
|
|
||||||
|
/* BIO for 1.1.0 or later */
|
||||||
|
#define BIO_set_init wolfSSL_BIO_set_init
|
||||||
|
#define BIO_get_data wolfSSL_BIO_get_data
|
||||||
|
#define BIO_set_data wolfSSL_BIO_set_data
|
||||||
|
#define BIO_get_shutdown wolfSSL_BIO_get_shutdown
|
||||||
|
#define BIO_set_shutdown wolfSSL_BIO_set_shutdown
|
||||||
|
|
||||||
|
/* helper to set specific retry/read flags */
|
||||||
|
#define BIO_set_retry_read(bio)\
|
||||||
|
wolfSSL_BIO_set_flags((bio), WOLFSSL_BIO_FLAG_RETRY | WOLFSSL_BIO_FLAG_READ)
|
||||||
|
#define BIO_set_retry_write(bio)\
|
||||||
|
wolfSSL_BIO_set_flags((bio), WOLFSSL_BIO_FLAG_RETRY | WOLFSSL_BIO_FLAG_WRITE)
|
||||||
|
|
||||||
|
#define BIO_clear_retry_flags wolfSSL_BIO_clear_retry_flags
|
||||||
|
|
||||||
|
#define BIO_meth_new wolfSSL_BIO_meth_new
|
||||||
|
#define BIO_meth_set_write wolfSSL_BIO_meth_set_write
|
||||||
|
#define BIO_meth_free wolfSSL_BIO_meth_free
|
||||||
|
#define BIO_meth_set_write wolfSSL_BIO_meth_set_write
|
||||||
|
#define BIO_meth_set_read wolfSSL_BIO_meth_set_read
|
||||||
|
#define BIO_meth_set_puts wolfSSL_BIO_meth_set_puts
|
||||||
|
#define BIO_meth_set_gets wolfSSL_BIO_meth_set_gets
|
||||||
|
#define BIO_meth_set_ctrl wolfSSL_BIO_meth_set_ctrl
|
||||||
|
#define BIO_meth_set_create wolfSSL_BIO_meth_set_create
|
||||||
|
#define BIO_meth_set_destroy wolfSSL_BIO_meth_set_destroy
|
||||||
|
|
||||||
|
|
||||||
|
/* BIO CTRL */
|
||||||
|
#define BIO_CTRL_RESET 1
|
||||||
|
#define BIO_CTRL_EOF 2
|
||||||
|
#define BIO_CTRL_INFO 3
|
||||||
|
#define BIO_CTRL_PUSH 6
|
||||||
|
#define BIO_CTRL_POP 7
|
||||||
|
#define BIO_CTRL_GET_CLOSE 8
|
||||||
|
#define BIO_CTRL_SET_CLOSE 9
|
||||||
|
#define BIO_CTRL_PENDING 10
|
||||||
|
#define BIO_CTRL_FLUSH 11
|
||||||
|
#define BIO_CTRL_DUP 12
|
||||||
|
#define BIO_CTRL_WPENDING 13
|
||||||
|
|
||||||
|
#define BIO_C_SET_FILE_PTR 106
|
||||||
|
#define BIO_C_GET_FILE_PTR 107
|
||||||
|
#define BIO_C_SET_FILENAME 108
|
||||||
|
#define BIO_C_SET_BUF_MEM 114
|
||||||
|
#define BIO_C_GET_BUF_MEM_PTR 115
|
||||||
|
#define BIO_C_FILE_SEEK 128
|
||||||
|
#define BIO_C_SET_BUF_MEM_EOF_RETURN 130
|
||||||
|
#define BIO_C_SET_WRITE_BUF_SIZE 136
|
||||||
|
#define BIO_C_MAKE_BIO_PAIR 138
|
||||||
|
|
||||||
|
#define BIO_CTRL_DGRAM_QUERY_MTU 40
|
||||||
|
|
||||||
|
#define BIO_NOCLOSE 0x00
|
||||||
|
#define BIO_CLOSE 0x01
|
||||||
|
|
||||||
|
#define BIO_FP_WRITE 0x04
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_BIO_H_ */
|
||||||
|
|
213
wolfssl_hlavickove_subory/wolfssl/openssl/bn.h
Normal file
213
wolfssl_hlavickove_subory/wolfssl/openssl/bn.h
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
/* bn.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* bn.h for openssl */
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\file wolfssl/openssl/bn.h
|
||||||
|
\brief bn.h for openssl
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_BN_H_
|
||||||
|
#define WOLFSSL_BN_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <wolfssl/wolfcrypt/integer.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_BIGNUM {
|
||||||
|
int neg; /* openssh deference */
|
||||||
|
void *internal; /* our big num */
|
||||||
|
#ifdef WOLFSSL_SP_MATH
|
||||||
|
sp_int fp;
|
||||||
|
#elif defined(USE_FAST_MATH) && !defined(HAVE_WOLF_BIGINT)
|
||||||
|
fp_int fp;
|
||||||
|
#endif
|
||||||
|
} WOLFSSL_BIGNUM;
|
||||||
|
|
||||||
|
|
||||||
|
#define WOLFSSL_BN_ULONG mp_digit
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_BN_CTX WOLFSSL_BN_CTX;
|
||||||
|
typedef struct WOLFSSL_BN_GENCB WOLFSSL_BN_GENCB;
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_BN_CTX* wolfSSL_BN_CTX_new(void);
|
||||||
|
WOLFSSL_API void wolfSSL_BN_CTX_init(WOLFSSL_BN_CTX*);
|
||||||
|
WOLFSSL_API void wolfSSL_BN_CTX_free(WOLFSSL_BN_CTX*);
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_new(void);
|
||||||
|
#if defined(USE_FAST_MATH) && !defined(HAVE_WOLF_BIGINT)
|
||||||
|
WOLFSSL_API void wolfSSL_BN_init(WOLFSSL_BIGNUM *);
|
||||||
|
#endif
|
||||||
|
WOLFSSL_API void wolfSSL_BN_free(WOLFSSL_BIGNUM*);
|
||||||
|
WOLFSSL_API void wolfSSL_BN_clear_free(WOLFSSL_BIGNUM*);
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_BN_sub(WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*,
|
||||||
|
const WOLFSSL_BIGNUM*);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_mod(WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*,
|
||||||
|
const WOLFSSL_BIGNUM*, const WOLFSSL_BN_CTX*);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_mod_exp(WOLFSSL_BIGNUM *r, const WOLFSSL_BIGNUM *a,
|
||||||
|
const WOLFSSL_BIGNUM *p, const WOLFSSL_BIGNUM *m, WOLFSSL_BN_CTX *ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_mod_mul(WOLFSSL_BIGNUM *r, const WOLFSSL_BIGNUM *a,
|
||||||
|
const WOLFSSL_BIGNUM *b, const WOLFSSL_BIGNUM *m, WOLFSSL_BN_CTX *ctx);
|
||||||
|
WOLFSSL_API const WOLFSSL_BIGNUM* wolfSSL_BN_value_one(void);
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_BN_num_bytes(const WOLFSSL_BIGNUM*);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_num_bits(const WOLFSSL_BIGNUM*);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_BN_is_zero(const WOLFSSL_BIGNUM*);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_is_one(const WOLFSSL_BIGNUM*);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_is_odd(const WOLFSSL_BIGNUM*);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_is_negative(const WOLFSSL_BIGNUM*);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_BN_cmp(const WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_BN_bn2bin(const WOLFSSL_BIGNUM*, unsigned char*);
|
||||||
|
WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_bin2bn(const unsigned char*, int len,
|
||||||
|
WOLFSSL_BIGNUM* ret);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_mask_bits(WOLFSSL_BIGNUM*, int n);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_BN_pseudo_rand(WOLFSSL_BIGNUM*, int bits, int top,
|
||||||
|
int bottom);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_rand(WOLFSSL_BIGNUM*, int bits, int top, int bottom);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_is_bit_set(const WOLFSSL_BIGNUM*, int n);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_hex2bn(WOLFSSL_BIGNUM**, const char* str);
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_dup(const WOLFSSL_BIGNUM*);
|
||||||
|
WOLFSSL_API WOLFSSL_BIGNUM* wolfSSL_BN_copy(WOLFSSL_BIGNUM*,
|
||||||
|
const WOLFSSL_BIGNUM*);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_BN_dec2bn(WOLFSSL_BIGNUM**, const char* str);
|
||||||
|
WOLFSSL_API char* wolfSSL_BN_bn2dec(const WOLFSSL_BIGNUM*);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_BN_lshift(WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*, int);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_add_word(WOLFSSL_BIGNUM*, WOLFSSL_BN_ULONG);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_set_bit(WOLFSSL_BIGNUM*, int);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_set_word(WOLFSSL_BIGNUM*, WOLFSSL_BN_ULONG);
|
||||||
|
WOLFSSL_API unsigned long wolfSSL_BN_get_word(const WOLFSSL_BIGNUM*);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_BN_add(WOLFSSL_BIGNUM*, WOLFSSL_BIGNUM*,
|
||||||
|
WOLFSSL_BIGNUM*);
|
||||||
|
WOLFSSL_API char *wolfSSL_BN_bn2hex(const WOLFSSL_BIGNUM*);
|
||||||
|
WOLFSSL_API int wolfSSL_BN_is_prime_ex(const WOLFSSL_BIGNUM*, int,
|
||||||
|
WOLFSSL_BN_CTX*, WOLFSSL_BN_GENCB*);
|
||||||
|
WOLFSSL_API WOLFSSL_BN_ULONG wolfSSL_BN_mod_word(const WOLFSSL_BIGNUM*,
|
||||||
|
WOLFSSL_BN_ULONG);
|
||||||
|
#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM)
|
||||||
|
WOLFSSL_API int wolfSSL_BN_print_fp(XFILE, const WOLFSSL_BIGNUM*);
|
||||||
|
#endif
|
||||||
|
WOLFSSL_API int wolfSSL_BN_rshift(WOLFSSL_BIGNUM*, const WOLFSSL_BIGNUM*, int);
|
||||||
|
WOLFSSL_API WOLFSSL_BIGNUM *wolfSSL_BN_CTX_get(WOLFSSL_BN_CTX *ctx);
|
||||||
|
WOLFSSL_API void wolfSSL_BN_CTX_start(WOLFSSL_BN_CTX *ctx);
|
||||||
|
WOLFSSL_API WOLFSSL_BIGNUM *wolfSSL_BN_mod_inverse(WOLFSSL_BIGNUM*, WOLFSSL_BIGNUM*,
|
||||||
|
const WOLFSSL_BIGNUM*, WOLFSSL_BN_CTX *ctx);
|
||||||
|
|
||||||
|
typedef WOLFSSL_BIGNUM BIGNUM;
|
||||||
|
typedef WOLFSSL_BN_CTX BN_CTX;
|
||||||
|
typedef WOLFSSL_BN_GENCB BN_GENCB;
|
||||||
|
|
||||||
|
#define BN_CTX_new wolfSSL_BN_CTX_new
|
||||||
|
#define BN_CTX_init wolfSSL_BN_CTX_init
|
||||||
|
#define BN_CTX_free wolfSSL_BN_CTX_free
|
||||||
|
|
||||||
|
#define BN_new wolfSSL_BN_new
|
||||||
|
#define BN_init wolfSSL_BN_init
|
||||||
|
#define BN_free wolfSSL_BN_free
|
||||||
|
#define BN_clear_free wolfSSL_BN_clear_free
|
||||||
|
|
||||||
|
#define BN_num_bytes wolfSSL_BN_num_bytes
|
||||||
|
#define BN_num_bits wolfSSL_BN_num_bits
|
||||||
|
|
||||||
|
#define BN_is_zero wolfSSL_BN_is_zero
|
||||||
|
#define BN_is_one wolfSSL_BN_is_one
|
||||||
|
#define BN_is_odd wolfSSL_BN_is_odd
|
||||||
|
#define BN_is_negative wolfSSL_BN_is_negative
|
||||||
|
|
||||||
|
#define BN_cmp wolfSSL_BN_cmp
|
||||||
|
|
||||||
|
#define BN_bn2bin wolfSSL_BN_bn2bin
|
||||||
|
#define BN_bin2bn wolfSSL_BN_bin2bn
|
||||||
|
|
||||||
|
#define BN_mod wolfSSL_BN_mod
|
||||||
|
#define BN_mod_exp wolfSSL_BN_mod_exp
|
||||||
|
#define BN_mod_mul wolfSSL_BN_mod_mul
|
||||||
|
#define BN_sub wolfSSL_BN_sub
|
||||||
|
#define BN_value_one wolfSSL_BN_value_one
|
||||||
|
|
||||||
|
#define BN_mask_bits wolfSSL_mask_bits
|
||||||
|
|
||||||
|
#define BN_pseudo_rand wolfSSL_BN_pseudo_rand
|
||||||
|
#define BN_rand wolfSSL_BN_rand
|
||||||
|
#define BN_is_bit_set wolfSSL_BN_is_bit_set
|
||||||
|
#define BN_hex2bn wolfSSL_BN_hex2bn
|
||||||
|
|
||||||
|
#define BN_dup wolfSSL_BN_dup
|
||||||
|
#define BN_copy wolfSSL_BN_copy
|
||||||
|
|
||||||
|
#define BN_get_word wolfSSL_BN_get_word
|
||||||
|
#define BN_set_word wolfSSL_BN_set_word
|
||||||
|
|
||||||
|
#define BN_dec2bn wolfSSL_BN_dec2bn
|
||||||
|
#define BN_bn2dec wolfSSL_BN_bn2dec
|
||||||
|
#define BN_bn2hex wolfSSL_BN_bn2hex
|
||||||
|
|
||||||
|
#define BN_lshift wolfSSL_BN_lshift
|
||||||
|
#define BN_add_word wolfSSL_BN_add_word
|
||||||
|
#define BN_add wolfSSL_BN_add
|
||||||
|
#define BN_set_word wolfSSL_BN_set_word
|
||||||
|
#define BN_set_bit wolfSSL_BN_set_bit
|
||||||
|
|
||||||
|
|
||||||
|
#define BN_is_prime_ex wolfSSL_BN_is_prime_ex
|
||||||
|
#define BN_print_fp wolfSSL_BN_print_fp
|
||||||
|
#define BN_rshift wolfSSL_BN_rshift
|
||||||
|
#define BN_mod_word wolfSSL_BN_mod_word
|
||||||
|
|
||||||
|
#define BN_CTX_get wolfSSL_BN_CTX_get
|
||||||
|
#define BN_CTX_start wolfSSL_BN_CTX_start
|
||||||
|
|
||||||
|
#define BN_mod_inverse wolfSSL_BN_mod_inverse
|
||||||
|
|
||||||
|
#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L
|
||||||
|
#define BN_get_rfc2409_prime_768 wolfSSL_DH_768_prime
|
||||||
|
#define BN_get_rfc2409_prime_1024 wolfSSL_DH_1024_prime
|
||||||
|
#define BN_get_rfc3526_prime_1536 wolfSSL_DH_1536_prime
|
||||||
|
#define BN_get_rfc3526_prime_2048 wolfSSL_DH_2048_prime
|
||||||
|
#define BN_get_rfc3526_prime_3072 wolfSSL_DH_3072_prime
|
||||||
|
#define BN_get_rfc3526_prime_4096 wolfSSL_DH_4096_prime
|
||||||
|
#define BN_get_rfc3526_prime_6144 wolfSSL_DH_6144_prime
|
||||||
|
#define BN_get_rfc3526_prime_8192 wolfSSL_DH_8192_prime
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* WOLFSSL__H_ */
|
47
wolfssl_hlavickove_subory/wolfssl/openssl/buffer.h
Normal file
47
wolfssl_hlavickove_subory/wolfssl/openssl/buffer.h
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/* buffer.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_BUFFER_H_
|
||||||
|
#define WOLFSSL_BUFFER_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_BUF_MEM* wolfSSL_BUF_MEM_new(void);
|
||||||
|
WOLFSSL_API int wolfSSL_BUF_MEM_grow(WOLFSSL_BUF_MEM* buf, size_t len);
|
||||||
|
WOLFSSL_API void wolfSSL_BUF_MEM_free(WOLFSSL_BUF_MEM* buf);
|
||||||
|
|
||||||
|
|
||||||
|
#define BUF_MEM_new wolfSSL_BUF_MEM_new
|
||||||
|
#define BUF_MEM_grow wolfSSL_BUF_MEM_grow
|
||||||
|
#define BUF_MEM_free wolfSSL_BUF_MEM_free
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_BUFFER_H_ */
|
48
wolfssl_hlavickove_subory/wolfssl/openssl/conf.h
Normal file
48
wolfssl_hlavickove_subory/wolfssl/openssl/conf.h
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/* conf.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* conf.h for openSSL */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_conf_H_
|
||||||
|
#define WOLFSSL_conf_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct WOLFSSL_CONF_VALUE {
|
||||||
|
char *section;
|
||||||
|
char *name;
|
||||||
|
char *value;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct WOLFSSL_INIT_SETTINGS {
|
||||||
|
char* appname;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_CONF_VALUE CONF_VALUE;
|
||||||
|
typedef struct WOLFSSL_INIT_SETTINGS OPENSSL_INIT_SETTINGS;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_conf_H_ */
|
79
wolfssl_hlavickove_subory/wolfssl/openssl/crypto.h
Normal file
79
wolfssl_hlavickove_subory/wolfssl/openssl/crypto.h
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
/* crypto.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* crypto.h for openSSL */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_CRYPTO_H_
|
||||||
|
#define WOLFSSL_CRYPTO_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/opensslv.h>
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_PREFIX
|
||||||
|
#include "prefix_crypto.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API const char* wolfSSLeay_version(int type);
|
||||||
|
WOLFSSL_API unsigned long wolfSSLeay(void);
|
||||||
|
|
||||||
|
#ifdef OPENSSL_EXTRA
|
||||||
|
WOLFSSL_API void wolfSSL_OPENSSL_free(void*);
|
||||||
|
WOLFSSL_API void *wolfSSL_OPENSSL_malloc(size_t a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CRYPTO_THREADID void
|
||||||
|
|
||||||
|
#define SSLeay_version wolfSSLeay_version
|
||||||
|
#define SSLeay wolfSSLeay
|
||||||
|
|
||||||
|
#define SSLEAY_VERSION 0x0090600fL
|
||||||
|
#define SSLEAY_VERSION_NUMBER SSLEAY_VERSION
|
||||||
|
#define CRYPTO_lock wc_LockMutex_ex
|
||||||
|
|
||||||
|
/* this function was used to set the default malloc, free, and realloc */
|
||||||
|
#define CRYPTO_malloc_init() 0 /* CRYPTO_malloc_init is not needed */
|
||||||
|
|
||||||
|
#define OPENSSL_free wolfSSL_OPENSSL_free
|
||||||
|
#define OPENSSL_malloc wolfSSL_OPENSSL_malloc
|
||||||
|
|
||||||
|
#if defined(OPENSSL_ALL) || defined(HAVE_STUNNEL) || defined(WOLFSSL_NGINX) || \
|
||||||
|
defined(WOLFSSL_HAPROXY) || defined(OPENSSL_EXTRA)
|
||||||
|
#define CRYPTO_set_mem_ex_functions wolfSSL_CRYPTO_set_mem_ex_functions
|
||||||
|
#define FIPS_mode wolfSSL_FIPS_mode
|
||||||
|
#define FIPS_mode_set wolfSSL_FIPS_mode_set
|
||||||
|
typedef struct CRYPTO_EX_DATA CRYPTO_EX_DATA;
|
||||||
|
typedef void (CRYPTO_free_func)(void*parent, void*ptr, CRYPTO_EX_DATA *ad, int idx,
|
||||||
|
long argl, void* argp);
|
||||||
|
#define CRYPTO_THREADID_set_callback wolfSSL_THREADID_set_callback
|
||||||
|
#define CRYPTO_THREADID_set_numeric wolfSSL_THREADID_set_numeric
|
||||||
|
|
||||||
|
#define CRYPTO_r_lock wc_LockMutex_ex
|
||||||
|
#define CRYPTO_unlock wc_LockMutex_ex
|
||||||
|
|
||||||
|
#define CRYPTO_THREAD_lock wc_LockMutex
|
||||||
|
#define CRYPTO_THREAD_r_lock wc_LockMutex
|
||||||
|
#define CRYPTO_THREAD_unlock wc_UnLockMutex
|
||||||
|
|
||||||
|
#endif /* OPENSSL_ALL || HAVE_STUNNEL || WOLFSSL_NGINX || WOLFSSL_HAPROXY */
|
||||||
|
|
||||||
|
#endif /* header */
|
115
wolfssl_hlavickove_subory/wolfssl/openssl/des.h
Normal file
115
wolfssl_hlavickove_subory/wolfssl/openssl/des.h
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
/* des.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* des.h defines mini des openssl compatibility layer
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_DES_H_
|
||||||
|
#define WOLFSSL_DES_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
|
||||||
|
#ifndef NO_DES3
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_PREFIX
|
||||||
|
#include "prefix_des.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef unsigned char WOLFSSL_DES_cblock[8];
|
||||||
|
typedef /* const */ WOLFSSL_DES_cblock WOLFSSL_const_DES_cblock;
|
||||||
|
typedef WOLFSSL_DES_cblock WOLFSSL_DES_key_schedule;
|
||||||
|
typedef unsigned int WOLFSSL_DES_LONG;
|
||||||
|
|
||||||
|
|
||||||
|
enum {
|
||||||
|
DES_ENCRYPT = 1,
|
||||||
|
DES_DECRYPT = 0
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_DES_is_weak_key(WOLFSSL_const_DES_cblock* key);
|
||||||
|
WOLFSSL_API WOLFSSL_DES_LONG wolfSSL_DES_cbc_cksum(const unsigned char* in,
|
||||||
|
WOLFSSL_DES_cblock* out, long length, WOLFSSL_DES_key_schedule* sc,
|
||||||
|
WOLFSSL_const_DES_cblock* iv);
|
||||||
|
WOLFSSL_API int wolfSSL_DES_set_key(WOLFSSL_const_DES_cblock* myDes,
|
||||||
|
WOLFSSL_DES_key_schedule* key);
|
||||||
|
WOLFSSL_API int wolfSSL_DES_set_key_checked(WOLFSSL_const_DES_cblock* myDes,
|
||||||
|
WOLFSSL_DES_key_schedule* key);
|
||||||
|
WOLFSSL_API void wolfSSL_DES_set_key_unchecked(WOLFSSL_const_DES_cblock*,
|
||||||
|
WOLFSSL_DES_key_schedule*);
|
||||||
|
WOLFSSL_API int wolfSSL_DES_key_sched(WOLFSSL_const_DES_cblock* key,
|
||||||
|
WOLFSSL_DES_key_schedule* schedule);
|
||||||
|
WOLFSSL_API void wolfSSL_DES_cbc_encrypt(const unsigned char* input,
|
||||||
|
unsigned char* output, long length,
|
||||||
|
WOLFSSL_DES_key_schedule* schedule, WOLFSSL_DES_cblock* ivec,
|
||||||
|
int enc);
|
||||||
|
WOLFSSL_API void wolfSSL_DES_ede3_cbc_encrypt(const unsigned char* input,
|
||||||
|
unsigned char* output, long sz,
|
||||||
|
WOLFSSL_DES_key_schedule* ks1,
|
||||||
|
WOLFSSL_DES_key_schedule* ks2,
|
||||||
|
WOLFSSL_DES_key_schedule* ks3,
|
||||||
|
WOLFSSL_DES_cblock* ivec, int enc);
|
||||||
|
WOLFSSL_API void wolfSSL_DES_ncbc_encrypt(const unsigned char* input,
|
||||||
|
unsigned char* output, long length,
|
||||||
|
WOLFSSL_DES_key_schedule* schedule,
|
||||||
|
WOLFSSL_DES_cblock* ivec, int enc);
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_DES_set_odd_parity(WOLFSSL_DES_cblock*);
|
||||||
|
WOLFSSL_API void wolfSSL_DES_ecb_encrypt(WOLFSSL_DES_cblock*, WOLFSSL_DES_cblock*,
|
||||||
|
WOLFSSL_DES_key_schedule*, int);
|
||||||
|
WOLFSSL_API int wolfSSL_DES_check_key_parity(WOLFSSL_DES_cblock*);
|
||||||
|
|
||||||
|
|
||||||
|
typedef WOLFSSL_DES_cblock DES_cblock;
|
||||||
|
typedef WOLFSSL_const_DES_cblock const_DES_cblock;
|
||||||
|
typedef WOLFSSL_DES_key_schedule DES_key_schedule;
|
||||||
|
typedef WOLFSSL_DES_LONG DES_LONG;
|
||||||
|
|
||||||
|
#define DES_check_key(x) /* Define WOLFSSL_CHECK_DESKEY to check key */
|
||||||
|
#define DES_is_weak_key wolfSSL_DES_is_weak_key
|
||||||
|
#define DES_set_key wolfSSL_DES_set_key
|
||||||
|
#define DES_set_key_checked wolfSSL_DES_set_key_checked
|
||||||
|
#define DES_set_key_unchecked wolfSSL_DES_set_key_unchecked
|
||||||
|
#define DES_key_sched wolfSSL_DES_key_sched
|
||||||
|
#define DES_cbc_encrypt wolfSSL_DES_cbc_encrypt
|
||||||
|
#define DES_ncbc_encrypt wolfSSL_DES_ncbc_encrypt
|
||||||
|
#define DES_set_odd_parity wolfSSL_DES_set_odd_parity
|
||||||
|
#define DES_ecb_encrypt wolfSSL_DES_ecb_encrypt
|
||||||
|
#define DES_ede3_cbc_encrypt wolfSSL_DES_ede3_cbc_encrypt
|
||||||
|
#define DES_cbc_cksum wolfSSL_DES_cbc_cksum
|
||||||
|
#define DES_check_key_parity wolfSSL_DES_check_key_parity
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_DES3 */
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_DES_H_ */
|
93
wolfssl_hlavickove_subory/wolfssl/openssl/dh.h
Normal file
93
wolfssl_hlavickove_subory/wolfssl/openssl/dh.h
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
/* dh.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* dh.h for openSSL */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_DH_H_
|
||||||
|
#define WOLFSSL_DH_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
#include <wolfssl/openssl/bn.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct WOLFSSL_DH {
|
||||||
|
WOLFSSL_BIGNUM* p;
|
||||||
|
WOLFSSL_BIGNUM* g;
|
||||||
|
WOLFSSL_BIGNUM* q;
|
||||||
|
WOLFSSL_BIGNUM* pub_key; /* openssh deference g^x */
|
||||||
|
WOLFSSL_BIGNUM* priv_key; /* openssh deference x */
|
||||||
|
void* internal; /* our DH */
|
||||||
|
char inSet; /* internal set from external ? */
|
||||||
|
char exSet; /* external set from internal ? */
|
||||||
|
/*added for lighttpd openssl compatibility, go back and add a getter in
|
||||||
|
* lighttpd src code.
|
||||||
|
*/
|
||||||
|
int length;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_DH* wolfSSL_DH_new(void);
|
||||||
|
WOLFSSL_API void wolfSSL_DH_free(WOLFSSL_DH*);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_DH_size(WOLFSSL_DH*);
|
||||||
|
WOLFSSL_API int wolfSSL_DH_generate_key(WOLFSSL_DH*);
|
||||||
|
WOLFSSL_API int wolfSSL_DH_compute_key(unsigned char* key, WOLFSSL_BIGNUM* pub,
|
||||||
|
WOLFSSL_DH*);
|
||||||
|
WOLFSSL_API int wolfSSL_DH_set0_pqg(WOLFSSL_DH*, WOLFSSL_BIGNUM*,
|
||||||
|
WOLFSSL_BIGNUM*, WOLFSSL_BIGNUM*);
|
||||||
|
|
||||||
|
typedef WOLFSSL_DH DH;
|
||||||
|
|
||||||
|
#define DH_new wolfSSL_DH_new
|
||||||
|
#define DH_free wolfSSL_DH_free
|
||||||
|
|
||||||
|
#define DH_size wolfSSL_DH_size
|
||||||
|
#define DH_generate_key wolfSSL_DH_generate_key
|
||||||
|
#define DH_compute_key wolfSSL_DH_compute_key
|
||||||
|
#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L
|
||||||
|
#define DH_set0_pqg wolfSSL_DH_set0_pqg
|
||||||
|
#endif
|
||||||
|
#define DH_bits(x) (BN_num_bits(x->p))
|
||||||
|
|
||||||
|
/* for pre 1.1.0 */
|
||||||
|
#define get_rfc2409_prime_768 wolfSSL_DH_768_prime
|
||||||
|
#define get_rfc2409_prime_1024 wolfSSL_DH_1024_prime
|
||||||
|
#define get_rfc3526_prime_1536 wolfSSL_DH_1536_prime
|
||||||
|
#define get_rfc3526_prime_2048 wolfSSL_DH_2048_prime
|
||||||
|
#define get_rfc3526_prime_3072 wolfSSL_DH_3072_prime
|
||||||
|
#define get_rfc3526_prime_4096 wolfSSL_DH_4096_prime
|
||||||
|
#define get_rfc3526_prime_6144 wolfSSL_DH_6144_prime
|
||||||
|
#define get_rfc3526_prime_8192 wolfSSL_DH_8192_prime
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(OPENSSL_ALL) || defined(HAVE_STUNNEL)
|
||||||
|
#define DH_generate_parameters wolfSSL_DH_generate_parameters
|
||||||
|
#define DH_generate_parameters_ex wolfSSL_DH_generate_parameters_ex
|
||||||
|
#endif /* OPENSSL_ALL || HAVE_STUNNEL */
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_DH_H_ */
|
87
wolfssl_hlavickove_subory/wolfssl/openssl/dsa.h
Normal file
87
wolfssl_hlavickove_subory/wolfssl/openssl/dsa.h
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
/* dsa.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* dsa.h for openSSL */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_DSA_H_
|
||||||
|
#define WOLFSSL_DSA_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/bn.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_DSA_TYPE_DEFINED /* guard on redeclaration */
|
||||||
|
typedef struct WOLFSSL_DSA WOLFSSL_DSA;
|
||||||
|
#define WOLFSSL_DSA_TYPE_DEFINED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef WOLFSSL_DSA DSA;
|
||||||
|
|
||||||
|
struct WOLFSSL_DSA {
|
||||||
|
WOLFSSL_BIGNUM* p;
|
||||||
|
WOLFSSL_BIGNUM* q;
|
||||||
|
WOLFSSL_BIGNUM* g;
|
||||||
|
WOLFSSL_BIGNUM* pub_key; /* our y */
|
||||||
|
WOLFSSL_BIGNUM* priv_key; /* our x */
|
||||||
|
void* internal; /* our Dsa Key */
|
||||||
|
char inSet; /* internal set from external ? */
|
||||||
|
char exSet; /* external set from internal ? */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_DSA* wolfSSL_DSA_new(void);
|
||||||
|
WOLFSSL_API void wolfSSL_DSA_free(WOLFSSL_DSA*);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_DSA_generate_key(WOLFSSL_DSA*);
|
||||||
|
|
||||||
|
typedef void (*WOLFSSL_BN_CB)(int i, int j, void* exArg);
|
||||||
|
WOLFSSL_API WOLFSSL_DSA* wolfSSL_DSA_generate_parameters(int bits,
|
||||||
|
unsigned char* seed, int seedLen, int* counterRet,
|
||||||
|
unsigned long* hRet, WOLFSSL_BN_CB cb, void* CBArg);
|
||||||
|
WOLFSSL_API int wolfSSL_DSA_generate_parameters_ex(WOLFSSL_DSA*, int bits,
|
||||||
|
unsigned char* seed, int seedLen, int* counterRet,
|
||||||
|
unsigned long* hRet, void* cb);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_DSA_LoadDer(WOLFSSL_DSA*, const unsigned char*, int sz);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_DSA_do_sign(const unsigned char* d,
|
||||||
|
unsigned char* sigRet, WOLFSSL_DSA* dsa);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_DSA_do_verify(const unsigned char* d,
|
||||||
|
unsigned char* sig,
|
||||||
|
WOLFSSL_DSA* dsa, int *dsacheck);
|
||||||
|
|
||||||
|
#define DSA_new wolfSSL_DSA_new
|
||||||
|
#define DSA_free wolfSSL_DSA_free
|
||||||
|
|
||||||
|
#define DSA_generate_key wolfSSL_DSA_generate_key
|
||||||
|
#define DSA_generate_parameters wolfSSL_DSA_generate_parameters
|
||||||
|
#define DSA_generate_parameters_ex wolfSSL_DSA_generate_parameters_ex
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* header */
|
253
wolfssl_hlavickove_subory/wolfssl/openssl/ec.h
Normal file
253
wolfssl_hlavickove_subory/wolfssl/openssl/ec.h
Normal file
@ -0,0 +1,253 @@
|
|||||||
|
/* ec.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ec.h for openssl */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_EC_H_
|
||||||
|
#define WOLFSSL_EC_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/bn.h>
|
||||||
|
#include <wolfssl/wolfcrypt/ecc.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Map OpenSSL NID value */
|
||||||
|
enum {
|
||||||
|
POINT_CONVERSION_COMPRESSED = 2,
|
||||||
|
POINT_CONVERSION_UNCOMPRESSED = 4,
|
||||||
|
|
||||||
|
#ifdef HAVE_ECC
|
||||||
|
/* Use ecc_curve_type enum values for NID */
|
||||||
|
NID_X9_62_prime192v1 = ECC_SECP192R1,
|
||||||
|
NID_X9_62_prime256v1 = ECC_SECP256R1,
|
||||||
|
NID_secp112r1 = ECC_SECP112R1,
|
||||||
|
NID_secp112r2 = ECC_SECP112R2,
|
||||||
|
NID_secp128r1 = ECC_SECP128R1,
|
||||||
|
NID_secp128r2 = ECC_SECP128R2,
|
||||||
|
NID_secp160r1 = ECC_SECP160R1,
|
||||||
|
NID_secp160r2 = ECC_SECP160R2,
|
||||||
|
NID_secp224r1 = ECC_SECP224R1,
|
||||||
|
NID_secp384r1 = ECC_SECP384R1,
|
||||||
|
NID_secp521r1 = ECC_SECP521R1,
|
||||||
|
NID_secp160k1 = ECC_SECP160K1,
|
||||||
|
NID_secp192k1 = ECC_SECP192K1,
|
||||||
|
NID_secp224k1 = ECC_SECP224K1,
|
||||||
|
NID_secp256k1 = ECC_SECP256K1,
|
||||||
|
NID_brainpoolP160r1 = ECC_BRAINPOOLP160R1,
|
||||||
|
NID_brainpoolP192r1 = ECC_BRAINPOOLP192R1,
|
||||||
|
NID_brainpoolP224r1 = ECC_BRAINPOOLP224R1,
|
||||||
|
NID_brainpoolP256r1 = ECC_BRAINPOOLP256R1,
|
||||||
|
NID_brainpoolP320r1 = ECC_BRAINPOOLP320R1,
|
||||||
|
NID_brainpoolP384r1 = ECC_BRAINPOOLP384R1,
|
||||||
|
NID_brainpoolP512r1 = ECC_BRAINPOOLP512R1,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
OPENSSL_EC_NAMED_CURVE = 0x001
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_EC_TYPE_DEFINED /* guard on redeclaration */
|
||||||
|
typedef struct WOLFSSL_EC_KEY WOLFSSL_EC_KEY;
|
||||||
|
typedef struct WOLFSSL_EC_POINT WOLFSSL_EC_POINT;
|
||||||
|
typedef struct WOLFSSL_EC_GROUP WOLFSSL_EC_GROUP;
|
||||||
|
#define WOLFSSL_EC_TYPE_DEFINED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef WOLFSSL_EC_KEY EC_KEY;
|
||||||
|
typedef WOLFSSL_EC_GROUP EC_GROUP;
|
||||||
|
typedef WOLFSSL_EC_POINT EC_POINT;
|
||||||
|
|
||||||
|
struct WOLFSSL_EC_POINT {
|
||||||
|
WOLFSSL_BIGNUM *X;
|
||||||
|
WOLFSSL_BIGNUM *Y;
|
||||||
|
WOLFSSL_BIGNUM *Z;
|
||||||
|
|
||||||
|
void* internal; /* our ECC point */
|
||||||
|
char inSet; /* internal set from external ? */
|
||||||
|
char exSet; /* external set from internal ? */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct WOLFSSL_EC_GROUP {
|
||||||
|
int curve_idx; /* index of curve, used by WolfSSL as reference */
|
||||||
|
int curve_nid; /* NID of curve, used by OpenSSL/OpenSSH as reference */
|
||||||
|
int curve_oid; /* OID of curve, used by OpenSSL/OpenSSH as reference */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct WOLFSSL_EC_KEY {
|
||||||
|
WOLFSSL_EC_GROUP *group;
|
||||||
|
WOLFSSL_EC_POINT *pub_key;
|
||||||
|
WOLFSSL_BIGNUM *priv_key;
|
||||||
|
|
||||||
|
void* internal; /* our ECC Key */
|
||||||
|
char inSet; /* internal set from external ? */
|
||||||
|
char exSet; /* external set from internal ? */
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_EC_builtin_curve{
|
||||||
|
int nid;
|
||||||
|
const char *comment;
|
||||||
|
} WOLFSSL_EC_builtin_curve;
|
||||||
|
|
||||||
|
typedef WOLFSSL_EC_builtin_curve EC_builtin_curve;
|
||||||
|
|
||||||
|
#define WOLFSSL_EC_KEY_LOAD_PRIVATE 1
|
||||||
|
#define WOLFSSL_EC_KEY_LOAD_PUBLIC 2
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_ECPoint_i2d(const WOLFSSL_EC_GROUP *curve,
|
||||||
|
const WOLFSSL_EC_POINT *p,
|
||||||
|
unsigned char *out, unsigned int *len);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_ECPoint_d2i(unsigned char *in, unsigned int len,
|
||||||
|
const WOLFSSL_EC_GROUP *curve, WOLFSSL_EC_POINT *p);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_KEY_LoadDer(WOLFSSL_EC_KEY* key,
|
||||||
|
const unsigned char* der, int derSz);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_KEY_LoadDer_ex(WOLFSSL_EC_KEY* key,
|
||||||
|
const unsigned char* der, int derSz, int opt);
|
||||||
|
WOLFSSL_API
|
||||||
|
void wolfSSL_EC_KEY_free(WOLFSSL_EC_KEY *key);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_EC_POINT *wolfSSL_EC_KEY_get0_public_key(const WOLFSSL_EC_KEY *key);
|
||||||
|
WOLFSSL_API
|
||||||
|
const WOLFSSL_EC_GROUP *wolfSSL_EC_KEY_get0_group(const WOLFSSL_EC_KEY *key);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_KEY_set_private_key(WOLFSSL_EC_KEY *key,
|
||||||
|
const WOLFSSL_BIGNUM *priv_key);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_BIGNUM *wolfSSL_EC_KEY_get0_private_key(const WOLFSSL_EC_KEY *key);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_EC_KEY *wolfSSL_EC_KEY_new_by_curve_name(int nid);
|
||||||
|
WOLFSSL_API const char* wolfSSL_EC_curve_nid2nist(int nid);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_EC_KEY *wolfSSL_EC_KEY_new(void);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_KEY_set_group(WOLFSSL_EC_KEY *key, WOLFSSL_EC_GROUP *group);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_KEY_generate_key(WOLFSSL_EC_KEY *key);
|
||||||
|
WOLFSSL_API
|
||||||
|
void wolfSSL_EC_KEY_set_asn1_flag(WOLFSSL_EC_KEY *key, int asn1_flag);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_KEY_set_public_key(WOLFSSL_EC_KEY *key,
|
||||||
|
const WOLFSSL_EC_POINT *pub);
|
||||||
|
WOLFSSL_API
|
||||||
|
void wolfSSL_EC_GROUP_set_asn1_flag(WOLFSSL_EC_GROUP *group, int flag);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_EC_GROUP *wolfSSL_EC_GROUP_new_by_curve_name(int nid);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_GROUP_cmp(const WOLFSSL_EC_GROUP *a, const WOLFSSL_EC_GROUP *b,
|
||||||
|
WOLFSSL_BN_CTX *ctx);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_GROUP_get_curve_name(const WOLFSSL_EC_GROUP *group);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_GROUP_get_degree(const WOLFSSL_EC_GROUP *group);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_GROUP_get_order(const WOLFSSL_EC_GROUP *group,
|
||||||
|
WOLFSSL_BIGNUM *order, WOLFSSL_BN_CTX *ctx);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_GROUP_order_bits(const WOLFSSL_EC_GROUP *group);
|
||||||
|
WOLFSSL_API
|
||||||
|
void wolfSSL_EC_GROUP_free(WOLFSSL_EC_GROUP *group);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_EC_POINT *wolfSSL_EC_POINT_new(const WOLFSSL_EC_GROUP *group);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_POINT_get_affine_coordinates_GFp(const WOLFSSL_EC_GROUP *group,
|
||||||
|
const WOLFSSL_EC_POINT *p,
|
||||||
|
WOLFSSL_BIGNUM *x,
|
||||||
|
WOLFSSL_BIGNUM *y,
|
||||||
|
WOLFSSL_BN_CTX *ctx);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_POINT_mul(const WOLFSSL_EC_GROUP *group, WOLFSSL_EC_POINT *r,
|
||||||
|
const WOLFSSL_BIGNUM *n,
|
||||||
|
const WOLFSSL_EC_POINT *q, const WOLFSSL_BIGNUM *m,
|
||||||
|
WOLFSSL_BN_CTX *ctx);
|
||||||
|
WOLFSSL_API
|
||||||
|
void wolfSSL_EC_POINT_clear_free(WOLFSSL_EC_POINT *point);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_POINT_cmp(const WOLFSSL_EC_GROUP *group,
|
||||||
|
const WOLFSSL_EC_POINT *a, const WOLFSSL_EC_POINT *b,
|
||||||
|
WOLFSSL_BN_CTX *ctx);
|
||||||
|
WOLFSSL_API
|
||||||
|
void wolfSSL_EC_POINT_free(WOLFSSL_EC_POINT *point);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC_POINT_is_at_infinity(const WOLFSSL_EC_GROUP *group,
|
||||||
|
const WOLFSSL_EC_POINT *a);
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
size_t wolfSSL_EC_get_builtin_curves(WOLFSSL_EC_builtin_curve *r, size_t nitems);
|
||||||
|
|
||||||
|
#ifndef HAVE_SELFTEST
|
||||||
|
WOLFSSL_API
|
||||||
|
char* wolfSSL_EC_POINT_point2hex(const WOLFSSL_EC_GROUP* group,
|
||||||
|
const WOLFSSL_EC_POINT* point, int form,
|
||||||
|
WOLFSSL_BN_CTX* ctx);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_ECC
|
||||||
|
#define OPENSSL_NO_EC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define EC_KEY_new wolfSSL_EC_KEY_new
|
||||||
|
#define EC_KEY_free wolfSSL_EC_KEY_free
|
||||||
|
#define EC_KEY_get0_public_key wolfSSL_EC_KEY_get0_public_key
|
||||||
|
#define EC_KEY_get0_group wolfSSL_EC_KEY_get0_group
|
||||||
|
#define EC_KEY_set_private_key wolfSSL_EC_KEY_set_private_key
|
||||||
|
#define EC_KEY_get0_private_key wolfSSL_EC_KEY_get0_private_key
|
||||||
|
#define EC_KEY_new_by_curve_name wolfSSL_EC_KEY_new_by_curve_name
|
||||||
|
#define EC_KEY_set_group wolfSSL_EC_KEY_set_group
|
||||||
|
#define EC_KEY_generate_key wolfSSL_EC_KEY_generate_key
|
||||||
|
#define EC_KEY_set_asn1_flag wolfSSL_EC_KEY_set_asn1_flag
|
||||||
|
#define EC_KEY_set_public_key wolfSSL_EC_KEY_set_public_key
|
||||||
|
|
||||||
|
#define EC_GROUP_free wolfSSL_EC_GROUP_free
|
||||||
|
#define EC_GROUP_set_asn1_flag wolfSSL_EC_GROUP_set_asn1_flag
|
||||||
|
#define EC_GROUP_new_by_curve_name wolfSSL_EC_GROUP_new_by_curve_name
|
||||||
|
#define EC_GROUP_cmp wolfSSL_EC_GROUP_cmp
|
||||||
|
#define EC_GROUP_get_curve_name wolfSSL_EC_GROUP_get_curve_name
|
||||||
|
#define EC_GROUP_get_degree wolfSSL_EC_GROUP_get_degree
|
||||||
|
#define EC_GROUP_get_order wolfSSL_EC_GROUP_get_order
|
||||||
|
#define EC_GROUP_order_bits wolfSSL_EC_GROUP_order_bits
|
||||||
|
|
||||||
|
#define EC_POINT_new wolfSSL_EC_POINT_new
|
||||||
|
#define EC_POINT_free wolfSSL_EC_POINT_free
|
||||||
|
#define EC_POINT_get_affine_coordinates_GFp \
|
||||||
|
wolfSSL_EC_POINT_get_affine_coordinates_GFp
|
||||||
|
#define EC_POINT_mul wolfSSL_EC_POINT_mul
|
||||||
|
#define EC_POINT_clear_free wolfSSL_EC_POINT_clear_free
|
||||||
|
#define EC_POINT_cmp wolfSSL_EC_POINT_cmp
|
||||||
|
#define EC_POINT_is_at_infinity wolfSSL_EC_POINT_is_at_infinity
|
||||||
|
|
||||||
|
#ifndef HAVE_SELFTEST
|
||||||
|
#define EC_POINT_point2hex wolfSSL_EC_POINT_point2hex
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define EC_POINT_dump wolfSSL_EC_POINT_dump
|
||||||
|
#define EC_get_builtin_curves wolfSSL_EC_get_builtin_curves
|
||||||
|
|
||||||
|
#define EC_curve_nid2nist wolfSSL_EC_curve_nid2nist
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* header */
|
44
wolfssl_hlavickove_subory/wolfssl/openssl/ec25519.h
Normal file
44
wolfssl_hlavickove_subory/wolfssl/openssl/ec25519.h
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/* ec25519.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ec25519.h */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_EC25519_H_
|
||||||
|
#define WOLFSSL_EC25519_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC25519_generate_key(unsigned char *priv, unsigned int *privSz,
|
||||||
|
unsigned char *pub, unsigned int *pubSz);
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_EC25519_shared_key(unsigned char *shared, unsigned int *sharedSz,
|
||||||
|
const unsigned char *priv, unsigned int privSz,
|
||||||
|
const unsigned char *pub, unsigned int pubSz);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* header */
|
49
wolfssl_hlavickove_subory/wolfssl/openssl/ecdh.h
Normal file
49
wolfssl_hlavickove_subory/wolfssl/openssl/ecdh.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/* ecdh.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ecdh.h for openssl */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_ECDH_H_
|
||||||
|
#define WOLFSSL_ECDH_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
#include <wolfssl/openssl/bn.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_ECDH_compute_key(void *out, size_t outlen,
|
||||||
|
const WOLFSSL_EC_POINT *pub_key,
|
||||||
|
WOLFSSL_EC_KEY *ecdh,
|
||||||
|
void *(*KDF) (const void *in,
|
||||||
|
size_t inlen,
|
||||||
|
void *out,
|
||||||
|
size_t *outlen));
|
||||||
|
|
||||||
|
#define ECDH_compute_key wolfSSL_ECDH_compute_key
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern C */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* header */
|
74
wolfssl_hlavickove_subory/wolfssl/openssl/ecdsa.h
Normal file
74
wolfssl_hlavickove_subory/wolfssl/openssl/ecdsa.h
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
/* ecdsa.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ecdsa.h for openssl */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_ECDSA_H_
|
||||||
|
#define WOLFSSL_ECDSA_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/bn.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_ECDSA_TYPE_DEFINED /* guard on redeclaration */
|
||||||
|
typedef struct WOLFSSL_ECDSA_SIG WOLFSSL_ECDSA_SIG;
|
||||||
|
#define WOLFSSL_ECDSA_TYPE_DEFINED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef WOLFSSL_ECDSA_SIG ECDSA_SIG;
|
||||||
|
|
||||||
|
struct WOLFSSL_ECDSA_SIG {
|
||||||
|
WOLFSSL_BIGNUM *r;
|
||||||
|
WOLFSSL_BIGNUM *s;
|
||||||
|
};
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_ECDSA_SIG_free(WOLFSSL_ECDSA_SIG *sig);
|
||||||
|
WOLFSSL_API WOLFSSL_ECDSA_SIG *wolfSSL_ECDSA_SIG_new(void);
|
||||||
|
WOLFSSL_API WOLFSSL_ECDSA_SIG *wolfSSL_ECDSA_do_sign(const unsigned char *dgst,
|
||||||
|
int dgst_len,
|
||||||
|
WOLFSSL_EC_KEY *eckey);
|
||||||
|
WOLFSSL_API int wolfSSL_ECDSA_do_verify(const unsigned char *dgst,
|
||||||
|
int dgst_len,
|
||||||
|
const WOLFSSL_ECDSA_SIG *sig,
|
||||||
|
WOLFSSL_EC_KEY *eckey);
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_ECDSA_SIG *wolfSSL_d2i_ECDSA_SIG(WOLFSSL_ECDSA_SIG **sig,
|
||||||
|
const unsigned char **pp,
|
||||||
|
long len);
|
||||||
|
WOLFSSL_API int wolfSSL_i2d_ECDSA_SIG(const WOLFSSL_ECDSA_SIG *sig,
|
||||||
|
unsigned char **pp);
|
||||||
|
|
||||||
|
#define ECDSA_SIG_free wolfSSL_ECDSA_SIG_free
|
||||||
|
#define ECDSA_SIG_new wolfSSL_ECDSA_SIG_new
|
||||||
|
#define ECDSA_do_sign wolfSSL_ECDSA_do_sign
|
||||||
|
#define ECDSA_do_verify wolfSSL_ECDSA_do_verify
|
||||||
|
#define d2i_ECDSA_SIG wolfSSL_d2i_ECDSA_SIG
|
||||||
|
#define i2d_ECDSA_SIG wolfSSL_i2d_ECDSA_SIG
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* header */
|
||||||
|
|
47
wolfssl_hlavickove_subory/wolfssl/openssl/ed25519.h
Normal file
47
wolfssl_hlavickove_subory/wolfssl/openssl/ed25519.h
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/* ed25519.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ed25519.h */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_ED25519_H_
|
||||||
|
#define WOLFSSL_ED25519_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_ED25519_generate_key(unsigned char *priv, unsigned int *privSz,
|
||||||
|
unsigned char *pub, unsigned int *pubSz);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_ED25519_sign(const unsigned char *msg, unsigned int msgSz,
|
||||||
|
const unsigned char *priv, unsigned int privSz,
|
||||||
|
unsigned char *sig, unsigned int *sigSz);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_ED25519_verify(const unsigned char *msg, unsigned int msgSz,
|
||||||
|
const unsigned char *pub, unsigned int pubSz,
|
||||||
|
const unsigned char *sig, unsigned int sigSz);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* header */
|
8
wolfssl_hlavickove_subory/wolfssl/openssl/engine.h
Normal file
8
wolfssl_hlavickove_subory/wolfssl/openssl/engine.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/* engine.h for libcurl */
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/err.h>
|
||||||
|
|
||||||
|
#undef HAVE_OPENSSL_ENGINE_H
|
||||||
|
|
||||||
|
#define ENGINE_load_builtin_engines() /*ENGINE_load_builtin_engines not needed*/
|
||||||
|
|
51
wolfssl_hlavickove_subory/wolfssl/openssl/err.h
Normal file
51
wolfssl_hlavickove_subory/wolfssl/openssl/err.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/* err.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_OPENSSL_ERR_
|
||||||
|
#define WOLFSSL_OPENSSL_ERR_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
|
||||||
|
/* err.h for openssl */
|
||||||
|
#define ERR_load_crypto_strings wolfSSL_ERR_load_crypto_strings
|
||||||
|
#define ERR_peek_last_error wolfSSL_ERR_peek_last_error
|
||||||
|
|
||||||
|
/* fatal error */
|
||||||
|
#define ERR_R_MALLOC_FAILURE MEMORY_E
|
||||||
|
#define ERR_R_PASSED_NULL_PARAMETER BAD_FUNC_ARG
|
||||||
|
#define ERR_R_DISABLED NOT_COMPILED_IN
|
||||||
|
#define ERR_R_PASSED_INVALID_ARGUMENT BAD_FUNC_ARG
|
||||||
|
#define RSA_R_UNKNOWN_PADDING_TYPE RSA_PAD_E
|
||||||
|
|
||||||
|
/* SSL function codes */
|
||||||
|
#define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 1
|
||||||
|
#define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 2
|
||||||
|
#define SSL_F_SSL_USE_PRIVATEKEY 3
|
||||||
|
|
||||||
|
/* reasons */
|
||||||
|
#define ERR_R_SYS_LIB 1
|
||||||
|
#define PKCS12_R_MAC_VERIFY_FAILURE 2
|
||||||
|
|
||||||
|
#define RSAerr(f,r) ERR_put_error(0,(f),(r),__FILE__,__LINE__)
|
||||||
|
#define SSLerr(f,r) ERR_put_error(0,(f),(r),__FILE__,__LINE__)
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_OPENSSL_ERR_ */
|
||||||
|
|
745
wolfssl_hlavickove_subory/wolfssl/openssl/evp.h
Normal file
745
wolfssl_hlavickove_subory/wolfssl/openssl/evp.h
Normal file
@ -0,0 +1,745 @@
|
|||||||
|
/* evp.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\file wolfssl/openssl/evp.h
|
||||||
|
\brief evp.h defines mini evp openssl compatibility layer
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_EVP_H_
|
||||||
|
#define WOLFSSL_EVP_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_PREFIX
|
||||||
|
#include "prefix_evp.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_MD4
|
||||||
|
#include <wolfssl/openssl/md4.h>
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MD5
|
||||||
|
#include <wolfssl/openssl/md5.h>
|
||||||
|
#endif
|
||||||
|
#include <wolfssl/openssl/sha.h>
|
||||||
|
#include <wolfssl/openssl/ripemd.h>
|
||||||
|
#include <wolfssl/openssl/rsa.h>
|
||||||
|
#include <wolfssl/openssl/dsa.h>
|
||||||
|
#include <wolfssl/openssl/ec.h>
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/aes.h>
|
||||||
|
#include <wolfssl/wolfcrypt/des3.h>
|
||||||
|
#include <wolfssl/wolfcrypt/arc4.h>
|
||||||
|
#include <wolfssl/wolfcrypt/hmac.h>
|
||||||
|
#ifdef HAVE_IDEA
|
||||||
|
#include <wolfssl/wolfcrypt/idea.h>
|
||||||
|
#endif
|
||||||
|
#include <wolfssl/wolfcrypt/pwdbased.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef char WOLFSSL_EVP_CIPHER;
|
||||||
|
#ifndef WOLFSSL_EVP_TYPE_DEFINED /* guard on redeclaration */
|
||||||
|
typedef char WOLFSSL_EVP_MD;
|
||||||
|
typedef struct WOLFSSL_EVP_PKEY WOLFSSL_EVP_PKEY;
|
||||||
|
#define WOLFSSL_EVP_TYPE_DEFINED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef WOLFSSL_EVP_PKEY EVP_PKEY;
|
||||||
|
typedef WOLFSSL_EVP_PKEY PKCS8_PRIV_KEY_INFO;
|
||||||
|
|
||||||
|
#ifndef NO_MD4
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_md4(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MD5
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_md5(void);
|
||||||
|
#endif
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_sha1(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_sha224(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_sha256(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_sha384(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_sha512(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_ripemd160(void);
|
||||||
|
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_ecb(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_ecb(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_ecb(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_cbc(void);
|
||||||
|
#if !defined(NO_AES) && defined(HAVE_AES_CBC)
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_cbc(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_cbc(void);
|
||||||
|
#endif
|
||||||
|
#if !defined(NO_AES) && defined(HAVE_AESGCM)
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_gcm(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_gcm(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_gcm(void);
|
||||||
|
#endif
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_ctr(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_ctr(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_ctr(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_ecb(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_ede3_ecb(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_cbc(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_ede3_cbc(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_rc4(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_idea_cbc(void);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_enc_null(void);
|
||||||
|
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
#ifndef NO_MD4
|
||||||
|
WOLFSSL_MD4_CTX md4;
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MD5
|
||||||
|
WOLFSSL_MD5_CTX md5;
|
||||||
|
#endif
|
||||||
|
WOLFSSL_SHA_CTX sha;
|
||||||
|
#ifdef WOLFSSL_SHA224
|
||||||
|
WOLFSSL_SHA224_CTX sha224;
|
||||||
|
#endif
|
||||||
|
WOLFSSL_SHA256_CTX sha256;
|
||||||
|
#ifdef WOLFSSL_SHA384
|
||||||
|
WOLFSSL_SHA384_CTX sha384;
|
||||||
|
#endif
|
||||||
|
#ifdef WOLFSSL_SHA512
|
||||||
|
WOLFSSL_SHA512_CTX sha512;
|
||||||
|
#endif
|
||||||
|
#ifdef WOLFSSL_RIPEMD
|
||||||
|
WOLFSSL_RIPEMD_CTX ripemd;
|
||||||
|
#endif
|
||||||
|
} WOLFSSL_Hasher;
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_EVP_PKEY_CTX WOLFSSL_EVP_PKEY_CTX;
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_EVP_MD_CTX {
|
||||||
|
union {
|
||||||
|
WOLFSSL_Hasher digest;
|
||||||
|
Hmac hmac;
|
||||||
|
} hash;
|
||||||
|
unsigned char macType;
|
||||||
|
WOLFSSL_EVP_PKEY_CTX *pctx;
|
||||||
|
} WOLFSSL_EVP_MD_CTX;
|
||||||
|
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
#ifndef NO_AES
|
||||||
|
Aes aes;
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DES3
|
||||||
|
Des des;
|
||||||
|
Des3 des3;
|
||||||
|
#endif
|
||||||
|
Arc4 arc4;
|
||||||
|
#ifdef HAVE_IDEA
|
||||||
|
Idea idea;
|
||||||
|
#endif
|
||||||
|
} WOLFSSL_Cipher;
|
||||||
|
|
||||||
|
|
||||||
|
enum {
|
||||||
|
AES_128_CBC_TYPE = 1,
|
||||||
|
AES_192_CBC_TYPE = 2,
|
||||||
|
AES_256_CBC_TYPE = 3,
|
||||||
|
AES_128_CTR_TYPE = 4,
|
||||||
|
AES_192_CTR_TYPE = 5,
|
||||||
|
AES_256_CTR_TYPE = 6,
|
||||||
|
AES_128_ECB_TYPE = 7,
|
||||||
|
AES_192_ECB_TYPE = 8,
|
||||||
|
AES_256_ECB_TYPE = 9,
|
||||||
|
DES_CBC_TYPE = 10,
|
||||||
|
DES_ECB_TYPE = 11,
|
||||||
|
DES_EDE3_CBC_TYPE = 12,
|
||||||
|
DES_EDE3_ECB_TYPE = 13,
|
||||||
|
ARC4_TYPE = 14,
|
||||||
|
NULL_CIPHER_TYPE = 15,
|
||||||
|
EVP_PKEY_RSA = 16,
|
||||||
|
EVP_PKEY_DSA = 17,
|
||||||
|
EVP_PKEY_EC = 18,
|
||||||
|
#ifdef HAVE_IDEA
|
||||||
|
IDEA_CBC_TYPE = 19,
|
||||||
|
#endif
|
||||||
|
AES_128_GCM_TYPE = 21,
|
||||||
|
AES_192_GCM_TYPE = 22,
|
||||||
|
AES_256_GCM_TYPE = 23,
|
||||||
|
NID_sha1 = 64,
|
||||||
|
NID_sha224 = 65,
|
||||||
|
NID_md2 = 77,
|
||||||
|
NID_md5 = 4,
|
||||||
|
NID_hmac = 855,
|
||||||
|
NID_dhKeyAgreement= 28,
|
||||||
|
EVP_PKEY_DH = NID_dhKeyAgreement,
|
||||||
|
EVP_PKEY_HMAC = NID_hmac
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NID_md5WithRSA = 104,
|
||||||
|
NID_md5WithRSAEncryption = 8,
|
||||||
|
NID_dsaWithSHA1 = 113,
|
||||||
|
NID_dsaWithSHA1_2 = 70,
|
||||||
|
NID_sha1WithRSA = 115,
|
||||||
|
NID_sha1WithRSAEncryption = 65,
|
||||||
|
NID_sha224WithRSAEncryption = 671,
|
||||||
|
NID_sha256WithRSAEncryption = 668,
|
||||||
|
NID_sha384WithRSAEncryption = 669,
|
||||||
|
NID_sha512WithRSAEncryption = 670,
|
||||||
|
NID_ecdsa_with_SHA1 = 416,
|
||||||
|
NID_ecdsa_with_SHA224 = 793,
|
||||||
|
NID_ecdsa_with_SHA256 = 794,
|
||||||
|
NID_ecdsa_with_SHA384 = 795,
|
||||||
|
NID_ecdsa_with_SHA512 = 796,
|
||||||
|
NID_dsa_with_SHA224 = 802,
|
||||||
|
NID_dsa_with_SHA256 = 803,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NID_aes_128_cbc = 419,
|
||||||
|
NID_aes_192_cbc = 423,
|
||||||
|
NID_aes_256_cbc = 427,
|
||||||
|
NID_aes_128_gcm = 895,
|
||||||
|
NID_aes_192_gcm = 898,
|
||||||
|
NID_aes_256_gcm = 901,
|
||||||
|
NID_aes_128_ctr = 904,
|
||||||
|
NID_aes_192_ctr = 905,
|
||||||
|
NID_aes_256_ctr = 906,
|
||||||
|
NID_aes_128_ecb = 418,
|
||||||
|
NID_aes_192_ecb = 422,
|
||||||
|
NID_aes_256_ecb = 426,
|
||||||
|
NID_des_cbc = 31,
|
||||||
|
NID_des_ecb = 29,
|
||||||
|
NID_des_ede3_cbc= 44,
|
||||||
|
NID_des_ede3_ecb= 33,
|
||||||
|
NID_idea_cbc = 34,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define WOLFSSL_EVP_BUF_SIZE 16
|
||||||
|
typedef struct WOLFSSL_EVP_CIPHER_CTX {
|
||||||
|
int keyLen; /* user may set for variable */
|
||||||
|
int block_size;
|
||||||
|
unsigned long flags;
|
||||||
|
unsigned char enc; /* if encrypt side, then true */
|
||||||
|
unsigned char cipherType;
|
||||||
|
#ifndef NO_AES
|
||||||
|
/* working iv pointer into cipher */
|
||||||
|
ALIGN16 unsigned char iv[AES_BLOCK_SIZE];
|
||||||
|
#elif !defined(NO_DES3)
|
||||||
|
/* working iv pointer into cipher */
|
||||||
|
ALIGN16 unsigned char iv[DES_BLOCK_SIZE];
|
||||||
|
#endif
|
||||||
|
WOLFSSL_Cipher cipher;
|
||||||
|
ALIGN16 byte buf[WOLFSSL_EVP_BUF_SIZE];
|
||||||
|
int bufUsed;
|
||||||
|
ALIGN16 byte lastBlock[WOLFSSL_EVP_BUF_SIZE];
|
||||||
|
int lastUsed;
|
||||||
|
#if defined(HAVE_AESGCM)
|
||||||
|
int ivSz;
|
||||||
|
ALIGN16 unsigned char authTag[AES_BLOCK_SIZE];
|
||||||
|
int authTagSz;
|
||||||
|
#endif
|
||||||
|
} WOLFSSL_EVP_CIPHER_CTX;
|
||||||
|
|
||||||
|
struct WOLFSSL_EVP_PKEY_CTX {
|
||||||
|
WOLFSSL_EVP_PKEY *pkey;
|
||||||
|
int op; /* operation */
|
||||||
|
int padding;
|
||||||
|
int nbits;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef int WOLFSSL_ENGINE ;
|
||||||
|
typedef WOLFSSL_ENGINE ENGINE;
|
||||||
|
typedef WOLFSSL_EVP_PKEY_CTX EVP_PKEY_CTX;
|
||||||
|
|
||||||
|
#define EVP_PKEY_OP_SIGN (1 << 3)
|
||||||
|
#define EVP_PKEY_OP_ENCRYPT (1 << 6)
|
||||||
|
#define EVP_PKEY_OP_DECRYPT (1 << 7)
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_EVP_init(void);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_MD_size(const WOLFSSL_EVP_MD* md);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_MD_block_size(const WOLFSSL_EVP_MD *md);
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_EVP_MD_CTX *wolfSSL_EVP_MD_CTX_new (void);
|
||||||
|
WOLFSSL_API void wolfSSL_EVP_MD_CTX_free(WOLFSSL_EVP_MD_CTX* ctx);
|
||||||
|
WOLFSSL_API void wolfSSL_EVP_MD_CTX_init(WOLFSSL_EVP_MD_CTX* ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_MD_CTX_cleanup(WOLFSSL_EVP_MD_CTX* ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_MD_CTX_copy(WOLFSSL_EVP_MD_CTX *out, const WOLFSSL_EVP_MD_CTX *in);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_MD_CTX_copy_ex(WOLFSSL_EVP_MD_CTX *out, const WOLFSSL_EVP_MD_CTX *in);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_MD_CTX_type(const WOLFSSL_EVP_MD_CTX *ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_MD_CTX_size(const WOLFSSL_EVP_MD_CTX *ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_MD_CTX_block_size(const WOLFSSL_EVP_MD_CTX *ctx);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD *wolfSSL_EVP_MD_CTX_md(const WOLFSSL_EVP_MD_CTX *ctx);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER *wolfSSL_EVP_get_cipherbyname(const char *name);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD *wolfSSL_EVP_get_digestbyname(const char *name);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_nid(const WOLFSSL_EVP_CIPHER *cipher);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestInit(WOLFSSL_EVP_MD_CTX* ctx,
|
||||||
|
const WOLFSSL_EVP_MD* type);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestInit_ex(WOLFSSL_EVP_MD_CTX* ctx,
|
||||||
|
const WOLFSSL_EVP_MD* type,
|
||||||
|
WOLFSSL_ENGINE *impl);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestUpdate(WOLFSSL_EVP_MD_CTX* ctx, const void* data,
|
||||||
|
size_t sz);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestFinal(WOLFSSL_EVP_MD_CTX* ctx, unsigned char* md,
|
||||||
|
unsigned int* s);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestFinal_ex(WOLFSSL_EVP_MD_CTX* ctx,
|
||||||
|
unsigned char* md, unsigned int* s);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestSignInit(WOLFSSL_EVP_MD_CTX *ctx,
|
||||||
|
WOLFSSL_EVP_PKEY_CTX **pctx,
|
||||||
|
const WOLFSSL_EVP_MD *type,
|
||||||
|
WOLFSSL_ENGINE *e,
|
||||||
|
WOLFSSL_EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestSignUpdate(WOLFSSL_EVP_MD_CTX *ctx,
|
||||||
|
const void *d, unsigned int cnt);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestSignFinal(WOLFSSL_EVP_MD_CTX *ctx,
|
||||||
|
unsigned char *sig, size_t *siglen);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestVerifyInit(WOLFSSL_EVP_MD_CTX *ctx,
|
||||||
|
WOLFSSL_EVP_PKEY_CTX **pctx,
|
||||||
|
const WOLFSSL_EVP_MD *type,
|
||||||
|
WOLFSSL_ENGINE *e,
|
||||||
|
WOLFSSL_EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestVerifyUpdate(WOLFSSL_EVP_MD_CTX *ctx,
|
||||||
|
const void *d, size_t cnt);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DigestVerifyFinal(WOLFSSL_EVP_MD_CTX *ctx,
|
||||||
|
const unsigned char *sig,
|
||||||
|
size_t siglen);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_Digest(const unsigned char* in, int inSz, unsigned char* out,
|
||||||
|
unsigned int* outSz, const WOLFSSL_EVP_MD* evp,
|
||||||
|
WOLFSSL_ENGINE* eng);
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_BytesToKey(const WOLFSSL_EVP_CIPHER*,
|
||||||
|
const WOLFSSL_EVP_MD*, const unsigned char*,
|
||||||
|
const unsigned char*, int, int, unsigned char*,
|
||||||
|
unsigned char*);
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_EVP_CIPHER_CTX_init(WOLFSSL_EVP_CIPHER_CTX* ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_cleanup(WOLFSSL_EVP_CIPHER_CTX* ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_ctrl(WOLFSSL_EVP_CIPHER_CTX *ctx, \
|
||||||
|
int type, int arg, void *ptr);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_iv_length(const WOLFSSL_EVP_CIPHER_CTX*);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_iv_length(const WOLFSSL_EVP_CIPHER*);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_Cipher_key_length(const WOLFSSL_EVP_CIPHER* c);
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CipherInit(WOLFSSL_EVP_CIPHER_CTX* ctx,
|
||||||
|
const WOLFSSL_EVP_CIPHER* type,
|
||||||
|
const unsigned char* key,
|
||||||
|
const unsigned char* iv,
|
||||||
|
int enc);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CipherInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx,
|
||||||
|
const WOLFSSL_EVP_CIPHER* type,
|
||||||
|
WOLFSSL_ENGINE *impl,
|
||||||
|
const unsigned char* key,
|
||||||
|
const unsigned char* iv,
|
||||||
|
int enc);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_EncryptInit(WOLFSSL_EVP_CIPHER_CTX* ctx,
|
||||||
|
const WOLFSSL_EVP_CIPHER* type,
|
||||||
|
const unsigned char* key,
|
||||||
|
const unsigned char* iv);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_EncryptInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx,
|
||||||
|
const WOLFSSL_EVP_CIPHER* type,
|
||||||
|
WOLFSSL_ENGINE *impl,
|
||||||
|
const unsigned char* key,
|
||||||
|
const unsigned char* iv);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DecryptInit(WOLFSSL_EVP_CIPHER_CTX* ctx,
|
||||||
|
const WOLFSSL_EVP_CIPHER* type,
|
||||||
|
const unsigned char* key,
|
||||||
|
const unsigned char* iv);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DecryptInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx,
|
||||||
|
const WOLFSSL_EVP_CIPHER* type,
|
||||||
|
WOLFSSL_ENGINE *impl,
|
||||||
|
const unsigned char* key,
|
||||||
|
const unsigned char* iv);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CipherUpdate(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
||||||
|
unsigned char *out, int *outl,
|
||||||
|
const unsigned char *in, int inl);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CipherFinal(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
||||||
|
unsigned char *out, int *outl);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CipherFinal_ex(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
||||||
|
unsigned char *out, int *outl, int enc);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_EncryptFinal(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
||||||
|
unsigned char *out, int *outl);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_EncryptFinal_ex(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
||||||
|
unsigned char *out, int *outl);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DecryptFinal(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
||||||
|
unsigned char *out, int *outl);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DecryptFinal_ex(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
||||||
|
unsigned char *out, int *outl);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_DecryptFinal_legacy(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
||||||
|
unsigned char *out, int *outl);
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_EVP_CIPHER_CTX *wolfSSL_EVP_CIPHER_CTX_new(void);
|
||||||
|
WOLFSSL_API void wolfSSL_EVP_CIPHER_CTX_free(WOLFSSL_EVP_CIPHER_CTX *ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_key_length(WOLFSSL_EVP_CIPHER_CTX* ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_set_key_length(WOLFSSL_EVP_CIPHER_CTX* ctx,
|
||||||
|
int keylen);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_set_iv_length(WOLFSSL_EVP_CIPHER_CTX* ctx,
|
||||||
|
int ivLen);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_Cipher(WOLFSSL_EVP_CIPHER_CTX* ctx,
|
||||||
|
unsigned char* dst, unsigned char* src,
|
||||||
|
unsigned int len);
|
||||||
|
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_get_cipherbynid(int);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_MD* wolfSSL_EVP_get_digestbynid(int);
|
||||||
|
WOLFSSL_API const WOLFSSL_EVP_CIPHER *wolfSSL_EVP_CIPHER_CTX_cipher(const WOLFSSL_EVP_CIPHER_CTX *ctx);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_assign_RSA(WOLFSSL_EVP_PKEY* pkey,
|
||||||
|
WOLFSSL_RSA* key);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_assign_EC_KEY(WOLFSSL_EVP_PKEY* pkey,
|
||||||
|
WOLFSSL_EC_KEY* key);
|
||||||
|
WOLFSSL_API WOLFSSL_RSA* wolfSSL_EVP_PKEY_get0_RSA(struct WOLFSSL_EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API WOLFSSL_RSA* wolfSSL_EVP_PKEY_get1_RSA(WOLFSSL_EVP_PKEY*);
|
||||||
|
WOLFSSL_API WOLFSSL_DSA* wolfSSL_EVP_PKEY_get1_DSA(WOLFSSL_EVP_PKEY*);
|
||||||
|
WOLFSSL_API WOLFSSL_EC_KEY *wolfSSL_EVP_PKEY_get0_EC_KEY(WOLFSSL_EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API WOLFSSL_EC_KEY *wolfSSL_EVP_PKEY_get1_EC_KEY(WOLFSSL_EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_set1_RSA(WOLFSSL_EVP_PKEY *pkey, WOLFSSL_RSA *key);
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_EVP_PKEY* wolfSSL_EVP_PKEY_new_mac_key(int type, ENGINE* e,
|
||||||
|
const unsigned char* key, int keylen);
|
||||||
|
WOLFSSL_API const unsigned char* wolfSSL_EVP_PKEY_get0_hmac(const WOLFSSL_EVP_PKEY* pkey,
|
||||||
|
size_t* len);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_sign_init(WOLFSSL_EVP_PKEY_CTX *ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_sign(WOLFSSL_EVP_PKEY_CTX *ctx,
|
||||||
|
unsigned char *sig, size_t *siglen, const unsigned char *tbs, size_t tbslen);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_keygen_init(WOLFSSL_EVP_PKEY_CTX *ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_keygen(WOLFSSL_EVP_PKEY_CTX *ctx,
|
||||||
|
WOLFSSL_EVP_PKEY **ppkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_bits(const WOLFSSL_EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_CTX_free(WOLFSSL_EVP_PKEY_CTX *ctx);
|
||||||
|
WOLFSSL_API WOLFSSL_EVP_PKEY_CTX *wolfSSL_EVP_PKEY_CTX_new(WOLFSSL_EVP_PKEY *pkey, WOLFSSL_ENGINE *e);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_CTX_set_rsa_padding(WOLFSSL_EVP_PKEY_CTX *ctx, int padding);
|
||||||
|
WOLFSSL_API WOLFSSL_EVP_PKEY_CTX *wolfSSL_EVP_PKEY_CTX_new_id(int id, WOLFSSL_ENGINE *e);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_CTX_set_rsa_keygen_bits(WOLFSSL_EVP_PKEY_CTX *ctx, int bits);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_decrypt(WOLFSSL_EVP_PKEY_CTX *ctx,
|
||||||
|
unsigned char *out, size_t *outlen,
|
||||||
|
const unsigned char *in, size_t inlen);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_decrypt_init(WOLFSSL_EVP_PKEY_CTX *ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_encrypt(WOLFSSL_EVP_PKEY_CTX *ctx,
|
||||||
|
unsigned char *out, size_t *outlen,
|
||||||
|
const unsigned char *in, size_t inlen);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_encrypt_init(WOLFSSL_EVP_PKEY_CTX *ctx);
|
||||||
|
WOLFSSL_API WOLFSSL_EVP_PKEY *wolfSSL_EVP_PKEY_new(void);
|
||||||
|
WOLFSSL_API void wolfSSL_EVP_PKEY_free(WOLFSSL_EVP_PKEY*);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_size(WOLFSSL_EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_missing_parameters(WOLFSSL_EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_cmp(const WOLFSSL_EVP_PKEY *a, const WOLFSSL_EVP_PKEY *b);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_type(int type);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_id(const EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_PKEY_base_id(const EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_SignFinal(WOLFSSL_EVP_MD_CTX *ctx, unsigned char *sigret,
|
||||||
|
unsigned int *siglen, WOLFSSL_EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_SignInit(WOLFSSL_EVP_MD_CTX *ctx, const WOLFSSL_EVP_MD *type);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_SignInit_ex(WOLFSSL_EVP_MD_CTX* ctx,
|
||||||
|
const WOLFSSL_EVP_MD* type,
|
||||||
|
WOLFSSL_ENGINE *impl);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_SignUpdate(WOLFSSL_EVP_MD_CTX *ctx, const void *data, size_t len);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_VerifyFinal(WOLFSSL_EVP_MD_CTX *ctx,
|
||||||
|
unsigned char* sig, unsigned int sig_len, WOLFSSL_EVP_PKEY *pkey);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_VerifyInit(WOLFSSL_EVP_MD_CTX *ctx, const WOLFSSL_EVP_MD *type);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_VerifyUpdate(WOLFSSL_EVP_MD_CTX *ctx, const void *data, size_t len);
|
||||||
|
|
||||||
|
|
||||||
|
/* these next ones don't need real OpenSSL type, for OpenSSH compat only */
|
||||||
|
WOLFSSL_API void* wolfSSL_EVP_X_STATE(const WOLFSSL_EVP_CIPHER_CTX* ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_X_STATE_LEN(const WOLFSSL_EVP_CIPHER_CTX* ctx);
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_3des_iv(WOLFSSL_EVP_CIPHER_CTX* ctx, int doset,
|
||||||
|
unsigned char* iv, int len);
|
||||||
|
WOLFSSL_API void wolfSSL_aes_ctr_iv(WOLFSSL_EVP_CIPHER_CTX* ctx, int doset,
|
||||||
|
unsigned char* iv, int len);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_StoreExternalIV(WOLFSSL_EVP_CIPHER_CTX* ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_SetInternalIV(WOLFSSL_EVP_CIPHER_CTX* ctx);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_block_size(const WOLFSSL_EVP_CIPHER_CTX *ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_block_size(const WOLFSSL_EVP_CIPHER *cipher);
|
||||||
|
WOLFSSL_API unsigned long WOLFSSL_EVP_CIPHER_mode(const WOLFSSL_EVP_CIPHER *cipher);
|
||||||
|
WOLFSSL_API unsigned long WOLFSSL_CIPHER_mode(const WOLFSSL_EVP_CIPHER *cipher);
|
||||||
|
WOLFSSL_API unsigned long wolfSSL_EVP_CIPHER_flags(const WOLFSSL_EVP_CIPHER *cipher);
|
||||||
|
WOLFSSL_API void wolfSSL_EVP_CIPHER_CTX_set_flags(WOLFSSL_EVP_CIPHER_CTX *ctx, int flags);
|
||||||
|
WOLFSSL_API void wolfSSL_EVP_CIPHER_CTX_clear_flags(WOLFSSL_EVP_CIPHER_CTX *ctx, int flags);
|
||||||
|
WOLFSSL_API unsigned long wolfSSL_EVP_CIPHER_CTX_mode(const WOLFSSL_EVP_CIPHER_CTX *ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_set_padding(WOLFSSL_EVP_CIPHER_CTX *c, int pad);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_add_digest(const WOLFSSL_EVP_MD *digest);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_add_cipher(const WOLFSSL_EVP_CIPHER *cipher);
|
||||||
|
WOLFSSL_API void wolfSSL_EVP_cleanup(void);
|
||||||
|
WOLFSSL_API int wolfSSL_add_all_algorithms(void);
|
||||||
|
WOLFSSL_API int wolfSSL_OpenSSL_add_all_algorithms_noconf(void);
|
||||||
|
WOLFSSL_API int wolfSSL_EVP_read_pw_string(char*, int, const char*, int);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_PKCS5_PBKDF2_HMAC_SHA1(const char * pass, int passlen,
|
||||||
|
const unsigned char * salt,
|
||||||
|
int saltlen, int iter,
|
||||||
|
int keylen, unsigned char *out);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_PKCS5_PBKDF2_HMAC(const char *pass, int passlen,
|
||||||
|
const unsigned char *salt,
|
||||||
|
int saltlen, int iter,
|
||||||
|
const WOLFSSL_EVP_MD *digest,
|
||||||
|
int keylen, unsigned char *out);
|
||||||
|
#define EVP_CIPH_STREAM_CIPHER WOLFSSL_EVP_CIPH_STREAM_CIPHER
|
||||||
|
#define EVP_CIPH_ECB_MODE WOLFSSL_EVP_CIPH_ECB_MODE
|
||||||
|
#define EVP_CIPH_CBC_MODE WOLFSSL_EVP_CIPH_CBC_MODE
|
||||||
|
#define EVP_CIPH_CFB_MODE WOLFSSL_EVP_CIPH_CFB_MODE
|
||||||
|
#define EVP_CIPH_OFB_MODE WOLFSSL_EVP_CIPH_OFB_MODE
|
||||||
|
#define EVP_CIPH_CTR_MODE WOLFSSL_EVP_CIPH_CTR_MODE
|
||||||
|
#define EVP_CIPH_GCM_MODE WOLFSSL_EVP_CIPH_GCM_MODE
|
||||||
|
#define EVP_CIPH_CCM_MODE WOLFSSL_EVP_CIPH_CCM_MODE
|
||||||
|
|
||||||
|
#define WOLFSSL_EVP_CIPH_MODE 0x0007
|
||||||
|
#define WOLFSSL_EVP_CIPH_STREAM_CIPHER 0x0
|
||||||
|
#define WOLFSSL_EVP_CIPH_ECB_MODE 0x1
|
||||||
|
#define WOLFSSL_EVP_CIPH_CBC_MODE 0x2
|
||||||
|
#define WOLFSSL_EVP_CIPH_CFB_MODE 0x3
|
||||||
|
#define WOLFSSL_EVP_CIPH_OFB_MODE 0x4
|
||||||
|
#define WOLFSSL_EVP_CIPH_CTR_MODE 0x5
|
||||||
|
#define WOLFSSL_EVP_CIPH_GCM_MODE 0x6
|
||||||
|
#define WOLFSSL_EVP_CIPH_CCM_MODE 0x7
|
||||||
|
#define WOLFSSL_EVP_CIPH_NO_PADDING 0x100
|
||||||
|
#define EVP_CIPH_VARIABLE_LENGTH 0x200
|
||||||
|
#define WOLFSSL_EVP_CIPH_TYPE_INIT 0xff
|
||||||
|
|
||||||
|
/* end OpenSSH compat */
|
||||||
|
|
||||||
|
typedef WOLFSSL_EVP_MD EVP_MD;
|
||||||
|
typedef WOLFSSL_EVP_CIPHER EVP_CIPHER;
|
||||||
|
typedef WOLFSSL_EVP_MD_CTX EVP_MD_CTX;
|
||||||
|
typedef WOLFSSL_EVP_CIPHER_CTX EVP_CIPHER_CTX;
|
||||||
|
|
||||||
|
#ifndef NO_MD4
|
||||||
|
#define EVP_md4 wolfSSL_EVP_md4
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MD5
|
||||||
|
#define EVP_md5 wolfSSL_EVP_md5
|
||||||
|
#endif
|
||||||
|
#define EVP_sha1 wolfSSL_EVP_sha1
|
||||||
|
#define EVP_dds1 wolfSSL_EVP_sha1
|
||||||
|
#define EVP_sha224 wolfSSL_EVP_sha224
|
||||||
|
#define EVP_sha256 wolfSSL_EVP_sha256
|
||||||
|
#define EVP_sha384 wolfSSL_EVP_sha384
|
||||||
|
#define EVP_sha512 wolfSSL_EVP_sha512
|
||||||
|
#define EVP_ripemd160 wolfSSL_EVP_ripemd160
|
||||||
|
|
||||||
|
#define EVP_aes_128_cbc wolfSSL_EVP_aes_128_cbc
|
||||||
|
#define EVP_aes_192_cbc wolfSSL_EVP_aes_192_cbc
|
||||||
|
#define EVP_aes_256_cbc wolfSSL_EVP_aes_256_cbc
|
||||||
|
#define EVP_aes_128_gcm wolfSSL_EVP_aes_128_gcm
|
||||||
|
#define EVP_aes_192_gcm wolfSSL_EVP_aes_192_gcm
|
||||||
|
#define EVP_aes_256_gcm wolfSSL_EVP_aes_256_gcm
|
||||||
|
#define EVP_aes_128_ecb wolfSSL_EVP_aes_128_ecb
|
||||||
|
#define EVP_aes_192_ecb wolfSSL_EVP_aes_192_ecb
|
||||||
|
#define EVP_aes_256_ecb wolfSSL_EVP_aes_256_ecb
|
||||||
|
#define EVP_aes_128_ctr wolfSSL_EVP_aes_128_ctr
|
||||||
|
#define EVP_aes_192_ctr wolfSSL_EVP_aes_192_ctr
|
||||||
|
#define EVP_aes_256_ctr wolfSSL_EVP_aes_256_ctr
|
||||||
|
#define EVP_des_cbc wolfSSL_EVP_des_cbc
|
||||||
|
#define EVP_des_ecb wolfSSL_EVP_des_ecb
|
||||||
|
#define EVP_des_ede3_cbc wolfSSL_EVP_des_ede3_cbc
|
||||||
|
#define EVP_des_ede3_ecb wolfSSL_EVP_des_ede3_ecb
|
||||||
|
#define EVP_rc4 wolfSSL_EVP_rc4
|
||||||
|
#define EVP_idea_cbc wolfSSL_EVP_idea_cbc
|
||||||
|
#define EVP_enc_null wolfSSL_EVP_enc_null
|
||||||
|
|
||||||
|
#define EVP_MD_size wolfSSL_EVP_MD_size
|
||||||
|
#define EVP_MD_CTX_new wolfSSL_EVP_MD_CTX_new
|
||||||
|
#define EVP_MD_CTX_create wolfSSL_EVP_MD_CTX_new
|
||||||
|
#define EVP_MD_CTX_free wolfSSL_EVP_MD_CTX_free
|
||||||
|
#define EVP_MD_CTX_destroy wolfSSL_EVP_MD_CTX_free
|
||||||
|
#define EVP_MD_CTX_init wolfSSL_EVP_MD_CTX_init
|
||||||
|
#define EVP_MD_CTX_cleanup wolfSSL_EVP_MD_CTX_cleanup
|
||||||
|
#define EVP_MD_CTX_md wolfSSL_EVP_MD_CTX_md
|
||||||
|
#define EVP_MD_CTX_type wolfSSL_EVP_MD_CTX_type
|
||||||
|
#define EVP_MD_CTX_size wolfSSL_EVP_MD_CTX_size
|
||||||
|
#define EVP_MD_CTX_block_size wolfSSL_EVP_MD_CTX_block_size
|
||||||
|
#define EVP_MD_type wolfSSL_EVP_MD_type
|
||||||
|
|
||||||
|
#define EVP_Digest wolfSSL_EVP_Digest
|
||||||
|
#define EVP_DigestInit wolfSSL_EVP_DigestInit
|
||||||
|
#define EVP_DigestInit_ex wolfSSL_EVP_DigestInit_ex
|
||||||
|
#define EVP_DigestUpdate wolfSSL_EVP_DigestUpdate
|
||||||
|
#define EVP_DigestFinal wolfSSL_EVP_DigestFinal
|
||||||
|
#define EVP_DigestFinal_ex wolfSSL_EVP_DigestFinal_ex
|
||||||
|
#define EVP_DigestSignInit wolfSSL_EVP_DigestSignInit
|
||||||
|
#define EVP_DigestSignUpdate wolfSSL_EVP_DigestSignUpdate
|
||||||
|
#define EVP_DigestSignFinal wolfSSL_EVP_DigestSignFinal
|
||||||
|
#define EVP_DigestVerifyInit wolfSSL_EVP_DigestVerifyInit
|
||||||
|
#define EVP_DigestVerifyUpdate wolfSSL_EVP_DigestVerifyUpdate
|
||||||
|
#define EVP_DigestVerifyFinal wolfSSL_EVP_DigestVerifyFinal
|
||||||
|
#define EVP_BytesToKey wolfSSL_EVP_BytesToKey
|
||||||
|
|
||||||
|
#define EVP_get_cipherbyname wolfSSL_EVP_get_cipherbyname
|
||||||
|
#define EVP_get_digestbyname wolfSSL_EVP_get_digestbyname
|
||||||
|
|
||||||
|
#define EVP_CIPHER_CTX_init wolfSSL_EVP_CIPHER_CTX_init
|
||||||
|
#define EVP_CIPHER_CTX_cleanup wolfSSL_EVP_CIPHER_CTX_cleanup
|
||||||
|
#define EVP_CIPHER_CTX_iv_length wolfSSL_EVP_CIPHER_CTX_iv_length
|
||||||
|
#define EVP_CIPHER_CTX_key_length wolfSSL_EVP_CIPHER_CTX_key_length
|
||||||
|
#define EVP_CIPHER_CTX_set_key_length wolfSSL_EVP_CIPHER_CTX_set_key_length
|
||||||
|
#define EVP_CIPHER_CTX_mode wolfSSL_EVP_CIPHER_CTX_mode
|
||||||
|
#define EVP_CIPHER_CTX_cipher wolfSSL_EVP_CIPHER_CTX_cipher
|
||||||
|
|
||||||
|
#define EVP_CIPHER_iv_length wolfSSL_EVP_CIPHER_iv_length
|
||||||
|
#define EVP_CIPHER_key_length wolfSSL_EVP_Cipher_key_length
|
||||||
|
|
||||||
|
#define EVP_CipherInit wolfSSL_EVP_CipherInit
|
||||||
|
#define EVP_CipherInit_ex wolfSSL_EVP_CipherInit_ex
|
||||||
|
#define EVP_EncryptInit wolfSSL_EVP_EncryptInit
|
||||||
|
#define EVP_EncryptInit_ex wolfSSL_EVP_EncryptInit_ex
|
||||||
|
#define EVP_DecryptInit wolfSSL_EVP_DecryptInit
|
||||||
|
#define EVP_DecryptInit_ex wolfSSL_EVP_DecryptInit_ex
|
||||||
|
|
||||||
|
#define EVP_Cipher wolfSSL_EVP_Cipher
|
||||||
|
#define EVP_CipherUpdate wolfSSL_EVP_CipherUpdate
|
||||||
|
#define EVP_EncryptUpdate wolfSSL_EVP_CipherUpdate
|
||||||
|
#define EVP_DecryptUpdate wolfSSL_EVP_CipherUpdate
|
||||||
|
#define EVP_CipherFinal wolfSSL_EVP_CipherFinal
|
||||||
|
#define EVP_CipherFinal_ex wolfSSL_EVP_CipherFinal
|
||||||
|
#define EVP_EncryptFinal wolfSSL_EVP_CipherFinal
|
||||||
|
#define EVP_EncryptFinal_ex wolfSSL_EVP_CipherFinal
|
||||||
|
#define EVP_DecryptFinal wolfSSL_EVP_CipherFinal
|
||||||
|
#define EVP_DecryptFinal_ex wolfSSL_EVP_CipherFinal
|
||||||
|
|
||||||
|
#define EVP_CIPHER_CTX_free wolfSSL_EVP_CIPHER_CTX_free
|
||||||
|
#define EVP_CIPHER_CTX_new wolfSSL_EVP_CIPHER_CTX_new
|
||||||
|
|
||||||
|
#define EVP_get_cipherbynid wolfSSL_EVP_get_cipherbynid
|
||||||
|
#define EVP_get_digestbynid wolfSSL_EVP_get_digestbynid
|
||||||
|
#define EVP_get_cipherbyname wolfSSL_EVP_get_cipherbyname
|
||||||
|
#define EVP_get_digestbyname wolfSSL_EVP_get_digestbyname
|
||||||
|
|
||||||
|
#define EVP_PKEY_assign_RSA wolfSSL_EVP_PKEY_assign_RSA
|
||||||
|
#define EVP_PKEY_assign_EC_KEY wolfSSL_EVP_PKEY_assign_EC_KEY
|
||||||
|
#define EVP_PKEY_get1_DSA wolfSSL_EVP_PKEY_get1_DSA
|
||||||
|
#define EVP_PKEY_get1_RSA wolfSSL_EVP_PKEY_get1_RSA
|
||||||
|
#define EVP_PKEY_get1_DSA wolfSSL_EVP_PKEY_get1_DSA
|
||||||
|
#define EVP_PKEY_set1_RSA wolfSSL_EVP_PKEY_set1_RSA
|
||||||
|
#define EVP_PKEY_get0_EC_KEY wolfSSL_EVP_PKEY_get0_EC_KEY
|
||||||
|
#define EVP_PKEY_get1_EC_KEY wolfSSL_EVP_PKEY_get1_EC_KEY
|
||||||
|
#define EVP_PKEY_get0_hmac wolfSSL_EVP_PKEY_get0_hmac
|
||||||
|
#define EVP_PKEY_new_mac_key wolfSSL_EVP_PKEY_new_mac_key
|
||||||
|
#define EVP_MD_CTX_copy wolfSSL_EVP_MD_CTX_copy
|
||||||
|
#define EVP_MD_CTX_copy_ex wolfSSL_EVP_MD_CTX_copy_ex
|
||||||
|
#define EVP_PKEY_sign_init wolfSSL_EVP_PKEY_sign_init
|
||||||
|
#define EVP_PKEY_sign wolfSSL_EVP_PKEY_sign
|
||||||
|
#define EVP_PKEY_keygen wolfSSL_EVP_PKEY_keygen
|
||||||
|
#define EVP_PKEY_keygen_init wolfSSL_EVP_PKEY_keygen_init
|
||||||
|
#define EVP_PKEY_bits wolfSSL_EVP_PKEY_bits
|
||||||
|
#define EVP_PKEY_CTX_free wolfSSL_EVP_PKEY_CTX_free
|
||||||
|
#define EVP_PKEY_CTX_new wolfSSL_EVP_PKEY_CTX_new
|
||||||
|
#define EVP_PKEY_CTX_set_rsa_padding wolfSSL_EVP_PKEY_CTX_set_rsa_padding
|
||||||
|
#define EVP_PKEY_CTX_new_id wolfSSL_EVP_PKEY_CTX_new_id
|
||||||
|
#define EVP_PKEY_CTX_set_rsa_keygen_bits wolfSSL_EVP_PKEY_CTX_set_rsa_keygen_bits
|
||||||
|
#define EVP_PKEY_decrypt wolfSSL_EVP_PKEY_decrypt
|
||||||
|
#define EVP_PKEY_decrypt_init wolfSSL_EVP_PKEY_decrypt_init
|
||||||
|
#define EVP_PKEY_encrypt wolfSSL_EVP_PKEY_encrypt
|
||||||
|
#define EVP_PKEY_encrypt_init wolfSSL_EVP_PKEY_encrypt_init
|
||||||
|
#define EVP_PKEY_new wolfSSL_PKEY_new
|
||||||
|
#define EVP_PKEY_free wolfSSL_EVP_PKEY_free
|
||||||
|
#define EVP_PKEY_up_ref wolfSSL_EVP_PKEY_up_ref
|
||||||
|
#define EVP_PKEY_size wolfSSL_EVP_PKEY_size
|
||||||
|
#define EVP_PKEY_missing_parameters wolfSSL_EVP_PKEY_missing_parameters
|
||||||
|
#define EVP_PKEY_cmp wolfSSL_EVP_PKEY_cmp
|
||||||
|
#define EVP_PKEY_type wolfSSL_EVP_PKEY_type
|
||||||
|
#define EVP_PKEY_base_id wolfSSL_EVP_PKEY_base_id
|
||||||
|
#define EVP_PKEY_id wolfSSL_EVP_PKEY_id
|
||||||
|
#define EVP_SignFinal wolfSSL_EVP_SignFinal
|
||||||
|
#define EVP_SignInit wolfSSL_EVP_SignInit
|
||||||
|
#define EVP_SignInit_ex wolfSSL_EVP_SignInit_ex
|
||||||
|
#define EVP_SignUpdate wolfSSL_EVP_SignUpdate
|
||||||
|
#define EVP_VerifyFinal wolfSSL_EVP_VerifyFinal
|
||||||
|
#define EVP_VerifyInit wolfSSL_EVP_VerifyInit
|
||||||
|
#define EVP_VerifyUpdate wolfSSL_EVP_VerifyUpdate
|
||||||
|
|
||||||
|
#define EVP_CIPHER_CTX_ctrl wolfSSL_EVP_CIPHER_CTX_ctrl
|
||||||
|
#define EVP_CIPHER_CTX_block_size wolfSSL_EVP_CIPHER_CTX_block_size
|
||||||
|
#define EVP_CIPHER_block_size wolfSSL_EVP_CIPHER_block_size
|
||||||
|
#define EVP_CIPHER_flags wolfSSL_EVP_CIPHER_flags
|
||||||
|
#define EVP_CIPHER_CTX_set_flags wolfSSL_EVP_CIPHER_CTX_set_flags
|
||||||
|
#define EVP_CIPHER_CTX_clear_flags wolfSSL_EVP_CIPHER_CTX_clear_flags
|
||||||
|
#define EVP_CIPHER_CTX_set_padding wolfSSL_EVP_CIPHER_CTX_set_padding
|
||||||
|
#define EVP_CIPHER_CTX_flags wolfSSL_EVP_CIPHER_CTX_flags
|
||||||
|
#define EVP_add_digest wolfSSL_EVP_add_digest
|
||||||
|
#define EVP_add_cipher wolfSSL_EVP_add_cipher
|
||||||
|
#define EVP_cleanup wolfSSL_EVP_cleanup
|
||||||
|
#define EVP_read_pw_string wolfSSL_EVP_read_pw_string
|
||||||
|
|
||||||
|
#define OpenSSL_add_all_digests() wolfSSL_EVP_init()
|
||||||
|
#define OpenSSL_add_all_ciphers() wolfSSL_EVP_init()
|
||||||
|
#define OpenSSL_add_all_algorithms wolfSSL_add_all_algorithms
|
||||||
|
#define OpenSSL_add_all_algorithms_noconf wolfSSL_OpenSSL_add_all_algorithms_noconf
|
||||||
|
#define wolfSSL_OPENSSL_add_all_algorithms_noconf wolfSSL_OpenSSL_add_all_algorithms_noconf
|
||||||
|
|
||||||
|
#define NO_PADDING_BLOCK_SIZE 1
|
||||||
|
|
||||||
|
#define PKCS5_PBKDF2_HMAC_SHA1 wolfSSL_PKCS5_PBKDF2_HMAC_SHA1
|
||||||
|
#define PKCS5_PBKDF2_HMAC wolfSSL_PKCS5_PBKDF2_HMAC
|
||||||
|
|
||||||
|
/* OpenSSL compat. ctrl values */
|
||||||
|
#define EVP_CTRL_INIT 0x0
|
||||||
|
#define EVP_CTRL_SET_KEY_LENGTH 0x1
|
||||||
|
#define EVP_CTRL_SET_RC2_KEY_BITS 0x3 /* needed for qt compilation */
|
||||||
|
|
||||||
|
#define EVP_CTRL_AEAD_SET_IVLEN 0x9
|
||||||
|
#define EVP_CTRL_AEAD_GET_TAG 0x10
|
||||||
|
#define EVP_CTRL_AEAD_SET_TAG 0x11
|
||||||
|
#define EVP_CTRL_AEAD_SET_IV_FIXED 0x12
|
||||||
|
#define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN
|
||||||
|
#define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG
|
||||||
|
#define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG
|
||||||
|
|
||||||
|
#ifndef EVP_MAX_MD_SIZE
|
||||||
|
#define EVP_MAX_MD_SIZE 64 /* sha512 */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EVP_MAX_KEY_LENGTH
|
||||||
|
#define EVP_MAX_KEY_LENGTH 64
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EVP_MAX_IV_LENGTH
|
||||||
|
#define EVP_MAX_IV_LENGTH 16
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EVP_MAX_BLOCK_LENGTH
|
||||||
|
#define EVP_MAX_BLOCK_LENGTH 32 /* 2 * blocklen(AES)? */
|
||||||
|
/* They define this as 32. Using the same value here. */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EVP_MAX_IV_LENGTH
|
||||||
|
#define EVP_MAX_IV_LENGTH 16
|
||||||
|
#endif
|
||||||
|
|
||||||
|
WOLFSSL_API void printPKEY(WOLFSSL_EVP_PKEY *k);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/objects.h>
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_EVP_H_ */
|
100
wolfssl_hlavickove_subory/wolfssl/openssl/hmac.h
Normal file
100
wolfssl_hlavickove_subory/wolfssl/openssl/hmac.h
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
/* hmac.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* hmac.h defines mini hamc openssl compatibility layer
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_HMAC_H_
|
||||||
|
#define WOLFSSL_HMAC_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_PREFIX
|
||||||
|
#include "prefix_hmac.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/evp.h>
|
||||||
|
#include <wolfssl/openssl/opensslv.h>
|
||||||
|
#include <wolfssl/wolfcrypt/hmac.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API unsigned char* wolfSSL_HMAC(const WOLFSSL_EVP_MD* evp_md,
|
||||||
|
const void* key, int key_len,
|
||||||
|
const unsigned char* d, int n, unsigned char* md,
|
||||||
|
unsigned int* md_len);
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_HMAC_CTX {
|
||||||
|
Hmac hmac;
|
||||||
|
int type;
|
||||||
|
word32 save_ipad[WC_HMAC_BLOCK_SIZE / sizeof(word32)]; /* same block size all*/
|
||||||
|
word32 save_opad[WC_HMAC_BLOCK_SIZE / sizeof(word32)];
|
||||||
|
} WOLFSSL_HMAC_CTX;
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_HMAC_CTX* wolfSSL_HMAC_CTX_new(void);
|
||||||
|
WOLFSSL_API int wolfSSL_HMAC_CTX_Init(WOLFSSL_HMAC_CTX* ctx);
|
||||||
|
WOLFSSL_API int wolfSSL_HMAC_CTX_copy(WOLFSSL_HMAC_CTX* des,
|
||||||
|
WOLFSSL_HMAC_CTX* src);
|
||||||
|
WOLFSSL_LOCAL int wolfSSL_HmacCopy(Hmac* des, Hmac* src);
|
||||||
|
WOLFSSL_API int wolfSSL_HMAC_Init(WOLFSSL_HMAC_CTX* ctx, const void* key,
|
||||||
|
int keylen, const EVP_MD* type);
|
||||||
|
WOLFSSL_API int wolfSSL_HMAC_Init_ex(WOLFSSL_HMAC_CTX* ctx, const void* key,
|
||||||
|
int keylen, const EVP_MD* type, WOLFSSL_ENGINE* e);
|
||||||
|
WOLFSSL_API int wolfSSL_HMAC_Update(WOLFSSL_HMAC_CTX* ctx,
|
||||||
|
const unsigned char* data, int len);
|
||||||
|
WOLFSSL_API int wolfSSL_HMAC_Final(WOLFSSL_HMAC_CTX* ctx, unsigned char* hash,
|
||||||
|
unsigned int* len);
|
||||||
|
WOLFSSL_API int wolfSSL_HMAC_cleanup(WOLFSSL_HMAC_CTX* ctx);
|
||||||
|
WOLFSSL_API void wolfSSL_HMAC_CTX_free(WOLFSSL_HMAC_CTX* ctx);
|
||||||
|
WOLFSSL_API size_t wolfSSL_HMAC_size(const WOLFSSL_HMAC_CTX *ctx);
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_HMAC_CTX HMAC_CTX;
|
||||||
|
|
||||||
|
#define HMAC(a,b,c,d,e,f,g) wolfSSL_HMAC((a),(b),(c),(d),(e),(f),(g))
|
||||||
|
|
||||||
|
#define HMAC_CTX_new wolfSSL_HMAC_CTX_new
|
||||||
|
#define HMAC_CTX_init wolfSSL_HMAC_CTX_Init
|
||||||
|
#define HMAC_CTX_copy wolfSSL_HMAC_CTX_copy
|
||||||
|
#define HMAC_CTX_free wolfSSL_HMAC_CTX_free
|
||||||
|
#define HMAC_CTX_reset wolfSSL_HMAC_cleanup
|
||||||
|
#define HMAC_Init_ex wolfSSL_HMAC_Init_ex
|
||||||
|
#define HMAC_Init wolfSSL_HMAC_Init
|
||||||
|
#define HMAC_Update wolfSSL_HMAC_Update
|
||||||
|
#define HMAC_Final wolfSSL_HMAC_Final
|
||||||
|
#define HMAC_cleanup wolfSSL_HMAC_cleanup
|
||||||
|
#define HMAC_size wolfSSL_HMAC_size
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_HMAC_H_ */
|
47
wolfssl_hlavickove_subory/wolfssl/openssl/include.am
Normal file
47
wolfssl_hlavickove_subory/wolfssl/openssl/include.am
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# vim:ft=automake
|
||||||
|
# All paths should be given relative to the root
|
||||||
|
|
||||||
|
nobase_include_HEADERS+= \
|
||||||
|
wolfssl/openssl/asn1.h \
|
||||||
|
wolfssl/openssl/aes.h\
|
||||||
|
wolfssl/openssl/bio.h \
|
||||||
|
wolfssl/openssl/bn.h \
|
||||||
|
wolfssl/openssl/buffer.h \
|
||||||
|
wolfssl/openssl/conf.h \
|
||||||
|
wolfssl/openssl/crypto.h \
|
||||||
|
wolfssl/openssl/des.h \
|
||||||
|
wolfssl/openssl/dh.h \
|
||||||
|
wolfssl/openssl/dsa.h \
|
||||||
|
wolfssl/openssl/ecdsa.h \
|
||||||
|
wolfssl/openssl/ecdh.h \
|
||||||
|
wolfssl/openssl/ec.h \
|
||||||
|
wolfssl/openssl/ec25519.h \
|
||||||
|
wolfssl/openssl/ed25519.h \
|
||||||
|
wolfssl/openssl/engine.h \
|
||||||
|
wolfssl/openssl/err.h \
|
||||||
|
wolfssl/openssl/evp.h \
|
||||||
|
wolfssl/openssl/hmac.h \
|
||||||
|
wolfssl/openssl/lhash.h \
|
||||||
|
wolfssl/openssl/md4.h \
|
||||||
|
wolfssl/openssl/md5.h \
|
||||||
|
wolfssl/openssl/ripemd.h \
|
||||||
|
wolfssl/openssl/objects.h \
|
||||||
|
wolfssl/openssl/ocsp.h \
|
||||||
|
wolfssl/openssl/opensslconf.h \
|
||||||
|
wolfssl/openssl/opensslv.h \
|
||||||
|
wolfssl/openssl/ossl_typ.h \
|
||||||
|
wolfssl/openssl/pem.h \
|
||||||
|
wolfssl/openssl/pkcs12.h \
|
||||||
|
wolfssl/openssl/pkcs7.h \
|
||||||
|
wolfssl/openssl/rand.h \
|
||||||
|
wolfssl/openssl/rsa.h \
|
||||||
|
wolfssl/openssl/sha.h \
|
||||||
|
wolfssl/openssl/ssl23.h \
|
||||||
|
wolfssl/openssl/ssl.h \
|
||||||
|
wolfssl/openssl/stack.h \
|
||||||
|
wolfssl/openssl/tls1.h \
|
||||||
|
wolfssl/openssl/ui.h \
|
||||||
|
wolfssl/openssl/x509.h \
|
||||||
|
wolfssl/openssl/x509_vfy.h \
|
||||||
|
wolfssl/openssl/x509v3.h \
|
||||||
|
wolfssl/openssl/rc4.h
|
2
wolfssl_hlavickove_subory/wolfssl/openssl/lhash.h
Normal file
2
wolfssl_hlavickove_subory/wolfssl/openssl/lhash.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/* lhash.h for openSSL */
|
||||||
|
|
62
wolfssl_hlavickove_subory/wolfssl/openssl/md4.h
Normal file
62
wolfssl_hlavickove_subory/wolfssl/openssl/md4.h
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/* md4.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_MD4_H_
|
||||||
|
#define WOLFSSL_MD4_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
|
||||||
|
#ifndef NO_MD4
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_PREFIX
|
||||||
|
#include "prefix_md4.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_MD4_CTX {
|
||||||
|
int buffer[32]; /* big enough to hold, check size in Init */
|
||||||
|
} WOLFSSL_MD4_CTX;
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_MD4_Init(WOLFSSL_MD4_CTX*);
|
||||||
|
WOLFSSL_API void wolfSSL_MD4_Update(WOLFSSL_MD4_CTX*, const void*, unsigned long);
|
||||||
|
WOLFSSL_API void wolfSSL_MD4_Final(unsigned char*, WOLFSSL_MD4_CTX*);
|
||||||
|
|
||||||
|
|
||||||
|
typedef WOLFSSL_MD4_CTX MD4_CTX;
|
||||||
|
|
||||||
|
#define MD4_Init wolfSSL_MD4_Init
|
||||||
|
#define MD4_Update wolfSSL_MD4_Update
|
||||||
|
#define MD4_Final wolfSSL_MD4_Final
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_MD4 */
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_MD4_H_ */
|
||||||
|
|
81
wolfssl_hlavickove_subory/wolfssl/openssl/md5.h
Normal file
81
wolfssl_hlavickove_subory/wolfssl/openssl/md5.h
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
/* md5.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* md5.h for openssl */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_MD5_H_
|
||||||
|
#define WOLFSSL_MD5_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
|
||||||
|
#ifndef NO_MD5
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/hash.h>
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_PREFIX
|
||||||
|
#include "prefix_md5.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_MD5_CTX {
|
||||||
|
/* big enough to hold wolfcrypt md5, but check on init */
|
||||||
|
#ifdef STM32_HASH
|
||||||
|
void* holder[(112 + WC_ASYNC_DEV_SIZE + sizeof(STM32_HASH_Context)) / sizeof(void*)];
|
||||||
|
#else
|
||||||
|
void* holder[(112 + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
||||||
|
#endif
|
||||||
|
} WOLFSSL_MD5_CTX;
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_MD5_Init(WOLFSSL_MD5_CTX*);
|
||||||
|
WOLFSSL_API int wolfSSL_MD5_Update(WOLFSSL_MD5_CTX*, const void*, unsigned long);
|
||||||
|
WOLFSSL_API int wolfSSL_MD5_Final(unsigned char*, WOLFSSL_MD5_CTX*);
|
||||||
|
|
||||||
|
|
||||||
|
typedef WOLFSSL_MD5_CTX MD5_CTX;
|
||||||
|
|
||||||
|
#define MD5_Init wolfSSL_MD5_Init
|
||||||
|
#define MD5_Update wolfSSL_MD5_Update
|
||||||
|
#define MD5_Final wolfSSL_MD5_Final
|
||||||
|
|
||||||
|
#ifdef OPENSSL_EXTRA_BSD
|
||||||
|
#define MD5Init wolfSSL_MD5_Init
|
||||||
|
#define MD5Update wolfSSL_MD5_Update
|
||||||
|
#define MD5Final wolfSSL_MD5_Final
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MD5
|
||||||
|
#define MD5(d, n, md) wc_Md5Hash((d), (n), (md))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define MD5_DIGEST_LENGTH MD5_DIGEST_SIZE
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_MD5 */
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_MD5_H_ */
|
62
wolfssl_hlavickove_subory/wolfssl/openssl/objects.h
Normal file
62
wolfssl_hlavickove_subory/wolfssl/openssl/objects.h
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/* objects.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_OBJECTS_H_
|
||||||
|
#define WOLFSSL_OBJECTS_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
//#include <wolfssl/openssl/ssl.h>
|
||||||
|
#ifndef OPENSSL_EXTRA_SSL_GUARD
|
||||||
|
#define OPENSSL_EXTRA_SSL_GUARD
|
||||||
|
#include <wolfssl/ssl.h>
|
||||||
|
#endif /* OPENSSL_EXTRA_SSL_GUARD */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define OBJ_nid2sn wolfSSL_OBJ_nid2sn
|
||||||
|
#define OBJ_obj2nid wolfSSL_OBJ_obj2nid
|
||||||
|
#define OBJ_sn2nid wolfSSL_OBJ_sn2nid
|
||||||
|
#define OBJ_nid2ln wolfSSL_OBJ_nid2ln
|
||||||
|
#define OBJ_txt2nid wolfSSL_OBJ_txt2nid
|
||||||
|
#define OBJ_txt2obj wolfSSL_OBJ_txt2obj
|
||||||
|
#define OBJ_nid2obj wolfSSL_OBJ_nid2obj
|
||||||
|
#define OBJ_obj2txt wolfSSL_OBJ_obj2txt
|
||||||
|
#define OBJ_cleanup wolfSSL_OBJ_cleanup
|
||||||
|
#define OBJ_cmp wolfSSL_OBJ_cmp
|
||||||
|
#define OBJ_create wolfSSL_OBJ_create
|
||||||
|
#define ASN1_OBJECT_free wolfSSL_ASN1_OBJECT_free
|
||||||
|
|
||||||
|
/* not required for wolfSSL */
|
||||||
|
#define OPENSSL_load_builtin_modules()
|
||||||
|
|
||||||
|
|
||||||
|
#define NID_ad_OCSP 178
|
||||||
|
#define NID_ad_ca_issuers 179
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_OBJECTS_H_ */
|
82
wolfssl_hlavickove_subory/wolfssl/openssl/ocsp.h
Normal file
82
wolfssl_hlavickove_subory/wolfssl/openssl/ocsp.h
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
/* ocsp.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ocsp.h for libcurl */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_OCSP_H_
|
||||||
|
#define WOLFSSL_OCSP_H_
|
||||||
|
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
#include <wolfssl/ocsp.h>
|
||||||
|
|
||||||
|
#define OCSP_REQUEST OcspRequest
|
||||||
|
#define OCSP_RESPONSE OcspResponse
|
||||||
|
#define OCSP_BASICRESP WOLFSSL_OCSP_BASICRESP
|
||||||
|
#define OCSP_CERTID WOLFSSL_OCSP_CERTID
|
||||||
|
#define OCSP_ONEREQ WOLFSSL_OCSP_ONEREQ
|
||||||
|
|
||||||
|
#define OCSP_REVOKED_STATUS_NOSTATUS -1
|
||||||
|
|
||||||
|
|
||||||
|
#define OCSP_RESPONSE_STATUS_SUCCESSFUL 0
|
||||||
|
#define OCSP_RESPONSE_STATUS_TRYLATER 3
|
||||||
|
|
||||||
|
#define V_OCSP_CERTSTATUS_GOOD 0
|
||||||
|
#define V_OCSP_CERTSTATUS_REVOKED 1
|
||||||
|
#define V_OCSP_CERTSTATUS_UNKNOWN 2
|
||||||
|
|
||||||
|
#define OCSP_resp_find_status wolfSSL_OCSP_resp_find_status
|
||||||
|
#define OCSP_cert_status_str wolfSSL_OCSP_cert_status_str
|
||||||
|
#define OCSP_check_validity wolfSSL_OCSP_check_validity
|
||||||
|
|
||||||
|
#define OCSP_CERTID_free wolfSSL_OCSP_CERTID_free
|
||||||
|
#define OCSP_cert_to_id wolfSSL_OCSP_cert_to_id
|
||||||
|
|
||||||
|
#define OCSP_BASICRESP_free wolfSSL_OCSP_BASICRESP_free
|
||||||
|
#define OCSP_basic_verify wolfSSL_OCSP_basic_verify
|
||||||
|
|
||||||
|
#define OCSP_RESPONSE_free wolfSSL_OCSP_RESPONSE_free
|
||||||
|
#define d2i_OCSP_RESPONSE_bio wolfSSL_d2i_OCSP_RESPONSE_bio
|
||||||
|
#define d2i_OCSP_RESPONSE wolfSSL_d2i_OCSP_RESPONSE
|
||||||
|
#define i2d_OCSP_RESPONSE wolfSSL_i2d_OCSP_RESPONSE
|
||||||
|
#define OCSP_response_status wolfSSL_OCSP_response_status
|
||||||
|
#define OCSP_response_status_str wolfSSL_OCSP_response_status_str
|
||||||
|
#define OCSP_response_get1_basic wolfSSL_OCSP_response_get1_basic
|
||||||
|
#define OCSP_response_create wolfSSL_OCSP_response_create
|
||||||
|
|
||||||
|
#define OCSP_REQUEST_new wolfSSL_OCSP_REQUEST_new
|
||||||
|
#define OCSP_REQUEST_free wolfSSL_OCSP_REQUEST_free
|
||||||
|
#define i2d_OCSP_REQUEST wolfSSL_i2d_OCSP_REQUEST
|
||||||
|
#define OCSP_request_add0_id wolfSSL_OCSP_request_add0_id
|
||||||
|
#define OCSP_request_add1_nonce wolfSSL_OCSP_request_add1_nonce
|
||||||
|
#define OCSP_check_nonce wolfSSL_OCSP_check_nonce
|
||||||
|
#define OCSP_id_get0_info wolfSSL_OCSP_id_get0_info
|
||||||
|
#define OCSP_crl_reason_str wolfSSL_OCSP_crl_reason_str
|
||||||
|
#define OCSP_REQUEST_add_ext wolfSSL_OCSP_REQUEST_add_ext
|
||||||
|
|
||||||
|
#define OCSP_CERTID_dup wolfSSL_OCSP_CERTID_dup
|
||||||
|
|
||||||
|
#define i2d_OCSP_REQUEST_bio wolfSSL_i2d_OCSP_REQUEST_bio
|
||||||
|
|
||||||
|
#endif /* HAVE_OCSP */
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_OCSP_H_ */
|
||||||
|
|
8
wolfssl_hlavickove_subory/wolfssl/openssl/opensslconf.h
Normal file
8
wolfssl_hlavickove_subory/wolfssl/openssl/opensslconf.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/* opensslconf.h for openSSL */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef OPENSSL_THREADS
|
||||||
|
#define OPENSSL_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
44
wolfssl_hlavickove_subory/wolfssl/openssl/opensslv.h
Normal file
44
wolfssl_hlavickove_subory/wolfssl/openssl/opensslv.h
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/* opensslv.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* opensslv.h compatibility */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_OPENSSLV_H_
|
||||||
|
#define WOLFSSL_OPENSSLV_H_
|
||||||
|
|
||||||
|
|
||||||
|
/* api version compatibility */
|
||||||
|
#if defined(WOLFSSL_APACHE_HTTPD)
|
||||||
|
/* For Apache httpd, Use 1.1.0 compatibility */
|
||||||
|
#define OPENSSL_VERSION_NUMBER 0x10100000L
|
||||||
|
#elif defined(OPENSSL_ALL) || defined(HAVE_STUNNEL) || defined(HAVE_LIGHTY) || \
|
||||||
|
defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||||
|
/* version number can be increased for Lighty after compatibility for ECDH
|
||||||
|
is added */
|
||||||
|
#define OPENSSL_VERSION_NUMBER 0x10001000L
|
||||||
|
#else
|
||||||
|
#define OPENSSL_VERSION_NUMBER 0x0090810fL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define OPENSSL_VERSION_TEXT LIBWOLFSSL_VERSION_STRING
|
||||||
|
#define OPENSSL_VERSION 0
|
||||||
|
|
||||||
|
#endif /* header */
|
32
wolfssl_hlavickove_subory/wolfssl/openssl/ossl_typ.h
Normal file
32
wolfssl_hlavickove_subory/wolfssl/openssl/ossl_typ.h
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/* ossl_typ.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\file wolfssl/openssl/ossl_typ.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_OSSL_TYP_H_
|
||||||
|
#define WOLFSSL_OSSL_TYP_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
|
||||||
|
#endif /* !WOLFSSL_OSSL_TYP_H_ */
|
224
wolfssl_hlavickove_subory/wolfssl/openssl/pem.h
Normal file
224
wolfssl_hlavickove_subory/wolfssl/openssl/pem.h
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
/* pem.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* pem.h for openssl */
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\file wolfssl/openssl/pem.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_PEM_H_
|
||||||
|
#define WOLFSSL_PEM_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/evp.h>
|
||||||
|
#include <wolfssl/openssl/bio.h>
|
||||||
|
#include <wolfssl/openssl/rsa.h>
|
||||||
|
#include <wolfssl/openssl/dsa.h>
|
||||||
|
#include <wolfssl/ssl.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* RSA */
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_bio_RSAPrivateKey(WOLFSSL_BIO* bio, WOLFSSL_RSA* rsa,
|
||||||
|
const EVP_CIPHER* cipher,
|
||||||
|
unsigned char* passwd, int len,
|
||||||
|
pem_password_cb* cb, void* arg);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_RSA* wolfSSL_PEM_read_bio_RSAPrivateKey(WOLFSSL_BIO* bio,
|
||||||
|
WOLFSSL_RSA**,
|
||||||
|
pem_password_cb* cb,
|
||||||
|
void* arg);
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_bio_RSA_PUBKEY(WOLFSSL_BIO* bio, WOLFSSL_RSA* rsa);
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_RSA *wolfSSL_PEM_read_bio_RSA_PUBKEY(WOLFSSL_BIO* bio,
|
||||||
|
WOLFSSL_RSA** rsa,
|
||||||
|
pem_password_cb* cb, void *u);
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_EC_GROUP* wolfSSL_PEM_read_bio_ECPKParameters(WOLFSSL_BIO* bio,
|
||||||
|
WOLFSSL_EC_GROUP** group,
|
||||||
|
pem_password_cb* cb,
|
||||||
|
void* pass);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_mem_RSAPrivateKey(RSA* rsa, const EVP_CIPHER* cipher,
|
||||||
|
unsigned char* passwd, int len,
|
||||||
|
unsigned char **pem, int *plen);
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_RSAPrivateKey(XFILE fp, WOLFSSL_RSA *rsa,
|
||||||
|
const EVP_CIPHER *enc,
|
||||||
|
unsigned char *kstr, int klen,
|
||||||
|
pem_password_cb *cb, void *u);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_RSA *wolfSSL_PEM_read_RSAPublicKey(XFILE fp, WOLFSSL_RSA **x,
|
||||||
|
pem_password_cb *cb, void *u);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_RSAPublicKey(XFILE fp, WOLFSSL_RSA *x);
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_RSA_PUBKEY(XFILE fp, WOLFSSL_RSA *x);
|
||||||
|
#endif /* NO_FILESYSTEM */
|
||||||
|
|
||||||
|
/* DSA */
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_bio_DSAPrivateKey(WOLFSSL_BIO* bio,
|
||||||
|
WOLFSSL_DSA* dsa,
|
||||||
|
const EVP_CIPHER* cipher,
|
||||||
|
unsigned char* passwd, int len,
|
||||||
|
pem_password_cb* cb, void* arg);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_mem_DSAPrivateKey(WOLFSSL_DSA* dsa,
|
||||||
|
const EVP_CIPHER* cipher,
|
||||||
|
unsigned char* passwd, int len,
|
||||||
|
unsigned char **pem, int *plen);
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_DSAPrivateKey(XFILE fp, WOLFSSL_DSA *dsa,
|
||||||
|
const EVP_CIPHER *enc,
|
||||||
|
unsigned char *kstr, int klen,
|
||||||
|
pem_password_cb *cb, void *u);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_DSA_PUBKEY(XFILE fp, WOLFSSL_DSA *x);
|
||||||
|
#endif /* NO_FILESYSTEM */
|
||||||
|
|
||||||
|
/* ECC */
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_bio_ECPrivateKey(WOLFSSL_BIO* bio, WOLFSSL_EC_KEY* ec,
|
||||||
|
const EVP_CIPHER* cipher,
|
||||||
|
unsigned char* passwd, int len,
|
||||||
|
pem_password_cb* cb, void* arg);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_mem_ECPrivateKey(WOLFSSL_EC_KEY* key,
|
||||||
|
const EVP_CIPHER* cipher,
|
||||||
|
unsigned char* passwd, int len,
|
||||||
|
unsigned char **pem, int *plen);
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_ECPrivateKey(XFILE fp, WOLFSSL_EC_KEY *key,
|
||||||
|
const EVP_CIPHER *enc,
|
||||||
|
unsigned char *kstr, int klen,
|
||||||
|
pem_password_cb *cb, void *u);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_EC_PUBKEY(XFILE fp, WOLFSSL_EC_KEY *key);
|
||||||
|
#endif /* NO_FILESYSTEM */
|
||||||
|
|
||||||
|
/* EVP_KEY */
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_EVP_PKEY* wolfSSL_PEM_read_bio_PrivateKey(WOLFSSL_BIO* bio,
|
||||||
|
WOLFSSL_EVP_PKEY**,
|
||||||
|
pem_password_cb* cb,
|
||||||
|
void* arg);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_bio_PUBKEY(WOLFSSL_BIO* bio,
|
||||||
|
WOLFSSL_EVP_PKEY **key,
|
||||||
|
pem_password_cb *cb, void *pass);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_bio_PrivateKey(WOLFSSL_BIO* bio, WOLFSSL_EVP_PKEY* key,
|
||||||
|
const WOLFSSL_EVP_CIPHER* cipher,
|
||||||
|
unsigned char* passwd, int len,
|
||||||
|
pem_password_cb* cb, void* arg);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_bio_PUBKEY(WOLFSSL_BIO* bio, WOLFSSL_EVP_PKEY* key);
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_read_bio(WOLFSSL_BIO* bio, char **name, char **header,
|
||||||
|
unsigned char **data, long *len);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_bio(WOLFSSL_BIO *bio, const char *name,
|
||||||
|
const char *header, const unsigned char *data,
|
||||||
|
long len);
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_read(XFILE fp, char **name, char **header, unsigned char **data,
|
||||||
|
long *len);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write(XFILE fp, const char *name, const char *header,
|
||||||
|
const unsigned char *data, long len);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_PUBKEY(XFILE fp, EVP_PKEY **x,
|
||||||
|
pem_password_cb *cb, void *u);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_X509 *wolfSSL_PEM_read_X509(XFILE fp, WOLFSSL_X509 **x,
|
||||||
|
pem_password_cb *cb, void *u);
|
||||||
|
WOLFSSL_API
|
||||||
|
WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_PrivateKey(XFILE fp, WOLFSSL_EVP_PKEY **x,
|
||||||
|
pem_password_cb *cb, void *u);
|
||||||
|
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_X509(XFILE fp, WOLFSSL_X509 *x);
|
||||||
|
WOLFSSL_API
|
||||||
|
int wolfSSL_PEM_write_DHparams(XFILE fp, WOLFSSL_DH* dh);
|
||||||
|
#endif /* NO_FILESYSTEM */
|
||||||
|
|
||||||
|
#define PEM_read wolfSSL_PEM_read
|
||||||
|
#define PEM_read_bio wolfSSL_PEM_read_bio
|
||||||
|
#define PEM_write wolfSSL_PEM_write
|
||||||
|
#define PEM_write_bio wolfSSL_PEM_write_bio
|
||||||
|
|
||||||
|
#define PEM_read_X509 wolfSSL_PEM_read_X509
|
||||||
|
#define PEM_read_PrivateKey wolfSSL_PEM_read_PrivateKey
|
||||||
|
#define PEM_write_X509 wolfSSL_PEM_write_X509
|
||||||
|
#define PEM_write_bio_PrivateKey wolfSSL_PEM_write_bio_PrivateKey
|
||||||
|
#define PEM_write_bio_PKCS8PrivateKey wolfSSL_PEM_write_bio_PKCS8PrivateKey
|
||||||
|
|
||||||
|
/* DH */
|
||||||
|
#define PEM_write_DHparams wolfSSL_PEM_write_DHparams
|
||||||
|
/* RSA */
|
||||||
|
#define PEM_write_bio_RSAPrivateKey wolfSSL_PEM_write_bio_RSAPrivateKey
|
||||||
|
#define PEM_read_bio_RSAPrivateKey wolfSSL_PEM_read_bio_RSAPrivateKey
|
||||||
|
#define PEM_write_bio_RSA_PUBKEY wolfSSL_PEM_write_bio_RSA_PUBKEY
|
||||||
|
#define PEM_read_bio_RSA_PUBKEY wolfSSL_PEM_read_bio_RSA_PUBKEY
|
||||||
|
#define PEM_read_bio_ECPKParameters wolfSSL_PEM_read_bio_ECPKParameters
|
||||||
|
#define PEM_write_RSAPrivateKey wolfSSL_PEM_write_RSAPrivateKey
|
||||||
|
#define PEM_write_RSA_PUBKEY wolfSSL_PEM_write_RSA_PUBKEY
|
||||||
|
#define PEM_write_RSAPublicKey wolfSSL_PEM_write_RSAPublicKey
|
||||||
|
#define PEM_read_RSAPublicKey wolfSSL_PEM_read_RSAPublicKey
|
||||||
|
/* DSA */
|
||||||
|
#define PEM_write_bio_DSAPrivateKey wolfSSL_PEM_write_bio_DSAPrivateKey
|
||||||
|
#define PEM_write_DSAPrivateKey wolfSSL_PEM_write_DSAPrivateKey
|
||||||
|
#define PEM_write_DSA_PUBKEY wolfSSL_PEM_write_DSA_PUBKEY
|
||||||
|
/* ECC */
|
||||||
|
#define PEM_write_bio_ECPrivateKey wolfSSL_PEM_write_bio_ECPrivateKey
|
||||||
|
#define PEM_write_EC_PUBKEY wolfSSL_PEM_write_EC_PUBKEY
|
||||||
|
#define PEM_write_ECPrivateKey wolfSSL_PEM_write_ECPrivateKey
|
||||||
|
/* EVP_KEY */
|
||||||
|
#define PEM_read_bio_PrivateKey wolfSSL_PEM_read_bio_PrivateKey
|
||||||
|
#define PEM_read_PUBKEY wolfSSL_PEM_read_PUBKEY
|
||||||
|
#define PEM_read_bio_PUBKEY wolfSSL_PEM_read_bio_PUBKEY
|
||||||
|
#define PEM_write_bio_PUBKEY wolfSSL_PEM_write_bio_PUBKEY
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_PEM_H_ */
|
||||||
|
|
49
wolfssl_hlavickove_subory/wolfssl/openssl/pkcs12.h
Normal file
49
wolfssl_hlavickove_subory/wolfssl/openssl/pkcs12.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/* pkcs12.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* pkcs12.h for openssl */
|
||||||
|
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
#include <wolfssl/wolfcrypt/pkcs12.h>
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_PKCS12_COMPAT_H_
|
||||||
|
#define WOLFSSL_PKCS12_COMPAT_H_
|
||||||
|
|
||||||
|
#define NID_pbe_WithSHA1AndDES_CBC 2
|
||||||
|
#define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 3
|
||||||
|
#define NID_pbe_WithSHA1And128BitRC4 1
|
||||||
|
|
||||||
|
#define PKCS12_DEFAULT_ITER WC_PKCS12_ITT_DEFAULT
|
||||||
|
|
||||||
|
/* wolfCrypt level does not make use of ssl.h */
|
||||||
|
#define PKCS12 WC_PKCS12
|
||||||
|
#define PKCS12_new wc_PKCS12_new
|
||||||
|
#define PKCS12_free wc_PKCS12_free
|
||||||
|
|
||||||
|
/* wolfSSL level using structs from ssl.h and calls down to wolfCrypt */
|
||||||
|
#define d2i_PKCS12_bio wolfSSL_d2i_PKCS12_bio
|
||||||
|
#define PKCS12_parse wolfSSL_PKCS12_parse
|
||||||
|
#define PKCS12_create wolfSSL_PKCS12_create
|
||||||
|
#define PKCS12_PBE_add wolfSSL_PKCS12_PBE_add
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_PKCS12_COMPAT_H_ */
|
||||||
|
|
79
wolfssl_hlavickove_subory/wolfssl/openssl/pkcs7.h
Normal file
79
wolfssl_hlavickove_subory/wolfssl/openssl/pkcs7.h
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
/* pkcs7.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* pkcs7.h for openSSL */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_PKCS7_H_
|
||||||
|
#define WOLFSSL_PKCS7_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
#include <wolfssl/wolfcrypt/pkcs7.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(OPENSSL_ALL) && defined(HAVE_PKCS7)
|
||||||
|
|
||||||
|
#define PKCS7_NOINTERN 0x0010
|
||||||
|
#define PKCS7_NOVERIFY 0x0020
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_PKCS7
|
||||||
|
{
|
||||||
|
PKCS7 pkcs7;
|
||||||
|
unsigned char* data;
|
||||||
|
int len;
|
||||||
|
} WOLFSSL_PKCS7;
|
||||||
|
|
||||||
|
|
||||||
|
WOLFSSL_API PKCS7* wolfSSL_PKCS7_new(void);
|
||||||
|
WOLFSSL_API PKCS7_SIGNED* wolfSSL_PKCS7_SIGNED_new(void);
|
||||||
|
WOLFSSL_API void wolfSSL_PKCS7_free(PKCS7* p7);
|
||||||
|
WOLFSSL_API void wolfSSL_PKCS7_SIGNED_free(PKCS7_SIGNED* p7);
|
||||||
|
WOLFSSL_API PKCS7* wolfSSL_d2i_PKCS7(PKCS7** p7, const unsigned char** in,
|
||||||
|
int len);
|
||||||
|
WOLFSSL_API PKCS7* wolfSSL_d2i_PKCS7_bio(WOLFSSL_BIO* bio, PKCS7** p7);
|
||||||
|
WOLFSSL_API int wolfSSL_PKCS7_verify(PKCS7* p7, WOLFSSL_STACK* certs,
|
||||||
|
WOLFSSL_X509_STORE* store, WOLFSSL_BIO* in, WOLFSSL_BIO* out, int flags);
|
||||||
|
WOLFSSL_API WOLFSSL_STACK* wolfSSL_PKCS7_get0_signers(PKCS7* p7,
|
||||||
|
WOLFSSL_STACK* certs, int flags);
|
||||||
|
WOLFSSL_API int wolfSSL_PEM_write_bio_PKCS7(WOLFSSL_BIO* bio, PKCS7* p7);
|
||||||
|
|
||||||
|
#define PKCS7_new wolfSSL_PKCS7_new
|
||||||
|
#define PKCS7_SIGNED_new wolfSSL_PKCS7_SIGNED_new
|
||||||
|
#define PKCS7_free wolfSSL_PKCS7_free
|
||||||
|
#define PKCS7_SIGNED_free wolfSSL_PKCS7_SIGNED_free
|
||||||
|
#define d2i_PKCS7 wolfSSL_d2i_PKCS7
|
||||||
|
#define d2i_PKCS7_bio wolfSSL_d2i_PKCS7_bio
|
||||||
|
#define PKCS7_verify wolfSSL_PKCS7_verify
|
||||||
|
#define PKCS7_get0_signers wolfSSL_PKCS7_get0_signers
|
||||||
|
#define PEM_write_bio_PKCS7 wolfSSL_PEM_write_bio_PKCS7
|
||||||
|
|
||||||
|
#endif /* OPENSSL_ALL && HAVE_PKCS7 */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_PKCS7_H_ */
|
||||||
|
|
27
wolfssl_hlavickove_subory/wolfssl/openssl/rand.h
Normal file
27
wolfssl_hlavickove_subory/wolfssl/openssl/rand.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/* rand.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* rand.h for openSSL */
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
#include <wolfssl/wolfcrypt/random.h>
|
||||||
|
|
||||||
|
#define RAND_set_rand_method wolfSSL_RAND_set_rand_method
|
59
wolfssl_hlavickove_subory/wolfssl/openssl/rc4.h
Normal file
59
wolfssl_hlavickove_subory/wolfssl/openssl/rc4.h
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/* rc4.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* rc4.h defines mini des openssl compatibility layer
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_RC4_COMPAT_H_
|
||||||
|
#define WOLFSSL_RC4_COMPAT_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <wolfssl/openssl/ssl.h> /* included for size_t */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* applications including wolfssl/openssl/rc4.h are expecting to have access to
|
||||||
|
* the size of RC4_KEY structures. */
|
||||||
|
typedef struct WOLFSSL_RC4_KEY {
|
||||||
|
/* big enough for Arc4 from wolfssl/wolfcrypt/arc4.h */
|
||||||
|
void* holder[(272 + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
||||||
|
} WOLFSSL_RC4_KEY;
|
||||||
|
typedef WOLFSSL_RC4_KEY RC4_KEY;
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_RC4_set_key(WOLFSSL_RC4_KEY* key, int len,
|
||||||
|
const unsigned char* data);
|
||||||
|
WOLFSSL_API void wolfSSL_RC4(WOLFSSL_RC4_KEY* key, size_t len,
|
||||||
|
const unsigned char* in, unsigned char* out);
|
||||||
|
|
||||||
|
#define RC4 wolfSSL_RC4
|
||||||
|
#define RC4_set_key wolfSSL_RC4_set_key
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_RC4_COMPAT_H_ */
|
||||||
|
|
58
wolfssl_hlavickove_subory/wolfssl/openssl/ripemd.h
Normal file
58
wolfssl_hlavickove_subory/wolfssl/openssl/ripemd.h
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/* ripemd.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ripemd.h for openssl */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_RIPEMD_H_
|
||||||
|
#define WOLFSSL_RIPEMD_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_RIPEMD_CTX {
|
||||||
|
int holder[32]; /* big enough to hold wolfcrypt, but check on init */
|
||||||
|
} WOLFSSL_RIPEMD_CTX;
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_RIPEMD_Init(WOLFSSL_RIPEMD_CTX*);
|
||||||
|
WOLFSSL_API void wolfSSL_RIPEMD_Update(WOLFSSL_RIPEMD_CTX*, const void*,
|
||||||
|
unsigned long);
|
||||||
|
WOLFSSL_API void wolfSSL_RIPEMD_Final(unsigned char*, WOLFSSL_RIPEMD_CTX*);
|
||||||
|
|
||||||
|
|
||||||
|
typedef WOLFSSL_RIPEMD_CTX RIPEMD_CTX;
|
||||||
|
|
||||||
|
#define RIPEMD_Init wolfSSL_RIPEMD_Init
|
||||||
|
#define RIPEMD_Update wolfSSL_RIPEMD_Update
|
||||||
|
#define RIPEMD_Final wolfSSL_RIPEMD_Final
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_MD5_H_ */
|
||||||
|
|
172
wolfssl_hlavickove_subory/wolfssl/openssl/rsa.h
Normal file
172
wolfssl_hlavickove_subory/wolfssl/openssl/rsa.h
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
/* rsa.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* rsa.h for openSSL */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_RSA_H_
|
||||||
|
#define WOLFSSL_RSA_H_
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/bn.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Padding types */
|
||||||
|
#define RSA_PKCS1_PADDING 0
|
||||||
|
#define RSA_PKCS1_OAEP_PADDING 1
|
||||||
|
#define RSA_PKCS1_PSS_PADDING 2
|
||||||
|
#define RSA_NO_PADDING 3
|
||||||
|
|
||||||
|
/* Emulate OpenSSL flags */
|
||||||
|
#define RSA_METHOD_FLAG_NO_CHECK (1 << 1)
|
||||||
|
#define RSA_FLAG_CACHE_PUBLIC (1 << 2)
|
||||||
|
#define RSA_FLAG_CACHE_PRIVATE (1 << 3)
|
||||||
|
#define RSA_FLAG_BLINDING (1 << 4)
|
||||||
|
#define RSA_FLAG_THREAD_SAFE (1 << 5)
|
||||||
|
#define RSA_FLAG_EXT_PKEY (1 << 6)
|
||||||
|
#define RSA_FLAG_NO_BLINDING (1 << 7)
|
||||||
|
#define RSA_FLAG_NO_CONSTTIME (1 << 8)
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_RSA_TYPE_DEFINED /* guard on redeclaration */
|
||||||
|
typedef struct WOLFSSL_RSA WOLFSSL_RSA;
|
||||||
|
#define WOLFSSL_RSA_TYPE_DEFINED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef WOLFSSL_RSA RSA;
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_RSA_METHOD {
|
||||||
|
int flags;
|
||||||
|
char *name;
|
||||||
|
} WOLFSSL_RSA_METHOD;
|
||||||
|
|
||||||
|
typedef WOLFSSL_RSA_METHOD RSA_METHOD;
|
||||||
|
|
||||||
|
struct WOLFSSL_RSA {
|
||||||
|
#ifdef WC_RSA_BLINDING
|
||||||
|
WC_RNG* rng; /* for PrivateDecrypt blinding */
|
||||||
|
#endif
|
||||||
|
WOLFSSL_BIGNUM* n;
|
||||||
|
WOLFSSL_BIGNUM* e;
|
||||||
|
WOLFSSL_BIGNUM* d;
|
||||||
|
WOLFSSL_BIGNUM* p;
|
||||||
|
WOLFSSL_BIGNUM* q;
|
||||||
|
WOLFSSL_BIGNUM* dmp1; /* dP */
|
||||||
|
WOLFSSL_BIGNUM* dmq1; /* dQ */
|
||||||
|
WOLFSSL_BIGNUM* iqmp; /* u */
|
||||||
|
void* heap;
|
||||||
|
void* internal; /* our RSA */
|
||||||
|
char inSet; /* internal set from external ? */
|
||||||
|
char exSet; /* external set from internal ? */
|
||||||
|
char ownRng; /* flag for if the rng should be free'd */
|
||||||
|
#if defined(OPENSSL_EXTRA)
|
||||||
|
WOLFSSL_RSA_METHOD* meth;
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_RSA* wolfSSL_RSA_new(void);
|
||||||
|
WOLFSSL_API void wolfSSL_RSA_free(WOLFSSL_RSA*);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_generate_key_ex(WOLFSSL_RSA*, int bits, WOLFSSL_BIGNUM*,
|
||||||
|
void* cb);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_blinding_on(WOLFSSL_RSA*, WOLFSSL_BN_CTX*);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_public_encrypt(int len, const unsigned char* fr,
|
||||||
|
unsigned char* to, WOLFSSL_RSA*, int padding);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_private_decrypt(int len, const unsigned char* fr,
|
||||||
|
unsigned char* to, WOLFSSL_RSA*, int padding);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_private_encrypt(int len, unsigned char* in,
|
||||||
|
unsigned char* out, WOLFSSL_RSA* rsa, int padding);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_size(const WOLFSSL_RSA*);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_sign(int type, const unsigned char* m,
|
||||||
|
unsigned int mLen, unsigned char* sigRet,
|
||||||
|
unsigned int* sigLen, WOLFSSL_RSA*);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_sign_ex(int type, const unsigned char* m,
|
||||||
|
unsigned int mLen, unsigned char* sigRet,
|
||||||
|
unsigned int* sigLen, WOLFSSL_RSA*, int);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_verify(int type, const unsigned char* m,
|
||||||
|
unsigned int mLen, const unsigned char* sig,
|
||||||
|
unsigned int sigLen, WOLFSSL_RSA*);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_public_decrypt(int flen, const unsigned char* from,
|
||||||
|
unsigned char* to, WOLFSSL_RSA*, int padding);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_GenAdd(WOLFSSL_RSA*);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_LoadDer(WOLFSSL_RSA*, const unsigned char*, int sz);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_LoadDer_ex(WOLFSSL_RSA*, const unsigned char*, int sz, int opt);
|
||||||
|
|
||||||
|
WOLFSSL_API WOLFSSL_RSA_METHOD *wolfSSL_RSA_meth_new(const char *name, int flags);
|
||||||
|
WOLFSSL_API void wolfSSL_RSA_meth_free(WOLFSSL_RSA_METHOD *meth);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_meth_set(WOLFSSL_RSA_METHOD *rsa, void* p);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_set_method(WOLFSSL_RSA *rsa, WOLFSSL_RSA_METHOD *meth);
|
||||||
|
WOLFSSL_API const WOLFSSL_RSA_METHOD* wolfSSL_RSA_get_method(const WOLFSSL_RSA *rsa);
|
||||||
|
WOLFSSL_API void wolfSSL_RSA_get0_key(const WOLFSSL_RSA *r, const WOLFSSL_BIGNUM **n,
|
||||||
|
const WOLFSSL_BIGNUM **e, const WOLFSSL_BIGNUM **d);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_set0_key(WOLFSSL_RSA *r, WOLFSSL_BIGNUM *n, WOLFSSL_BIGNUM *e,
|
||||||
|
WOLFSSL_BIGNUM *d);
|
||||||
|
WOLFSSL_API int wolfSSL_RSA_flags(const WOLFSSL_RSA *r);
|
||||||
|
WOLFSSL_API void wolfSSL_RSA_set_flags(WOLFSSL_RSA *r, int flags);
|
||||||
|
|
||||||
|
#define WOLFSSL_RSA_LOAD_PRIVATE 1
|
||||||
|
#define WOLFSSL_RSA_LOAD_PUBLIC 2
|
||||||
|
#define WOLFSSL_RSA_F4 0x10001L
|
||||||
|
|
||||||
|
#define RSA_new wolfSSL_RSA_new
|
||||||
|
#define RSA_free wolfSSL_RSA_free
|
||||||
|
|
||||||
|
#define RSA_generate_key_ex wolfSSL_RSA_generate_key_ex
|
||||||
|
|
||||||
|
#define RSA_blinding_on wolfSSL_RSA_blinding_on
|
||||||
|
#define RSA_public_encrypt wolfSSL_RSA_public_encrypt
|
||||||
|
#define RSA_private_decrypt wolfSSL_RSA_private_decrypt
|
||||||
|
#define RSA_private_encrypt wolfSSL_RSA_private_encrypt
|
||||||
|
|
||||||
|
#define RSA_size wolfSSL_RSA_size
|
||||||
|
#define RSA_sign wolfSSL_RSA_sign
|
||||||
|
#define RSA_verify wolfSSL_RSA_verify
|
||||||
|
#define RSA_public_decrypt wolfSSL_RSA_public_decrypt
|
||||||
|
#define EVP_PKEY_get0_RSA wolfSSL_EVP_PKEY_get0_RSA
|
||||||
|
|
||||||
|
#define RSA_meth_new wolfSSL_RSA_meth_new
|
||||||
|
#define RSA_meth_free wolfSSL_RSA_meth_free
|
||||||
|
#define RSA_meth_set_pub_enc wolfSSL_RSA_meth_set
|
||||||
|
#define RSA_meth_set_pub_dec wolfSSL_RSA_meth_set
|
||||||
|
#define RSA_meth_set_priv_enc wolfSSL_RSA_meth_set
|
||||||
|
#define RSA_meth_set_priv_dec wolfSSL_RSA_meth_set
|
||||||
|
#define RSA_meth_set_init wolfSSL_RSA_meth_set
|
||||||
|
#define RSA_meth_set_finish wolfSSL_RSA_meth_set
|
||||||
|
#define RSA_meth_set0_app_data wolfSSL_RSA_meth_set
|
||||||
|
#define RSA_get_method wolfSSL_RSA_get_method
|
||||||
|
#define RSA_set_method wolfSSL_RSA_set_method
|
||||||
|
#define RSA_get0_key wolfSSL_RSA_get0_key
|
||||||
|
#define RSA_set0_key wolfSSL_RSA_set0_key
|
||||||
|
#define RSA_flags wolfSSL_RSA_flags
|
||||||
|
#define RSA_set_flags wolfSSL_RSA_set_flags
|
||||||
|
|
||||||
|
#define RSA_get0_key wolfSSL_RSA_get0_key
|
||||||
|
|
||||||
|
#define RSA_F4 WOLFSSL_RSA_F4
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* header */
|
203
wolfssl_hlavickove_subory/wolfssl/openssl/sha.h
Normal file
203
wolfssl_hlavickove_subory/wolfssl/openssl/sha.h
Normal file
@ -0,0 +1,203 @@
|
|||||||
|
/* sha.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* sha.h for openssl */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_SHA_H_
|
||||||
|
#define WOLFSSL_SHA_H_
|
||||||
|
|
||||||
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
|
#include <wolfssl/wolfcrypt/types.h>
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_PREFIX
|
||||||
|
#include "prefix_sha.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_SHA_CTX {
|
||||||
|
/* big enough to hold wolfcrypt Sha, but check on init */
|
||||||
|
#if defined(STM32_HASH)
|
||||||
|
void* holder[(112 + WC_ASYNC_DEV_SIZE + sizeof(STM32_HASH_Context)) / sizeof(void*)];
|
||||||
|
#else
|
||||||
|
void* holder[(112 + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
||||||
|
#endif
|
||||||
|
#ifdef WOLF_CRYPTO_CB
|
||||||
|
void* cryptocb_holder[(sizeof(int) + sizeof(void*) + 4) / sizeof(void*)];
|
||||||
|
#endif
|
||||||
|
} WOLFSSL_SHA_CTX;
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_SHA_Init(WOLFSSL_SHA_CTX*);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA_Update(WOLFSSL_SHA_CTX*, const void*, unsigned long);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA_Final(unsigned char*, WOLFSSL_SHA_CTX*);
|
||||||
|
|
||||||
|
/* SHA1 points to above, shouldn't use SHA0 ever */
|
||||||
|
WOLFSSL_API int wolfSSL_SHA1_Init(WOLFSSL_SHA_CTX*);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA1_Update(WOLFSSL_SHA_CTX*, const void*, unsigned long);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA1_Final(unsigned char*, WOLFSSL_SHA_CTX*);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SHA_DIGEST_LENGTH = 20
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef WOLFSSL_SHA_CTX SHA_CTX;
|
||||||
|
|
||||||
|
#define SHA_Init wolfSSL_SHA_Init
|
||||||
|
#define SHA_Update wolfSSL_SHA_Update
|
||||||
|
#define SHA_Final wolfSSL_SHA_Final
|
||||||
|
|
||||||
|
#define SHA1_Init wolfSSL_SHA1_Init
|
||||||
|
#define SHA1_Update wolfSSL_SHA1_Update
|
||||||
|
#define SHA1_Final wolfSSL_SHA1_Final
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_SHA224
|
||||||
|
|
||||||
|
/* Using ALIGN16 because when AES-NI is enabled digest and buffer in Sha256
|
||||||
|
* struct are 16 byte aligned. Any derefrence to those elements after casting to
|
||||||
|
* Sha224, is expected to also be 16 byte aligned addresses. */
|
||||||
|
typedef struct WOLFSSL_SHA224_CTX {
|
||||||
|
/* big enough to hold wolfcrypt Sha224, but check on init */
|
||||||
|
ALIGN16 void* holder[(272 + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
||||||
|
} WOLFSSL_SHA224_CTX;
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_SHA224_Init(WOLFSSL_SHA224_CTX*);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA224_Update(WOLFSSL_SHA224_CTX*, const void*,
|
||||||
|
unsigned long);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA224_Final(unsigned char*, WOLFSSL_SHA224_CTX*);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SHA224_DIGEST_LENGTH = 28
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef WOLFSSL_SHA224_CTX SHA224_CTX;
|
||||||
|
|
||||||
|
#define SHA224_Init wolfSSL_SHA224_Init
|
||||||
|
#define SHA224_Update wolfSSL_SHA224_Update
|
||||||
|
#define SHA224_Final wolfSSL_SHA224_Final
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_SHA224 */
|
||||||
|
|
||||||
|
|
||||||
|
/* Using ALIGN16 because when AES-NI is enabled digest and buffer in Sha256
|
||||||
|
* struct are 16 byte aligned. Any derefrence to those elements after casting to
|
||||||
|
* Sha256, is expected to also be 16 byte aligned addresses. */
|
||||||
|
typedef struct WOLFSSL_SHA256_CTX {
|
||||||
|
/* big enough to hold wolfcrypt Sha256, but check on init */
|
||||||
|
ALIGN16 void* holder[(272 + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
||||||
|
} WOLFSSL_SHA256_CTX;
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_SHA256_Init(WOLFSSL_SHA256_CTX*);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA256_Update(WOLFSSL_SHA256_CTX*, const void*,
|
||||||
|
unsigned long);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA256_Final(unsigned char*, WOLFSSL_SHA256_CTX*);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SHA256_DIGEST_LENGTH = 32
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef WOLFSSL_SHA256_CTX SHA256_CTX;
|
||||||
|
|
||||||
|
#define SHA256_Init wolfSSL_SHA256_Init
|
||||||
|
#define SHA256_Update wolfSSL_SHA256_Update
|
||||||
|
#define SHA256_Final wolfSSL_SHA256_Final
|
||||||
|
#if defined(NO_OLD_SHA_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
|
||||||
|
/* SHA256 is only available in non-fips mode because of SHA256 enum in FIPS
|
||||||
|
* build. */
|
||||||
|
#define SHA256 wolfSSL_SHA256
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_SHA384
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_SHA384_CTX {
|
||||||
|
/* big enough to hold wolfCrypt Sha384, but check on init */
|
||||||
|
void* holder[(256 + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
||||||
|
} WOLFSSL_SHA384_CTX;
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_SHA384_Init(WOLFSSL_SHA384_CTX*);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA384_Update(WOLFSSL_SHA384_CTX*, const void*,
|
||||||
|
unsigned long);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA384_Final(unsigned char*, WOLFSSL_SHA384_CTX*);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SHA384_DIGEST_LENGTH = 48
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef WOLFSSL_SHA384_CTX SHA384_CTX;
|
||||||
|
|
||||||
|
#define SHA384_Init wolfSSL_SHA384_Init
|
||||||
|
#define SHA384_Update wolfSSL_SHA384_Update
|
||||||
|
#define SHA384_Final wolfSSL_SHA384_Final
|
||||||
|
#if defined(NO_OLD_SHA_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
|
||||||
|
/* SHA384 is only available in non-fips mode because of SHA384 enum in FIPS
|
||||||
|
* build. */
|
||||||
|
#define SHA384 wolfSSL_SHA384
|
||||||
|
#endif
|
||||||
|
#endif /* WOLFSSL_SHA384 */
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_SHA512
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_SHA512_CTX {
|
||||||
|
/* big enough to hold wolfCrypt Sha384, but check on init */
|
||||||
|
void* holder[(288 + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
||||||
|
} WOLFSSL_SHA512_CTX;
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_SHA512_Init(WOLFSSL_SHA512_CTX*);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA512_Update(WOLFSSL_SHA512_CTX*, const void*,
|
||||||
|
unsigned long);
|
||||||
|
WOLFSSL_API int wolfSSL_SHA512_Final(unsigned char*, WOLFSSL_SHA512_CTX*);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SHA512_DIGEST_LENGTH = 64
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef WOLFSSL_SHA512_CTX SHA512_CTX;
|
||||||
|
|
||||||
|
#define SHA512_Init wolfSSL_SHA512_Init
|
||||||
|
#define SHA512_Update wolfSSL_SHA512_Update
|
||||||
|
#define SHA512_Final wolfSSL_SHA512_Final
|
||||||
|
#if defined(NO_OLD_SHA_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
|
||||||
|
/* SHA512 is only available in non-fips mode because of SHA512 enum in FIPS
|
||||||
|
* build. */
|
||||||
|
#define SHA512 wolfSSL_SHA512
|
||||||
|
#endif
|
||||||
|
#endif /* WOLFSSL_SHA512 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_SHA_H_ */
|
||||||
|
|
1176
wolfssl_hlavickove_subory/wolfssl/openssl/ssl.h
Normal file
1176
wolfssl_hlavickove_subory/wolfssl/openssl/ssl.h
Normal file
File diff suppressed because it is too large
Load Diff
1
wolfssl_hlavickove_subory/wolfssl/openssl/ssl23.h
Normal file
1
wolfssl_hlavickove_subory/wolfssl/openssl/ssl23.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
/* ssl23.h for openssl */
|
59
wolfssl_hlavickove_subory/wolfssl/openssl/stack.h
Normal file
59
wolfssl_hlavickove_subory/wolfssl/openssl/stack.h
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/* stack.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* stack.h for openSSL */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_STACK_H_
|
||||||
|
#define WOLFSSL_STACK_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef void (*wolfSSL_sk_freefunc)(void *);
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_sk_GENERIC_pop_free(WOLFSSL_STACK* sk, wolfSSL_sk_freefunc);
|
||||||
|
WOLFSSL_API void wolfSSL_sk_GENERIC_free(WOLFSSL_STACK *);
|
||||||
|
WOLFSSL_API int wolfSSL_sk_GENERIC_push(WOLFSSL_STACK *sk, void *data);
|
||||||
|
WOLFSSL_API void wolfSSL_sk_pop_free(WOLFSSL_STACK *st, void (*func) (void *));
|
||||||
|
WOLFSSL_API void wolfSSL_sk_CONF_VALUE_free(WOLF_STACK_OF(WOLFSSL_CONF_VALUE)* sk);
|
||||||
|
WOLFSSL_API WOLFSSL_STACK *wolfSSL_sk_new_null(void);
|
||||||
|
|
||||||
|
WOLFSSL_API int wolfSSL_sk_CIPHER_push(WOLFSSL_STACK *st,WOLFSSL_CIPHER *cipher);
|
||||||
|
WOLFSSL_API WOLFSSL_CIPHER* wolfSSL_sk_CIPHER_pop(WOLF_STACK_OF(WOLFSSL_CIPHER)* sk);
|
||||||
|
WOLFSSL_API WOLFSSL_STACK* wolfSSL_sk_new_cipher(void);
|
||||||
|
|
||||||
|
#define OPENSSL_sk_free wolfSSL_sk_free
|
||||||
|
#define OPENSSL_sk_pop_free wolfSSL_sk_pop_free
|
||||||
|
#define OPENSSL_sk_new_null wolfSSL_sk_new_null
|
||||||
|
#define OPENSSL_sk_push wolfSSL_sk_push
|
||||||
|
|
||||||
|
/* provides older OpenSSL API compatibility */
|
||||||
|
#define sk_free OPENSSL_sk_free
|
||||||
|
#define sk_pop_free OPENSSL_sk_pop_free
|
||||||
|
#define sk_new_null OPENSSL_sk_new_null
|
||||||
|
#define sk_push OPENSSL_sk_push
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
46
wolfssl_hlavickove_subory/wolfssl/openssl/tls1.h
Normal file
46
wolfssl_hlavickove_subory/wolfssl/openssl/tls1.h
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/* tls1.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_OPENSSL_TLS1_H_
|
||||||
|
#define WOLFSSL_OPENSSL_TLS1_H_
|
||||||
|
|
||||||
|
#ifndef TLS1_VERSION
|
||||||
|
#define TLS1_VERSION 0x0301
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TLS1_1_VERSION
|
||||||
|
#define TLS1_1_VERSION 0x0302
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TLS1_2_VERSION
|
||||||
|
#define TLS1_2_VERSION 0x0303
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TLS1_3_VERSION
|
||||||
|
#define TLS1_3_VERSION 0x0304
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TLS_MAX_VERSION
|
||||||
|
#define TLS_MAX_VERSION TLS1_3_VERSION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_OPENSSL_TLS1_H_ */
|
2
wolfssl_hlavickove_subory/wolfssl/openssl/ui.h
Normal file
2
wolfssl_hlavickove_subory/wolfssl/openssl/ui.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/* ui.h for openssl */
|
||||||
|
|
23
wolfssl_hlavickove_subory/wolfssl/openssl/x509.h
Normal file
23
wolfssl_hlavickove_subory/wolfssl/openssl/x509.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* x509.h for openssl */
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
#include <wolfssl/openssl/dh.h>
|
||||||
|
|
||||||
|
/* wolfSSL_X509_print_ex flags */
|
||||||
|
#define X509_FLAG_COMPAT (0UL)
|
||||||
|
#define X509_FLAG_NO_HEADER (1UL << 0)
|
||||||
|
#define X509_FLAG_NO_VERSION (1UL << 1)
|
||||||
|
#define X509_FLAG_NO_SERIAL (1UL << 2)
|
||||||
|
#define X509_FLAG_NO_SIGNAME (1UL << 3)
|
||||||
|
#define X509_FLAG_NO_ISSUER (1UL << 4)
|
||||||
|
#define X509_FLAG_NO_VALIDITY (1UL << 5)
|
||||||
|
#define X509_FLAG_NO_SUBJECT (1UL << 6)
|
||||||
|
#define X509_FLAG_NO_PUBKEY (1UL << 7)
|
||||||
|
#define X509_FLAG_NO_EXTENSIONS (1UL << 8)
|
||||||
|
#define X509_FLAG_NO_SIGDUMP (1UL << 9)
|
||||||
|
#define X509_FLAG_NO_AUX (1UL << 10)
|
||||||
|
#define X509_FLAG_NO_ATTRIBUTES (1UL << 11)
|
||||||
|
#define X509_FLAG_NO_IDS (1UL << 12)
|
||||||
|
|
||||||
|
#define XN_FLAG_FN_SN 0
|
||||||
|
#define XN_FLAG_SEP_CPLUS_SPC 2
|
1
wolfssl_hlavickove_subory/wolfssl/openssl/x509_vfy.h
Normal file
1
wolfssl_hlavickove_subory/wolfssl/openssl/x509_vfy.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
/* x509_vfy.h for openssl */
|
116
wolfssl_hlavickove_subory/wolfssl/openssl/x509v3.h
Normal file
116
wolfssl_hlavickove_subory/wolfssl/openssl/x509v3.h
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
/* x509v3.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* x509v3.h for openSSL */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_x509v3_H
|
||||||
|
#define WOLFSSL_x509v3_H
|
||||||
|
|
||||||
|
#include <wolfssl/openssl/conf.h>
|
||||||
|
#include <wolfssl/openssl/bio.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X509_PURPOSE_SSL_CLIENT 0
|
||||||
|
#define X509_PURPOSE_SSL_SERVER 1
|
||||||
|
|
||||||
|
#define NS_SSL_CLIENT 0
|
||||||
|
#define NS_SSL_SERVER 1
|
||||||
|
|
||||||
|
/* Forward reference */
|
||||||
|
|
||||||
|
typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long);
|
||||||
|
typedef STACK_OF(CONF_VALUE) *(*X509V3_EXT_I2V) (
|
||||||
|
struct WOLFSSL_v3_ext_method *method,
|
||||||
|
void *ext, STACK_OF(CONF_VALUE) *extlist);
|
||||||
|
typedef char *(*X509V3_EXT_I2S)(struct WOLFSSL_v3_ext_method *method, void *ext);
|
||||||
|
typedef int (*X509V3_EXT_I2R) (struct WOLFSSL_v3_ext_method *method,
|
||||||
|
void *ext, BIO *out, int indent);
|
||||||
|
typedef struct WOLFSSL_v3_ext_method X509V3_EXT_METHOD;
|
||||||
|
|
||||||
|
struct WOLFSSL_v3_ext_method {
|
||||||
|
int ext_nid;
|
||||||
|
int ext_flags;
|
||||||
|
void *usr_data;
|
||||||
|
X509V3_EXT_D2I d2i;
|
||||||
|
X509V3_EXT_I2V i2v;
|
||||||
|
X509V3_EXT_I2S i2s;
|
||||||
|
X509V3_EXT_I2R i2r;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct WOLFSSL_X509_EXTENSION {
|
||||||
|
WOLFSSL_ASN1_OBJECT *obj;
|
||||||
|
WOLFSSL_ASN1_BOOLEAN crit;
|
||||||
|
WOLFSSL_ASN1_STRING value;
|
||||||
|
WOLFSSL_v3_ext_method ext_method;
|
||||||
|
WOLFSSL_STACK* ext_sk; /* For extension specific data */
|
||||||
|
};
|
||||||
|
|
||||||
|
#define WOLFSSL_ASN1_BOOLEAN int
|
||||||
|
#define GEN_OTHERNAME 0
|
||||||
|
#define GEN_EMAIL 1
|
||||||
|
#define GEN_DNS 2
|
||||||
|
#define GEN_X400 3
|
||||||
|
#define GEN_DIRNAME 4
|
||||||
|
#define GEN_EDIPARTY 5
|
||||||
|
#define GEN_URI 6
|
||||||
|
#define GEN_IPADD 7
|
||||||
|
#define GEN_RID 8
|
||||||
|
|
||||||
|
#define GENERAL_NAME WOLFSSL_GENERAL_NAME
|
||||||
|
|
||||||
|
#define X509V3_CTX WOLFSSL_X509V3_CTX
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_AUTHORITY_KEYID AUTHORITY_KEYID;
|
||||||
|
typedef struct WOLFSSL_BASIC_CONSTRAINTS BASIC_CONSTRAINTS;
|
||||||
|
typedef struct WOLFSSL_ACCESS_DESCRIPTION ACCESS_DESCRIPTION;
|
||||||
|
typedef WOLF_STACK_OF(WOLFSSL_ACCESS_DESCRIPTION) WOLFSSL_AUTHORITY_INFO_ACCESS;
|
||||||
|
|
||||||
|
WOLFSSL_API void wolfSSL_BASIC_CONSTRAINTS_free(WOLFSSL_BASIC_CONSTRAINTS *bc);
|
||||||
|
WOLFSSL_API void wolfSSL_AUTHORITY_KEYID_free(WOLFSSL_AUTHORITY_KEYID *id);
|
||||||
|
WOLFSSL_API const WOLFSSL_v3_ext_method* wolfSSL_X509V3_EXT_get(
|
||||||
|
WOLFSSL_X509_EXTENSION* ex);
|
||||||
|
WOLFSSL_API void* wolfSSL_X509V3_EXT_d2i(WOLFSSL_X509_EXTENSION* ex);
|
||||||
|
WOLFSSL_API char* wolfSSL_i2s_ASN1_STRING(WOLFSSL_v3_ext_method *method,
|
||||||
|
const WOLFSSL_ASN1_STRING *s);
|
||||||
|
WOLFSSL_API int wolfSSL_X509V3_EXT_print(WOLFSSL_BIO *out,
|
||||||
|
WOLFSSL_X509_EXTENSION *ext, unsigned long flag, int indent);
|
||||||
|
|
||||||
|
#define BASIC_CONSTRAINTS_free wolfSSL_BASIC_CONSTRAINTS_free
|
||||||
|
#define AUTHORITY_KEYID_free wolfSSL_AUTHORITY_KEYID_free
|
||||||
|
#define SSL_CTX_get_cert_store(x) wolfSSL_CTX_get_cert_store ((WOLFSSL_CTX*) (x))
|
||||||
|
#define ASN1_INTEGER WOLFSSL_ASN1_INTEGER
|
||||||
|
#define ASN1_OCTET_STRING WOLFSSL_ASN1_STRING
|
||||||
|
#define X509V3_EXT_get wolfSSL_X509V3_EXT_get
|
||||||
|
#define X509V3_EXT_d2i wolfSSL_X509V3_EXT_d2i
|
||||||
|
#define i2s_ASN1_OCTET_STRING wolfSSL_i2s_ASN1_STRING
|
||||||
|
#define X509V3_EXT_print wolfSSL_X509V3_EXT_print
|
||||||
|
#define X509V3_EXT_conf_nid wolfSSL_X509V3_EXT_conf_nid
|
||||||
|
#define X509V3_set_ctx wolfSSL_X509V3_set_ctx
|
||||||
|
#define X509V3_set_ctx_nodb wolfSSL_X509V3_set_ctx_nodb
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
290
wolfssl_hlavickove_subory/wolfssl/options.h
Normal file
290
wolfssl_hlavickove_subory/wolfssl/options.h
Normal file
@ -0,0 +1,290 @@
|
|||||||
|
/* options.h.in
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of wolfSSL.
|
||||||
|
*
|
||||||
|
* wolfSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* wolfSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* default blank options for autoconf */
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_OPTIONS_H
|
||||||
|
#define WOLFSSL_OPTIONS_H
|
||||||
|
|
||||||
|
#undef HAVE_FFDHE_2048
|
||||||
|
#define HAVE_FFDHE_2048
|
||||||
|
|
||||||
|
#undef WOLFSSL_VERIFY_CB_ALL_CERTS
|
||||||
|
#define WOLFSSL_VERIFY_CB_ALL_CERTS
|
||||||
|
|
||||||
|
#undef WOLFSSL_EXTRA_ALERTS
|
||||||
|
#define WOLFSSL_EXTRA_ALERTS
|
||||||
|
|
||||||
|
#undef OPENSSL_EXTRA
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
|
||||||
|
#undef WOLFSSL_ALWAYS_VERIFY_CB
|
||||||
|
#define WOLFSSL_ALWAYS_VERIFY_CB
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_OPTIONS_IGNORE_SYS
|
||||||
|
#undef _POSIX_THREADS
|
||||||
|
#define _POSIX_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef HAVE_THREAD_LS
|
||||||
|
#define HAVE_THREAD_LS
|
||||||
|
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
|
||||||
|
#undef ECC_TIMING_RESISTANT
|
||||||
|
#define ECC_TIMING_RESISTANT
|
||||||
|
|
||||||
|
#undef WC_RSA_BLINDING
|
||||||
|
#define WC_RSA_BLINDING
|
||||||
|
|
||||||
|
#undef HAVE_AESGCM
|
||||||
|
#define HAVE_AESGCM
|
||||||
|
|
||||||
|
#undef WOLFSSL_SHA512
|
||||||
|
#define WOLFSSL_SHA512
|
||||||
|
|
||||||
|
#undef WOLFSSL_SHA384
|
||||||
|
#define WOLFSSL_SHA384
|
||||||
|
|
||||||
|
#undef WOLFSSL_KEY_GEN
|
||||||
|
#define WOLFSSL_KEY_GEN
|
||||||
|
|
||||||
|
#undef WOLFSSL_CERT_GEN
|
||||||
|
#define WOLFSSL_CERT_GEN
|
||||||
|
|
||||||
|
#undef WOLFSSL_CERT_REQ
|
||||||
|
#define WOLFSSL_CERT_REQ
|
||||||
|
|
||||||
|
#undef NO_DSA
|
||||||
|
#define NO_DSA
|
||||||
|
|
||||||
|
#undef TFM_ECC256
|
||||||
|
#define TFM_ECC256
|
||||||
|
|
||||||
|
#undef ECC_SHAMIR
|
||||||
|
#define ECC_SHAMIR
|
||||||
|
|
||||||
|
#undef WOLFSSL_BASE64_ENCODE
|
||||||
|
#define WOLFSSL_BASE64_ENCODE
|
||||||
|
|
||||||
|
#undef NO_RC4
|
||||||
|
#define NO_RC4
|
||||||
|
|
||||||
|
#undef NO_HC128
|
||||||
|
#define NO_HC128
|
||||||
|
|
||||||
|
#undef NO_RABBIT
|
||||||
|
#define NO_RABBIT
|
||||||
|
|
||||||
|
#undef WOLFSSL_SHA224
|
||||||
|
#define WOLFSSL_SHA224
|
||||||
|
|
||||||
|
#undef WOLFSSL_SHA3
|
||||||
|
#define WOLFSSL_SHA3
|
||||||
|
|
||||||
|
#undef HAVE_POLY1305
|
||||||
|
#define HAVE_POLY1305
|
||||||
|
|
||||||
|
#undef HAVE_ONE_TIME_AUTH
|
||||||
|
#define HAVE_ONE_TIME_AUTH
|
||||||
|
|
||||||
|
#undef HAVE_CHACHA
|
||||||
|
#define HAVE_CHACHA
|
||||||
|
|
||||||
|
#undef HAVE_HASHDRBG
|
||||||
|
#define HAVE_HASHDRBG
|
||||||
|
|
||||||
|
#undef HAVE_TLS_EXTENSIONS
|
||||||
|
#define HAVE_TLS_EXTENSIONS
|
||||||
|
|
||||||
|
#undef HAVE_SUPPORTED_CURVES
|
||||||
|
#define HAVE_SUPPORTED_CURVES
|
||||||
|
|
||||||
|
#undef HAVE_EXTENDED_MASTER
|
||||||
|
#define HAVE_EXTENDED_MASTER
|
||||||
|
|
||||||
|
#undef HAVE_ENCRYPT_THEN_MAC
|
||||||
|
#define HAVE_ENCRYPT_THEN_MAC
|
||||||
|
|
||||||
|
#undef NO_PSK
|
||||||
|
#define NO_PSK
|
||||||
|
|
||||||
|
#undef NO_MD4
|
||||||
|
#define NO_MD4
|
||||||
|
|
||||||
|
#undef WOLFSSL_ENCRYPTED_KEYS
|
||||||
|
#define WOLFSSL_ENCRYPTED_KEYS
|
||||||
|
|
||||||
|
#undef USE_FAST_MATH
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
|
||||||
|
#undef WOLFSSL_X86_64_BUILD
|
||||||
|
#define WOLFSSL_X86_64_BUILD
|
||||||
|
|
||||||
|
#undef WC_NO_ASYNC_THREADING
|
||||||
|
#define WC_NO_ASYNC_THREADING
|
||||||
|
|
||||||
|
#undef NO_DES3
|
||||||
|
#define NO_DES3
|
||||||
|
|
||||||
|
#undef HAVE___UINT128_T
|
||||||
|
#define HAVE___UINT128_T 1#undef HAVE_FFDHE_2048
|
||||||
|
#define HAVE_FFDHE_2048
|
||||||
|
|
||||||
|
#undef WOLFSSL_VERIFY_CB_ALL_CERTS
|
||||||
|
#define WOLFSSL_VERIFY_CB_ALL_CERTS
|
||||||
|
|
||||||
|
#undef WOLFSSL_EXTRA_ALERTS
|
||||||
|
#define WOLFSSL_EXTRA_ALERTS
|
||||||
|
|
||||||
|
#undef OPENSSL_EXTRA
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
|
||||||
|
#undef WOLFSSL_ALWAYS_VERIFY_CB
|
||||||
|
#define WOLFSSL_ALWAYS_VERIFY_CB
|
||||||
|
|
||||||
|
#ifndef WOLFSSL_OPTIONS_IGNORE_SYS
|
||||||
|
#undef _POSIX_THREADS
|
||||||
|
#define _POSIX_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef HAVE_THREAD_LS
|
||||||
|
#define HAVE_THREAD_LS
|
||||||
|
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
|
||||||
|
#undef ECC_TIMING_RESISTANT
|
||||||
|
#define ECC_TIMING_RESISTANT
|
||||||
|
|
||||||
|
#undef WC_RSA_BLINDING
|
||||||
|
#define WC_RSA_BLINDING
|
||||||
|
|
||||||
|
#undef HAVE_AESGCM
|
||||||
|
#define HAVE_AESGCM
|
||||||
|
|
||||||
|
#undef WOLFSSL_SHA512
|
||||||
|
#define WOLFSSL_SHA512
|
||||||
|
|
||||||
|
#undef WOLFSSL_SHA384
|
||||||
|
#define WOLFSSL_SHA384
|
||||||
|
|
||||||
|
#undef WOLFSSL_KEY_GEN
|
||||||
|
#define WOLFSSL_KEY_GEN
|
||||||
|
|
||||||
|
#undef WOLFSSL_CERT_GEN
|
||||||
|
#define WOLFSSL_CERT_GEN
|
||||||
|
|
||||||
|
#undef WOLFSSL_CERT_REQ
|
||||||
|
#define WOLFSSL_CERT_REQ
|
||||||
|
|
||||||
|
#undef NO_DSA
|
||||||
|
#define NO_DSA
|
||||||
|
|
||||||
|
#undef HAVE_ECC
|
||||||
|
#define HAVE_ECC
|
||||||
|
|
||||||
|
#undef TFM_ECC256
|
||||||
|
#define TFM_ECC256
|
||||||
|
|
||||||
|
#undef ECC_SHAMIR
|
||||||
|
#define ECC_SHAMIR
|
||||||
|
|
||||||
|
#undef WOLFSSL_BASE64_ENCODE
|
||||||
|
#define WOLFSSL_BASE64_ENCODE
|
||||||
|
|
||||||
|
#undef NO_RC4
|
||||||
|
#define NO_RC4
|
||||||
|
|
||||||
|
#undef NO_HC128
|
||||||
|
#define NO_HC128
|
||||||
|
|
||||||
|
#undef NO_RABBIT
|
||||||
|
#define NO_RABBIT
|
||||||
|
|
||||||
|
#undef WOLFSSL_SHA224
|
||||||
|
#define WOLFSSL_SHA224
|
||||||
|
|
||||||
|
#undef WOLFSSL_SHA3
|
||||||
|
#define WOLFSSL_SHA3
|
||||||
|
|
||||||
|
#undef HAVE_POLY1305
|
||||||
|
#define HAVE_POLY1305
|
||||||
|
|
||||||
|
#undef HAVE_ONE_TIME_AUTH
|
||||||
|
#define HAVE_ONE_TIME_AUTH
|
||||||
|
|
||||||
|
#undef HAVE_CHACHA
|
||||||
|
#define HAVE_CHACHA
|
||||||
|
|
||||||
|
#undef HAVE_HASHDRBG
|
||||||
|
#define HAVE_HASHDRBG
|
||||||
|
|
||||||
|
#undef HAVE_TLS_EXTENSIONS
|
||||||
|
#define HAVE_TLS_EXTENSIONS
|
||||||
|
|
||||||
|
#undef HAVE_SUPPORTED_CURVES
|
||||||
|
#define HAVE_SUPPORTED_CURVES
|
||||||
|
|
||||||
|
#undef HAVE_EXTENDED_MASTER
|
||||||
|
#define HAVE_EXTENDED_MASTER
|
||||||
|
|
||||||
|
#undef HAVE_ENCRYPT_THEN_MAC
|
||||||
|
#define HAVE_ENCRYPT_THEN_MAC
|
||||||
|
|
||||||
|
#undef NO_PSK
|
||||||
|
#define NO_PSK
|
||||||
|
|
||||||
|
#undef NO_MD4
|
||||||
|
#define NO_MD4
|
||||||
|
|
||||||
|
#undef WOLFSSL_ENCRYPTED_KEYS
|
||||||
|
#define WOLFSSL_ENCRYPTED_KEYS
|
||||||
|
|
||||||
|
#undef USE_FAST_MATH
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
|
||||||
|
#undef WOLFSSL_X86_64_BUILD
|
||||||
|
#define WOLFSSL_X86_64_BUILD
|
||||||
|
|
||||||
|
#undef WC_NO_ASYNC_THREADING
|
||||||
|
#define WC_NO_ASYNC_THREADING
|
||||||
|
|
||||||
|
#undef NO_DES3
|
||||||
|
#define NO_DES3
|
||||||
|
|
||||||
|
#undef HAVE___UINT128_T
|
||||||
|
#define HAVE___UINT128_T
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* WOLFSSL_OPTIONS_H */
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user