Reworking the library
netold contains the older library. the new library has all the core features that was in the old library.
This commit is contained in:
parent
fa9909c3b5
commit
859ae91395
BIN
certs/.rnd
BIN
certs/.rnd
Binary file not shown.
@ -1,14 +1,8 @@
|
|||||||
REM make sure the 'openssl.exe' commandline tool is in your path before starting!
|
REM make sure the 'openssl.exe' commandline tool is in your path before starting!
|
||||||
REM set the path below;
|
REM set the path below;
|
||||||
set opensslpath=C:\OpenSSL-Win32\bin
|
set opensslpath=C:\OpenSSL-Win32\bin
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setlocal
|
setlocal
|
||||||
set path=%opensslpath%;%path%
|
set path=%opensslpath%;%path%
|
||||||
call roota.bat
|
call roota.bat
|
||||||
call rootb.bat
|
|
||||||
call servera.bat
|
call servera.bat
|
||||||
call serverb.bat
|
|
||||||
call clienta.bat
|
call clienta.bat
|
||||||
call clientb.bat
|
|
||||||
|
|||||||
@ -1,44 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDNTCCAp6gAwIBAgIJANp+V2miEyyZMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
|
||||||
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
|
||||||
BlJvb3QgQTAeFw0xNzA2MjgxODExMzJaFw0xODA2MjgxODExMzJaMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMREwDwYDVQQDEwhD
|
|
||||||
bGllbnQgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyF0ZcB+on+ir7Ac+
|
|
||||||
hX6AvL5GFv362QNU4Yjoh5Lrd10PfexwvcAk1nW9tQ1ZBZ2Q9qbm6xLixM2rtgIR
|
|
||||||
qyU0OJBiwe1ya13cyIY4MsXSnBu4i/oytUA72tIlIg1f1lZu9ueKhFNRHfV0TtPb
|
|
||||||
2P0lOgkTBIgDh4RRETZo4yHDoiUCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB
|
|
||||||
hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE
|
|
||||||
FAKFT1hs8t+xbQSDi+PfxK/1GGQDMB8GA1UdIwQYMBaAFC+73xiwIpAjd/vo/319
|
|
||||||
oUWzE+X9MA0GCSqGSIb3DQEBBQUAA4GBAGFwzagTAQkArthKGESnw+EbFOd9qnF8
|
|
||||||
FYEyhS2iDIgQnPq4fDGbpSELpcxeOLQndH7g0GiCTqjHnhhpmFnXsriA2ia+RgMy
|
|
||||||
PYCE2dyeCEFYCb9TSUBIdPr9OQPGop/TRY83eGQVxUcRjhGndDCcvN6N4MMeZQpC
|
|
||||||
UiHF9G3mj7nC
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDwjCCAyugAwIBAgIJAJSqyJBOJrGkMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
|
||||||
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
|
||||||
BlJvb3QgQTAeFw0xNzA2MjgxODExMzJaFw0xODA2MjgxODExMzJaMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
|
||||||
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
|
||||||
BlJvb3QgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAs3B138Uul360K3QZ
|
|
||||||
11FnFdFhQ2yW7hN4+20RZ8BQ+SGn7ej1uld/zSHeYxYYlWpSkMryWmOPhBSkGd43
|
|
||||||
zZxxvuo9+jh4ahqhmWoovRSilWBoZznQwLBUv35N7XCa+L9KJL+RBKYzsMi6K7Ai
|
|
||||||
jZgR3yRtSiqcOjT7VigHYW15dKMCAwEAAaOCAQYwggECMB0GA1UdDgQWBBQvu98Y
|
|
||||||
sCKQI3f76P99faFFsxPl/TCB0gYDVR0jBIHKMIHHgBQvu98YsCKQI3f76P99faFF
|
|
||||||
sxPl/aGBo6SBoDCBnTELMAkGA1UEBhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNh
|
|
||||||
bnRvMR8wHQYDVQQHExZTYW50byBBbnRvbmlvIGRvIENhbmFhMRowGAYDVQQKExFT
|
|
||||||
YW50byBUb25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRl
|
|
||||||
ciBTY2llbmNlMQ8wDQYDVQQDEwZSb290IEGCCQCUqsiQTiaxpDAMBgNVHRMEBTAD
|
|
||||||
AQH/MA0GCSqGSIb3DQEBBQUAA4GBACFWgpF/q1nJDY9UT2R/8aXf08KUZSu6L5Oi
|
|
||||||
3niZsPRyHBRJkysw1PHwktF69fU8bL2p84Atni+w5Pp24PexDUStNyer2riUGzKg
|
|
||||||
Y4D7wMVGSgzryGgNLqCe0rsm3zcWEqEFSUsZRtWSda12vAZsUX4VmmR72rMXEU4X
|
|
||||||
a9sWuhH8
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDNTCCAp6gAwIBAgIJANp+V2miEyyZMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
|
||||||
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
|
||||||
BlJvb3QgQTAeFw0xNzA2MjgxODExMzJaFw0xODA2MjgxODExMzJaMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMREwDwYDVQQDEwhD
|
|
||||||
bGllbnQgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyF0ZcB+on+ir7Ac+
|
|
||||||
hX6AvL5GFv362QNU4Yjoh5Lrd10PfexwvcAk1nW9tQ1ZBZ2Q9qbm6xLixM2rtgIR
|
|
||||||
qyU0OJBiwe1ya13cyIY4MsXSnBu4i/oytUA72tIlIg1f1lZu9ueKhFNRHfV0TtPb
|
|
||||||
2P0lOgkTBIgDh4RRETZo4yHDoiUCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB
|
|
||||||
hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE
|
|
||||||
FAKFT1hs8t+xbQSDi+PfxK/1GGQDMB8GA1UdIwQYMBaAFC+73xiwIpAjd/vo/319
|
|
||||||
oUWzE+X9MA0GCSqGSIb3DQEBBQUAA4GBAGFwzagTAQkArthKGESnw+EbFOd9qnF8
|
|
||||||
FYEyhS2iDIgQnPq4fDGbpSELpcxeOLQndH7g0GiCTqjHnhhpmFnXsriA2ia+RgMy
|
|
||||||
PYCE2dyeCEFYCb9TSUBIdPr9OQPGop/TRY83eGQVxUcRjhGndDCcvN6N4MMeZQpC
|
|
||||||
UiHF9G3mj7nC
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMhdGXAfqJ/oq+wH
|
|
||||||
PoV+gLy+Rhb9+tkDVOGI6IeS63ddD33scL3AJNZ1vbUNWQWdkPam5usS4sTNq7YC
|
|
||||||
EaslNDiQYsHtcmtd3MiGODLF0pwbuIv6MrVAO9rSJSINX9ZWbvbnioRTUR31dE7T
|
|
||||||
29j9JToJEwSIA4eEURE2aOMhw6IlAgMBAAECgYB6UJte33TJafjKNgHs7LUag+21
|
|
||||||
y4Z/RJFkvXd2jDJCxATZEqYgsFPMuEP/aw6VZwNAD9OYXgchrYzNp6WxnRyq9rS7
|
|
||||||
ClTwFkxn9mJvAKXc2P0sKDVrKbhbwc64//bRDMz22mlR02w7ZUQ1D09nl9wRepVD
|
|
||||||
1sgH++rgGOXle4+QAQJBAOKJz5Ab3OvfODg1TkDwKzQmq1iy0yGaLX9ryJlQgunf
|
|
||||||
yuRLc5y6/p+gCu9BsyVJqBfg05xePPgT4fmXutNcM6UCQQDia9mlXLwjFAwQT/Mw
|
|
||||||
2dtwFHsWTfOhzvHnT+Fr+RpgIgMQmxPOMoPCjwqxBoYIkSGxEDYQlHUp4pqpJbu5
|
|
||||||
NGyBAkAqlDh9H5+Qfe41Ml+4+OtF7Ba8ny/r2uy+TGXx2x4gEz4xVrUuOj9thUlI
|
|
||||||
2xJu6b88bbeYZmYTQrlwjkJBQ805AkEAvnTH/BAYdU1MpIAL6aCntAyWSPnDIO2p
|
|
||||||
j9Aipyc/p3OUrmgz7bOSH5sg/C2nmxcxhvZC9Alc0KG7ROLnmG9fgQJBAKJtTtx4
|
|
||||||
C6zJ/CPVKqaxJEa1ftObWXUHjS838l2PDNLd7Xg4ZW+Rr6/yMXJrkc1mLApZoaIX
|
|
||||||
mWGR9+d+z0zOCMI=
|
|
||||||
-----END PRIVATE KEY-----
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE REQUEST-----
|
|
||||||
MIIB3jCCAUcCAQAwgZ0xCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
|
||||||
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEYMBYGA1UEChMP
|
|
||||||
U2FvIFRvbmljbyBMdGRhMScwJQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVy
|
|
||||||
IFNjaWVuY2UxETAPBgNVBAMTCENsaWVudCBBMIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
|
||||||
ADCBiQKBgQDIXRlwH6if6KvsBz6FfoC8vkYW/frZA1ThiOiHkut3XQ997HC9wCTW
|
|
||||||
db21DVkFnZD2pubrEuLEzau2AhGrJTQ4kGLB7XJrXdzIhjgyxdKcG7iL+jK1QDva
|
|
||||||
0iUiDV/WVm7254qEU1Ed9XRO09vY/SU6CRMEiAOHhFERNmjjIcOiJQIDAQABoAAw
|
|
||||||
DQYJKoZIhvcNAQEFBQADgYEAWuMMubz+6Gh/A9ZVmJIyRgcMLyrklB3jyu6oqZDW
|
|
||||||
1OnNkCBrfhKpvuyGe8JtTH1eoI9aWNSgGYyjNXooLsZOjnWLrIJEW/wzj9WIcWnR
|
|
||||||
rcCzkCZSt7FUC09CRAbvHndtpffZrZJLZ9Q4+uTkpCe2DfFIWYHdNMlJriQwnjyZ
|
|
||||||
6oY=
|
|
||||||
-----END CERTIFICATE REQUEST-----
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDMzCCApygAwIBAgIJAKYuEhfbhd4GMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
|
||||||
b290IEIwHhcNMTcwNjI4MTgxMTMzWhcNMTgwNjI4MTgxMTMzWjCBnTELMAkGA1UE
|
|
||||||
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
|
||||||
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
|
||||||
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTERMA8GA1UEAxMIQ2xp
|
|
||||||
ZW50IEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMAU67v0VbRPsaB1PmcF
|
|
||||||
yHB+4MqlFCOsn3ovvsy+J3W9gWhjqSZoOd7gHWlPUCSQTTfxQevlOqitv0KEAm8b
|
|
||||||
WnZduslnOnHI8oaQL3j+Fps7WtE6H6QK69c7nvhTZ3osKrgzSo5XXMNKO0SCCAFi
|
|
||||||
YkP9DYaekckQ4ZGkwa/gu19VAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4
|
|
||||||
QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRj
|
|
||||||
O+slbrPO0L3h75KLTdxA5dz0OzAfBgNVHSMEGDAWgBTIf2MLMKUZLIrr4i2kBFyr
|
|
||||||
9RRkdDANBgkqhkiG9w0BAQUFAAOBgQA0kyQ47ukI/59xruf+vnYzTv7aQWXfKvM7
|
|
||||||
QYedTw7uFmBUmusd/593Ftv7MbyzCgJQX61ztGfYyET7DjjxwJ6Bfvbg6JPo+gTF
|
|
||||||
pgdY5fVn8nIdGJGYSsMQOp4MQlnzTM3CYZu772CBs5yW4OA6FzPJzWcVLeDbN6oL
|
|
||||||
Tk97P0CJog==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDvDCCAyWgAwIBAgIJAJ5E4CzplDDkMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
|
||||||
b290IEIwHhcNMTcwNjI4MTgxMTMyWhcNMTgwNjI4MTgxMTMyWjCBmzELMAkGA1UE
|
|
||||||
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
|
||||||
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
|
||||||
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTEPMA0GA1UEAxMGUm9v
|
|
||||||
dCBCMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMI9gMIAALR/EUHILUVjnj
|
|
||||||
bS0S+u5PjzqZ9Z573m0JyLLhy0hd+bJLo/f7iJ10KjOKQ3vvWZZYQkrtYxm0Q5LK
|
|
||||||
Z9thtVQ8ChvO2VBWwKwCd5HB5HbTW7IzigR9vatUzkjFGLeLB2TpqjU/GyPbeyzD
|
|
||||||
1AQQ96yftHZ1V2mUm6pPlQIDAQABo4IBBDCCAQAwHQYDVR0OBBYEFMh/YwswpRks
|
|
||||||
iuviLaQEXKv1FGR0MIHQBgNVHSMEgcgwgcWAFMh/YwswpRksiuviLaQEXKv1FGR0
|
|
||||||
oYGhpIGeMIGbMQswCQYDVQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8x
|
|
||||||
HzAdBgNVBAcTFlNhbnRvIEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBU
|
|
||||||
b25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2ll
|
|
||||||
bmNlMQ8wDQYDVQQDEwZSb290IEKCCQCeROAs6ZQw5DAMBgNVHRMEBTADAQH/MA0G
|
|
||||||
CSqGSIb3DQEBBQUAA4GBABjxZmVXAYqXqHJVkI2Lq1RLg/Jrfmp0yE9Hq97I/gLA
|
|
||||||
lpCwzuq3cJsnrYYau2DuuY62f3rrgp87wZ42Sg0ViHg9cP43/W7MUXT3SJkdKKc1
|
|
||||||
6rxyjwMvjVJyOXQnnLVwbyiPc7xi+S3HZ1hpruE2PUqaYnd7HsciMKm/Qc06LMlw
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDMzCCApygAwIBAgIJAKYuEhfbhd4GMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
|
||||||
b290IEIwHhcNMTcwNjI4MTgxMTMzWhcNMTgwNjI4MTgxMTMzWjCBnTELMAkGA1UE
|
|
||||||
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
|
||||||
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
|
||||||
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTERMA8GA1UEAxMIQ2xp
|
|
||||||
ZW50IEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMAU67v0VbRPsaB1PmcF
|
|
||||||
yHB+4MqlFCOsn3ovvsy+J3W9gWhjqSZoOd7gHWlPUCSQTTfxQevlOqitv0KEAm8b
|
|
||||||
WnZduslnOnHI8oaQL3j+Fps7WtE6H6QK69c7nvhTZ3osKrgzSo5XXMNKO0SCCAFi
|
|
||||||
YkP9DYaekckQ4ZGkwa/gu19VAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4
|
|
||||||
QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRj
|
|
||||||
O+slbrPO0L3h75KLTdxA5dz0OzAfBgNVHSMEGDAWgBTIf2MLMKUZLIrr4i2kBFyr
|
|
||||||
9RRkdDANBgkqhkiG9w0BAQUFAAOBgQA0kyQ47ukI/59xruf+vnYzTv7aQWXfKvM7
|
|
||||||
QYedTw7uFmBUmusd/593Ftv7MbyzCgJQX61ztGfYyET7DjjxwJ6Bfvbg6JPo+gTF
|
|
||||||
pgdY5fVn8nIdGJGYSsMQOp4MQlnzTM3CYZu772CBs5yW4OA6FzPJzWcVLeDbN6oL
|
|
||||||
Tk97P0CJog==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMAU67v0VbRPsaB1
|
|
||||||
PmcFyHB+4MqlFCOsn3ovvsy+J3W9gWhjqSZoOd7gHWlPUCSQTTfxQevlOqitv0KE
|
|
||||||
Am8bWnZduslnOnHI8oaQL3j+Fps7WtE6H6QK69c7nvhTZ3osKrgzSo5XXMNKO0SC
|
|
||||||
CAFiYkP9DYaekckQ4ZGkwa/gu19VAgMBAAECgYBDEgsOYk7a20kG4mmbx6UpwuPz
|
|
||||||
Xpkdq9Uz8SAKlgtpTXa2YLZbtuEeNduPPiaZ3dlYw2FlYXGOHL1AGKBQ85guSYJV
|
|
||||||
C6LUba4MO3uVHmb8QAT5Hq0S1gGd8oS76327gbAMmwnPODoe4pKYpxpjN2L3JOiu
|
|
||||||
bekFZ5G4usiEAPArMQJBAOs/x2HhxHvAbq3ntc+4vKUbG1LR1Get9Jiim8KAmbWI
|
|
||||||
VSTl4gA216C9ZXSFYFxLDh0eND/S76TO+eVnGbKdbGsCQQDRBl4WzJ3nGV8PV9Hs
|
|
||||||
8d1BcFaYbzhySHI6yKaqTMckkpDA6JA3XMpzpNrfTALd1pySTM54b8nMd+XIBVs7
|
|
||||||
RVM/AkBwTZQrIBIiWaz8jB75OOGlmBklIlJZ5Gtd6lKdObMnPBwZbzzCiWvKql+i
|
|
||||||
joF/zbzBHcgnp9ULQlt9rghQgmJdAkAJSM4fFyGgZTkatlzluGyKfpHqHW6VbPBd
|
|
||||||
+hGlGNnznur9FpdpTh7T+iuapYavEdxMh0rYgKanBWBYfRxrSo4DAkEAskJpTosI
|
|
||||||
07hKlLcjyzNkTfB9VQtdAFAJspWuba7n1K3nKalbA6sSEWpcOqCYyTZxMRhEjGJ0
|
|
||||||
5gYrtiVmfpoipw==
|
|
||||||
-----END PRIVATE KEY-----
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE REQUEST-----
|
|
||||||
MIIB3jCCAUcCAQAwgZ0xCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
|
||||||
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEYMBYGA1UEChMP
|
|
||||||
U2FvIFRvbmljbyBMdGRhMScwJQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVy
|
|
||||||
IFNjaWVuY2UxETAPBgNVBAMTCENsaWVudCBCMIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
|
||||||
ADCBiQKBgQDAFOu79FW0T7GgdT5nBchwfuDKpRQjrJ96L77Mvid1vYFoY6kmaDne
|
|
||||||
4B1pT1AkkE038UHr5Tqorb9ChAJvG1p2XbrJZzpxyPKGkC94/habO1rROh+kCuvX
|
|
||||||
O574U2d6LCq4M0qOV1zDSjtEgggBYmJD/Q2GnpHJEOGRpMGv4LtfVQIDAQABoAAw
|
|
||||||
DQYJKoZIhvcNAQEFBQADgYEAFNu7lmh26FukN3yc1gxW6YNYqMr9iPil+2+FiqM2
|
|
||||||
wJEzvmZ6tC/5Z9+9D6LEO7nca/rXAGls3ilZQH2Dd6GaTnGvy6mz3V3WWVBpxZ2f
|
|
||||||
tjm18Hdu5r046cKLsQaPyaBVlfRnBFX/0pc8w40jwTHNJFwSB2PLIIQLzATTJ9UD
|
|
||||||
QjY=
|
|
||||||
-----END CERTIFICATE REQUEST-----
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDwjCCAyugAwIBAgIJAJSqyJBOJrGkMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
|
||||||
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
|
||||||
BlJvb3QgQTAeFw0xNzA2MjgxODExMzJaFw0xODA2MjgxODExMzJaMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
|
||||||
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
|
||||||
BlJvb3QgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAs3B138Uul360K3QZ
|
|
||||||
11FnFdFhQ2yW7hN4+20RZ8BQ+SGn7ej1uld/zSHeYxYYlWpSkMryWmOPhBSkGd43
|
|
||||||
zZxxvuo9+jh4ahqhmWoovRSilWBoZznQwLBUv35N7XCa+L9KJL+RBKYzsMi6K7Ai
|
|
||||||
jZgR3yRtSiqcOjT7VigHYW15dKMCAwEAAaOCAQYwggECMB0GA1UdDgQWBBQvu98Y
|
|
||||||
sCKQI3f76P99faFFsxPl/TCB0gYDVR0jBIHKMIHHgBQvu98YsCKQI3f76P99faFF
|
|
||||||
sxPl/aGBo6SBoDCBnTELMAkGA1UEBhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNh
|
|
||||||
bnRvMR8wHQYDVQQHExZTYW50byBBbnRvbmlvIGRvIENhbmFhMRowGAYDVQQKExFT
|
|
||||||
YW50byBUb25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRl
|
|
||||||
ciBTY2llbmNlMQ8wDQYDVQQDEwZSb290IEGCCQCUqsiQTiaxpDAMBgNVHRMEBTAD
|
|
||||||
AQH/MA0GCSqGSIb3DQEBBQUAA4GBACFWgpF/q1nJDY9UT2R/8aXf08KUZSu6L5Oi
|
|
||||||
3niZsPRyHBRJkysw1PHwktF69fU8bL2p84Atni+w5Pp24PexDUStNyer2riUGzKg
|
|
||||||
Y4D7wMVGSgzryGgNLqCe0rsm3zcWEqEFSUsZRtWSda12vAZsUX4VmmR72rMXEU4X
|
|
||||||
a9sWuhH8
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
@ -1 +1 @@
|
|||||||
DA7E5769A2132C99
|
DA7E5769A2132CA1
|
||||||
|
|||||||
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALNwdd/FLpd+tCt0
|
|
||||||
GddRZxXRYUNslu4TePttEWfAUPkhp+3o9bpXf80h3mMWGJVqUpDK8lpjj4QUpBne
|
|
||||||
N82ccb7qPfo4eGoaoZlqKL0UopVgaGc50MCwVL9+Te1wmvi/SiS/kQSmM7DIuiuw
|
|
||||||
Io2YEd8kbUoqnDo0+1YoB2FteXSjAgMBAAECgYBl7gBHeM8ap5LZDD6RnWAdeK7z
|
|
||||||
if/ChbU3vaEhepGEs6Wc87SCganLcO3PA4I7fgYg0egRiHTB5qfBOgYg+jlx8kND
|
|
||||||
Ilsj1LXvJg4kIdiIWtNzWmIhOrwOvTPxK/b+SI5ZgiBB/BxhgGQqzQfA5Cukrpry
|
|
||||||
7fvNotAipqkRInGagQJBANhcdML+sEyYL7czrXY9WASjObOTEhwtOMWm9ArQ0k1c
|
|
||||||
e/jCgu5LELm+hIAKsVIAmoxNTLPkPR1FOUBdfJsliXECQQDUUFWIMQoYrSh7Ysut
|
|
||||||
tjrxPXmQ/FR2aU+XGpD8HBpmgknZeKG0noMzAS/3xT8FerF5ycZx6fFGRGRt5U7/
|
|
||||||
sbVTAkEApJN3cZgADNM6gHV7vdQdrrFmQ9VcUjiH1bkQK2X6gkQWPPvgUlihKVjl
|
|
||||||
OuxnQ0QYSx7FeJTlc+1jBjXWgcFE0QJAflGNkgobR7M+cqrFJAVX7E/3FBwM5Kaj
|
|
||||||
g/N6b4UI8BR0e78Z9qyYwq/iKjhg1pG5Jgy21O+rbXMjjX7xEZBZoQJAGKCZCOZX
|
|
||||||
NgcFpRJcdokmPlb4Hdn8BHX/lF6i0/rc8591vjXtD3MHi6KqBjmCISGNrquRmy7o
|
|
||||||
A8xT68ZroszZvg==
|
|
||||||
-----END PRIVATE KEY-----
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE REQUEST-----
|
|
||||||
MIIB3jCCAUcCAQAwgZ0xCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
|
||||||
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEaMBgGA1UEChMR
|
|
||||||
U2FudG8gVG9uaWNvIEx0ZGExJzAlBgNVBAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0
|
|
||||||
ZXIgU2NpZW5jZTEPMA0GA1UEAxMGUm9vdCBBMIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
|
||||||
ADCBiQKBgQCzcHXfxS6XfrQrdBnXUWcV0WFDbJbuE3j7bRFnwFD5Iaft6PW6V3/N
|
|
||||||
Id5jFhiValKQyvJaY4+EFKQZ3jfNnHG+6j36OHhqGqGZaii9FKKVYGhnOdDAsFS/
|
|
||||||
fk3tcJr4v0okv5EEpjOwyLorsCKNmBHfJG1KKpw6NPtWKAdhbXl0owIDAQABoAAw
|
|
||||||
DQYJKoZIhvcNAQEFBQADgYEADD6aj8GgK7GqLVvDowCjMcgtVgRwg9F5F3dhqzkK
|
|
||||||
l0XzYLPbPu/+t7Xt8I19fjvtHVFjFerv/7JNlJffmfJ5Nsk5MLEKTADl98ad4tGa
|
|
||||||
6Dpml75bUqkv62C7N/pMiEeQt8W10wQ9KPwqAX8AGcHpoRju7WuyZ7DFRWbJaHVL
|
|
||||||
hNI=
|
|
||||||
-----END CERTIFICATE REQUEST-----
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDvDCCAyWgAwIBAgIJAJ5E4CzplDDkMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
|
||||||
b290IEIwHhcNMTcwNjI4MTgxMTMyWhcNMTgwNjI4MTgxMTMyWjCBmzELMAkGA1UE
|
|
||||||
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
|
||||||
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
|
||||||
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTEPMA0GA1UEAxMGUm9v
|
|
||||||
dCBCMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMI9gMIAALR/EUHILUVjnj
|
|
||||||
bS0S+u5PjzqZ9Z573m0JyLLhy0hd+bJLo/f7iJ10KjOKQ3vvWZZYQkrtYxm0Q5LK
|
|
||||||
Z9thtVQ8ChvO2VBWwKwCd5HB5HbTW7IzigR9vatUzkjFGLeLB2TpqjU/GyPbeyzD
|
|
||||||
1AQQ96yftHZ1V2mUm6pPlQIDAQABo4IBBDCCAQAwHQYDVR0OBBYEFMh/YwswpRks
|
|
||||||
iuviLaQEXKv1FGR0MIHQBgNVHSMEgcgwgcWAFMh/YwswpRksiuviLaQEXKv1FGR0
|
|
||||||
oYGhpIGeMIGbMQswCQYDVQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8x
|
|
||||||
HzAdBgNVBAcTFlNhbnRvIEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBU
|
|
||||||
b25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2ll
|
|
||||||
bmNlMQ8wDQYDVQQDEwZSb290IEKCCQCeROAs6ZQw5DAMBgNVHRMEBTADAQH/MA0G
|
|
||||||
CSqGSIb3DQEBBQUAA4GBABjxZmVXAYqXqHJVkI2Lq1RLg/Jrfmp0yE9Hq97I/gLA
|
|
||||||
lpCwzuq3cJsnrYYau2DuuY62f3rrgp87wZ42Sg0ViHg9cP43/W7MUXT3SJkdKKc1
|
|
||||||
6rxyjwMvjVJyOXQnnLVwbyiPc7xi+S3HZ1hpruE2PUqaYnd7HsciMKm/Qc06LMlw
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
@ -1 +0,0 @@
|
|||||||
A62E1217DB85DE06
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMwj2AwgAAtH8RQc
|
|
||||||
gtRWOeNtLRL67k+POpn1nnvebQnIsuHLSF35skuj9/uInXQqM4pDe+9ZllhCSu1j
|
|
||||||
GbRDkspn22G1VDwKG87ZUFbArAJ3kcHkdtNbsjOKBH29q1TOSMUYt4sHZOmqNT8b
|
|
||||||
I9t7LMPUBBD3rJ+0dnVXaZSbqk+VAgMBAAECgYEAqgNsKmT4RGztDbfVCeyqF4vU
|
|
||||||
j0sm8GG0B4c1L6qGGzDoMf6wTXvojvCHVhhoMdf3xr3/WM6+1NCZQG1ZefURKT01
|
|
||||||
NfoDiizcV34hbg1plH6HXf3yW1leetGSkeilYt/PhHU6D0S6kV7sQ6RukCR+KwNI
|
|
||||||
DW5UZlFh8OZ4J/20Wn0CQQD3NdaLAkYpsRJQHZ/qqmgn/Wdx7Irzdk9AVBb2ujAk
|
|
||||||
BAVhncpEedN9s/xGj1vVohqNOhhNt8+BYHIuDPSNTK5HAkEA02X4gjkQRrzS9Adm
|
|
||||||
DSbNQsVg2lWYd3813Zcmxcg2oygAPGLu28I/dvliwi8QYjYVc3HcdGwaTWDi+GPv
|
|
||||||
aVw1QwJBAJLEfvyGvBsyipnQDMpoo2/ijZDgi9phikm54uxWvBAV5w/+e0DOR1bh
|
|
||||||
DcziffZGyJbCP/2cPHEmToOyo1pkhS8CQBzE+OAIEg3+bpslUp8hk7etkvPDyF8i
|
|
||||||
4drJUk6CY+UqcXXGZQllUyvG3sjcjNdA0wSGD2GMwLudHuZ8+z0Ufm8CQB1OLP/v
|
|
||||||
IcaNLpZYIFsqzoI7unryrLepwLU+DZkZwa0BXvDRhtYspWxaq5kTPLPJ1Q+paOPr
|
|
||||||
EKz5L1JqEEoEftI=
|
|
||||||
-----END PRIVATE KEY-----
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE REQUEST-----
|
|
||||||
MIIB3DCCAUUCAQAwgZsxCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
|
||||||
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEYMBYGA1UEChMP
|
|
||||||
U2FvIFRvbmljbyBMdGRhMScwJQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVy
|
|
||||||
IFNjaWVuY2UxDzANBgNVBAMTBlJvb3QgQjCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
|
|
||||||
gYkCgYEAzCPYDCAAC0fxFByC1FY5420tEvruT486mfWee95tCciy4ctIXfmyS6P3
|
|
||||||
+4iddCozikN771mWWEJK7WMZtEOSymfbYbVUPAobztlQVsCsAneRweR201uyM4oE
|
|
||||||
fb2rVM5IxRi3iwdk6ao1Pxsj23ssw9QEEPesn7R2dVdplJuqT5UCAwEAAaAAMA0G
|
|
||||||
CSqGSIb3DQEBBQUAA4GBAKOYhSVzigjxisN/Sbi+hobJ4HhqtvOuYTyKAea4TQX2
|
|
||||||
hROgHsG0hXRCpg2N2QCXu+8PxdSaATCzuOLo+4ctj2O8iTpalm8fKzeHGDDqR5k6
|
|
||||||
T2qCyUMpBSpdyd6X8zdsVLCeWWElBIMFMtJdTP+ukWLMIiyFNs9yjP5/9oHZSZ/n
|
|
||||||
-----END CERTIFICATE REQUEST-----
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDSjCCArOgAwIBAgIJANp+V2miEyyYMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
|
||||||
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
|
||||||
BlJvb3QgQTAeFw0xNzA2MjgxODExMzJaFw0xODA2MjgxODExMzJaMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMREwDwYDVQQDEwhT
|
|
||||||
ZXJ2ZXIgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxD+XXrf9xo9YGyPL
|
|
||||||
Go6fYHmxeDjMKBU7XAqFxks0NZ1wZ8gBFGRL2CrE+mvZFopVx77mR5GkFIEbjgZt
|
|
||||||
JLKTckCS8GOKkqBIGgaTVOq5cRubUPhgZTPkW52xTfJOgbVJqvrWNuJJ3rmVFjKw
|
|
||||||
Cs5iGzjlVk364KI7MN6jqtlxymkCAwEAAaOBjzCBjDAJBgNVHRMEAjAAMBEGCWCG
|
|
||||||
SAGG+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
|
|
||||||
Q2VydGlmaWNhdGUwHQYDVR0OBBYEFGSVbUIaTZGnYzGtMuoyz72uogNpMB8GA1Ud
|
|
||||||
IwQYMBaAFC+73xiwIpAjd/vo/319oUWzE+X9MA0GCSqGSIb3DQEBBQUAA4GBAHKA
|
|
||||||
vgbrp9hqdk2ClsJhlrxLEK/F+XvdjPbH6/c1oEYMDOZVV6tnvpg60HVaz5bKcO+F
|
|
||||||
1fW5f3B2b3muHoxRGKFDl2RBjQrFllZvY4vwaoare8IQ6ykyHTuVLczzAVrGtoVf
|
|
||||||
UchSPFcSrIcDBHHZb0fSUrNvHGHJH1qFDiAAP6h5
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDwjCCAyugAwIBAgIJAJSqyJBOJrGkMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
|
||||||
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
|
||||||
BlJvb3QgQTAeFw0xNzA2MjgxODExMzJaFw0xODA2MjgxODExMzJaMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
|
||||||
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
|
||||||
BlJvb3QgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAs3B138Uul360K3QZ
|
|
||||||
11FnFdFhQ2yW7hN4+20RZ8BQ+SGn7ej1uld/zSHeYxYYlWpSkMryWmOPhBSkGd43
|
|
||||||
zZxxvuo9+jh4ahqhmWoovRSilWBoZznQwLBUv35N7XCa+L9KJL+RBKYzsMi6K7Ai
|
|
||||||
jZgR3yRtSiqcOjT7VigHYW15dKMCAwEAAaOCAQYwggECMB0GA1UdDgQWBBQvu98Y
|
|
||||||
sCKQI3f76P99faFFsxPl/TCB0gYDVR0jBIHKMIHHgBQvu98YsCKQI3f76P99faFF
|
|
||||||
sxPl/aGBo6SBoDCBnTELMAkGA1UEBhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNh
|
|
||||||
bnRvMR8wHQYDVQQHExZTYW50byBBbnRvbmlvIGRvIENhbmFhMRowGAYDVQQKExFT
|
|
||||||
YW50byBUb25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRl
|
|
||||||
ciBTY2llbmNlMQ8wDQYDVQQDEwZSb290IEGCCQCUqsiQTiaxpDAMBgNVHRMEBTAD
|
|
||||||
AQH/MA0GCSqGSIb3DQEBBQUAA4GBACFWgpF/q1nJDY9UT2R/8aXf08KUZSu6L5Oi
|
|
||||||
3niZsPRyHBRJkysw1PHwktF69fU8bL2p84Atni+w5Pp24PexDUStNyer2riUGzKg
|
|
||||||
Y4D7wMVGSgzryGgNLqCe0rsm3zcWEqEFSUsZRtWSda12vAZsUX4VmmR72rMXEU4X
|
|
||||||
a9sWuhH8
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDSjCCArOgAwIBAgIJANp+V2miEyyYMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
|
||||||
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
|
||||||
BlJvb3QgQTAeFw0xNzA2MjgxODExMzJaFw0xODA2MjgxODExMzJaMIGdMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMREwDwYDVQQDEwhT
|
|
||||||
ZXJ2ZXIgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxD+XXrf9xo9YGyPL
|
|
||||||
Go6fYHmxeDjMKBU7XAqFxks0NZ1wZ8gBFGRL2CrE+mvZFopVx77mR5GkFIEbjgZt
|
|
||||||
JLKTckCS8GOKkqBIGgaTVOq5cRubUPhgZTPkW52xTfJOgbVJqvrWNuJJ3rmVFjKw
|
|
||||||
Cs5iGzjlVk364KI7MN6jqtlxymkCAwEAAaOBjzCBjDAJBgNVHRMEAjAAMBEGCWCG
|
|
||||||
SAGG+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
|
|
||||||
Q2VydGlmaWNhdGUwHQYDVR0OBBYEFGSVbUIaTZGnYzGtMuoyz72uogNpMB8GA1Ud
|
|
||||||
IwQYMBaAFC+73xiwIpAjd/vo/319oUWzE+X9MA0GCSqGSIb3DQEBBQUAA4GBAHKA
|
|
||||||
vgbrp9hqdk2ClsJhlrxLEK/F+XvdjPbH6/c1oEYMDOZVV6tnvpg60HVaz5bKcO+F
|
|
||||||
1fW5f3B2b3muHoxRGKFDl2RBjQrFllZvY4vwaoare8IQ6ykyHTuVLczzAVrGtoVf
|
|
||||||
UchSPFcSrIcDBHHZb0fSUrNvHGHJH1qFDiAAP6h5
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMQ/l163/caPWBsj
|
|
||||||
yxqOn2B5sXg4zCgVO1wKhcZLNDWdcGfIARRkS9gqxPpr2RaKVce+5keRpBSBG44G
|
|
||||||
bSSyk3JAkvBjipKgSBoGk1TquXEbm1D4YGUz5FudsU3yToG1Sar61jbiSd65lRYy
|
|
||||||
sArOYhs45VZN+uCiOzDeo6rZccppAgMBAAECgYAl//I9gv7+va7fwnSHdepice3t
|
|
||||||
S4IsmL/fuKHinZlEcHHdhpq+6hTNjKqLmup0NOEbRlmsrgTJe55sR85GdtWZyRXa
|
|
||||||
8gmCvL1mvRjhIT2rlxITRE47XpfRhKQqLlnQFip/ol0TD4g7gcoLZwNhBwmwcz5x
|
|
||||||
+0OPc2CpXjlHVadnSQJBAOYjRzCGRKWaGOtSvIzJAMLjHVBoq+PWulpr0dgaIOZd
|
|
||||||
3RRDVrbn/sA3xQAbEb0F2CcpOYFXAfvF8GgZAytB9/sCQQDaTV2XeJF5Z+69Fzw2
|
|
||||||
bHKr9irkqMWaEMZVB8ctXpJvaJnLsEJ7ccp4BZ6kWAxtA4JvZuAfrtRiG79qlgBX
|
|
||||||
/cXrAkBZ/M1nYfkRr/GygoWLn0UW72uU93jO/DWeCa7iC0V2DpnVxIbxukFYs/Xq
|
|
||||||
FquW9+QPXAVKV9VEt59LdQxSK9dlAkEAkUKzyWvwGUIgaXDBn1FQiL64Ugk/28HX
|
|
||||||
x5LyZW0tsbZ/yDsUMgJJAM50ftUcB5ozPB/PeSWjq1jdaXZA6kwyWwJBAI3IW36h
|
|
||||||
3gN+QYDxO6cExY9xgPMkMapVa01v3Kdxus9tpyMDrcrRLBDRq+NIaTTtJwjBKcaw
|
|
||||||
rxtGLx7O9PLPhOU=
|
|
||||||
-----END PRIVATE KEY-----
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE REQUEST-----
|
|
||||||
MIIB3jCCAUcCAQAwgZ0xCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
|
||||||
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEYMBYGA1UEChMP
|
|
||||||
U2FvIFRvbmljbyBMdGRhMScwJQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVy
|
|
||||||
IFNjaWVuY2UxETAPBgNVBAMTCFNlcnZlciBBMIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
|
||||||
ADCBiQKBgQDEP5det/3Gj1gbI8sajp9gebF4OMwoFTtcCoXGSzQ1nXBnyAEUZEvY
|
|
||||||
KsT6a9kWilXHvuZHkaQUgRuOBm0kspNyQJLwY4qSoEgaBpNU6rlxG5tQ+GBlM+Rb
|
|
||||||
nbFN8k6BtUmq+tY24kneuZUWMrAKzmIbOOVWTfrgojsw3qOq2XHKaQIDAQABoAAw
|
|
||||||
DQYJKoZIhvcNAQELBQADgYEAKOBEQ1TO0J00j2gnHaEXaEIDCJMq958/mU5UFEmz
|
|
||||||
RAX70mURou0KYI5pFez9oMnYseBjcAYW6Nvi+jqB5lCHwHLkd92hyIa1T7jhK496
|
|
||||||
2DP5lKC1Cn5NaQkzBVpFWF+vA22Vkx8eS8o2T4OB5LIP+QH/PSHsWUoOZVoX4gXk
|
|
||||||
EvA=
|
|
||||||
-----END CERTIFICATE REQUEST-----
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDSDCCArGgAwIBAgIJAKYuEhfbhd4FMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
|
||||||
b290IEIwHhcNMTcwNjI4MTgxMTMyWhcNMTgwNjI4MTgxMTMyWjCBnTELMAkGA1UE
|
|
||||||
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
|
||||||
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
|
||||||
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTERMA8GA1UEAxMIU2Vy
|
|
||||||
dmVyIEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALzZ9KKC6Nbzh+RLDL7v
|
|
||||||
BI7LsAlpkWBOLI/h5B0FOsuKsFYG90zEY89gz9n+mlteoyADq+T0SPNm1y+TYSUh
|
|
||||||
h4niFfz6m9MuPGZ88TpOj/Z08mreyEJUsiHEza9cvIUWe8gN0Nkdc06tCDx9SWCB
|
|
||||||
dDFarawcgdPOEsZuthY88CcrAgMBAAGjgY8wgYwwCQYDVR0TBAIwADARBglghkgB
|
|
||||||
hvhCAQEEBAMCBkAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENl
|
|
||||||
cnRpZmljYXRlMB0GA1UdDgQWBBTD5/Jo/xF49qwUbxiowFOIjFeZQzAfBgNVHSME
|
|
||||||
GDAWgBTIf2MLMKUZLIrr4i2kBFyr9RRkdDANBgkqhkiG9w0BAQUFAAOBgQBDb8Uo
|
|
||||||
vLRX+45NwVbOs9cUiyXxHvL8jdA84deQ9XBDrENZ12lCsW3Y/YlHwboynAO/fwHY
|
|
||||||
F54BV8QWSfSoTYSWUh41/NYkeLoTwNvppvEe5Fv3mjVyhgMQ5dQApTGw2tURv7pL
|
|
||||||
Uy/h+tEKpJUKon8N0pJhhhNSWeK35lmo0kJacQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDvDCCAyWgAwIBAgIJAJ5E4CzplDDkMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
|
||||||
b290IEIwHhcNMTcwNjI4MTgxMTMyWhcNMTgwNjI4MTgxMTMyWjCBmzELMAkGA1UE
|
|
||||||
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
|
||||||
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
|
||||||
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTEPMA0GA1UEAxMGUm9v
|
|
||||||
dCBCMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMI9gMIAALR/EUHILUVjnj
|
|
||||||
bS0S+u5PjzqZ9Z573m0JyLLhy0hd+bJLo/f7iJ10KjOKQ3vvWZZYQkrtYxm0Q5LK
|
|
||||||
Z9thtVQ8ChvO2VBWwKwCd5HB5HbTW7IzigR9vatUzkjFGLeLB2TpqjU/GyPbeyzD
|
|
||||||
1AQQ96yftHZ1V2mUm6pPlQIDAQABo4IBBDCCAQAwHQYDVR0OBBYEFMh/YwswpRks
|
|
||||||
iuviLaQEXKv1FGR0MIHQBgNVHSMEgcgwgcWAFMh/YwswpRksiuviLaQEXKv1FGR0
|
|
||||||
oYGhpIGeMIGbMQswCQYDVQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8x
|
|
||||||
HzAdBgNVBAcTFlNhbnRvIEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBU
|
|
||||||
b25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2ll
|
|
||||||
bmNlMQ8wDQYDVQQDEwZSb290IEKCCQCeROAs6ZQw5DAMBgNVHRMEBTADAQH/MA0G
|
|
||||||
CSqGSIb3DQEBBQUAA4GBABjxZmVXAYqXqHJVkI2Lq1RLg/Jrfmp0yE9Hq97I/gLA
|
|
||||||
lpCwzuq3cJsnrYYau2DuuY62f3rrgp87wZ42Sg0ViHg9cP43/W7MUXT3SJkdKKc1
|
|
||||||
6rxyjwMvjVJyOXQnnLVwbyiPc7xi+S3HZ1hpruE2PUqaYnd7HsciMKm/Qc06LMlw
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDSDCCArGgAwIBAgIJAKYuEhfbhd4FMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
|
||||||
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
|
||||||
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
|
||||||
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
|
||||||
b290IEIwHhcNMTcwNjI4MTgxMTMyWhcNMTgwNjI4MTgxMTMyWjCBnTELMAkGA1UE
|
|
||||||
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
|
||||||
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
|
||||||
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTERMA8GA1UEAxMIU2Vy
|
|
||||||
dmVyIEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALzZ9KKC6Nbzh+RLDL7v
|
|
||||||
BI7LsAlpkWBOLI/h5B0FOsuKsFYG90zEY89gz9n+mlteoyADq+T0SPNm1y+TYSUh
|
|
||||||
h4niFfz6m9MuPGZ88TpOj/Z08mreyEJUsiHEza9cvIUWe8gN0Nkdc06tCDx9SWCB
|
|
||||||
dDFarawcgdPOEsZuthY88CcrAgMBAAGjgY8wgYwwCQYDVR0TBAIwADARBglghkgB
|
|
||||||
hvhCAQEEBAMCBkAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENl
|
|
||||||
cnRpZmljYXRlMB0GA1UdDgQWBBTD5/Jo/xF49qwUbxiowFOIjFeZQzAfBgNVHSME
|
|
||||||
GDAWgBTIf2MLMKUZLIrr4i2kBFyr9RRkdDANBgkqhkiG9w0BAQUFAAOBgQBDb8Uo
|
|
||||||
vLRX+45NwVbOs9cUiyXxHvL8jdA84deQ9XBDrENZ12lCsW3Y/YlHwboynAO/fwHY
|
|
||||||
F54BV8QWSfSoTYSWUh41/NYkeLoTwNvppvEe5Fv3mjVyhgMQ5dQApTGw2tURv7pL
|
|
||||||
Uy/h+tEKpJUKon8N0pJhhhNSWeK35lmo0kJacQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALzZ9KKC6Nbzh+RL
|
|
||||||
DL7vBI7LsAlpkWBOLI/h5B0FOsuKsFYG90zEY89gz9n+mlteoyADq+T0SPNm1y+T
|
|
||||||
YSUhh4niFfz6m9MuPGZ88TpOj/Z08mreyEJUsiHEza9cvIUWe8gN0Nkdc06tCDx9
|
|
||||||
SWCBdDFarawcgdPOEsZuthY88CcrAgMBAAECgYEAqju+bY+b28eCw6NzRdmnPiEV
|
|
||||||
+iYTScCuIrT5L7+7FCdcdO+qlKSjZBhcxKDg+2P/n6gvlx8tc1tMtjIf65yh03h0
|
|
||||||
Klp5p5hmbz5F6xkvrfwlSmEC0CTN2qADghSlmqDhJMYfXxe/4rv302YyTJXkzv/+
|
|
||||||
f/g9YA7hBHuEBmnEmAECQQDc4LDnDwxyFQGRfxD6V2GJAqdDnFfG1xPrLu16SMLA
|
|
||||||
nMzcVTNEL9wsYr6RNMgDEsE4lwrflpfcJpu76bv15dcBAkEA2uGQTqy/cipOzIj7
|
|
||||||
3eg6CtQE9hBVXY476iocR1XK3sFnJnDcb56cfDKtRNI2l7dfyLonvB/XIbTkh5nI
|
|
||||||
O+8KKwJBALh5sUZJ+0sM4FJ0nel4Ma4M2UZOvcEEwU4b05veSUo1q6QaRMcecfVg
|
|
||||||
Q2lje+mVMGvjOuGjFRJ57Hf1r1agsAECQCgAOwg1x9MMalQ04JrAWwMpljKF76Pm
|
|
||||||
X4q+4WYkBqxI+hnrXE3F1eFYvZOrOzDk4Utkweg+hWlyjqU9dHuHhvsCQGr9no88
|
|
||||||
axjoTD3VcgppGTeuCVsuaqOy/fpF2aqDWsTTfKvsyYdD1MZjTJp8ZlXwq6FdTXet
|
|
||||||
0t0kRdaNYx2dgcY=
|
|
||||||
-----END PRIVATE KEY-----
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE REQUEST-----
|
|
||||||
MIIB3jCCAUcCAQAwgZ0xCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
|
||||||
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEYMBYGA1UEChMP
|
|
||||||
U2FvIFRvbmljbyBMdGRhMScwJQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVy
|
|
||||||
IFNjaWVuY2UxETAPBgNVBAMTCFNlcnZlciBCMIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
|
||||||
ADCBiQKBgQC82fSigujW84fkSwy+7wSOy7AJaZFgTiyP4eQdBTrLirBWBvdMxGPP
|
|
||||||
YM/Z/ppbXqMgA6vk9EjzZtcvk2ElIYeJ4hX8+pvTLjxmfPE6To/2dPJq3shCVLIh
|
|
||||||
xM2vXLyFFnvIDdDZHXNOrQg8fUlggXQxWq2sHIHTzhLGbrYWPPAnKwIDAQABoAAw
|
|
||||||
DQYJKoZIhvcNAQELBQADgYEAOD/nlvv7K8EOA+JPWlTPm5toDdfIqXnS13PrJ9e7
|
|
||||||
IYbe57137W9lovSP9zUIWoMlkPlbSyG9Z6ZQMGXu++eMHGeKab5JkzbKtp6OzDX4
|
|
||||||
BRBsY+jM8WpDuiL4JtSBy9CaPeNrcYY0mqiFblOM8HnH22W+DcQX5SO+32lPIVV0
|
|
||||||
lNw=
|
|
||||||
-----END CERTIFICATE REQUEST-----
|
|
||||||
10
client.lua
Normal file
10
client.lua
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package.path="?/init.lua;"..package.path
|
||||||
|
require("multi")
|
||||||
|
require("net")
|
||||||
|
client = net:newUDPClient("localhost",12345)
|
||||||
|
client.OnDataRecieved(function(self,data)
|
||||||
|
print(data)
|
||||||
|
end)
|
||||||
|
client.OnClientReady:holdUT() -- waots until the client is ready... You can also connect to this event as well and have code do stuff too
|
||||||
|
client:send("Hello Server!")
|
||||||
|
multi:mainloop()
|
||||||
0
genCerts.bat
Normal file
0
genCerts.bat
Normal file
280
net/audp.lua
280
net/audp.lua
@ -1,273 +1,93 @@
|
|||||||
function net:newAUDPServer(port,servercode)
|
require("net")
|
||||||
|
function net:newUDPServer(port,servercode)
|
||||||
local c={}
|
local c={}
|
||||||
c.udp=assert(socket.udp())
|
c.hostip=net.getLocalIP()
|
||||||
c.udp:settimeout(0)
|
|
||||||
c.udp:setsockname("*", port)
|
|
||||||
c.ips={}
|
|
||||||
c.Type="udp"
|
|
||||||
c.port=port
|
c.port=port
|
||||||
c.ids={}
|
|
||||||
c.servercode=servercode
|
|
||||||
c.bannedIPs={}
|
|
||||||
c.bannedCIDs={}
|
c.bannedCIDs={}
|
||||||
c.autoNormalization=false
|
c.bannedIPs={}
|
||||||
function c:setUpdateRate(n)
|
function c:setUpdateRate(n)
|
||||||
print("Not needed in a audp server!")
|
self.updater:setSkip(n or 0)
|
||||||
end
|
end
|
||||||
function c:banCID(cid)
|
function c:banCID(cid)
|
||||||
table.insert(self.bannedCIDs,cid)
|
--
|
||||||
end
|
end
|
||||||
function c:banIP(ip)
|
function c:banIP(ip)
|
||||||
table.insert(self.bannedIPs,cid)
|
--
|
||||||
|
end
|
||||||
|
function c:broadcast(name)
|
||||||
|
--
|
||||||
end
|
end
|
||||||
function c:send(ip,data,port,cid)
|
function c:send(ip,data,port,cid)
|
||||||
if self.autoNormalization then
|
--
|
||||||
data=net.normalize(data)
|
|
||||||
end
|
|
||||||
if self.servercode then
|
|
||||||
cid=cid or self:CIDFrom(ip,port)
|
|
||||||
if not self.ips[cid] then
|
|
||||||
print("Can't determine cid from client... sending the client a new one!")
|
|
||||||
local cid=net.resolveID(self)
|
|
||||||
print("Sending unique cid to client: "..cid)
|
|
||||||
self.ips[cid]={ip,port,0,self.servercode==nil}
|
|
||||||
print(ip)
|
|
||||||
self.udp:sendto("I!"..cid,ip,port)
|
|
||||||
if self.servercode then
|
|
||||||
self.udp:sendto("S!",ip,port)
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if net.inList(self.bannedIPs,ip) or net.inList(self.bannedCIDs,cid) then
|
|
||||||
self.udp:sendto("BANNED CLIENT", ip, port or self.port)
|
|
||||||
elseif self.ips[cid][4] then
|
|
||||||
self.udp:sendto(data, ip, port or self.port)
|
|
||||||
elseif self.ips[cid][4]==false then
|
|
||||||
self.udp:sendto("Make sure your server code is correct!", ip, port)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
self.udp:sendto(data, ip, port or self.port)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
function c:pollClientModules(ip,port)
|
function c:pollClientModules(ip,port)
|
||||||
self:send(ip,"L!",port)
|
--
|
||||||
end
|
end
|
||||||
function c:CIDFrom(ip,port)
|
function c:CIDFrom(ip,port)
|
||||||
for i,v in pairs(self.ips) do
|
--
|
||||||
if(ip==v[1] and v[2]==port) then
|
|
||||||
return i
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
function c:sendAll(data)
|
function c:sendAll(data)
|
||||||
for i,v in pairs(self.ips) do
|
--
|
||||||
self:send(v[1],data,v[2],i)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
function c:sendAllBut(data,cid)
|
function c:sendAllBut(data,cid)
|
||||||
for i,v in pairs(self.ips) do
|
--
|
||||||
if i~=cid then
|
|
||||||
self:send(v[1],data,v[2],i)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
function c:clientRegistered(cid)
|
function c:clientRegistered(cid)
|
||||||
return self.ips[cid]
|
--
|
||||||
end
|
end
|
||||||
function c:clientLoggedIn(cid)
|
function c:clientLoggedIn(cid)
|
||||||
if not self.clientRegistered(cid) then
|
--
|
||||||
return nil
|
|
||||||
end
|
|
||||||
return self.ips[cid][4]
|
|
||||||
end
|
end
|
||||||
function c:update()
|
function c:update()
|
||||||
local data,ip,port=self.udp:receivefrom()
|
--
|
||||||
if net.inList(self.bannedIPs,ip) or net.inList(self.bannedCIDs,cid) then
|
|
||||||
print("We will ingore data from a banned client!")
|
|
||||||
return
|
|
||||||
end
|
end
|
||||||
if data then
|
c.Updater=multi:newUpdater(0)
|
||||||
if self.autoNormalization then
|
c.Updater.link=c
|
||||||
data=net.denormalize(data)
|
c.updater:OnUpdate(function(self)
|
||||||
end
|
self.link:update()
|
||||||
if data:sub(1,4)=="pong" then
|
|
||||||
self.ips[data:sub(5,-1)][3]=os.clock()
|
|
||||||
elseif data:sub(1,2)=="S!" then
|
|
||||||
local cid=self:CIDFrom(ip,port)
|
|
||||||
if data:sub(3,-1)==self.servercode then
|
|
||||||
print("Servercode Accepted: "..self.servercode)
|
|
||||||
if self.ips[cid] then
|
|
||||||
self.ips[cid][4]=true
|
|
||||||
else
|
|
||||||
print("Server can't keep up! CID: "..cid.." has been skipped! Sending new CID to the client!")
|
|
||||||
local cid=net.resolveID(self)
|
|
||||||
print("Sending unique cid to client: "..cid)
|
|
||||||
self.ips[cid]={ip,port,0,self.servercode==nil}
|
|
||||||
print(ip)
|
|
||||||
self.udp:sendto("I!"..cid,ip,port)
|
|
||||||
if self.servercode then
|
|
||||||
self.udp:sendto("S!",ip,port)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
self.udp:sendto("Make sure your server code is correct!", ip, port)
|
|
||||||
end
|
|
||||||
elseif data:sub(1,2)=="C!" then
|
|
||||||
local hook=(data:sub(11,-1)):match("!(.-)!")
|
|
||||||
self.OnDataRecieved:getConnection(hook):Fire(self,data:sub(11,-1),data:sub(3,10),ip,port)
|
|
||||||
elseif data:sub(1,2)=="E!" then
|
|
||||||
self.ips[data:sub(3,10)]=nil
|
|
||||||
obj.ids[data:sub(3,10)]=false
|
|
||||||
self.OnClientClosed:Fire(self,"Client Closed Connection!",data:sub(3,10),ip,port)
|
|
||||||
elseif data=="I!" then
|
|
||||||
local cid=net.resolveID(self)
|
|
||||||
print("Sending unique cid to client: "..cid)
|
|
||||||
self.ips[cid]={ip,port,os.clock(),self.servercode==nil}
|
|
||||||
print(ip)
|
|
||||||
self.udp:sendto("I!"..cid,ip,port)
|
|
||||||
if self.servercode then
|
|
||||||
self.udp:sendto("S!",ip,port)
|
|
||||||
end
|
|
||||||
self.OnClientConnected:Fire(self,cid,ip,port)
|
|
||||||
elseif data:sub(1,2)=="L!" then
|
|
||||||
cid,cList=data:sub(3,10),data:sub(11,-1)
|
|
||||||
local list={}
|
|
||||||
for m,v in cList:gmatch("(%S-):(%S-)|") do
|
|
||||||
list[m]=v
|
|
||||||
end
|
|
||||||
self.OnClientsModulesList:Fire(list,cid,ip,port)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for cid,dat in pairs(self.ips) do
|
|
||||||
if not((os.clock()-dat[3])<65) then
|
|
||||||
self.ips[cid]=nil
|
|
||||||
self.OnClientClosed:Fire(self,"Client lost Connection: ping timeout",cid,ip,port)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
c.OnClientsModulesList=multi:newConnection()
|
|
||||||
c.OnDataRecieved=multi:newConnection()
|
|
||||||
c.OnClientClosed=multi:newConnection()
|
|
||||||
c.OnClientConnected=multi:newConnection()
|
|
||||||
c.connectiontest=multi:newAlarm(30)
|
|
||||||
c.connectiontest.link=c
|
|
||||||
c.connectiontest:OnRing(function(alarm)
|
|
||||||
--print("pinging clients!")
|
|
||||||
alarm.link:sendAll("ping")
|
|
||||||
alarm:Reset()
|
|
||||||
end)
|
end)
|
||||||
multi:newLoop(function()
|
c.OnClientsModulesList=multi:newConnection(false)
|
||||||
c:update()
|
c.OnDataRecieved=multi:newConnection(false)
|
||||||
end)
|
c.OnClientClosed=multi:newConnection(false)
|
||||||
net.OnServerCreated:Fire(c)
|
c.OnClientConnected=multi:newConnection(false)
|
||||||
return c
|
|
||||||
end
|
end
|
||||||
|
function net:newUDPClient(host,port,servercode)
|
||||||
function net:newAUDPClient(host,port,servercode,nonluaServer)
|
|
||||||
local c={}
|
local c={}
|
||||||
c.ip=assert(socket.dns.toip(host))
|
c.host=host
|
||||||
c.udp=assert(socket.udp())
|
c.port=port
|
||||||
c.udp:settimeout(0)
|
function c:setUpdateRate(n)
|
||||||
c.cid="NIL"
|
self.updater:setSkip(n or 0)
|
||||||
c.lastPing=0
|
|
||||||
c.Type="udp"
|
|
||||||
c.servercode=servercode
|
|
||||||
c.autoReconnect=true
|
|
||||||
c.autoNormalization=false
|
|
||||||
function c:pollPing(n)
|
|
||||||
return not((os.clock()-self.lastPing)<(n or 60))
|
|
||||||
end
|
end
|
||||||
function c:send(data)
|
function c:send(data)
|
||||||
if self.autoNormalization then
|
--
|
||||||
data=net.normalize(data)
|
|
||||||
end
|
|
||||||
self.udp:send("C!"..self.cid..data)
|
|
||||||
end
|
end
|
||||||
function c:sendRaw(data)
|
function c:sendRaw(data)
|
||||||
if self.autoNormalization then
|
--
|
||||||
data=net.normalize(data)
|
|
||||||
end
|
|
||||||
self.udp:send(data)
|
|
||||||
end
|
|
||||||
function c:getCID()
|
|
||||||
if self:IDAssigned() then
|
|
||||||
return self.cid
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
function c:close()
|
function c:close()
|
||||||
self:send("E!")
|
--
|
||||||
end
|
end
|
||||||
function c:IDAssigned()
|
function c:getCID()
|
||||||
return self.cid~="NIL"
|
--
|
||||||
end
|
end
|
||||||
function c:update()
|
function c:update()
|
||||||
local data=self.udp:receive()
|
--
|
||||||
if data then
|
|
||||||
if self.autoNormalization then
|
|
||||||
data=net.denormalize(data)
|
|
||||||
end
|
|
||||||
if data:sub(1,2)=="I!" then
|
|
||||||
self.cid=data:sub(3,-1)
|
|
||||||
self.OnClientReady:Fire(self)
|
|
||||||
elseif data=="S!" then
|
|
||||||
self.udp:send("S!"..(self.servercode or ""))
|
|
||||||
elseif data=="L!" then
|
|
||||||
local mods=""
|
|
||||||
local m=""
|
|
||||||
for i=1,#net.loadedModules do
|
|
||||||
m=net.loadedModules[i]
|
|
||||||
mods=mods..m..":"..net.getModuleVersion(m).."|"
|
|
||||||
end
|
|
||||||
self.udp:send("L!"..self.cid..mods)
|
|
||||||
elseif data=="ping" then
|
|
||||||
self.lastPing=os.clock()
|
|
||||||
self.OnPingRecieved:Fire(self)
|
|
||||||
self.udp:send("pong"..self.cid)
|
|
||||||
else
|
|
||||||
local hook=data:match("!(.-)!")
|
|
||||||
self.OnDataRecieved:getConnection(hook):Fire(self,data)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
function c:reconnect()
|
function c:reconnect()
|
||||||
if not nonluaServer then
|
--
|
||||||
self.cid="NIL"
|
|
||||||
c.udp:send("I!")
|
|
||||||
end
|
end
|
||||||
self.OnConnectionRegained:Fire(self)
|
function c:IDAssigned()
|
||||||
end
|
--
|
||||||
c.pingEvent=multi:newEvent(function(self) return self.link:pollPing() end)
|
|
||||||
c.pingEvent:OnEvent(function(self)
|
|
||||||
if self.link.autoReconnect then
|
|
||||||
self.link.OnServerNotAvailable:Fire("Connection to server lost: ping timeout! Attempting to reconnect...")
|
|
||||||
self.link.OnClientDisconnected:Fire(self,"closed")
|
|
||||||
self.link:reconnect()
|
|
||||||
else
|
|
||||||
self.link.OnServerNotAvailable:Fire("Connection to server lost: ping timeout!")
|
|
||||||
self.link.OnClientDisconnected:Fire(self,"closed")
|
|
||||||
end
|
end
|
||||||
|
c.Updater=multi:newUpdater(0)
|
||||||
|
c.Updater.link=c
|
||||||
|
c.updater:OnUpdate(function(self)
|
||||||
|
self.link:update()
|
||||||
end)
|
end)
|
||||||
c.pingEvent.link=c
|
c.OnDataRecieved=multi:newConnection(false)
|
||||||
c.OnPingRecieved=multi:newConnection()
|
c.OnClientReady=multi:newConnection(false)
|
||||||
c.OnDataRecieved=multi:newConnection()
|
c.OnClientDisconnected=multi:newConnection(false)
|
||||||
c.OnServerNotAvailable=multi:newConnection()
|
c.OnConnectionRegained=multi:newConnection(false)
|
||||||
c.OnClientReady=multi:newConnection()
|
c.OnPingRecieved=multi:newConnection(false)
|
||||||
c.OnClientDisconnected=multi:newConnection()
|
c.OnServerNotAvailable=multi:newConnection(false)
|
||||||
c.OnConnectionRegained=multi:newConnection()
|
|
||||||
c.notConnected=multi:newFunction(function(self)
|
|
||||||
self:hold(3)
|
|
||||||
if self.link:IDAssigned()==false then
|
|
||||||
self.link.OnServerNotAvailable:Fire("Can't connect to the server: no response from server")
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
c.notConnected.link=c
|
|
||||||
if not nonluaServer then
|
|
||||||
c.udp:send("I!")
|
|
||||||
end
|
|
||||||
multi:newLoop(function()
|
|
||||||
c:update()
|
|
||||||
end)
|
|
||||||
multi:newJob(function() c.notConnected() end)
|
|
||||||
net.OnClientCreated:Fire(c)
|
|
||||||
return c
|
|
||||||
end
|
end
|
||||||
|
|||||||
51
net/init.lua
51
net/init.lua
@ -27,16 +27,48 @@ function string.trim(s)
|
|||||||
local from = s:match"^%s*()"
|
local from = s:match"^%s*()"
|
||||||
return from > #s and "" or s:match(".*%S", from)
|
return from > #s and "" or s:match(".*%S", from)
|
||||||
end
|
end
|
||||||
socket=require("socket")
|
local guid = {}
|
||||||
http=require("socket.http")
|
local char = {}
|
||||||
mime=require("mime")
|
for i = 48,57 do
|
||||||
net={}
|
char[#char+1]=string.char(i)
|
||||||
|
end
|
||||||
|
for i = 65,90 do
|
||||||
|
char[#char+1]=string.char(i)
|
||||||
|
end
|
||||||
|
for i = 97,122 do
|
||||||
|
char[#char+1]=string.char(i)
|
||||||
|
end
|
||||||
|
local isHyphen = {[9]=1,[14]=1,[19]=1,[24]=1}
|
||||||
|
math.randomseed(os.time())
|
||||||
|
local socket=require("socket")
|
||||||
|
local http=require("socket.http")
|
||||||
|
local mime=require("mime")
|
||||||
|
--ssl=require("ssl")
|
||||||
|
--https=require("ssl.https")
|
||||||
|
local net={}
|
||||||
net.Version={2,0,1} -- This will probably stay this version for quite a while... The modules on the otherhand will be more inconsistant
|
net.Version={2,0,1} -- This will probably stay this version for quite a while... The modules on the otherhand will be more inconsistant
|
||||||
net._VERSION="2.0.1"
|
net._VERSION="2.0.1"
|
||||||
net.OnServerCreated=multi:newConnection()
|
net.OnServerCreated=multi:newConnection()
|
||||||
net.OnClientCreated=multi:newConnection()
|
net.OnClientCreated=multi:newConnection()
|
||||||
net.loadedModules={}
|
net.loadedModules={}
|
||||||
net.autoInit=true
|
net.autoInit=true
|
||||||
|
net.generateGUID = function(t)
|
||||||
|
local pass = {}
|
||||||
|
local a=0
|
||||||
|
local x=""
|
||||||
|
for z = 1,36 do
|
||||||
|
if isHyphen[z] then
|
||||||
|
x='-'
|
||||||
|
else
|
||||||
|
a = math.random(1,#char)
|
||||||
|
x = char[a]
|
||||||
|
end
|
||||||
|
table.insert(pass, x)
|
||||||
|
if t == z then break end
|
||||||
|
end
|
||||||
|
z = nil
|
||||||
|
return tostring(table.concat(pass))
|
||||||
|
end
|
||||||
function net.normalize(input)
|
function net.normalize(input)
|
||||||
local enc=mime.b64(input)
|
local enc=mime.b64(input)
|
||||||
return enc
|
return enc
|
||||||
@ -55,8 +87,8 @@ function net.getLocalIP()
|
|||||||
return dat
|
return dat
|
||||||
end
|
end
|
||||||
function net.getExternalIP()
|
function net.getExternalIP()
|
||||||
local data=http.request("http://whatismyip.org/")
|
local data=http.request("http://whatismyip.host")
|
||||||
return data:match("600;\">(%d-.%d-.%d-.%d-)</span>")
|
return data:match("(%d+.%d+.%d+.%d+)")
|
||||||
end
|
end
|
||||||
function net:registerModule(mod,version)
|
function net:registerModule(mod,version)
|
||||||
if net[mod] then
|
if net[mod] then
|
||||||
@ -124,7 +156,7 @@ function net:newCastedClient(name) -- connects to the broadcasted server
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- UDP Stuff
|
-- UDP Stuff
|
||||||
function net:newServer(port,servercode)
|
function net:newUDPServer(port,servercode,nonluaServer)
|
||||||
local c={}
|
local c={}
|
||||||
c.udp=assert(socket.udp())
|
c.udp=assert(socket.udp())
|
||||||
c.udp:settimeout(0)
|
c.udp:settimeout(0)
|
||||||
@ -299,7 +331,7 @@ function net:newServer(port,servercode)
|
|||||||
return c
|
return c
|
||||||
end
|
end
|
||||||
|
|
||||||
function net:newClient(host,port,servercode,nonluaServer)
|
function net:newUDPClient(host,port,servercode,nonluaServer)
|
||||||
local c={}
|
local c={}
|
||||||
c.ip=assert(socket.dns.toip(host))
|
c.ip=assert(socket.dns.toip(host))
|
||||||
c.udp=assert(socket.udp())
|
c.udp=assert(socket.udp())
|
||||||
@ -538,7 +570,7 @@ function net:newTCPServer(port)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
updater:setSkip(self.updaterRate)
|
updater:SetSkip(self.updaterRate)
|
||||||
updater.client=client
|
updater.client=client
|
||||||
updater.Link=self
|
updater.Link=self
|
||||||
function updater:setReceiveMode(mode)
|
function updater:setReceiveMode(mode)
|
||||||
@ -662,3 +694,4 @@ function net:newTCPClient(host,port)
|
|||||||
net.OnClientCreated:Fire(c)
|
net.OnClientCreated:Fire(c)
|
||||||
return c
|
return c
|
||||||
end
|
end
|
||||||
|
return net
|
||||||
|
|||||||
273
netold/audp.lua
Normal file
273
netold/audp.lua
Normal file
@ -0,0 +1,273 @@
|
|||||||
|
function net:newAUDPServer(port,servercode)
|
||||||
|
local c={}
|
||||||
|
c.udp=assert(socket.udp())
|
||||||
|
c.udp:settimeout(0)
|
||||||
|
c.udp:setsockname("*", port)
|
||||||
|
c.ips={}
|
||||||
|
c.Type="udp"
|
||||||
|
c.port=port
|
||||||
|
c.ids={}
|
||||||
|
c.servercode=servercode
|
||||||
|
c.bannedIPs={}
|
||||||
|
c.bannedCIDs={}
|
||||||
|
c.autoNormalization=false
|
||||||
|
function c:setUpdateRate(n)
|
||||||
|
print("Not needed in a audp server!")
|
||||||
|
end
|
||||||
|
function c:banCID(cid)
|
||||||
|
table.insert(self.bannedCIDs,cid)
|
||||||
|
end
|
||||||
|
function c:banIP(ip)
|
||||||
|
table.insert(self.bannedIPs,cid)
|
||||||
|
end
|
||||||
|
function c:send(ip,data,port,cid)
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.normalize(data)
|
||||||
|
end
|
||||||
|
if self.servercode then
|
||||||
|
cid=cid or self:CIDFrom(ip,port)
|
||||||
|
if not self.ips[cid] then
|
||||||
|
print("Can't determine cid from client... sending the client a new one!")
|
||||||
|
local cid=net.resolveID(self)
|
||||||
|
print("Sending unique cid to client: "..cid)
|
||||||
|
self.ips[cid]={ip,port,0,self.servercode==nil}
|
||||||
|
print(ip)
|
||||||
|
self.udp:sendto("I!"..cid,ip,port)
|
||||||
|
if self.servercode then
|
||||||
|
self.udp:sendto("S!",ip,port)
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if net.inList(self.bannedIPs,ip) or net.inList(self.bannedCIDs,cid) then
|
||||||
|
self.udp:sendto("BANNED CLIENT", ip, port or self.port)
|
||||||
|
elseif self.ips[cid][4] then
|
||||||
|
self.udp:sendto(data, ip, port or self.port)
|
||||||
|
elseif self.ips[cid][4]==false then
|
||||||
|
self.udp:sendto("Make sure your server code is correct!", ip, port)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
self.udp:sendto(data, ip, port or self.port)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:pollClientModules(ip,port)
|
||||||
|
self:send(ip,"L!",port)
|
||||||
|
end
|
||||||
|
function c:CIDFrom(ip,port)
|
||||||
|
for i,v in pairs(self.ips) do
|
||||||
|
if(ip==v[1] and v[2]==port) then
|
||||||
|
return i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:sendAll(data)
|
||||||
|
for i,v in pairs(self.ips) do
|
||||||
|
self:send(v[1],data,v[2],i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:sendAllBut(data,cid)
|
||||||
|
for i,v in pairs(self.ips) do
|
||||||
|
if i~=cid then
|
||||||
|
self:send(v[1],data,v[2],i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:clientRegistered(cid)
|
||||||
|
return self.ips[cid]
|
||||||
|
end
|
||||||
|
function c:clientLoggedIn(cid)
|
||||||
|
if not self.clientRegistered(cid) then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
return self.ips[cid][4]
|
||||||
|
end
|
||||||
|
function c:update()
|
||||||
|
local data,ip,port=self.udp:receivefrom()
|
||||||
|
if net.inList(self.bannedIPs,ip) or net.inList(self.bannedCIDs,cid) then
|
||||||
|
print("We will ingore data from a banned client!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if data then
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.denormalize(data)
|
||||||
|
end
|
||||||
|
if data:sub(1,4)=="pong" then
|
||||||
|
self.ips[data:sub(5,-1)][3]=os.clock()
|
||||||
|
elseif data:sub(1,2)=="S!" then
|
||||||
|
local cid=self:CIDFrom(ip,port)
|
||||||
|
if data:sub(3,-1)==self.servercode then
|
||||||
|
print("Servercode Accepted: "..self.servercode)
|
||||||
|
if self.ips[cid] then
|
||||||
|
self.ips[cid][4]=true
|
||||||
|
else
|
||||||
|
print("Server can't keep up! CID: "..cid.." has been skipped! Sending new CID to the client!")
|
||||||
|
local cid=net.resolveID(self)
|
||||||
|
print("Sending unique cid to client: "..cid)
|
||||||
|
self.ips[cid]={ip,port,0,self.servercode==nil}
|
||||||
|
print(ip)
|
||||||
|
self.udp:sendto("I!"..cid,ip,port)
|
||||||
|
if self.servercode then
|
||||||
|
self.udp:sendto("S!",ip,port)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
self.udp:sendto("Make sure your server code is correct!", ip, port)
|
||||||
|
end
|
||||||
|
elseif data:sub(1,2)=="C!" then
|
||||||
|
local hook=(data:sub(11,-1)):match("!(.-)!")
|
||||||
|
self.OnDataRecieved:getConnection(hook):Fire(self,data:sub(11,-1),data:sub(3,10),ip,port)
|
||||||
|
elseif data:sub(1,2)=="E!" then
|
||||||
|
self.ips[data:sub(3,10)]=nil
|
||||||
|
obj.ids[data:sub(3,10)]=false
|
||||||
|
self.OnClientClosed:Fire(self,"Client Closed Connection!",data:sub(3,10),ip,port)
|
||||||
|
elseif data=="I!" then
|
||||||
|
local cid=net.resolveID(self)
|
||||||
|
print("Sending unique cid to client: "..cid)
|
||||||
|
self.ips[cid]={ip,port,os.clock(),self.servercode==nil}
|
||||||
|
print(ip)
|
||||||
|
self.udp:sendto("I!"..cid,ip,port)
|
||||||
|
if self.servercode then
|
||||||
|
self.udp:sendto("S!",ip,port)
|
||||||
|
end
|
||||||
|
self.OnClientConnected:Fire(self,cid,ip,port)
|
||||||
|
elseif data:sub(1,2)=="L!" then
|
||||||
|
cid,cList=data:sub(3,10),data:sub(11,-1)
|
||||||
|
local list={}
|
||||||
|
for m,v in cList:gmatch("(%S-):(%S-)|") do
|
||||||
|
list[m]=v
|
||||||
|
end
|
||||||
|
self.OnClientsModulesList:Fire(list,cid,ip,port)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for cid,dat in pairs(self.ips) do
|
||||||
|
if not((os.clock()-dat[3])<65) then
|
||||||
|
self.ips[cid]=nil
|
||||||
|
self.OnClientClosed:Fire(self,"Client lost Connection: ping timeout",cid,ip,port)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
c.OnClientsModulesList=multi:newConnection()
|
||||||
|
c.OnDataRecieved=multi:newConnection()
|
||||||
|
c.OnClientClosed=multi:newConnection()
|
||||||
|
c.OnClientConnected=multi:newConnection()
|
||||||
|
c.connectiontest=multi:newAlarm(30)
|
||||||
|
c.connectiontest.link=c
|
||||||
|
c.connectiontest:OnRing(function(alarm)
|
||||||
|
--print("pinging clients!")
|
||||||
|
alarm.link:sendAll("ping")
|
||||||
|
alarm:Reset()
|
||||||
|
end)
|
||||||
|
multi:newLoop(function()
|
||||||
|
c:update()
|
||||||
|
end)
|
||||||
|
net.OnServerCreated:Fire(c)
|
||||||
|
return c
|
||||||
|
end
|
||||||
|
|
||||||
|
function net:newAUDPClient(host,port,servercode,nonluaServer)
|
||||||
|
local c={}
|
||||||
|
c.ip=assert(socket.dns.toip(host))
|
||||||
|
c.udp=assert(socket.udp())
|
||||||
|
c.udp:settimeout(0)
|
||||||
|
c.cid="NIL"
|
||||||
|
c.lastPing=0
|
||||||
|
c.Type="udp"
|
||||||
|
c.servercode=servercode
|
||||||
|
c.autoReconnect=true
|
||||||
|
c.autoNormalization=false
|
||||||
|
function c:pollPing(n)
|
||||||
|
return not((os.clock()-self.lastPing)<(n or 60))
|
||||||
|
end
|
||||||
|
function c:send(data)
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.normalize(data)
|
||||||
|
end
|
||||||
|
self.udp:send("C!"..self.cid..data)
|
||||||
|
end
|
||||||
|
function c:sendRaw(data)
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.normalize(data)
|
||||||
|
end
|
||||||
|
self.udp:send(data)
|
||||||
|
end
|
||||||
|
function c:getCID()
|
||||||
|
if self:IDAssigned() then
|
||||||
|
return self.cid
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:close()
|
||||||
|
self:send("E!")
|
||||||
|
end
|
||||||
|
function c:IDAssigned()
|
||||||
|
return self.cid~="NIL"
|
||||||
|
end
|
||||||
|
function c:update()
|
||||||
|
local data=self.udp:receive()
|
||||||
|
if data then
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.denormalize(data)
|
||||||
|
end
|
||||||
|
if data:sub(1,2)=="I!" then
|
||||||
|
self.cid=data:sub(3,-1)
|
||||||
|
self.OnClientReady:Fire(self)
|
||||||
|
elseif data=="S!" then
|
||||||
|
self.udp:send("S!"..(self.servercode or ""))
|
||||||
|
elseif data=="L!" then
|
||||||
|
local mods=""
|
||||||
|
local m=""
|
||||||
|
for i=1,#net.loadedModules do
|
||||||
|
m=net.loadedModules[i]
|
||||||
|
mods=mods..m..":"..net.getModuleVersion(m).."|"
|
||||||
|
end
|
||||||
|
self.udp:send("L!"..self.cid..mods)
|
||||||
|
elseif data=="ping" then
|
||||||
|
self.lastPing=os.clock()
|
||||||
|
self.OnPingRecieved:Fire(self)
|
||||||
|
self.udp:send("pong"..self.cid)
|
||||||
|
else
|
||||||
|
local hook=data:match("!(.-)!")
|
||||||
|
self.OnDataRecieved:getConnection(hook):Fire(self,data)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:reconnect()
|
||||||
|
if not nonluaServer then
|
||||||
|
self.cid="NIL"
|
||||||
|
c.udp:send("I!")
|
||||||
|
end
|
||||||
|
self.OnConnectionRegained:Fire(self)
|
||||||
|
end
|
||||||
|
c.pingEvent=multi:newEvent(function(self) return self.link:pollPing() end)
|
||||||
|
c.pingEvent:OnEvent(function(self)
|
||||||
|
if self.link.autoReconnect then
|
||||||
|
self.link.OnServerNotAvailable:Fire("Connection to server lost: ping timeout! Attempting to reconnect...")
|
||||||
|
self.link.OnClientDisconnected:Fire(self,"closed")
|
||||||
|
self.link:reconnect()
|
||||||
|
else
|
||||||
|
self.link.OnServerNotAvailable:Fire("Connection to server lost: ping timeout!")
|
||||||
|
self.link.OnClientDisconnected:Fire(self,"closed")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
c.pingEvent.link=c
|
||||||
|
c.OnPingRecieved=multi:newConnection()
|
||||||
|
c.OnDataRecieved=multi:newConnection()
|
||||||
|
c.OnServerNotAvailable=multi:newConnection()
|
||||||
|
c.OnClientReady=multi:newConnection()
|
||||||
|
c.OnClientDisconnected=multi:newConnection()
|
||||||
|
c.OnConnectionRegained=multi:newConnection()
|
||||||
|
c.notConnected=multi:newFunction(function(self)
|
||||||
|
self:hold(3)
|
||||||
|
if self.link:IDAssigned()==false then
|
||||||
|
self.link.OnServerNotAvailable:Fire("Can't connect to the server: no response from server")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
c.notConnected.link=c
|
||||||
|
if not nonluaServer then
|
||||||
|
c.udp:send("I!")
|
||||||
|
end
|
||||||
|
multi:newLoop(function()
|
||||||
|
c:update()
|
||||||
|
end)
|
||||||
|
multi:newJob(function() c.notConnected() end)
|
||||||
|
net.OnClientCreated:Fire(c)
|
||||||
|
return c
|
||||||
|
end
|
||||||
666
netold/init.lua
Normal file
666
netold/init.lua
Normal file
@ -0,0 +1,666 @@
|
|||||||
|
--[[
|
||||||
|
UPCOMMING ADDITIONS
|
||||||
|
AUDP - advance udp. Ensures packets arrive and handles late packets.
|
||||||
|
P2P - peer to peer (Server to set up initial connection)
|
||||||
|
Relay - offput server load (locally)
|
||||||
|
Threading - Simple threading ~~(UDP/AUDP Only)~~ Thanks to an updated multi library we can thread with ease
|
||||||
|
Priority handling
|
||||||
|
]]
|
||||||
|
--[[
|
||||||
|
TODO: Finish stuff for Priority handling
|
||||||
|
]]
|
||||||
|
function table.merge(t1, t2)
|
||||||
|
for k,v in pairs(t2) do
|
||||||
|
if type(v) == 'table' then
|
||||||
|
if type(t1[k] or false) == 'table' then
|
||||||
|
table.merge(t1[k] or {}, t2[k] or {})
|
||||||
|
else
|
||||||
|
t1[k] = v
|
||||||
|
end
|
||||||
|
else
|
||||||
|
t1[k] = v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return t1
|
||||||
|
end
|
||||||
|
function string.trim(s)
|
||||||
|
local from = s:match"^%s*()"
|
||||||
|
return from > #s and "" or s:match(".*%S", from)
|
||||||
|
end
|
||||||
|
socket=require("socket")
|
||||||
|
http=require("socket.http")
|
||||||
|
mime=require("mime")
|
||||||
|
ssl=require("ssl")
|
||||||
|
https=require("ssl.https")
|
||||||
|
net={}
|
||||||
|
net.Version={2,0,1} -- This will probably stay this version for quite a while... The modules on the otherhand will be more inconsistant
|
||||||
|
net._VERSION="2.0.1"
|
||||||
|
net.OnServerCreated=multi:newConnection()
|
||||||
|
net.OnClientCreated=multi:newConnection()
|
||||||
|
net.loadedModules={}
|
||||||
|
net.autoInit=true
|
||||||
|
function net.normalize(input)
|
||||||
|
local enc=mime.b64(input)
|
||||||
|
return enc
|
||||||
|
end
|
||||||
|
function net.denormalize(input)
|
||||||
|
local unenc=mime.unb64(input)
|
||||||
|
return unenc
|
||||||
|
end
|
||||||
|
function net.getLocalIP()
|
||||||
|
local someRandomIP = "192.168.1.122"
|
||||||
|
local someRandomPort = "3102"
|
||||||
|
local mySocket = socket.udp()
|
||||||
|
mySocket:setpeername(someRandomIP,someRandomPort)
|
||||||
|
local dat = (mySocket:getsockname())
|
||||||
|
mySocket:close()
|
||||||
|
return dat
|
||||||
|
end
|
||||||
|
function net.getExternalIP()
|
||||||
|
local data=http.request("http://whatismyip.org/")
|
||||||
|
return data:match("600;\">(%d-.%d-.%d-.%d-)</span>")
|
||||||
|
end
|
||||||
|
function net:registerModule(mod,version)
|
||||||
|
if net[mod] then
|
||||||
|
error("Module by the name: "..mod.." has already been registered! Remember some modules are internal and use certain names!")
|
||||||
|
end
|
||||||
|
table.insert(self.loadedModules,mod)
|
||||||
|
net[mod]={}
|
||||||
|
if version then
|
||||||
|
net[mod].Version=version
|
||||||
|
net[mod]._VERSION=version[1].."."..version[2].."."..version[3]
|
||||||
|
else
|
||||||
|
net[mod].Version={1,0,0}
|
||||||
|
net[mod]._VERSION={1,0,0}
|
||||||
|
end
|
||||||
|
return {Version=version,_VERSION=version[1].."."..version[2].."."..version[3]}
|
||||||
|
end
|
||||||
|
function net.getModuleVersion(ext)
|
||||||
|
if not ext then
|
||||||
|
return string.format("%d.%d.%d",net.Version[1],net.Version[2],net.Version[3])
|
||||||
|
end
|
||||||
|
return string.format("%d.%d.%d",net[ext].Version[1],net[ext].Version[2],net[ext].Version[3])
|
||||||
|
end
|
||||||
|
function net.resolveID(obj)
|
||||||
|
local num=math.random(10000000,99999999)
|
||||||
|
if obj[tostring(num)] then
|
||||||
|
return net.resolveID(obj)
|
||||||
|
end
|
||||||
|
obj.ids[tostring(num)]=true
|
||||||
|
return tostring(num)
|
||||||
|
end
|
||||||
|
function net.inList(list,dat)
|
||||||
|
for i,v in pairs(list) do
|
||||||
|
if v==dat then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
function net.setTrigger(funcW,funcE)
|
||||||
|
multi:newTrigger(func)
|
||||||
|
end
|
||||||
|
net:registerModule("net",net.Version)
|
||||||
|
-- Client broadcast
|
||||||
|
function net:newCastedClient(name) -- connects to the broadcasted server
|
||||||
|
local listen = socket.udp() -- make a new socket
|
||||||
|
listen:setsockname(net.getLocalIP(), 11111)
|
||||||
|
listen:settimeout(0)
|
||||||
|
local timer=multi:newTimer()
|
||||||
|
while true do
|
||||||
|
local data, ip, port = listen:receivefrom()
|
||||||
|
if timer:Get()>3 then
|
||||||
|
error("Timeout! Server by the name: "..name.." has not been found!")
|
||||||
|
end
|
||||||
|
if data then
|
||||||
|
local n,tp,ip,port=data:match("(%S-)|(%S-)|(%S-):(%d+)")
|
||||||
|
if n:match(name) then
|
||||||
|
print("Found Server!",n,tp,ip,port)
|
||||||
|
if tp=="tcp" then
|
||||||
|
return net:newTCPClient(ip,tonumber(port))
|
||||||
|
else
|
||||||
|
return net:newClient(ip,tonumber(port))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- UDP Stuff
|
||||||
|
function net:newServer(port,servercode)
|
||||||
|
local c={}
|
||||||
|
c.udp=assert(socket.udp())
|
||||||
|
c.udp:settimeout(0)
|
||||||
|
c.udp:setsockname("*", port)
|
||||||
|
c.ips={}
|
||||||
|
c.Type="udp"
|
||||||
|
c.port=port
|
||||||
|
c.ids={}
|
||||||
|
c.servercode=servercode
|
||||||
|
c.bannedIPs={}
|
||||||
|
c.bannedCIDs={}
|
||||||
|
c.autoNormalization=false
|
||||||
|
function c:setUpdateRate(n)
|
||||||
|
print("Not needed in a udp server!")
|
||||||
|
end
|
||||||
|
function c:banCID(cid)
|
||||||
|
table.insert(self.bannedCIDs,cid)
|
||||||
|
end
|
||||||
|
function c:banIP(ip)
|
||||||
|
table.insert(self.bannedIPs,cid)
|
||||||
|
end
|
||||||
|
c.broad=socket.udp()
|
||||||
|
c.hostip=net.getLocalIP()
|
||||||
|
function c:broadcast(name)
|
||||||
|
local loop=multi:newTLoop(function(loop,dt)
|
||||||
|
self.broad:setoption('broadcast',true)
|
||||||
|
self.broad:sendto(name.."|"..self.Type.."|"..self.hostip..":"..self.port, "255.255.255.255", 11111)
|
||||||
|
self.broad:setoption('broadcast',false)
|
||||||
|
end,1)
|
||||||
|
end
|
||||||
|
function c:send(ip,data,port,cid)
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.normalize(data)
|
||||||
|
end
|
||||||
|
if self.servercode then
|
||||||
|
cid=cid or self:CIDFrom(ip,port)
|
||||||
|
if not self.ips[cid] then
|
||||||
|
print("Can't determine cid from client... sending the client a new one!")
|
||||||
|
local cid=net.resolveID(self)
|
||||||
|
print("Sending unique cid to client: "..cid)
|
||||||
|
self.ips[cid]={ip,port,0,self.servercode==nil}
|
||||||
|
print(ip)
|
||||||
|
self.udp:sendto("I!"..cid,ip,port)
|
||||||
|
if self.servercode then
|
||||||
|
self.udp:sendto("S!",ip,port)
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if net.inList(self.bannedIPs,ip) or net.inList(self.bannedCIDs,cid) then
|
||||||
|
self.udp:sendto("BANNED CLIENT", ip, port or self.port)
|
||||||
|
elseif self.ips[cid][4] then
|
||||||
|
self.udp:sendto(data, ip, port or self.port)
|
||||||
|
elseif self.ips[cid][4]==false then
|
||||||
|
self.udp:sendto("Make sure your server code is correct!", ip, port)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
self.udp:sendto(data, ip, port or self.port)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:pollClientModules(ip,port)
|
||||||
|
self:send(ip,"L!",port)
|
||||||
|
end
|
||||||
|
function c:CIDFrom(ip,port)
|
||||||
|
for i,v in pairs(self.ips) do
|
||||||
|
if(ip==v[1] and v[2]==port) then
|
||||||
|
return i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:sendAll(data)
|
||||||
|
for i,v in pairs(self.ips) do
|
||||||
|
self:send(v[1],data,v[2],i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:sendAllBut(data,cid)
|
||||||
|
for i,v in pairs(self.ips) do
|
||||||
|
if i~=cid then
|
||||||
|
self:send(v[1],data,v[2],i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:clientRegistered(cid)
|
||||||
|
return self.ips[cid]
|
||||||
|
end
|
||||||
|
function c:clientLoggedIn(cid)
|
||||||
|
if not self.clientRegistered(cid) then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
return self.ips[cid][4]
|
||||||
|
end
|
||||||
|
function c:update()
|
||||||
|
local data,ip,port=self.udp:receivefrom()
|
||||||
|
if net.inList(self.bannedIPs,ip) or net.inList(self.bannedCIDs,cid) then
|
||||||
|
print("We will ingore data from a banned client!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if data then
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.denormalize(data)
|
||||||
|
end
|
||||||
|
if data:sub(1,4)=="pong" then
|
||||||
|
--print("Recieved pong from: "..data:sub(5,-1))
|
||||||
|
self.ips[data:sub(5,-1)][3]=os.clock()
|
||||||
|
elseif data:sub(1,2)=="S!" then
|
||||||
|
local cid=self:CIDFrom(ip,port)
|
||||||
|
if data:sub(3,-1)==self.servercode then
|
||||||
|
print("Servercode Accepted: "..self.servercode)
|
||||||
|
if self.ips[cid] then
|
||||||
|
self.ips[cid][4]=true
|
||||||
|
else
|
||||||
|
print("Server can't keep up! CID: "..cid.." has been skipped! Sending new CID to the client!")
|
||||||
|
local cid=net.resolveID(self)
|
||||||
|
print("Sending unique cid to client: "..cid)
|
||||||
|
self.ips[cid]={ip,port,0,self.servercode==nil}
|
||||||
|
print(ip)
|
||||||
|
self.udp:sendto("I!"..cid,ip,port)
|
||||||
|
if self.servercode then
|
||||||
|
self.udp:sendto("S!",ip,port)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
self.udp:sendto("Make sure your server code is correct!", ip, port)
|
||||||
|
end
|
||||||
|
elseif data:sub(1,2)=="C!" then
|
||||||
|
local hook=(data:sub(11,-1)):match("!(.-)!")
|
||||||
|
self.OnDataRecieved:getConnection(hook):Fire(self,data:sub(11,-1),data:sub(3,10),ip,port)
|
||||||
|
elseif data:sub(1,2)=="E!" then
|
||||||
|
self.ips[data:sub(3,10)]=nil
|
||||||
|
obj.ids[data:sub(3,10)]=false
|
||||||
|
self.OnClientClosed:Fire(self,"Client Closed Connection!",data:sub(3,10),ip,port)
|
||||||
|
elseif data=="I!" then
|
||||||
|
local cid=net.resolveID(self)
|
||||||
|
print("Sending unique cid to client: "..cid)
|
||||||
|
self.ips[cid]={ip,port,os.clock(),self.servercode==nil}
|
||||||
|
print(ip)
|
||||||
|
self.udp:sendto("I!"..cid,ip,port)
|
||||||
|
if self.servercode then
|
||||||
|
self.udp:sendto("S!",ip,port)
|
||||||
|
end
|
||||||
|
self.OnClientConnected:Fire(self,cid,ip,port)
|
||||||
|
elseif data:sub(1,2)=="L!" then
|
||||||
|
cid,cList=data:sub(3,10),data:sub(11,-1)
|
||||||
|
local list={}
|
||||||
|
for m,v in cList:gmatch("(%S-):(%S-)|") do
|
||||||
|
list[m]=v
|
||||||
|
end
|
||||||
|
self.OnClientsModulesList:Fire(list,cid,ip,port)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for cid,dat in pairs(self.ips) do
|
||||||
|
if not((os.clock()-dat[3])<65) then
|
||||||
|
self.ips[cid]=nil
|
||||||
|
self.OnClientClosed:Fire(self,"Client lost Connection: ping timeout",cid,ip,port)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
c.OnClientsModulesList=multi:newConnection()
|
||||||
|
c.OnDataRecieved=multi:newConnection()
|
||||||
|
c.OnClientClosed=multi:newConnection()
|
||||||
|
c.OnClientConnected=multi:newConnection()
|
||||||
|
c.connectiontest=multi:newAlarm(30)
|
||||||
|
c.connectiontest.link=c
|
||||||
|
c.connectiontest:OnRing(function(alarm)
|
||||||
|
--print("pinging clients!")
|
||||||
|
alarm.link:sendAll("ping")
|
||||||
|
alarm:Reset()
|
||||||
|
end)
|
||||||
|
multi:newLoop(function()
|
||||||
|
c:update()
|
||||||
|
end)
|
||||||
|
net.OnServerCreated:Fire(c)
|
||||||
|
return c
|
||||||
|
end
|
||||||
|
|
||||||
|
function net:newClient(host,port,servercode,nonluaServer)
|
||||||
|
local c={}
|
||||||
|
c.ip=assert(socket.dns.toip(host))
|
||||||
|
c.udp=assert(socket.udp())
|
||||||
|
c.udp:settimeout(0)
|
||||||
|
c.udp:setpeername(c.ip, port)
|
||||||
|
c.cid="NIL"
|
||||||
|
c.lastPing=0
|
||||||
|
c.Type="udp"
|
||||||
|
c.servercode=servercode
|
||||||
|
c.autoReconnect=true
|
||||||
|
c.autoNormalization=false
|
||||||
|
function c:pollPing(n)
|
||||||
|
return not((os.clock()-self.lastPing)<(n or 60))
|
||||||
|
end
|
||||||
|
function c:send(data)
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.normalize(data)
|
||||||
|
end
|
||||||
|
self.udp:send("C!"..self.cid..data)
|
||||||
|
end
|
||||||
|
function c:sendRaw(data)
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.normalize(data)
|
||||||
|
end
|
||||||
|
self.udp:send(data)
|
||||||
|
end
|
||||||
|
function c:getCID()
|
||||||
|
if self:IDAssigned() then
|
||||||
|
return self.cid
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:close()
|
||||||
|
self:send("E!")
|
||||||
|
end
|
||||||
|
function c:IDAssigned()
|
||||||
|
return self.cid~="NIL"
|
||||||
|
end
|
||||||
|
function c:update()
|
||||||
|
local data=self.udp:receive()
|
||||||
|
if data then
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.denormalize(data)
|
||||||
|
end
|
||||||
|
if data:sub(1,2)=="I!" then
|
||||||
|
self.cid=data:sub(3,-1)
|
||||||
|
self.OnClientReady:Fire(self)
|
||||||
|
elseif data=="S!" then
|
||||||
|
self.udp:send("S!"..(self.servercode or ""))
|
||||||
|
elseif data=="L!" then
|
||||||
|
local mods=""
|
||||||
|
local m=""
|
||||||
|
for i=1,#net.loadedModules do
|
||||||
|
m=net.loadedModules[i]
|
||||||
|
mods=mods..m..":"..net.getModuleVersion(m).."|"
|
||||||
|
end
|
||||||
|
self.udp:send("L!"..self.cid..mods)
|
||||||
|
elseif data=="ping" then
|
||||||
|
self.lastPing=os.clock()
|
||||||
|
self.OnPingRecieved:Fire(self)
|
||||||
|
self.udp:send("pong"..self.cid)
|
||||||
|
else
|
||||||
|
local hook=data:match("!(.-)!")
|
||||||
|
self.OnDataRecieved:getConnection(hook):Fire(self,data)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:reconnect()
|
||||||
|
if not nonluaServer then
|
||||||
|
self.cid="NIL"
|
||||||
|
c.udp:send("I!")
|
||||||
|
end
|
||||||
|
self.OnConnectionRegained:Fire(self)
|
||||||
|
end
|
||||||
|
c.pingEvent=multi:newEvent(function(self) return self.link:pollPing() end)
|
||||||
|
c.pingEvent:OnEvent(function(self)
|
||||||
|
if self.link.autoReconnect then
|
||||||
|
self.link.OnServerNotAvailable:Fire("Connection to server lost: ping timeout! Attempting to reconnect...")
|
||||||
|
self.link.OnClientDisconnected:Fire(self,"closed")
|
||||||
|
self.link:reconnect()
|
||||||
|
else
|
||||||
|
self.link.OnServerNotAvailable:Fire("Connection to server lost: ping timeout!")
|
||||||
|
self.link.OnClientDisconnected:Fire(self,"closed")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
c.pingEvent.link=c
|
||||||
|
c.OnPingRecieved=multi:newConnection()
|
||||||
|
c.OnDataRecieved=multi:newConnection()
|
||||||
|
c.OnServerNotAvailable=multi:newConnection()
|
||||||
|
c.OnClientReady=multi:newConnection()
|
||||||
|
c.OnClientDisconnected=multi:newConnection()
|
||||||
|
c.OnConnectionRegained=multi:newConnection()
|
||||||
|
c.notConnected=multi:newFunction(function(self)
|
||||||
|
self:hold(3)
|
||||||
|
if self.link:IDAssigned()==false then
|
||||||
|
self.link.OnServerNotAvailable:Fire("Can't connect to the server: no response from server")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
c.notConnected.link=c
|
||||||
|
if not nonluaServer then
|
||||||
|
c.udp:send("I!")
|
||||||
|
end
|
||||||
|
multi:newLoop(function()
|
||||||
|
c:update()
|
||||||
|
end)
|
||||||
|
multi:newJob(function() c.notConnected() end)
|
||||||
|
net.OnClientCreated:Fire(c)
|
||||||
|
return c
|
||||||
|
end
|
||||||
|
--TCP Stuff
|
||||||
|
function net:newTCPServer(port)
|
||||||
|
local c={}
|
||||||
|
c.tcp=assert(socket.bind("*", port))
|
||||||
|
c.tcp:settimeout(0)
|
||||||
|
c.ip,c.port=c.tcp:getsockname()
|
||||||
|
c.ips={}
|
||||||
|
c.port=port
|
||||||
|
c.ids={}
|
||||||
|
c.bannedIPs={}
|
||||||
|
c.Type="tcp"
|
||||||
|
c.rMode="*l"
|
||||||
|
c.sMode="*l"
|
||||||
|
c.updaterRate=1
|
||||||
|
c.autoNormalization=false
|
||||||
|
c.updates={}
|
||||||
|
c.links={}
|
||||||
|
c.broad=socket.udp()
|
||||||
|
c.hostip=net.getLocalIP()
|
||||||
|
function c:broadcast(name)
|
||||||
|
local loop=multi:newTLoop(function(loop,dt)
|
||||||
|
self.broad:setoption('broadcast',true)
|
||||||
|
self.broad:sendto(name.."|"..self.Type.."|"..self.hostip..":"..self.port, "255.255.255.255", 11111)
|
||||||
|
self.broad:setoption('broadcast',false)
|
||||||
|
end,1)
|
||||||
|
end
|
||||||
|
function c:setUpdateRate(n)
|
||||||
|
self.updaterRate=n
|
||||||
|
end
|
||||||
|
function c:setReceiveMode(mode)
|
||||||
|
self.rMode=mode
|
||||||
|
end
|
||||||
|
function c:setSendMode(mode)
|
||||||
|
self.rMode=mode
|
||||||
|
end
|
||||||
|
function c:banCID(cid)
|
||||||
|
print("Function not supported on a tcp server!")
|
||||||
|
end
|
||||||
|
function c:banIP(ip)
|
||||||
|
table.insert(self.bannedIPs,cid)
|
||||||
|
end
|
||||||
|
function c:send(handle,data)
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.normalize(data)
|
||||||
|
end
|
||||||
|
if self.sMode=="*l" then
|
||||||
|
handle:send(data.."\n")
|
||||||
|
else
|
||||||
|
handle:send(data)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:sendAllData(handle,data)
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.normalize(data)
|
||||||
|
end
|
||||||
|
handle:send(data)
|
||||||
|
end
|
||||||
|
function c:pollClientModules(ip,port)
|
||||||
|
self:send(ip,"L!",port)
|
||||||
|
end
|
||||||
|
function c:CIDFrom(ip,port)
|
||||||
|
print("Method not supported when using a TCP Server!")
|
||||||
|
return "CIDs in TCP work differently!"
|
||||||
|
end
|
||||||
|
function c:sendAll(data)
|
||||||
|
for i,v in pairs(self.ips) do
|
||||||
|
self:send(v,data)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:sendAllBut(data,cid)
|
||||||
|
for i,v in pairs(self.ips) do
|
||||||
|
if not(cid==i) then
|
||||||
|
self:send(v,data)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:clientRegistered(cid)
|
||||||
|
return self.ips[cid]
|
||||||
|
end
|
||||||
|
function c:clientLoggedIn(cid)
|
||||||
|
return self.ips[cid]
|
||||||
|
end
|
||||||
|
function c:getUpdater(cid)
|
||||||
|
return self.updates[cid]
|
||||||
|
end
|
||||||
|
function c:update()
|
||||||
|
local client = self.tcp:accept(self.rMode)
|
||||||
|
if not client then return end
|
||||||
|
table.insert(self.ips,client)
|
||||||
|
client:settimeout(0)
|
||||||
|
--client:setoption('tcp-nodelay', true)
|
||||||
|
client:setoption('keepalive', true)
|
||||||
|
ip,port=client:getpeername()
|
||||||
|
if ip and port then
|
||||||
|
print("Got connection from: ",ip,port)
|
||||||
|
local updater=multi:newUpdater(skip)
|
||||||
|
self.updates[client]=updater
|
||||||
|
self.OnClientConnected:Fire(self,self.client,self.client,ip)
|
||||||
|
updater:OnUpdate(function(self)
|
||||||
|
local data, err = self.client:receive(self.rMode or self.Link.rMode)
|
||||||
|
if err=="closed" then
|
||||||
|
for i=1,#self.Link.ips do
|
||||||
|
if self.Link.ips[i]==self.client then
|
||||||
|
table.remove(self.Link.ips,i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
self.Link.OnClientClosed:Fire(self.Link,"Client Closed Connection!",self.client,self.client,ip)
|
||||||
|
self.Link.links[self.client]=nil -- lets clean up
|
||||||
|
self:Destroy()
|
||||||
|
end
|
||||||
|
if data then
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.denormalize(data)
|
||||||
|
end
|
||||||
|
if net.inList(self.Link.bannedIPs,ip) then
|
||||||
|
print("We will ingore data from a banned client!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local hook=data:match("!(.-)!")
|
||||||
|
self.Link.OnDataRecieved:getConnection(hook):Fire(self.Link,data,self.client,self.client,ip,self)
|
||||||
|
if data:sub(1,2)=="L!" then
|
||||||
|
cList=data
|
||||||
|
local list={}
|
||||||
|
for m,v in cList:gmatch("(%S-):(%S-)|") do
|
||||||
|
list[m]=v
|
||||||
|
end
|
||||||
|
self.Link.OnClientsModulesList:Fire(list,self.client,self.client,ip)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
updater:setSkip(self.updaterRate)
|
||||||
|
updater.client=client
|
||||||
|
updater.Link=self
|
||||||
|
function updater:setReceiveMode(mode)
|
||||||
|
self.rMode=mode
|
||||||
|
end
|
||||||
|
self.links[client]=updater
|
||||||
|
end
|
||||||
|
end
|
||||||
|
c.OnClientsModulesList=multi:newConnection()
|
||||||
|
c.OnDataRecieved=multi:newConnection()
|
||||||
|
c.OnClientClosed=multi:newConnection()
|
||||||
|
c.OnClientConnected=multi:newConnection()
|
||||||
|
multi:newLoop(function()
|
||||||
|
c:update()
|
||||||
|
end)
|
||||||
|
net.OnServerCreated:Fire(c)
|
||||||
|
return c
|
||||||
|
end
|
||||||
|
function net:newTCPClient(host,port)
|
||||||
|
local c={}
|
||||||
|
c.ip=assert(socket.dns.toip(host))
|
||||||
|
c.port=port
|
||||||
|
c.tcp=socket.connect(c.ip,port)
|
||||||
|
if not c.tcp then
|
||||||
|
print("Can't connect to the server: no response from server")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
c.tcp:settimeout(0)
|
||||||
|
--c.tcp:setoption('tcp-nodelay', true)
|
||||||
|
c.tcp:setoption('keepalive', true)
|
||||||
|
c.Type="tcp"
|
||||||
|
c.autoReconnect=true
|
||||||
|
c.rMode="*l"
|
||||||
|
c.sMode="*l"
|
||||||
|
c.autoNormalization=false
|
||||||
|
function c:setReceiveMode(mode)
|
||||||
|
self.rMode=mode
|
||||||
|
end
|
||||||
|
function c:setSendMode(mode)
|
||||||
|
self.sMode=mode
|
||||||
|
end
|
||||||
|
function c:send(data)
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.normalize(data)
|
||||||
|
end
|
||||||
|
if self.sMode=="*l" then
|
||||||
|
ind,err=self.tcp:send(data.."\n")
|
||||||
|
else
|
||||||
|
ind,err=self.tcp:send(data)
|
||||||
|
end
|
||||||
|
if err=="closed" then
|
||||||
|
self.OnClientDisconnected:Fire(self,err)
|
||||||
|
elseif err=="timeout" then
|
||||||
|
self.OnClientDisconnected:Fire(self,err)
|
||||||
|
elseif err then
|
||||||
|
print(err)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:sendRaw(data)
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.normalize(data)
|
||||||
|
end
|
||||||
|
self.tcp:send(data)
|
||||||
|
end
|
||||||
|
function c:getCID()
|
||||||
|
return "No Cid on a tcp client!"
|
||||||
|
end
|
||||||
|
function c:close()
|
||||||
|
self.tcp:close()
|
||||||
|
end
|
||||||
|
function c:IDAssigned()
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
function c:update()
|
||||||
|
if not self.tcp then return end
|
||||||
|
local data,err=self.tcp:receive()
|
||||||
|
if err=="closed" then
|
||||||
|
self.OnClientDisconnected:Fire(self,err)
|
||||||
|
elseif err=="timeout" then
|
||||||
|
self.OnClientDisconnected:Fire(self,err)
|
||||||
|
elseif err then
|
||||||
|
print(err)
|
||||||
|
end
|
||||||
|
if data then
|
||||||
|
if self.autoNormalization then
|
||||||
|
data=net.denormalize(data)
|
||||||
|
end
|
||||||
|
local hook=data:match("!(.-)!")
|
||||||
|
self.OnDataRecieved:getConnection(hook):Fire(self,data)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function c:reconnect()
|
||||||
|
multi:newFunction(function(func)
|
||||||
|
self.tcp=socket.connect(self.ip,self.port)
|
||||||
|
if self.tcp==nil then
|
||||||
|
print("Can't connect to the server: No response from server!")
|
||||||
|
func:hold(3)
|
||||||
|
self:reconnect()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
self.OnConnectionRegained:Fire(self)
|
||||||
|
self.tcp:settimeout(0)
|
||||||
|
--self.tcp:setoption('tcp-nodelay', true)
|
||||||
|
self.tcp:setoption('keepalive', true)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
c.event=multi:newEvent(function(event)
|
||||||
|
return event.link:IDAssigned()
|
||||||
|
end)
|
||||||
|
c.event:OnEvent(function(event)
|
||||||
|
event.link.OnClientReady:Fire(event.link)
|
||||||
|
end)
|
||||||
|
c.event.link=c
|
||||||
|
c.OnClientReady=multi:newConnection()
|
||||||
|
c.OnClientDisconnected=multi:newConnection()
|
||||||
|
c.OnDataRecieved=multi:newConnection()
|
||||||
|
c.OnConnectionRegained=multi:newConnection()
|
||||||
|
multi:newLoop(function()
|
||||||
|
c:update()
|
||||||
|
end)
|
||||||
|
net.OnClientCreated:Fire(c)
|
||||||
|
return c
|
||||||
|
end
|
||||||
10
server.lua
Normal file
10
server.lua
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package.path="?/init.lua;"..package.path
|
||||||
|
require("multi")
|
||||||
|
require("net")
|
||||||
|
server = net:newUDPServer(12345)
|
||||||
|
print("Server hosted on "..net.getExternalIP().." listening on port: 12345")
|
||||||
|
server.OnDataRecieved(function(self,data,cid,ip,port)
|
||||||
|
print(data)
|
||||||
|
self:send(ip,"Hello Client! "..net.generateGUID(),port,cid)
|
||||||
|
end)
|
||||||
|
multi:mainloop()
|
||||||
15
servertest.lua
Normal file
15
servertest.lua
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package.path="?/init.lua;"..package.path
|
||||||
|
require("multi")
|
||||||
|
require("net")
|
||||||
|
port=12344
|
||||||
|
udp=assert(socket.udp())
|
||||||
|
udp:settimeout(0)
|
||||||
|
udp:setsockname("*", port)
|
||||||
|
multi:newLoop(function()
|
||||||
|
local data,ip,port=udp:receivefrom()
|
||||||
|
if data then
|
||||||
|
print(data)
|
||||||
|
udp:sendto("Hey Client!\n", ip, port)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
multi:mainloop()
|
||||||
8
servertests/certs/.rnd
Normal file
8
servertests/certs/.rnd
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Dù(K†D€ô 3Vh®.%pÉÖ ÿ³»ãTTò1[dG+°•\“=B8„²ôí@ñÈΧ<C38E>B5K‚>Ì<>´$è«™úF©3%ð…“nJ;¼/µ:<1E>ª³ñp?H¦ɯ>¹1<C2B9>5ðê¾Hb›B‚ÂY¨J«ô¦®lgfËáfîuÎñM;øÀºÆãÓämíE7Zx+'<27>\Œ²Ÿ—°ÑÌ8ù]ÝlÀ![·q;O5SúÐþvb#žh<C5BE>/·Êc«•ªÓª¡LeòÒ놚5ÿ3d=WöëžWPŒÒÐsÆb
|
||||||
|
45¶gd²H•þ2µ#öRHý)/tôÚ§¸‹<C2B8>{<1A>«mÒÙ‡îïR«Ûò|×ï¤H{<7B>€Jܶx‡p>ÍO![Ù-n~ð̓%ô–c •<>ð]B—Ö™Ý\ p£Î\Å·‹xI¿ ŽSÒ‹s2ùj‘¢oåƒdé³øüñÚ“Ë~<7E>Œfÿ·…¤<E280A6>²¡…~‰mí
AOÌ#g Iv1k;ul„‹‘‰ÄC£PK?ÑVUâ<O"ò)Ák”Iž¼;D£:~xú?Ðâ)ÑK<C391>ÏaЫáîrI%œ
|
||||||
|
¬K<>UXÓ”BxuTä íxRú<52>"Іž8ó?À²^ªozÌþÞfð7Rñ?øVKbÎ~ò•ÝÉ ™›WG©Np7§XWÆ^C½±M€—îÅ€×TO“Gû—roÇŠ’Eñ `\"Ô!ü‹ëNפ°Õ4!úRÝÙé⢨}(ùì8ØßU9÷ %XNÍÁÆË|Z[!)áVÈ<<3C>
|
||||||
|
æ[KœêRœv+»¥q
|
||||||
|
sšƒ’ó<EFBFBD>š‡=W̤ؒ’þµ¡Nzp±ôšËÐajÉËèiÁ)|Í…‹È <09>•kú®dçÒÃ<C392>Ð)pèG:Ìý®°óMg8´H>V_^åþžzí¬ ¾
ù®„Eôl`¨è‰ô.àgÀ¡Nx„ðÚ‰ T¾Ÿ¦X&dn™ï¬òdSÅ ÚœO6qHšýV<C3BD>V¦ÊHÇ©ïÓª<C393>ÎÁÐS·1(„^:dð?<3F>Ú_,#´V8J
|
||||||
|
wç»t²ŸFÏÆ•˜d8w¡ÄR¡‰$–ÎÓ§ÕË<7
|
||||||
|
ÊPoΊ‡z*é"A<>âZ,¹PA:{O¥]³õkàÔdåw*~¦%À
|
||||||
|
„.")x×vA´ãGºL
zVbÖ·«,Ó,5Ú$Ñgð<67>a¼Ë°œ)f¸œhØ„ëñ)þþwl3)žLêi¦\‘•…úù@Õ`h¡ÑÑL‡eó$:V›±ê¤ÂsbІ&¯|«—½|„îALYÉŸXk»`tW[(ú•á½Õýá<C3BD>'
|
||||||
14
servertests/certs/all.bat
Normal file
14
servertests/certs/all.bat
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
REM make sure the 'openssl.exe' commandline tool is in your path before starting!
|
||||||
|
REM set the path below;
|
||||||
|
set opensslpath=C:\OpenSSL-Win32\bin
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
setlocal
|
||||||
|
set path=%opensslpath%;%path%
|
||||||
|
call roota.bat
|
||||||
|
call rootb.bat
|
||||||
|
call servera.bat
|
||||||
|
call serverb.bat
|
||||||
|
call clienta.bat
|
||||||
|
call clientb.bat
|
||||||
24
servertests/certs/ca.pem
Normal file
24
servertests/certs/ca.pem
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIID8DCCAtigAwIBAgIJAKdQLITRsi/hMA0GCSqGSIb3DQEBCwUAMIGMMQswCQYD
|
||||||
|
VQQGEwJVUzERMA8GA1UECAwITmV3IFlvcmsxEDAOBgNVBAcMB0JhbGR3aW4xEjAQ
|
||||||
|
BgNVBAoMCVJ5YW4gSU5DLjEMMAoGA1UECwwDbWVoMRIwEAYDVQQDDAlSeWFuIFdh
|
||||||
|
cmQxIjAgBgkqhkiG9w0BCQEWE3JheWFtYW45OUBnbWFpbC5jb20wHhcNMTcxMTIw
|
||||||
|
MTUyMzQ5WhcNMTcxMjIwMTUyMzQ5WjCBjDELMAkGA1UEBhMCVVMxETAPBgNVBAgM
|
||||||
|
CE5ldyBZb3JrMRAwDgYDVQQHDAdCYWxkd2luMRIwEAYDVQQKDAlSeWFuIElOQy4x
|
||||||
|
DDAKBgNVBAsMA21laDESMBAGA1UEAwwJUnlhbiBXYXJkMSIwIAYJKoZIhvcNAQkB
|
||||||
|
FhNyYXlhbWFuOTlAZ21haWwuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||||
|
CgKCAQEAty9HB2AC7gCs9tttEuGWS3TtF6BGSLomCLAWE1bLO6lkFS725F4uRn9N
|
||||||
|
drbYgey8tz9/qjSIsVXL8U6aDtyqlFioA3Y2NBT9wSxuEYpkssaZ9zZ5LhVzbgpY
|
||||||
|
gNKpSuo+JGsWOQPrY33VIsInJDSvt0Q9UfzvLnGZf5XA4wc5E0a/TNuTuRkLpDVm
|
||||||
|
AvFEqUKgiZ103ZXnxhViDQFhsmitFEcCi1dGhI8VhGOCprhOWN5ZwlACjUHGQIJS
|
||||||
|
0JXsqC4xxrSpiV20+YpnNU0S/pFeUzvqzDpT0s7oW+5HMdJDkyyJbbFzMKQ2OXyI
|
||||||
|
NsKv8Bd8s+bnxws8QtZsRZt56cmkAwIDAQABo1MwUTAdBgNVHQ4EFgQU/7MbOpPb
|
||||||
|
E2nEbpg10rMsotuq8xUwHwYDVR0jBBgwFoAU/7MbOpPbE2nEbpg10rMsotuq8xUw
|
||||||
|
DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAd1ymGZJiQMjxn7Vp
|
||||||
|
+rjlz5Nhfb1UwgyobapHqpfsBrpiqoUj6FXNvxzBvXEnpMCH1iQVPFwXRv5iiT5E
|
||||||
|
NbVujkLUJtUN5XofUGnfAc3dxR03ZhWDORNZIKSm33GjCs6Xw+qQRLpMfbuTEBVF
|
||||||
|
8av10D/iKEsmElIgK1bRAydj3+4vvVWptNjHUv1fxZvRTtqW+mzvdvgoekfjIE7i
|
||||||
|
Uk0bXatyalpLiOE9iDuT1uybH01FJqdC6b5eHzLwsZiq8NltfEeC6y8CV4/BeOSo
|
||||||
|
/PSsXZqg6p4fF7FcnY57hBduJQ2twpSPCTymSg+W/hSzyMmT35ec4sKeSA36uHpn
|
||||||
|
qsxDiQ==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
9
servertests/certs/clientA.bat
Normal file
9
servertests/certs/clientA.bat
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
rem #!/bin/sh
|
||||||
|
|
||||||
|
openssl req -newkey rsa:1024 -sha1 -keyout clientAkey.pem -out clientAreq.pem -nodes -config ./clientA.cnf -days 365 -batch
|
||||||
|
|
||||||
|
openssl x509 -req -in clientAreq.pem -sha1 -extfile ./clientA.cnf -extensions usr_cert -CA rootA.pem -CAkey rootAkey.pem -CAcreateserial -out clientAcert.pem -days 365
|
||||||
|
|
||||||
|
copy clientAcert.pem + rootA.pem clientA.pem
|
||||||
|
|
||||||
|
openssl x509 -subject -issuer -noout -in clientA.pem
|
||||||
316
servertests/certs/clientA.cnf
Normal file
316
servertests/certs/clientA.cnf
Normal file
@ -0,0 +1,316 @@
|
|||||||
|
#
|
||||||
|
# OpenSSL example configuration file.
|
||||||
|
# This is mostly being used for generation of certificate requests.
|
||||||
|
#
|
||||||
|
|
||||||
|
# This definition stops the following lines choking if HOME isn't
|
||||||
|
# defined.
|
||||||
|
HOME = .
|
||||||
|
RANDFILE = $ENV::HOME/.rnd
|
||||||
|
|
||||||
|
# Extra OBJECT IDENTIFIER info:
|
||||||
|
#oid_file = $ENV::HOME/.oid
|
||||||
|
oid_section = new_oids
|
||||||
|
|
||||||
|
# To use this configuration file with the "-extfile" option of the
|
||||||
|
# "openssl x509" utility, name here the section containing the
|
||||||
|
# X.509v3 extensions to use:
|
||||||
|
# extensions =
|
||||||
|
# (Alternatively, use a configuration file that has only
|
||||||
|
# X.509v3 extensions in its main [= default] section.)
|
||||||
|
|
||||||
|
[ new_oids ]
|
||||||
|
|
||||||
|
# We can add new OIDs in here for use by 'ca' and 'req'.
|
||||||
|
# Add a simple OID like this:
|
||||||
|
# testoid1=1.2.3.4
|
||||||
|
# Or use config file substitution like this:
|
||||||
|
# testoid2=${testoid1}.5.6
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
[ ca ]
|
||||||
|
default_ca = CA_default # The default ca section
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
[ CA_default ]
|
||||||
|
|
||||||
|
dir = ./demoCA # Where everything is kept
|
||||||
|
certs = $dir/certs # Where the issued certs are kept
|
||||||
|
crl_dir = $dir/crl # Where the issued crl are kept
|
||||||
|
database = $dir/index.txt # database index file.
|
||||||
|
#unique_subject = no # Set to 'no' to allow creation of
|
||||||
|
# several ctificates with same subject.
|
||||||
|
new_certs_dir = $dir/newcerts # default place for new certs.
|
||||||
|
|
||||||
|
certificate = $dir/cacert.pem # The CA certificate
|
||||||
|
serial = $dir/serial # The current serial number
|
||||||
|
crlnumber = $dir/crlnumber # the current crl number
|
||||||
|
# must be commented out to leave a V1 CRL
|
||||||
|
crl = $dir/crl.pem # The current CRL
|
||||||
|
private_key = $dir/private/cakey.pem # The private key
|
||||||
|
RANDFILE = $dir/private/.rand # private random number file
|
||||||
|
|
||||||
|
x509_extensions = usr_cert # The extensions to add to the cert
|
||||||
|
|
||||||
|
# Comment out the following two lines for the "traditional"
|
||||||
|
# (and highly broken) format.
|
||||||
|
name_opt = ca_default # Subject Name options
|
||||||
|
cert_opt = ca_default # Certificate field options
|
||||||
|
|
||||||
|
# Extension copying option: use with caution.
|
||||||
|
# copy_extensions = copy
|
||||||
|
|
||||||
|
# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
|
||||||
|
# so this is commented out by default to leave a V1 CRL.
|
||||||
|
# crlnumber must also be commented out to leave a V1 CRL.
|
||||||
|
# crl_extensions = crl_ext
|
||||||
|
|
||||||
|
default_days = 365 # how long to certify for
|
||||||
|
default_crl_days= 30 # how long before next CRL
|
||||||
|
default_md = sha1 # which md to use.
|
||||||
|
preserve = no # keep passed DN ordering
|
||||||
|
|
||||||
|
# A few difference way of specifying how similar the request should look
|
||||||
|
# For type CA, the listed attributes must be the same, and the optional
|
||||||
|
# and supplied fields are just that :-)
|
||||||
|
policy = policy_match
|
||||||
|
|
||||||
|
# For the CA policy
|
||||||
|
[ policy_match ]
|
||||||
|
countryName = match
|
||||||
|
stateOrProvinceName = match
|
||||||
|
organizationName = match
|
||||||
|
organizationalUnitName = optional
|
||||||
|
commonName = supplied
|
||||||
|
emailAddress = optional
|
||||||
|
|
||||||
|
# For the 'anything' policy
|
||||||
|
# At this point in time, you must list all acceptable 'object'
|
||||||
|
# types.
|
||||||
|
[ policy_anything ]
|
||||||
|
countryName = optional
|
||||||
|
stateOrProvinceName = optional
|
||||||
|
localityName = optional
|
||||||
|
organizationName = optional
|
||||||
|
organizationalUnitName = optional
|
||||||
|
commonName = supplied
|
||||||
|
emailAddress = optional
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
[ req ]
|
||||||
|
default_bits = 1024
|
||||||
|
default_keyfile = privkey.pem
|
||||||
|
distinguished_name = req_distinguished_name
|
||||||
|
attributes = req_attributes
|
||||||
|
x509_extensions = v3_ca # The extensions to add to the self signed cert
|
||||||
|
|
||||||
|
# Passwords for private keys if not present they will be prompted for
|
||||||
|
# input_password = secret
|
||||||
|
# output_password = secret
|
||||||
|
|
||||||
|
# This sets a mask for permitted string types. There are several options.
|
||||||
|
# default: PrintableString, T61String, BMPString.
|
||||||
|
# pkix : PrintableString, BMPString.
|
||||||
|
# utf8only: only UTF8Strings.
|
||||||
|
# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
|
||||||
|
# MASK:XXXX a literal mask value.
|
||||||
|
# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings
|
||||||
|
# so use this option with caution!
|
||||||
|
string_mask = nombstr
|
||||||
|
|
||||||
|
# req_extensions = v3_req # The extensions to add to a certificate request
|
||||||
|
|
||||||
|
[ req_distinguished_name ]
|
||||||
|
countryName = Country Name (2 letter code)
|
||||||
|
countryName_default = BR
|
||||||
|
countryName_min = 2
|
||||||
|
countryName_max = 2
|
||||||
|
|
||||||
|
stateOrProvinceName = State or Province Name (full name)
|
||||||
|
stateOrProvinceName_default = Some-State
|
||||||
|
stateOrProvinceName_default = Espirito Santo
|
||||||
|
|
||||||
|
localityName = Locality Name (eg, city)
|
||||||
|
localityName_default = Santo Antonio do Canaa
|
||||||
|
|
||||||
|
0.organizationName = Organization Name (eg, company)
|
||||||
|
0.organizationName_default = Sao Tonico Ltda
|
||||||
|
|
||||||
|
# we can do this but it is not needed normally :-)
|
||||||
|
#1.organizationName = Second Organization Name (eg, company)
|
||||||
|
#1.organizationName_default = World Wide Web Pty Ltd
|
||||||
|
|
||||||
|
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||||
|
organizationalUnitName_default = Department of Computer Science
|
||||||
|
|
||||||
|
commonName = Common Name (eg, YOUR name)
|
||||||
|
commonName_default = Client A
|
||||||
|
commonName_max = 64
|
||||||
|
|
||||||
|
emailAddress = Email Address
|
||||||
|
emailAddress_max = 64
|
||||||
|
|
||||||
|
# SET-ex3 = SET extension number 3
|
||||||
|
|
||||||
|
[ req_attributes ]
|
||||||
|
challengePassword = A challenge password
|
||||||
|
challengePassword_min = 4
|
||||||
|
challengePassword_max = 20
|
||||||
|
|
||||||
|
unstructuredName = An optional company name
|
||||||
|
|
||||||
|
[ usr_cert ]
|
||||||
|
|
||||||
|
# These extensions are added when 'ca' signs a request.
|
||||||
|
|
||||||
|
# This goes against PKIX guidelines but some CAs do it and some software
|
||||||
|
# requires this to avoid interpreting an end user certificate as a CA.
|
||||||
|
|
||||||
|
basicConstraints=CA:FALSE
|
||||||
|
|
||||||
|
# Here are some examples of the usage of nsCertType. If it is omitted
|
||||||
|
# the certificate can be used for anything *except* object signing.
|
||||||
|
|
||||||
|
# This is OK for an SSL server.
|
||||||
|
# nsCertType = server
|
||||||
|
|
||||||
|
# For an object signing certificate this would be used.
|
||||||
|
# nsCertType = objsign
|
||||||
|
|
||||||
|
# For normal client use this is typical
|
||||||
|
# nsCertType = client, email
|
||||||
|
|
||||||
|
# and for everything including object signing:
|
||||||
|
# nsCertType = client, email, objsign
|
||||||
|
|
||||||
|
# This is typical in keyUsage for a client certificate.
|
||||||
|
# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||||
|
|
||||||
|
# This will be displayed in Netscape's comment listbox.
|
||||||
|
nsComment = "OpenSSL Generated Certificate"
|
||||||
|
|
||||||
|
# PKIX recommendations harmless if included in all certificates.
|
||||||
|
subjectKeyIdentifier=hash
|
||||||
|
authorityKeyIdentifier=keyid,issuer
|
||||||
|
|
||||||
|
# This stuff is for subjectAltName and issuerAltname.
|
||||||
|
# Import the email address.
|
||||||
|
# subjectAltName=email:copy
|
||||||
|
# An alternative to produce certificates that aren't
|
||||||
|
# deprecated according to PKIX.
|
||||||
|
# subjectAltName=email:move
|
||||||
|
|
||||||
|
# Copy subject details
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
|
||||||
|
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
|
||||||
|
#nsBaseUrl
|
||||||
|
#nsRevocationUrl
|
||||||
|
#nsRenewalUrl
|
||||||
|
#nsCaPolicyUrl
|
||||||
|
#nsSslServerName
|
||||||
|
|
||||||
|
[ v3_req ]
|
||||||
|
|
||||||
|
# Extensions to add to a certificate request
|
||||||
|
|
||||||
|
basicConstraints = CA:FALSE
|
||||||
|
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||||
|
|
||||||
|
[ v3_ca ]
|
||||||
|
|
||||||
|
|
||||||
|
# Extensions for a typical CA
|
||||||
|
|
||||||
|
|
||||||
|
# PKIX recommendation.
|
||||||
|
|
||||||
|
subjectKeyIdentifier=hash
|
||||||
|
|
||||||
|
authorityKeyIdentifier=keyid:always,issuer:always
|
||||||
|
|
||||||
|
# This is what PKIX recommends but some broken software chokes on critical
|
||||||
|
# extensions.
|
||||||
|
#basicConstraints = critical,CA:true
|
||||||
|
# So we do this instead.
|
||||||
|
basicConstraints = CA:true
|
||||||
|
|
||||||
|
# Key usage: this is typical for a CA certificate. However since it will
|
||||||
|
# prevent it being used as an test self-signed certificate it is best
|
||||||
|
# left out by default.
|
||||||
|
# keyUsage = cRLSign, keyCertSign
|
||||||
|
|
||||||
|
# Some might want this also
|
||||||
|
# nsCertType = sslCA, emailCA
|
||||||
|
|
||||||
|
# Include email address in subject alt name: another PKIX recommendation
|
||||||
|
# subjectAltName=email:copy
|
||||||
|
# Copy issuer details
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
|
||||||
|
# DER hex encoding of an extension: beware experts only!
|
||||||
|
# obj=DER:02:03
|
||||||
|
# Where 'obj' is a standard or added object
|
||||||
|
# You can even override a supported extension:
|
||||||
|
# basicConstraints= critical, DER:30:03:01:01:FF
|
||||||
|
|
||||||
|
[ crl_ext ]
|
||||||
|
|
||||||
|
# CRL extensions.
|
||||||
|
# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
|
||||||
|
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
authorityKeyIdentifier=keyid:always,issuer:always
|
||||||
|
|
||||||
|
[ proxy_cert_ext ]
|
||||||
|
# These extensions should be added when creating a proxy certificate
|
||||||
|
|
||||||
|
# This goes against PKIX guidelines but some CAs do it and some software
|
||||||
|
# requires this to avoid interpreting an end user certificate as a CA.
|
||||||
|
|
||||||
|
basicConstraints=CA:FALSE
|
||||||
|
|
||||||
|
# Here are some examples of the usage of nsCertType. If it is omitted
|
||||||
|
# the certificate can be used for anything *except* object signing.
|
||||||
|
|
||||||
|
# This is OK for an SSL server.
|
||||||
|
# nsCertType = server
|
||||||
|
|
||||||
|
# For an object signing certificate this would be used.
|
||||||
|
# nsCertType = objsign
|
||||||
|
|
||||||
|
# For normal client use this is typical
|
||||||
|
# nsCertType = client, email
|
||||||
|
|
||||||
|
# and for everything including object signing:
|
||||||
|
# nsCertType = client, email, objsign
|
||||||
|
|
||||||
|
# This is typical in keyUsage for a client certificate.
|
||||||
|
# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||||
|
|
||||||
|
# This will be displayed in Netscape's comment listbox.
|
||||||
|
nsComment = "OpenSSL Generated Certificate"
|
||||||
|
|
||||||
|
# PKIX recommendations harmless if included in all certificates.
|
||||||
|
subjectKeyIdentifier=hash
|
||||||
|
authorityKeyIdentifier=keyid,issuer:always
|
||||||
|
|
||||||
|
# This stuff is for subjectAltName and issuerAltname.
|
||||||
|
# Import the email address.
|
||||||
|
# subjectAltName=email:copy
|
||||||
|
# An alternative to produce certificates that aren't
|
||||||
|
# deprecated according to PKIX.
|
||||||
|
# subjectAltName=email:move
|
||||||
|
|
||||||
|
# Copy subject details
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
|
||||||
|
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
|
||||||
|
#nsBaseUrl
|
||||||
|
#nsRevocationUrl
|
||||||
|
#nsRenewalUrl
|
||||||
|
#nsCaPolicyUrl
|
||||||
|
#nsSslServerName
|
||||||
|
|
||||||
|
# This really needs to be in place for it to be a proxy certificate.
|
||||||
|
proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
|
||||||
44
servertests/certs/clientA.pem
Normal file
44
servertests/certs/clientA.pem
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDNTCCAp6gAwIBAgIJANp+V2miEyydMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
||||||
|
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
||||||
|
BlJvb3QgQTAeFw0xNzExMjAxNTMzMTFaFw0xODExMjAxNTMzMTFaMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMREwDwYDVQQDEwhD
|
||||||
|
bGllbnQgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxFsGqkE5OkbhtGgS
|
||||||
|
7jGbJUpJffPmNnn6rLZjI9xlm+t+ZB+aTGucZBaom2ZQfhgw72w/z+3ridwxhRMN
|
||||||
|
ksPKxDbUHeu+K08Nr99wJ5YqNo4MkRtjexBcub4kqyCwZ75hiSYu/Udk2Xbal6fO
|
||||||
|
WqWQMT23gUDJ5ddOTgO9bpoUwAcCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB
|
||||||
|
hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE
|
||||||
|
FKMDL2ykc1mGtO+Qzwwmqw3wcywaMB8GA1UdIwQYMBaAFCiO5WTUv7L5UyU2lK3j
|
||||||
|
pwLaI57gMA0GCSqGSIb3DQEBBQUAA4GBAF6558hieqU8chgnnGX0mHUsvwMlBFUw
|
||||||
|
z8IrlCmDEwLxOW3/zZ2NX/qMgpPgVm4j1sz9fdje+aSj9lhA8mowhPtUGRtt0YLh
|
||||||
|
WnTuD15e7aUFWDp/HBDhYfgky5YWvCYfprH9VFK1mmPsh+3o62ptZppB6uPiDftt
|
||||||
|
XOwN48VL1bfb
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDwjCCAyugAwIBAgIJAN38lHt98qNDMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
||||||
|
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
||||||
|
BlJvb3QgQTAeFw0xNzExMjAxNTMzMTBaFw0xODExMjAxNTMzMTBaMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
||||||
|
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
||||||
|
BlJvb3QgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1iZtHryHBn/K1LAd
|
||||||
|
9I4V4XKOfmBF7cOV3vL0FMtuZdWxWlH2kRdIcT2eGnuR6/XJU2JWQD+ZMGuEMY/A
|
||||||
|
HD+pY/2F/DI1pZlWtVjPHsYs7RouhiQA1Hxt0770krxOPr8UMlAnmfHoGDta+33F
|
||||||
|
h10ZuYnRt0Epu704Qyl8/AS6dMMCAwEAAaOCAQYwggECMB0GA1UdDgQWBBQojuVk
|
||||||
|
1L+y+VMlNpSt46cC2iOe4DCB0gYDVR0jBIHKMIHHgBQojuVk1L+y+VMlNpSt46cC
|
||||||
|
2iOe4KGBo6SBoDCBnTELMAkGA1UEBhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNh
|
||||||
|
bnRvMR8wHQYDVQQHExZTYW50byBBbnRvbmlvIGRvIENhbmFhMRowGAYDVQQKExFT
|
||||||
|
YW50byBUb25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRl
|
||||||
|
ciBTY2llbmNlMQ8wDQYDVQQDEwZSb290IEGCCQDd/JR7ffKjQzAMBgNVHRMEBTAD
|
||||||
|
AQH/MA0GCSqGSIb3DQEBBQUAA4GBADY2DUpWSZ6goKO6TFyg8ot30JG8Tr+5Qi95
|
||||||
|
NfpjGl0ZrJLVanHURWAJ1BF9BS3LGlaIo8pd6l2uo2/Ql/SHNQHgJ+buq1BedAuO
|
||||||
|
g57Q/NzKTj0SDKmDAmZDrR05oNmzwku21kBAE+aFPeKw2TSiAXktMqXIyTzX31xv
|
||||||
|
UlmzIBGO
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
12
servertests/certs/clientA.sh
Normal file
12
servertests/certs/clientA.sh
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
openssl req -newkey rsa:1024 -sha1 -keyout clientAkey.pem -out clientAreq.pem \
|
||||||
|
-nodes -config ./clientA.cnf -days 365 -batch
|
||||||
|
|
||||||
|
openssl x509 -req -in clientAreq.pem -sha1 -extfile ./clientA.cnf \
|
||||||
|
-extensions usr_cert -CA rootA.pem -CAkey rootAkey.pem -CAcreateserial \
|
||||||
|
-out clientAcert.pem -days 365
|
||||||
|
|
||||||
|
cat clientAcert.pem rootA.pem > clientA.pem
|
||||||
|
|
||||||
|
openssl x509 -subject -issuer -noout -in clientA.pem
|
||||||
20
servertests/certs/clientAcert.pem
Normal file
20
servertests/certs/clientAcert.pem
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDNTCCAp6gAwIBAgIJANp+V2miEyydMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
||||||
|
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
||||||
|
BlJvb3QgQTAeFw0xNzExMjAxNTMzMTFaFw0xODExMjAxNTMzMTFaMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMREwDwYDVQQDEwhD
|
||||||
|
bGllbnQgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxFsGqkE5OkbhtGgS
|
||||||
|
7jGbJUpJffPmNnn6rLZjI9xlm+t+ZB+aTGucZBaom2ZQfhgw72w/z+3ridwxhRMN
|
||||||
|
ksPKxDbUHeu+K08Nr99wJ5YqNo4MkRtjexBcub4kqyCwZ75hiSYu/Udk2Xbal6fO
|
||||||
|
WqWQMT23gUDJ5ddOTgO9bpoUwAcCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB
|
||||||
|
hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE
|
||||||
|
FKMDL2ykc1mGtO+Qzwwmqw3wcywaMB8GA1UdIwQYMBaAFCiO5WTUv7L5UyU2lK3j
|
||||||
|
pwLaI57gMA0GCSqGSIb3DQEBBQUAA4GBAF6558hieqU8chgnnGX0mHUsvwMlBFUw
|
||||||
|
z8IrlCmDEwLxOW3/zZ2NX/qMgpPgVm4j1sz9fdje+aSj9lhA8mowhPtUGRtt0YLh
|
||||||
|
WnTuD15e7aUFWDp/HBDhYfgky5YWvCYfprH9VFK1mmPsh+3o62ptZppB6uPiDftt
|
||||||
|
XOwN48VL1bfb
|
||||||
|
-----END CERTIFICATE-----
|
||||||
16
servertests/certs/clientAkey.pem
Normal file
16
servertests/certs/clientAkey.pem
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMRbBqpBOTpG4bRo
|
||||||
|
Eu4xmyVKSX3z5jZ5+qy2YyPcZZvrfmQfmkxrnGQWqJtmUH4YMO9sP8/t64ncMYUT
|
||||||
|
DZLDysQ21B3rvitPDa/fcCeWKjaODJEbY3sQXLm+JKsgsGe+YYkmLv1HZNl22pen
|
||||||
|
zlqlkDE9t4FAyeXXTk4DvW6aFMAHAgMBAAECgYBpSHV2bKqGuOLknLkpxqdtgzuM
|
||||||
|
sW5K33Stjs3xuIcy5z5J6TgOqdSdRhj52g5mzgnPFrfQgb29mbdjpyer/heF1WX5
|
||||||
|
aadO4KQQYK4Yj7FhCadcgmtT4yk02+GNnxkWGcny6K0QkUl53ikNmuz/I4dj5dTq
|
||||||
|
06LLx5fUrS5ub16v4QJBAOcCFhrrSYbc0YIaxu1fFAcqxiyn1551zVjqsYkWt4TP
|
||||||
|
oDHBv2jilGNbMHl+d6kI0DyWDjBwuOTiXL8ihw625HMCQQDZmTcOKNBMSvidZUd/
|
||||||
|
fLZVv4HzmcKi6JWT5GDNqmCQDxBN+dX+uTS7H0Udn+u5i5vFphe0QJXOdwsFWO7Y
|
||||||
|
duUdAkEAig+1JmF4kCFpFVjrivJIBgCKcCXft9Sv5XRepo/tHnL4SsSAoS7JgJf/
|
||||||
|
YJ005tFdotgLoue7mQ+wXotELIciAQJADSy5qKHP+s6PPvhi29UxNP/jXlxw7Gwo
|
||||||
|
okuxkMJAFnjTA+Wcj0+nYa0DAkgsfY92XwEvbjp614VdpXU9AN4yAQJBAJZ7mBIv
|
||||||
|
Y0X6wwEQKsTGAUFNUB4VkGnwgXxnS06B9d4vJ+2usYVqY0aMBg6EwoPEU30fSGBZ
|
||||||
|
RswmJkf5taU6vRM=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
13
servertests/certs/clientAreq.pem
Normal file
13
servertests/certs/clientAreq.pem
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIIB3jCCAUcCAQAwgZ0xCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
||||||
|
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEYMBYGA1UEChMP
|
||||||
|
U2FvIFRvbmljbyBMdGRhMScwJQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVy
|
||||||
|
IFNjaWVuY2UxETAPBgNVBAMTCENsaWVudCBBMIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
||||||
|
ADCBiQKBgQDEWwaqQTk6RuG0aBLuMZslSkl98+Y2efqstmMj3GWb635kH5pMa5xk
|
||||||
|
FqibZlB+GDDvbD/P7euJ3DGFEw2Sw8rENtQd674rTw2v33Anlio2jgyRG2N7EFy5
|
||||||
|
viSrILBnvmGJJi79R2TZdtqXp85apZAxPbeBQMnl105OA71umhTABwIDAQABoAAw
|
||||||
|
DQYJKoZIhvcNAQEFBQADgYEAnb2VB0BgHF69eGeu1ykSEj5i6TyuPje69EicOORE
|
||||||
|
wuUqPJV/PxgujbfX29lpawWcQnUNx79oRyb25sFtzCmr6++wuqfqMtA0Zy+XB4Qj
|
||||||
|
FlEBD93iZYs8qIHlE7XZ6zjfFfJhCypgIsZjeWE6NNB5gIzOmBOZk1WcuyV8LeCD
|
||||||
|
2rE=
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
||||||
43
servertests/certs/clientB.pem
Normal file
43
servertests/certs/clientB.pem
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDMzCCApygAwIBAgIJAKYuEhfbhd4KMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
||||||
|
b290IEIwHhcNMTcxMTIwMTUzMzExWhcNMTgxMTIwMTUzMzExWjCBnTELMAkGA1UE
|
||||||
|
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
||||||
|
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
||||||
|
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTERMA8GA1UEAxMIQ2xp
|
||||||
|
ZW50IEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALb/ECrFMXQeIVyiblnG
|
||||||
|
P1lgS2PDiRayc5eCZ8co6XQUz2JNkwzhy3jCIlcNmOGzl3uFrn8VoK8WskmdlZxB
|
||||||
|
MIUCihOW8tPLNw3XLm4U8xHdet0mz4LRb2iraDrv+lFDN+w6o274bwCTHhg9s6X6
|
||||||
|
MFvmB44cmcurYMZkTJSC9mOfAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4
|
||||||
|
QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBR/
|
||||||
|
tiVSXfZJz/Bw3IbmGgOMQoryETAfBgNVHSMEGDAWgBT8HCJ3qikqe2qGcCgw1uqw
|
||||||
|
t6bhMDANBgkqhkiG9w0BAQUFAAOBgQBptAqmv200QhxXA60kKppnFFhla04OnNPv
|
||||||
|
JMZBCi221mLJfx9uOsoMoIbqsYl+qCWRZiVV7qahSwhcse7J6Oo6WJdjC5URMziS
|
||||||
|
axn998Yywu9E7RhCLeu9gaCOnvHbrxAejNArFQRaF9ENBJAXA57TbviC7L/EXLG2
|
||||||
|
SJqXruLy3w==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDvDCCAyWgAwIBAgIJAMDsLG/8dCM5MA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
||||||
|
b290IEIwHhcNMTcxMTIwMTUzMzEwWhcNMTgxMTIwMTUzMzEwWjCBmzELMAkGA1UE
|
||||||
|
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
||||||
|
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
||||||
|
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTEPMA0GA1UEAxMGUm9v
|
||||||
|
dCBCMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJR+bXQaHSvKW6AJjqBwfB
|
||||||
|
e8XKNtAivk9xv15ipBz98vUIzZIcQw/rWQBUxyMAaxJBugPGF26TVribxrMrxxP4
|
||||||
|
I4yJieccw9o/re/4KLZxxs16KVfRSb8TBIflXsstWs5sAza7gSj8enVWZ059C9jw
|
||||||
|
C/hdyb7JVgUd1NwN2utP8wIDAQABo4IBBDCCAQAwHQYDVR0OBBYEFPwcIneqKSp7
|
||||||
|
aoZwKDDW6rC3puEwMIHQBgNVHSMEgcgwgcWAFPwcIneqKSp7aoZwKDDW6rC3puEw
|
||||||
|
oYGhpIGeMIGbMQswCQYDVQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8x
|
||||||
|
HzAdBgNVBAcTFlNhbnRvIEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBU
|
||||||
|
b25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2ll
|
||||||
|
bmNlMQ8wDQYDVQQDEwZSb290IEKCCQDA7Cxv/HQjOTAMBgNVHRMEBTADAQH/MA0G
|
||||||
|
CSqGSIb3DQEBBQUAA4GBACvCHViEZ0wG07A3ZTgg/4aDeHz2QTU4Z3X8784JyNKV
|
||||||
|
l7CwXICusfYp8udl3bgYuSH5wtHGyBNxa2lQtNKtl8UCwe2ROZAuZIG7y8/FFoqu
|
||||||
|
vZRba33pNE2WRxR4OrTJnrFGBwpzxr+sbiUimOq7UUCoEcnZnVnGm10qrSJTxVtm
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
20
servertests/certs/clientBcert.pem
Normal file
20
servertests/certs/clientBcert.pem
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDMzCCApygAwIBAgIJAKYuEhfbhd4KMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
||||||
|
b290IEIwHhcNMTcxMTIwMTUzMzExWhcNMTgxMTIwMTUzMzExWjCBnTELMAkGA1UE
|
||||||
|
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
||||||
|
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
||||||
|
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTERMA8GA1UEAxMIQ2xp
|
||||||
|
ZW50IEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALb/ECrFMXQeIVyiblnG
|
||||||
|
P1lgS2PDiRayc5eCZ8co6XQUz2JNkwzhy3jCIlcNmOGzl3uFrn8VoK8WskmdlZxB
|
||||||
|
MIUCihOW8tPLNw3XLm4U8xHdet0mz4LRb2iraDrv+lFDN+w6o274bwCTHhg9s6X6
|
||||||
|
MFvmB44cmcurYMZkTJSC9mOfAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4
|
||||||
|
QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBR/
|
||||||
|
tiVSXfZJz/Bw3IbmGgOMQoryETAfBgNVHSMEGDAWgBT8HCJ3qikqe2qGcCgw1uqw
|
||||||
|
t6bhMDANBgkqhkiG9w0BAQUFAAOBgQBptAqmv200QhxXA60kKppnFFhla04OnNPv
|
||||||
|
JMZBCi221mLJfx9uOsoMoIbqsYl+qCWRZiVV7qahSwhcse7J6Oo6WJdjC5URMziS
|
||||||
|
axn998Yywu9E7RhCLeu9gaCOnvHbrxAejNArFQRaF9ENBJAXA57TbviC7L/EXLG2
|
||||||
|
SJqXruLy3w==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
16
servertests/certs/clientBkey.pem
Normal file
16
servertests/certs/clientBkey.pem
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALb/ECrFMXQeIVyi
|
||||||
|
blnGP1lgS2PDiRayc5eCZ8co6XQUz2JNkwzhy3jCIlcNmOGzl3uFrn8VoK8Wskmd
|
||||||
|
lZxBMIUCihOW8tPLNw3XLm4U8xHdet0mz4LRb2iraDrv+lFDN+w6o274bwCTHhg9
|
||||||
|
s6X6MFvmB44cmcurYMZkTJSC9mOfAgMBAAECgYEAsKTZ2E9tg2cqUR9CYkpqED5R
|
||||||
|
x8WSaWRtDE2HG8q0P6du4Ld9QSwcmz7aoymu7//KNCRA4s/fweOoykLhjmmnCLo3
|
||||||
|
rfeSCN0Wut9e2psyOJmeCkx+ZvRcP5PNIBGhRZkTcdw/PFOSyn61N8nkYKXwumsq
|
||||||
|
TQAljYVMknLJ0wEl2KECQQDuOQjFtjx2cJVo9MgBFYNrpfGLeXdXaYW5J0rWjp8l
|
||||||
|
d2BdMznWjh11USZWKkYH3fhy3Yv2sgGtFGuFywVKctRJAkEAxKb+HSTcGHk6VpHL
|
||||||
|
Em35fNYHivPPbd67MySi1EpIE3gp+Ch1OFlfS1nZBWRpDvE+KhIC0WirI12FnNPg
|
||||||
|
pM6opwJATrfaBjspz5l0RbJdRL5vJus23ffNT702yvAI8s0+GYtQ9Hsw6Y0cft/J
|
||||||
|
4z8k1QSsTIiY73PyydatkRB9NxSqwQJAVrZT4sH4EwqRgM60vqGjmzo9BTZQxt+p
|
||||||
|
p/mFmxpOAdfAmd4tIfW2oWEy4r/N23rgsGhUucXvgJ6iZe6/ZayCjQJAVNuU3dLT
|
||||||
|
Jv50v6i2D+j52Ko6Th7R+67Y6UCA8mdbOZD9fIVnJBmM68TmJxA8yD0QcPpJ6a1e
|
||||||
|
N8ZNbBUsObgq2Q==
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
13
servertests/certs/clientBreq.pem
Normal file
13
servertests/certs/clientBreq.pem
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIIB3jCCAUcCAQAwgZ0xCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
||||||
|
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEYMBYGA1UEChMP
|
||||||
|
U2FvIFRvbmljbyBMdGRhMScwJQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVy
|
||||||
|
IFNjaWVuY2UxETAPBgNVBAMTCENsaWVudCBCMIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
||||||
|
ADCBiQKBgQC2/xAqxTF0HiFcom5Zxj9ZYEtjw4kWsnOXgmfHKOl0FM9iTZMM4ct4
|
||||||
|
wiJXDZjhs5d7ha5/FaCvFrJJnZWcQTCFAooTlvLTyzcN1y5uFPMR3XrdJs+C0W9o
|
||||||
|
q2g67/pRQzfsOqNu+G8Akx4YPbOl+jBb5geOHJnLq2DGZEyUgvZjnwIDAQABoAAw
|
||||||
|
DQYJKoZIhvcNAQEFBQADgYEACJ8lPl/xGFlucXlffjcUZBf8FG/wgoaMmpZKmDIX
|
||||||
|
u6QbxyPKWpJ8rs0+8zqZfyYy5BFpsAybQxKaJ3GR58qrlA0ZpC7CqA/uBJ0AN6o5
|
||||||
|
+8rthTCRIpgWfVXCmEcdOCd/w8WIFzVS7wDh9E+jWXld5MD0ADYM2oRA0eAZlYNp
|
||||||
|
WVQ=
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
||||||
30
servertests/certs/privkey.pem
Normal file
30
servertests/certs/privkey.pem
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||||
|
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQISjYc9r266iMCAggA
|
||||||
|
MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECN82uFIzmv/IBIIEyGtkRZ5TDq65
|
||||||
|
PbtWeMMXWS4AwWv7BHwcyFklcmkhamm5lZSskzTzRwiYh1wvxvW1nA1kAOxMfgT3
|
||||||
|
sz6gEaptct0TJyjGyrWg2aOEWxM5zDQdcxwa8vY3tZNqWdq49YlWOAq2DElyu1J7
|
||||||
|
SO9X0Hb+0K0dWPG9LG229S7NTQUnSNcfSwb5012VOnr2iQPIqlSqi6HJP7xdBEbO
|
||||||
|
uHpWTn+yh1DEaylObpBM1cn8wNIHDpWo1xij3CeGAImLR4Jb8Vwv4KXePuGP/EjJ
|
||||||
|
CssvrfOJUvi/npYzWmwv5+YjN9GOgF2dyf/BU/SM5XtA9GTL/xnraT2wtTJ7+yji
|
||||||
|
RT0lvA0K6hCRlmlhvZ76Yo3rTiHi5wE7XPd4Th65me7sPbsDsm3Dcw0zokM2owsO
|
||||||
|
UY1p63bGXmYVOECnGDAZ1ZYh6xETC7EbGB8WmFbbevPTVXfMZC+huRCT6jVvTxjz
|
||||||
|
3wcTcRGHtdpozCoCnFebZOfmtP5kZW5cpTSbKbTWYAKVYjqEu7k/iITyvP8Z8lxM
|
||||||
|
eJ6huwHHy7EOHnEaOvdkN9BH5b6kJvF2q/tD2FvTfgY/pTKNs3j7AyJT8qCYoE+L
|
||||||
|
telmdGBKbMmBagHujmO95q/qvPZg5pUiryEu+9RSkPZzW3HoKscCRGHAvLygm120
|
||||||
|
HfYtQpPMfBiWCQxRkiTGaliSy2vxaulWig5b79sz9ZP1NNJbuDFwfD1KU3zIPh2f
|
||||||
|
ljr1yjtk7aQyxtRiVODB5JJMk+3SPzCbjIQyek3bFZrRtJvxobAIVSzPmolEN+SY
|
||||||
|
F3v4odauFhyZmVdiI2tz6z7UGaWzR+cdb/KjiUQN2dfAqQ1XxcP2KEruZMhYkL12
|
||||||
|
g6lp8WctD3MHcfx4ICJCsw3ssREeKSNrGxXksQkoDl2GrWdpiVfXPpCbz5N7nq7l
|
||||||
|
YmSTwy6j5a+wkqvt/PGmbb+Y3Em+EB7aVpumCCLx6+ViuyQIkVRwMycJlP4W2o/y
|
||||||
|
dqyKDfOz52yS0JSKkv4MR9neQ1+62oRqZ4ME3GFiarKMH/sRl1nt9jf1zyNTOLF6
|
||||||
|
9V1tt6QNZZvCG4PZuZzk2r8MUaXX2EZCBKSydI5WWpGVkVO58CxFaU1lrT9v2Rfy
|
||||||
|
qirq1K1Qha+8v3ArntOPLH97X+I6XsQPl/WRyadrvuDVrWeiBROmC1ZX1qNn88Du
|
||||||
|
RAmLrlxXcWtKcMLotKifWf0QYTENDjqE+5y3aUVidu402a1HDUbOM+g8Hfjp1UgK
|
||||||
|
L0XKGujNi66nAHWHf4ziugcdArWUlK6HdAhszoNujgzph2RK2PFAWOfdzsC8fFWY
|
||||||
|
Snjz86BKrojSUU35WnuC05ZoZCXyy0fsNV1Tv+cASjkXKbG5SC6rOIpbXnYgK5XH
|
||||||
|
oDDWNGEUhiwQB9bSUuKEvkpQ3DpDu2xzDS63VE+/YuOyO5VGald2Tlr0JaWdfubg
|
||||||
|
BurPfpR2dYLkzICZNj3/BXEXTf4LSmT2G0MML0sDq65ra1JoxZavFaBDm0j9NPJC
|
||||||
|
5R6TkQ0ZAQqkZldTb8Ew2OiHCQmhGVB8YBkFq4rdenRvq4WaMwJdj9OmuBOgy3nl
|
||||||
|
KmWvV5SU/iuNjD0AIhutwuQmt35ovNDMuqdeY3oTulCYyVH5Gsd2kggl0ceKP1tP
|
||||||
|
b8CHqdOVkemADhCRxXsIwQ==
|
||||||
|
-----END ENCRYPTED PRIVATE KEY-----
|
||||||
7
servertests/certs/rootA.bat
Normal file
7
servertests/certs/rootA.bat
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
REM #!/bin/sh
|
||||||
|
|
||||||
|
openssl req -newkey rsa:1024 -sha1 -keyout rootAkey.pem -out rootAreq.pem -nodes -config ./rootA.cnf -days 365 -batch
|
||||||
|
|
||||||
|
openssl x509 -req -in rootAreq.pem -sha1 -extfile ./rootA.cnf -extensions v3_ca -signkey rootAkey.pem -out rootA.pem -days 365
|
||||||
|
|
||||||
|
openssl x509 -subject -issuer -noout -in rootA.pem
|
||||||
315
servertests/certs/rootA.cnf
Normal file
315
servertests/certs/rootA.cnf
Normal file
@ -0,0 +1,315 @@
|
|||||||
|
#
|
||||||
|
# OpenSSL example configuration file.
|
||||||
|
# This is mostly being used for generation of certificate requests.
|
||||||
|
#
|
||||||
|
|
||||||
|
# This definition stops the following lines choking if HOME isn't
|
||||||
|
# defined.
|
||||||
|
HOME = .
|
||||||
|
RANDFILE = $ENV::HOME/.rnd
|
||||||
|
|
||||||
|
# Extra OBJECT IDENTIFIER info:
|
||||||
|
#oid_file = $ENV::HOME/.oid
|
||||||
|
oid_section = new_oids
|
||||||
|
|
||||||
|
# To use this configuration file with the "-extfile" option of the
|
||||||
|
# "openssl x509" utility, name here the section containing the
|
||||||
|
# X.509v3 extensions to use:
|
||||||
|
# extensions =
|
||||||
|
# (Alternatively, use a configuration file that has only
|
||||||
|
# X.509v3 extensions in its main [= default] section.)
|
||||||
|
|
||||||
|
[ new_oids ]
|
||||||
|
|
||||||
|
# We can add new OIDs in here for use by 'ca' and 'req'.
|
||||||
|
# Add a simple OID like this:
|
||||||
|
# testoid1=1.2.3.4
|
||||||
|
# Or use config file substitution like this:
|
||||||
|
# testoid2=${testoid1}.5.6
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
[ ca ]
|
||||||
|
default_ca = CA_default # The default ca section
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
[ CA_default ]
|
||||||
|
|
||||||
|
dir = ./demoCA # Where everything is kept
|
||||||
|
certs = $dir/certs # Where the issued certs are kept
|
||||||
|
crl_dir = $dir/crl # Where the issued crl are kept
|
||||||
|
database = $dir/index.txt # database index file.
|
||||||
|
#unique_subject = no # Set to 'no' to allow creation of
|
||||||
|
# several ctificates with same subject.
|
||||||
|
new_certs_dir = $dir/newcerts # default place for new certs.
|
||||||
|
|
||||||
|
certificate = $dir/cacert.pem # The CA certificate
|
||||||
|
serial = $dir/serial # The current serial number
|
||||||
|
crlnumber = $dir/crlnumber # the current crl number
|
||||||
|
# must be commented out to leave a V1 CRL
|
||||||
|
crl = $dir/crl.pem # The current CRL
|
||||||
|
private_key = $dir/private/cakey.pem # The private key
|
||||||
|
RANDFILE = $dir/private/.rand # private random number file
|
||||||
|
|
||||||
|
x509_extensions = usr_cert # The extensions to add to the cert
|
||||||
|
|
||||||
|
# Comment out the following two lines for the "traditional"
|
||||||
|
# (and highly broken) format.
|
||||||
|
name_opt = ca_default # Subject Name options
|
||||||
|
cert_opt = ca_default # Certificate field options
|
||||||
|
|
||||||
|
# Extension copying option: use with caution.
|
||||||
|
# copy_extensions = copy
|
||||||
|
|
||||||
|
# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
|
||||||
|
# so this is commented out by default to leave a V1 CRL.
|
||||||
|
# crlnumber must also be commented out to leave a V1 CRL.
|
||||||
|
# crl_extensions = crl_ext
|
||||||
|
|
||||||
|
default_days = 365 # how long to certify for
|
||||||
|
default_crl_days= 30 # how long before next CRL
|
||||||
|
default_md = sha1 # which md to use.
|
||||||
|
preserve = no # keep passed DN ordering
|
||||||
|
|
||||||
|
# A few difference way of specifying how similar the request should look
|
||||||
|
# For type CA, the listed attributes must be the same, and the optional
|
||||||
|
# and supplied fields are just that :-)
|
||||||
|
policy = policy_match
|
||||||
|
|
||||||
|
# For the CA policy
|
||||||
|
[ policy_match ]
|
||||||
|
countryName = match
|
||||||
|
stateOrProvinceName = match
|
||||||
|
organizationName = match
|
||||||
|
organizationalUnitName = optional
|
||||||
|
commonName = supplied
|
||||||
|
emailAddress = optional
|
||||||
|
|
||||||
|
# For the 'anything' policy
|
||||||
|
# At this point in time, you must list all acceptable 'object'
|
||||||
|
# types.
|
||||||
|
[ policy_anything ]
|
||||||
|
countryName = optional
|
||||||
|
stateOrProvinceName = optional
|
||||||
|
localityName = optional
|
||||||
|
organizationName = optional
|
||||||
|
organizationalUnitName = optional
|
||||||
|
commonName = supplied
|
||||||
|
emailAddress = optional
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
[ req ]
|
||||||
|
default_bits = 1024
|
||||||
|
default_keyfile = privkey.pem
|
||||||
|
distinguished_name = req_distinguished_name
|
||||||
|
attributes = req_attributes
|
||||||
|
x509_extensions = v3_ca # The extensions to add to the self signed cert
|
||||||
|
|
||||||
|
# Passwords for private keys if not present they will be prompted for
|
||||||
|
# input_password = secret
|
||||||
|
# output_password = secret
|
||||||
|
|
||||||
|
# This sets a mask for permitted string types. There are several options.
|
||||||
|
# default: PrintableString, T61String, BMPString.
|
||||||
|
# pkix : PrintableString, BMPString.
|
||||||
|
# utf8only: only UTF8Strings.
|
||||||
|
# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
|
||||||
|
# MASK:XXXX a literal mask value.
|
||||||
|
# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings
|
||||||
|
# so use this option with caution!
|
||||||
|
string_mask = nombstr
|
||||||
|
|
||||||
|
# req_extensions = v3_req # The extensions to add to a certificate request
|
||||||
|
|
||||||
|
[ req_distinguished_name ]
|
||||||
|
countryName = Country Name (2 letter code)
|
||||||
|
countryName_default = BR
|
||||||
|
countryName_min = 2
|
||||||
|
countryName_max = 2
|
||||||
|
|
||||||
|
stateOrProvinceName = State or Province Name (full name)
|
||||||
|
stateOrProvinceName_default = Espirito Santo
|
||||||
|
|
||||||
|
localityName = Locality Name (eg, city)
|
||||||
|
localityName_default = Santo Antonio do Canaa
|
||||||
|
|
||||||
|
0.organizationName = Organization Name (eg, company)
|
||||||
|
0.organizationName_default = Santo Tonico Ltda
|
||||||
|
|
||||||
|
# we can do this but it is not needed normally :-)
|
||||||
|
#1.organizationName = Second Organization Name (eg, company)
|
||||||
|
#1.organizationName_default = World Wide Web Pty Ltd
|
||||||
|
|
||||||
|
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||||
|
organizationalUnitName_default = Department of Computer Science
|
||||||
|
|
||||||
|
commonName = Common Name (eg, YOUR name)
|
||||||
|
commonName_max = 64
|
||||||
|
commonName_default = Root A
|
||||||
|
|
||||||
|
emailAddress = Email Address
|
||||||
|
emailAddress_max = 64
|
||||||
|
|
||||||
|
# SET-ex3 = SET extension number 3
|
||||||
|
|
||||||
|
[ req_attributes ]
|
||||||
|
challengePassword = A challenge password
|
||||||
|
challengePassword_min = 4
|
||||||
|
challengePassword_max = 20
|
||||||
|
|
||||||
|
unstructuredName = An optional company name
|
||||||
|
|
||||||
|
[ usr_cert ]
|
||||||
|
|
||||||
|
# These extensions are added when 'ca' signs a request.
|
||||||
|
|
||||||
|
# This goes against PKIX guidelines but some CAs do it and some software
|
||||||
|
# requires this to avoid interpreting an end user certificate as a CA.
|
||||||
|
|
||||||
|
basicConstraints=CA:FALSE
|
||||||
|
|
||||||
|
# Here are some examples of the usage of nsCertType. If it is omitted
|
||||||
|
# the certificate can be used for anything *except* object signing.
|
||||||
|
|
||||||
|
# This is OK for an SSL server.
|
||||||
|
# nsCertType = server
|
||||||
|
|
||||||
|
# For an object signing certificate this would be used.
|
||||||
|
# nsCertType = objsign
|
||||||
|
|
||||||
|
# For normal client use this is typical
|
||||||
|
# nsCertType = client, email
|
||||||
|
|
||||||
|
# and for everything including object signing:
|
||||||
|
# nsCertType = client, email, objsign
|
||||||
|
|
||||||
|
# This is typical in keyUsage for a client certificate.
|
||||||
|
# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||||
|
|
||||||
|
# This will be displayed in Netscape's comment listbox.
|
||||||
|
nsComment = "OpenSSL Generated Certificate"
|
||||||
|
|
||||||
|
# PKIX recommendations harmless if included in all certificates.
|
||||||
|
subjectKeyIdentifier=hash
|
||||||
|
authorityKeyIdentifier=keyid,issuer
|
||||||
|
|
||||||
|
# This stuff is for subjectAltName and issuerAltname.
|
||||||
|
# Import the email address.
|
||||||
|
# subjectAltName=email:copy
|
||||||
|
# An alternative to produce certificates that aren't
|
||||||
|
# deprecated according to PKIX.
|
||||||
|
# subjectAltName=email:move
|
||||||
|
|
||||||
|
# Copy subject details
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
|
||||||
|
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
|
||||||
|
#nsBaseUrl
|
||||||
|
#nsRevocationUrl
|
||||||
|
#nsRenewalUrl
|
||||||
|
#nsCaPolicyUrl
|
||||||
|
#nsSslServerName
|
||||||
|
|
||||||
|
[ v3_req ]
|
||||||
|
|
||||||
|
# Extensions to add to a certificate request
|
||||||
|
|
||||||
|
basicConstraints = CA:FALSE
|
||||||
|
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||||
|
|
||||||
|
[ v3_ca ]
|
||||||
|
|
||||||
|
|
||||||
|
# Extensions for a typical CA
|
||||||
|
|
||||||
|
|
||||||
|
# PKIX recommendation.
|
||||||
|
|
||||||
|
subjectKeyIdentifier=hash
|
||||||
|
|
||||||
|
authorityKeyIdentifier=keyid:always,issuer:always
|
||||||
|
|
||||||
|
# This is what PKIX recommends but some broken software chokes on critical
|
||||||
|
# extensions.
|
||||||
|
#basicConstraints = critical,CA:true
|
||||||
|
# So we do this instead.
|
||||||
|
basicConstraints = CA:true
|
||||||
|
|
||||||
|
# Key usage: this is typical for a CA certificate. However since it will
|
||||||
|
# prevent it being used as an test self-signed certificate it is best
|
||||||
|
# left out by default.
|
||||||
|
# keyUsage = cRLSign, keyCertSign
|
||||||
|
|
||||||
|
# Some might want this also
|
||||||
|
# nsCertType = sslCA, emailCA
|
||||||
|
|
||||||
|
# Include email address in subject alt name: another PKIX recommendation
|
||||||
|
# subjectAltName=email:copy
|
||||||
|
# Copy issuer details
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
|
||||||
|
# DER hex encoding of an extension: beware experts only!
|
||||||
|
# obj=DER:02:03
|
||||||
|
# Where 'obj' is a standard or added object
|
||||||
|
# You can even override a supported extension:
|
||||||
|
# basicConstraints= critical, DER:30:03:01:01:FF
|
||||||
|
|
||||||
|
[ crl_ext ]
|
||||||
|
|
||||||
|
# CRL extensions.
|
||||||
|
# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
|
||||||
|
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
authorityKeyIdentifier=keyid:always,issuer:always
|
||||||
|
|
||||||
|
[ proxy_cert_ext ]
|
||||||
|
# These extensions should be added when creating a proxy certificate
|
||||||
|
|
||||||
|
# This goes against PKIX guidelines but some CAs do it and some software
|
||||||
|
# requires this to avoid interpreting an end user certificate as a CA.
|
||||||
|
|
||||||
|
basicConstraints=CA:FALSE
|
||||||
|
|
||||||
|
# Here are some examples of the usage of nsCertType. If it is omitted
|
||||||
|
# the certificate can be used for anything *except* object signing.
|
||||||
|
|
||||||
|
# This is OK for an SSL server.
|
||||||
|
# nsCertType = server
|
||||||
|
|
||||||
|
# For an object signing certificate this would be used.
|
||||||
|
# nsCertType = objsign
|
||||||
|
|
||||||
|
# For normal client use this is typical
|
||||||
|
# nsCertType = client, email
|
||||||
|
|
||||||
|
# and for everything including object signing:
|
||||||
|
# nsCertType = client, email, objsign
|
||||||
|
|
||||||
|
# This is typical in keyUsage for a client certificate.
|
||||||
|
# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||||
|
|
||||||
|
# This will be displayed in Netscape's comment listbox.
|
||||||
|
nsComment = "OpenSSL Generated Certificate"
|
||||||
|
|
||||||
|
# PKIX recommendations harmless if included in all certificates.
|
||||||
|
subjectKeyIdentifier=hash
|
||||||
|
authorityKeyIdentifier=keyid,issuer:always
|
||||||
|
|
||||||
|
# This stuff is for subjectAltName and issuerAltname.
|
||||||
|
# Import the email address.
|
||||||
|
# subjectAltName=email:copy
|
||||||
|
# An alternative to produce certificates that aren't
|
||||||
|
# deprecated according to PKIX.
|
||||||
|
# subjectAltName=email:move
|
||||||
|
|
||||||
|
# Copy subject details
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
|
||||||
|
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
|
||||||
|
#nsBaseUrl
|
||||||
|
#nsRevocationUrl
|
||||||
|
#nsRenewalUrl
|
||||||
|
#nsCaPolicyUrl
|
||||||
|
#nsSslServerName
|
||||||
|
|
||||||
|
# This really needs to be in place for it to be a proxy certificate.
|
||||||
|
proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
|
||||||
23
servertests/certs/rootA.pem
Normal file
23
servertests/certs/rootA.pem
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDwjCCAyugAwIBAgIJAN38lHt98qNDMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
||||||
|
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
||||||
|
BlJvb3QgQTAeFw0xNzExMjAxNTMzMTBaFw0xODExMjAxNTMzMTBaMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
||||||
|
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
||||||
|
BlJvb3QgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1iZtHryHBn/K1LAd
|
||||||
|
9I4V4XKOfmBF7cOV3vL0FMtuZdWxWlH2kRdIcT2eGnuR6/XJU2JWQD+ZMGuEMY/A
|
||||||
|
HD+pY/2F/DI1pZlWtVjPHsYs7RouhiQA1Hxt0770krxOPr8UMlAnmfHoGDta+33F
|
||||||
|
h10ZuYnRt0Epu704Qyl8/AS6dMMCAwEAAaOCAQYwggECMB0GA1UdDgQWBBQojuVk
|
||||||
|
1L+y+VMlNpSt46cC2iOe4DCB0gYDVR0jBIHKMIHHgBQojuVk1L+y+VMlNpSt46cC
|
||||||
|
2iOe4KGBo6SBoDCBnTELMAkGA1UEBhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNh
|
||||||
|
bnRvMR8wHQYDVQQHExZTYW50byBBbnRvbmlvIGRvIENhbmFhMRowGAYDVQQKExFT
|
||||||
|
YW50byBUb25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRl
|
||||||
|
ciBTY2llbmNlMQ8wDQYDVQQDEwZSb290IEGCCQDd/JR7ffKjQzAMBgNVHRMEBTAD
|
||||||
|
AQH/MA0GCSqGSIb3DQEBBQUAA4GBADY2DUpWSZ6goKO6TFyg8ot30JG8Tr+5Qi95
|
||||||
|
NfpjGl0ZrJLVanHURWAJ1BF9BS3LGlaIo8pd6l2uo2/Ql/SHNQHgJ+buq1BedAuO
|
||||||
|
g57Q/NzKTj0SDKmDAmZDrR05oNmzwku21kBAE+aFPeKw2TSiAXktMqXIyTzX31xv
|
||||||
|
UlmzIBGO
|
||||||
|
-----END CERTIFICATE-----
|
||||||
7
servertests/certs/rootA.sh
Normal file
7
servertests/certs/rootA.sh
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
openssl req -newkey rsa:1024 -sha1 -keyout rootAkey.pem -out rootAreq.pem -nodes -config ./rootA.cnf -days 365 -batch
|
||||||
|
|
||||||
|
openssl x509 -req -in rootAreq.pem -sha1 -extfile ./rootA.cnf -extensions v3_ca -signkey rootAkey.pem -out rootA.pem -days 365
|
||||||
|
|
||||||
|
openssl x509 -subject -issuer -noout -in rootA.pem
|
||||||
1
servertests/certs/rootA.srl
Normal file
1
servertests/certs/rootA.srl
Normal file
@ -0,0 +1 @@
|
|||||||
|
DA7E5769A2132C9D
|
||||||
16
servertests/certs/rootAkey.pem
Normal file
16
servertests/certs/rootAkey.pem
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANYmbR68hwZ/ytSw
|
||||||
|
HfSOFeFyjn5gRe3Dld7y9BTLbmXVsVpR9pEXSHE9nhp7kev1yVNiVkA/mTBrhDGP
|
||||||
|
wBw/qWP9hfwyNaWZVrVYzx7GLO0aLoYkANR8bdO+9JK8Tj6/FDJQJ5nx6Bg7Wvt9
|
||||||
|
xYddGbmJ0bdBKbu9OEMpfPwEunTDAgMBAAECgYBQo2uXlVoq4lgYOrEs84vdtutd
|
||||||
|
PxdV7r4yk73BTtElW5BK+G4mOGQ48ADm6/0IoybKVU8xJkGi7/l5SC4I9RftNJ6+
|
||||||
|
UV30kU5MTDQIX/ZPE7bAYyEokZPAnIQq6clhlLLgZn123g0+BbO0HNHm+6786RMB
|
||||||
|
+IR5y8sIg/vpG4KVYQJBAO5xucY2Jp+ChL/A0g+gNSX1vONlG8/4LVA8MLPOp9io
|
||||||
|
ePicaNq8jog11voLDwp6917h3y5fY8b74Of0Q3ZsLYsCQQDl6sv5jbK6JYs3b848
|
||||||
|
8W+BI4TpiXI6ra+5duPOvC2LeyC2EckhlYORzqDuJAivq/fhszW15oPcNdMRn9Jv
|
||||||
|
BaypAkEAuv6tNmjZOVbeTJMnKeH2TGK/U4XDngF/Z+EMQLbcoujclfvzrzcYgHHY
|
||||||
|
uhdaIFn3DY4NvQxJ748w/jdtgL2tqQJAfAdvxc307oo2Uc+UuDeeaVHZ74nf/1uX
|
||||||
|
AjvqpKnLAAWKHe32TJG1ikCnfBAgR3RDopPkk54o3/CBTm6jPJUZEQJAJJXnKtQo
|
||||||
|
VpdNR/RUR/Fw3nAfIoi9KZ1p2iU8JZz646k/eRLRQZOv/ZCn0rvHyV80fpAPeVYd
|
||||||
|
7a+AjMrGAUm/yg==
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
13
servertests/certs/rootAreq.pem
Normal file
13
servertests/certs/rootAreq.pem
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIIB3jCCAUcCAQAwgZ0xCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
||||||
|
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEaMBgGA1UEChMR
|
||||||
|
U2FudG8gVG9uaWNvIEx0ZGExJzAlBgNVBAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0
|
||||||
|
ZXIgU2NpZW5jZTEPMA0GA1UEAxMGUm9vdCBBMIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
||||||
|
ADCBiQKBgQDWJm0evIcGf8rUsB30jhXhco5+YEXtw5Xe8vQUy25l1bFaUfaRF0hx
|
||||||
|
PZ4ae5Hr9clTYlZAP5kwa4Qxj8AcP6lj/YX8MjWlmVa1WM8exiztGi6GJADUfG3T
|
||||||
|
vvSSvE4+vxQyUCeZ8egYO1r7fcWHXRm5idG3QSm7vThDKXz8BLp0wwIDAQABoAAw
|
||||||
|
DQYJKoZIhvcNAQEFBQADgYEABydZSUP4MTEIg3WSOZaiUUAppGnMYCT/xxrgB1LA
|
||||||
|
8WW7iFjIgmmttltP0g3oBzNsZSKmLRfzOxJ0OK3eq23ZvdsUIBDc5HiLhk7Zurbj
|
||||||
|
+bxKUXtYq77+H2ikr/HDKmlmFd2tFqV48Iz/jolybOJ1YjBgRhdCkpSnTyLGNQHD
|
||||||
|
iv4=
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
||||||
22
servertests/certs/rootB.pem
Normal file
22
servertests/certs/rootB.pem
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDvDCCAyWgAwIBAgIJAMDsLG/8dCM5MA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
||||||
|
b290IEIwHhcNMTcxMTIwMTUzMzEwWhcNMTgxMTIwMTUzMzEwWjCBmzELMAkGA1UE
|
||||||
|
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
||||||
|
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
||||||
|
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTEPMA0GA1UEAxMGUm9v
|
||||||
|
dCBCMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJR+bXQaHSvKW6AJjqBwfB
|
||||||
|
e8XKNtAivk9xv15ipBz98vUIzZIcQw/rWQBUxyMAaxJBugPGF26TVribxrMrxxP4
|
||||||
|
I4yJieccw9o/re/4KLZxxs16KVfRSb8TBIflXsstWs5sAza7gSj8enVWZ059C9jw
|
||||||
|
C/hdyb7JVgUd1NwN2utP8wIDAQABo4IBBDCCAQAwHQYDVR0OBBYEFPwcIneqKSp7
|
||||||
|
aoZwKDDW6rC3puEwMIHQBgNVHSMEgcgwgcWAFPwcIneqKSp7aoZwKDDW6rC3puEw
|
||||||
|
oYGhpIGeMIGbMQswCQYDVQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8x
|
||||||
|
HzAdBgNVBAcTFlNhbnRvIEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBU
|
||||||
|
b25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2ll
|
||||||
|
bmNlMQ8wDQYDVQQDEwZSb290IEKCCQDA7Cxv/HQjOTAMBgNVHRMEBTADAQH/MA0G
|
||||||
|
CSqGSIb3DQEBBQUAA4GBACvCHViEZ0wG07A3ZTgg/4aDeHz2QTU4Z3X8784JyNKV
|
||||||
|
l7CwXICusfYp8udl3bgYuSH5wtHGyBNxa2lQtNKtl8UCwe2ROZAuZIG7y8/FFoqu
|
||||||
|
vZRba33pNE2WRxR4OrTJnrFGBwpzxr+sbiUimOq7UUCoEcnZnVnGm10qrSJTxVtm
|
||||||
|
-----END CERTIFICATE-----
|
||||||
1
servertests/certs/rootB.srl
Normal file
1
servertests/certs/rootB.srl
Normal file
@ -0,0 +1 @@
|
|||||||
|
A62E1217DB85DE0A
|
||||||
16
servertests/certs/rootBkey.pem
Normal file
16
servertests/certs/rootBkey.pem
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMlH5tdBodK8pboA
|
||||||
|
mOoHB8F7xco20CK+T3G/XmKkHP3y9QjNkhxDD+tZAFTHIwBrEkG6A8YXbpNWuJvG
|
||||||
|
syvHE/gjjImJ5xzD2j+t7/gotnHGzXopV9FJvxMEh+Veyy1azmwDNruBKPx6dVZn
|
||||||
|
Tn0L2PAL+F3JvslWBR3U3A3a60/zAgMBAAECgYA5ls/uYMHrKLyGFmup8e7/Jem2
|
||||||
|
bK5qcmcKlYVs1aXR5vTC2wZl/a4NWT6mAv/5u6jSk2VHBSdHErXpJBXZfbExeNZO
|
||||||
|
rNcsuETF4isAE5/icQuGX6TDLJw/JporF7g0Yr3Wutev+XYboicSRIdxZ1GMmkH2
|
||||||
|
SvkKuOdmXbKJzdlCSQJBAPJJhYSc4SDNpJANmX35ELZxigyfmC3ei4er+T4MWqOO
|
||||||
|
dUGEHx2eMiDdK3tQhdObJBIcsJ4LaM45og1c4I0IXMcCQQDUrD40v5xDlWAqZEHg
|
||||||
|
9GzxUEXcpWYMVav/MjYEcIKk3tG1MyqUJPDRyEYRlOVrgfAheGMer2iIF/K0r08o
|
||||||
|
TM91AkEA3J6N8b9YUCJxIqr/hXHyAe9JIU2BqOLoctXp0tI1BpGFu+6u1q1iQAKk
|
||||||
|
wVkFQzYVlliBiqgg+wgHw9s6rbFbqQJAYCHbnIxgXkxPQ9o9zSmvdQUMD0jUcA7p
|
||||||
|
yFkyAZ+57jyqHnYacQyhrrIQujHL4mTB3t9ELsKrRZlNpE76QQU3YQJBAKA2tF0g
|
||||||
|
h7XcsVcWzkUkrMU2ZczmxRYvqXnh5K7ZzC/L/BwK5MQ0Hy5Usw1R5tYZBnh9GsUX
|
||||||
|
Uj3SVOzdVdegwEk=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
12
servertests/certs/rootBreq.pem
Normal file
12
servertests/certs/rootBreq.pem
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIIB3DCCAUUCAQAwgZsxCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
||||||
|
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEYMBYGA1UEChMP
|
||||||
|
U2FvIFRvbmljbyBMdGRhMScwJQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVy
|
||||||
|
IFNjaWVuY2UxDzANBgNVBAMTBlJvb3QgQjCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
|
||||||
|
gYkCgYEAyUfm10Gh0rylugCY6gcHwXvFyjbQIr5Pcb9eYqQc/fL1CM2SHEMP61kA
|
||||||
|
VMcjAGsSQboDxhduk1a4m8azK8cT+COMiYnnHMPaP63v+Ci2ccbNeilX0Um/EwSH
|
||||||
|
5V7LLVrObAM2u4Eo/Hp1VmdOfQvY8Av4Xcm+yVYFHdTcDdrrT/MCAwEAAaAAMA0G
|
||||||
|
CSqGSIb3DQEBBQUAA4GBAMINTlldvYFzlBaDOtUDzD4e1g5/FlIHwZtCSAEJPxGa
|
||||||
|
4e5tltl+O1qbuhvgDb7fM5dn6EwqHax85Qc+dcFkkOqZcKmTDBftlidexcyQ4Tz/
|
||||||
|
mwzwe0czKIbRamvwVgb4g+z5z9Fy8JROKgAGGuV5D5DtcjRy+b3a8HH8Ta1jPIk4
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
||||||
9
servertests/certs/serverA.bat
Normal file
9
servertests/certs/serverA.bat
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
rem #!/bin/sh
|
||||||
|
|
||||||
|
openssl req -newkey rsa:1024 -keyout serverAkey.pem -out serverAreq.pem -config ./serverA.cnf -nodes -days 365 -batch
|
||||||
|
|
||||||
|
openssl x509 -req -in serverAreq.pem -sha1 -extfile ./serverA.cnf -extensions usr_cert -CA rootA.pem -CAkey rootAkey.pem -CAcreateserial -out serverAcert.pem -days 365
|
||||||
|
|
||||||
|
copy serverAcert.pem + rootA.pem serverA.pem
|
||||||
|
|
||||||
|
openssl x509 -subject -issuer -noout -in serverA.pem
|
||||||
316
servertests/certs/serverA.cnf
Normal file
316
servertests/certs/serverA.cnf
Normal file
@ -0,0 +1,316 @@
|
|||||||
|
#
|
||||||
|
# OpenSSL example configuration file.
|
||||||
|
# This is mostly being used for generation of certificate requests.
|
||||||
|
#
|
||||||
|
|
||||||
|
# This definition stops the following lines choking if HOME isn't
|
||||||
|
# defined.
|
||||||
|
HOME = .
|
||||||
|
RANDFILE = $ENV::HOME/.rnd
|
||||||
|
|
||||||
|
# Extra OBJECT IDENTIFIER info:
|
||||||
|
#oid_file = $ENV::HOME/.oid
|
||||||
|
oid_section = new_oids
|
||||||
|
|
||||||
|
# To use this configuration file with the "-extfile" option of the
|
||||||
|
# "openssl x509" utility, name here the section containing the
|
||||||
|
# X.509v3 extensions to use:
|
||||||
|
# extensions =
|
||||||
|
# (Alternatively, use a configuration file that has only
|
||||||
|
# X.509v3 extensions in its main [= default] section.)
|
||||||
|
|
||||||
|
[ new_oids ]
|
||||||
|
|
||||||
|
# We can add new OIDs in here for use by 'ca' and 'req'.
|
||||||
|
# Add a simple OID like this:
|
||||||
|
# testoid1=1.2.3.4
|
||||||
|
# Or use config file substitution like this:
|
||||||
|
# testoid2=${testoid1}.5.6
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
[ ca ]
|
||||||
|
default_ca = CA_default # The default ca section
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
[ CA_default ]
|
||||||
|
|
||||||
|
dir = ./demoCA # Where everything is kept
|
||||||
|
certs = $dir/certs # Where the issued certs are kept
|
||||||
|
crl_dir = $dir/crl # Where the issued crl are kept
|
||||||
|
database = $dir/index.txt # database index file.
|
||||||
|
#unique_subject = no # Set to 'no' to allow creation of
|
||||||
|
# several ctificates with same subject.
|
||||||
|
new_certs_dir = $dir/newcerts # default place for new certs.
|
||||||
|
|
||||||
|
certificate = $dir/cacert.pem # The CA certificate
|
||||||
|
serial = $dir/serial # The current serial number
|
||||||
|
crlnumber = $dir/crlnumber # the current crl number
|
||||||
|
# must be commented out to leave a V1 CRL
|
||||||
|
crl = $dir/crl.pem # The current CRL
|
||||||
|
private_key = $dir/private/cakey.pem # The private key
|
||||||
|
RANDFILE = $dir/private/.rand # private random number file
|
||||||
|
|
||||||
|
x509_extensions = usr_cert # The extensions to add to the cert
|
||||||
|
|
||||||
|
# Comment out the following two lines for the "traditional"
|
||||||
|
# (and highly broken) format.
|
||||||
|
name_opt = ca_default # Subject Name options
|
||||||
|
cert_opt = ca_default # Certificate field options
|
||||||
|
|
||||||
|
# Extension copying option: use with caution.
|
||||||
|
# copy_extensions = copy
|
||||||
|
|
||||||
|
# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
|
||||||
|
# so this is commented out by default to leave a V1 CRL.
|
||||||
|
# crlnumber must also be commented out to leave a V1 CRL.
|
||||||
|
# crl_extensions = crl_ext
|
||||||
|
|
||||||
|
default_days = 365 # how long to certify for
|
||||||
|
default_crl_days= 30 # how long before next CRL
|
||||||
|
default_md = sha1 # which md to use.
|
||||||
|
preserve = no # keep passed DN ordering
|
||||||
|
|
||||||
|
# A few difference way of specifying how similar the request should look
|
||||||
|
# For type CA, the listed attributes must be the same, and the optional
|
||||||
|
# and supplied fields are just that :-)
|
||||||
|
policy = policy_match
|
||||||
|
|
||||||
|
# For the CA policy
|
||||||
|
[ policy_match ]
|
||||||
|
countryName = match
|
||||||
|
stateOrProvinceName = match
|
||||||
|
organizationName = match
|
||||||
|
organizationalUnitName = optional
|
||||||
|
commonName = supplied
|
||||||
|
emailAddress = optional
|
||||||
|
|
||||||
|
# For the 'anything' policy
|
||||||
|
# At this point in time, you must list all acceptable 'object'
|
||||||
|
# types.
|
||||||
|
[ policy_anything ]
|
||||||
|
countryName = optional
|
||||||
|
stateOrProvinceName = optional
|
||||||
|
localityName = optional
|
||||||
|
organizationName = optional
|
||||||
|
organizationalUnitName = optional
|
||||||
|
commonName = supplied
|
||||||
|
emailAddress = optional
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
[ req ]
|
||||||
|
default_bits = 1024
|
||||||
|
default_keyfile = privkey.pem
|
||||||
|
distinguished_name = req_distinguished_name
|
||||||
|
attributes = req_attributes
|
||||||
|
x509_extensions = v3_ca # The extensions to add to the self signed cert
|
||||||
|
|
||||||
|
# Passwords for private keys if not present they will be prompted for
|
||||||
|
# input_password = secret
|
||||||
|
# output_password = secret
|
||||||
|
|
||||||
|
# This sets a mask for permitted string types. There are several options.
|
||||||
|
# default: PrintableString, T61String, BMPString.
|
||||||
|
# pkix : PrintableString, BMPString.
|
||||||
|
# utf8only: only UTF8Strings.
|
||||||
|
# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
|
||||||
|
# MASK:XXXX a literal mask value.
|
||||||
|
# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings
|
||||||
|
# so use this option with caution!
|
||||||
|
string_mask = nombstr
|
||||||
|
|
||||||
|
# req_extensions = v3_req # The extensions to add to a certificate request
|
||||||
|
|
||||||
|
[ req_distinguished_name ]
|
||||||
|
countryName = Country Name (2 letter code)
|
||||||
|
countryName_default = BR
|
||||||
|
countryName_min = 2
|
||||||
|
countryName_max = 2
|
||||||
|
|
||||||
|
stateOrProvinceName = State or Province Name (full name)
|
||||||
|
stateOrProvinceName_default = Some-State
|
||||||
|
stateOrProvinceName_default = Espirito Santo
|
||||||
|
|
||||||
|
localityName = Locality Name (eg, city)
|
||||||
|
localityName_default = Santo Antonio do Canaa
|
||||||
|
|
||||||
|
0.organizationName = Organization Name (eg, company)
|
||||||
|
0.organizationName_default = Sao Tonico Ltda
|
||||||
|
|
||||||
|
# we can do this but it is not needed normally :-)
|
||||||
|
#1.organizationName = Second Organization Name (eg, company)
|
||||||
|
#1.organizationName_default = World Wide Web Pty Ltd
|
||||||
|
|
||||||
|
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||||
|
organizationalUnitName_default = Department of Computer Science
|
||||||
|
|
||||||
|
commonName = Common Name (eg, YOUR name)
|
||||||
|
commonName_default = Server A
|
||||||
|
commonName_max = 64
|
||||||
|
|
||||||
|
emailAddress = Email Address
|
||||||
|
emailAddress_max = 64
|
||||||
|
|
||||||
|
# SET-ex3 = SET extension number 3
|
||||||
|
|
||||||
|
[ req_attributes ]
|
||||||
|
challengePassword = A challenge password
|
||||||
|
challengePassword_min = 4
|
||||||
|
challengePassword_max = 20
|
||||||
|
|
||||||
|
unstructuredName = An optional company name
|
||||||
|
|
||||||
|
[ usr_cert ]
|
||||||
|
|
||||||
|
# These extensions are added when 'ca' signs a request.
|
||||||
|
|
||||||
|
# This goes against PKIX guidelines but some CAs do it and some software
|
||||||
|
# requires this to avoid interpreting an end user certificate as a CA.
|
||||||
|
|
||||||
|
basicConstraints=CA:FALSE
|
||||||
|
|
||||||
|
# Here are some examples of the usage of nsCertType. If it is omitted
|
||||||
|
# the certificate can be used for anything *except* object signing.
|
||||||
|
|
||||||
|
# This is OK for an SSL server.
|
||||||
|
nsCertType = server
|
||||||
|
|
||||||
|
# For an object signing certificate this would be used.
|
||||||
|
# nsCertType = objsign
|
||||||
|
|
||||||
|
# For normal client use this is typical
|
||||||
|
# nsCertType = client, email
|
||||||
|
|
||||||
|
# and for everything including object signing:
|
||||||
|
# nsCertType = client, email, objsign
|
||||||
|
|
||||||
|
# This is typical in keyUsage for a client certificate.
|
||||||
|
# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||||
|
|
||||||
|
# This will be displayed in Netscape's comment listbox.
|
||||||
|
nsComment = "OpenSSL Generated Certificate"
|
||||||
|
|
||||||
|
# PKIX recommendations harmless if included in all certificates.
|
||||||
|
subjectKeyIdentifier=hash
|
||||||
|
authorityKeyIdentifier=keyid,issuer
|
||||||
|
|
||||||
|
# This stuff is for subjectAltName and issuerAltname.
|
||||||
|
# Import the email address.
|
||||||
|
# subjectAltName=email:copy
|
||||||
|
# An alternative to produce certificates that aren't
|
||||||
|
# deprecated according to PKIX.
|
||||||
|
# subjectAltName=email:move
|
||||||
|
|
||||||
|
# Copy subject details
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
|
||||||
|
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
|
||||||
|
#nsBaseUrl
|
||||||
|
#nsRevocationUrl
|
||||||
|
#nsRenewalUrl
|
||||||
|
#nsCaPolicyUrl
|
||||||
|
#nsSslServerName
|
||||||
|
|
||||||
|
[ v3_req ]
|
||||||
|
|
||||||
|
# Extensions to add to a certificate request
|
||||||
|
|
||||||
|
basicConstraints = CA:FALSE
|
||||||
|
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||||
|
|
||||||
|
[ v3_ca ]
|
||||||
|
|
||||||
|
|
||||||
|
# Extensions for a typical CA
|
||||||
|
|
||||||
|
|
||||||
|
# PKIX recommendation.
|
||||||
|
|
||||||
|
subjectKeyIdentifier=hash
|
||||||
|
|
||||||
|
authorityKeyIdentifier=keyid:always,issuer:always
|
||||||
|
|
||||||
|
# This is what PKIX recommends but some broken software chokes on critical
|
||||||
|
# extensions.
|
||||||
|
#basicConstraints = critical,CA:true
|
||||||
|
# So we do this instead.
|
||||||
|
basicConstraints = CA:true
|
||||||
|
|
||||||
|
# Key usage: this is typical for a CA certificate. However since it will
|
||||||
|
# prevent it being used as an test self-signed certificate it is best
|
||||||
|
# left out by default.
|
||||||
|
# keyUsage = cRLSign, keyCertSign
|
||||||
|
|
||||||
|
# Some might want this also
|
||||||
|
# nsCertType = sslCA, emailCA
|
||||||
|
|
||||||
|
# Include email address in subject alt name: another PKIX recommendation
|
||||||
|
# subjectAltName=email:copy
|
||||||
|
# Copy issuer details
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
|
||||||
|
# DER hex encoding of an extension: beware experts only!
|
||||||
|
# obj=DER:02:03
|
||||||
|
# Where 'obj' is a standard or added object
|
||||||
|
# You can even override a supported extension:
|
||||||
|
# basicConstraints= critical, DER:30:03:01:01:FF
|
||||||
|
|
||||||
|
[ crl_ext ]
|
||||||
|
|
||||||
|
# CRL extensions.
|
||||||
|
# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
|
||||||
|
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
authorityKeyIdentifier=keyid:always,issuer:always
|
||||||
|
|
||||||
|
[ proxy_cert_ext ]
|
||||||
|
# These extensions should be added when creating a proxy certificate
|
||||||
|
|
||||||
|
# This goes against PKIX guidelines but some CAs do it and some software
|
||||||
|
# requires this to avoid interpreting an end user certificate as a CA.
|
||||||
|
|
||||||
|
basicConstraints=CA:FALSE
|
||||||
|
|
||||||
|
# Here are some examples of the usage of nsCertType. If it is omitted
|
||||||
|
# the certificate can be used for anything *except* object signing.
|
||||||
|
|
||||||
|
# This is OK for an SSL server.
|
||||||
|
# nsCertType = server
|
||||||
|
|
||||||
|
# For an object signing certificate this would be used.
|
||||||
|
# nsCertType = objsign
|
||||||
|
|
||||||
|
# For normal client use this is typical
|
||||||
|
# nsCertType = client, email
|
||||||
|
|
||||||
|
# and for everything including object signing:
|
||||||
|
# nsCertType = client, email, objsign
|
||||||
|
|
||||||
|
# This is typical in keyUsage for a client certificate.
|
||||||
|
# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||||
|
|
||||||
|
# This will be displayed in Netscape's comment listbox.
|
||||||
|
nsComment = "OpenSSL Generated Certificate"
|
||||||
|
|
||||||
|
# PKIX recommendations harmless if included in all certificates.
|
||||||
|
subjectKeyIdentifier=hash
|
||||||
|
authorityKeyIdentifier=keyid,issuer:always
|
||||||
|
|
||||||
|
# This stuff is for subjectAltName and issuerAltname.
|
||||||
|
# Import the email address.
|
||||||
|
# subjectAltName=email:copy
|
||||||
|
# An alternative to produce certificates that aren't
|
||||||
|
# deprecated according to PKIX.
|
||||||
|
# subjectAltName=email:move
|
||||||
|
|
||||||
|
# Copy subject details
|
||||||
|
# issuerAltName=issuer:copy
|
||||||
|
|
||||||
|
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
|
||||||
|
#nsBaseUrl
|
||||||
|
#nsRevocationUrl
|
||||||
|
#nsRenewalUrl
|
||||||
|
#nsCaPolicyUrl
|
||||||
|
#nsSslServerName
|
||||||
|
|
||||||
|
# This really needs to be in place for it to be a proxy certificate.
|
||||||
|
proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
|
||||||
44
servertests/certs/serverA.pem
Normal file
44
servertests/certs/serverA.pem
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDSjCCArOgAwIBAgIJANp+V2miEyycMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
||||||
|
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
||||||
|
BlJvb3QgQTAeFw0xNzExMjAxNTMzMTBaFw0xODExMjAxNTMzMTBaMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMREwDwYDVQQDEwhT
|
||||||
|
ZXJ2ZXIgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsgdmW/SfzUE/7TNL
|
||||||
|
obuDAjdXy/28CehaIjRGrO9pyw6gPjsz/DbMdXm4sEQL2HN1LVubwQWKHnLAfpyw
|
||||||
|
Zw3C/x8I2pxAEEluGKXmXldpM+I0nj5DpnyLd9OP+06zLKq/xgKEWPImDdw9Qks1
|
||||||
|
AkmwUUUq/FikJIbSIFSFbhEAGoUCAwEAAaOBjzCBjDAJBgNVHRMEAjAAMBEGCWCG
|
||||||
|
SAGG+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
|
||||||
|
Q2VydGlmaWNhdGUwHQYDVR0OBBYEFEfjdOOLGs220aZWHVOwtsjgWgEWMB8GA1Ud
|
||||||
|
IwQYMBaAFCiO5WTUv7L5UyU2lK3jpwLaI57gMA0GCSqGSIb3DQEBBQUAA4GBABEE
|
||||||
|
iX3tYF/PX+xKdU+IdB4BTeUJ1sGzskrovXm7jKK693NejfgnULrvHhOppJ+F4bwk
|
||||||
|
DlxbztBwJ8H+HiDQ7Emg8e/ymAtauNcb4DEoTbe/U3cWwNQP2eNNDeo5U8YzeIlR
|
||||||
|
AO7j8Km4+GiwCTuigLhvld1erYaztqQkVDjNS23E
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDwjCCAyugAwIBAgIJAN38lHt98qNDMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
||||||
|
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
||||||
|
BlJvb3QgQTAeFw0xNzExMjAxNTMzMTBaFw0xODExMjAxNTMzMTBaMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
||||||
|
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
||||||
|
BlJvb3QgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1iZtHryHBn/K1LAd
|
||||||
|
9I4V4XKOfmBF7cOV3vL0FMtuZdWxWlH2kRdIcT2eGnuR6/XJU2JWQD+ZMGuEMY/A
|
||||||
|
HD+pY/2F/DI1pZlWtVjPHsYs7RouhiQA1Hxt0770krxOPr8UMlAnmfHoGDta+33F
|
||||||
|
h10ZuYnRt0Epu704Qyl8/AS6dMMCAwEAAaOCAQYwggECMB0GA1UdDgQWBBQojuVk
|
||||||
|
1L+y+VMlNpSt46cC2iOe4DCB0gYDVR0jBIHKMIHHgBQojuVk1L+y+VMlNpSt46cC
|
||||||
|
2iOe4KGBo6SBoDCBnTELMAkGA1UEBhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNh
|
||||||
|
bnRvMR8wHQYDVQQHExZTYW50byBBbnRvbmlvIGRvIENhbmFhMRowGAYDVQQKExFT
|
||||||
|
YW50byBUb25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRl
|
||||||
|
ciBTY2llbmNlMQ8wDQYDVQQDEwZSb290IEGCCQDd/JR7ffKjQzAMBgNVHRMEBTAD
|
||||||
|
AQH/MA0GCSqGSIb3DQEBBQUAA4GBADY2DUpWSZ6goKO6TFyg8ot30JG8Tr+5Qi95
|
||||||
|
NfpjGl0ZrJLVanHURWAJ1BF9BS3LGlaIo8pd6l2uo2/Ql/SHNQHgJ+buq1BedAuO
|
||||||
|
g57Q/NzKTj0SDKmDAmZDrR05oNmzwku21kBAE+aFPeKw2TSiAXktMqXIyTzX31xv
|
||||||
|
UlmzIBGO
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
12
servertests/certs/serverA.sh
Normal file
12
servertests/certs/serverA.sh
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
openssl req -newkey rsa:1024 -keyout serverAkey.pem -out serverAreq.pem \
|
||||||
|
-config ./serverA.cnf -nodes -days 365 -batch
|
||||||
|
|
||||||
|
openssl x509 -req -in serverAreq.pem -sha1 -extfile ./serverA.cnf \
|
||||||
|
-extensions usr_cert -CA rootA.pem -CAkey rootAkey.pem -CAcreateserial \
|
||||||
|
-out serverAcert.pem -days 365
|
||||||
|
|
||||||
|
cat serverAcert.pem rootA.pem > serverA.pem
|
||||||
|
|
||||||
|
openssl x509 -subject -issuer -noout -in serverA.pem
|
||||||
20
servertests/certs/serverAcert.pem
Normal file
20
servertests/certs/serverAcert.pem
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDSjCCArOgAwIBAgIJANp+V2miEyycMA0GCSqGSIb3DQEBBQUAMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGjAYBgNVBAoTEVNhbnRvIFRvbmljbyBMdGRhMScw
|
||||||
|
JQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UxDzANBgNVBAMT
|
||||||
|
BlJvb3QgQTAeFw0xNzExMjAxNTMzMTBaFw0xODExMjAxNTMzMTBaMIGdMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMREwDwYDVQQDEwhT
|
||||||
|
ZXJ2ZXIgQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsgdmW/SfzUE/7TNL
|
||||||
|
obuDAjdXy/28CehaIjRGrO9pyw6gPjsz/DbMdXm4sEQL2HN1LVubwQWKHnLAfpyw
|
||||||
|
Zw3C/x8I2pxAEEluGKXmXldpM+I0nj5DpnyLd9OP+06zLKq/xgKEWPImDdw9Qks1
|
||||||
|
AkmwUUUq/FikJIbSIFSFbhEAGoUCAwEAAaOBjzCBjDAJBgNVHRMEAjAAMBEGCWCG
|
||||||
|
SAGG+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
|
||||||
|
Q2VydGlmaWNhdGUwHQYDVR0OBBYEFEfjdOOLGs220aZWHVOwtsjgWgEWMB8GA1Ud
|
||||||
|
IwQYMBaAFCiO5WTUv7L5UyU2lK3jpwLaI57gMA0GCSqGSIb3DQEBBQUAA4GBABEE
|
||||||
|
iX3tYF/PX+xKdU+IdB4BTeUJ1sGzskrovXm7jKK693NejfgnULrvHhOppJ+F4bwk
|
||||||
|
DlxbztBwJ8H+HiDQ7Emg8e/ymAtauNcb4DEoTbe/U3cWwNQP2eNNDeo5U8YzeIlR
|
||||||
|
AO7j8Km4+GiwCTuigLhvld1erYaztqQkVDjNS23E
|
||||||
|
-----END CERTIFICATE-----
|
||||||
16
servertests/certs/serverAkey.pem
Normal file
16
servertests/certs/serverAkey.pem
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBALIHZlv0n81BP+0z
|
||||||
|
S6G7gwI3V8v9vAnoWiI0RqzvacsOoD47M/w2zHV5uLBEC9hzdS1bm8EFih5ywH6c
|
||||||
|
sGcNwv8fCNqcQBBJbhil5l5XaTPiNJ4+Q6Z8i3fTj/tOsyyqv8YChFjyJg3cPUJL
|
||||||
|
NQJJsFFFKvxYpCSG0iBUhW4RABqFAgMBAAECgYAnAigTjg5V0y5Gsy6nSYbzPV0n
|
||||||
|
fXluUlMtm3bA/dSYgaPq/t3tLbSvKPSm6sINs37BaYk/Sg9xjINROtQMQJ+xGUtu
|
||||||
|
m3aD5EPKDKgyNVgPbmXqZbwK6U22TNOzTY1cTU20crwsd/R4+S0khXDb6sPckGKS
|
||||||
|
fGhY7zvfvstvXXw5AQJBAOKFMJzxjaZol/fR2y4O7cx98X1Pu7rEPeNoTCQbtJdg
|
||||||
|
uMm5Gy66zUrgFyuJkhnbgv3nlh3/0hjzPzK5uNB0CekCQQDJMqiXPx54GVtOV9k0
|
||||||
|
Sza1otYwyx3clFGRRzNZ7dzb/+TaXpSLWmgdcuMyr0PElhDOMhdhGSyACkDsitl1
|
||||||
|
9w49AkEAmk9LR47SBSu5YqwGGME4w5aEPO5lH5zx4Am73Nk20+yi1WCRIOtGUJyJ
|
||||||
|
jDIiYhUEjj0GKZeNI0wJoF+eg/qYiQJBALe2EuyvjKG6/X0mh8TRHK5zdkJtZOHh
|
||||||
|
aC1QJxppL+6N1Kh0DgzESycAnWXNVQKux7+PS3u0ocZ0Fl4mVnP5Vz0CQQDPozPv
|
||||||
|
CVRVxcm6BVjMnoAZDK8KSM/uQ3JRmc9PKWWyz51aW6VSc6YosHKlT2pzjZ2myMPT
|
||||||
|
zj1kLXRJDc6byYS6
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
13
servertests/certs/serverAreq.pem
Normal file
13
servertests/certs/serverAreq.pem
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIIB3jCCAUcCAQAwgZ0xCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
||||||
|
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEYMBYGA1UEChMP
|
||||||
|
U2FvIFRvbmljbyBMdGRhMScwJQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVy
|
||||||
|
IFNjaWVuY2UxETAPBgNVBAMTCFNlcnZlciBBMIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
||||||
|
ADCBiQKBgQCyB2Zb9J/NQT/tM0uhu4MCN1fL/bwJ6FoiNEas72nLDqA+OzP8Nsx1
|
||||||
|
ebiwRAvYc3UtW5vBBYoecsB+nLBnDcL/HwjanEAQSW4YpeZeV2kz4jSePkOmfIt3
|
||||||
|
04/7TrMsqr/GAoRY8iYN3D1CSzUCSbBRRSr8WKQkhtIgVIVuEQAahQIDAQABoAAw
|
||||||
|
DQYJKoZIhvcNAQELBQADgYEAfiS+4jD2NQSAIakgGl559fwa4xkNXGq0WG6RLjvK
|
||||||
|
X5bpSuFGsDyrqGs3c5H78Hq7Ga39W28rmfa14L02GYj3ravmQWVPuLCtzIZeSgSJ
|
||||||
|
0ZmrtxV8QCe0+pFOcOnqaSvj5mRhKFy4Ex8CHW43c3Drtv9tQRKj8kc9HYUhsq3i
|
||||||
|
JcU=
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
||||||
43
servertests/certs/serverB.pem
Normal file
43
servertests/certs/serverB.pem
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDSDCCArGgAwIBAgIJAKYuEhfbhd4JMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
||||||
|
b290IEIwHhcNMTcxMTIwMTUzMzEwWhcNMTgxMTIwMTUzMzEwWjCBnTELMAkGA1UE
|
||||||
|
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
||||||
|
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
||||||
|
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTERMA8GA1UEAxMIU2Vy
|
||||||
|
dmVyIEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJmQHyI0EUKFANIuvkR3
|
||||||
|
EhdALBI4RqkFYqN3GZf3Y91g77O+n2BHQ3LN86WqW0BI4EuVvqUqcZtvGHfFDEmw
|
||||||
|
So1B5JrUSoeHdzR+v7l3WLDJTlbBD5CnvazgaD8E41YwUaJfl41dfYBQ2rcjL5ix
|
||||||
|
Cktip+TFY++Enfi20dxZ2c1FAgMBAAGjgY8wgYwwCQYDVR0TBAIwADARBglghkgB
|
||||||
|
hvhCAQEEBAMCBkAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENl
|
||||||
|
cnRpZmljYXRlMB0GA1UdDgQWBBRzPitei+EH6/I3UHVU2ZtxB+4jnTAfBgNVHSME
|
||||||
|
GDAWgBT8HCJ3qikqe2qGcCgw1uqwt6bhMDANBgkqhkiG9w0BAQUFAAOBgQCZ0C9q
|
||||||
|
jsvH/EGIHy6JZwHfHE2ffSpMo/O3e4bSPnMTpMDu6/RSYc/H7hQo28bFsA1jD9Pa
|
||||||
|
TdN1YLtV25E0lv/b2/i9Y2YhBLIkO+9HM5cm1sTIrzf7tF0Iku6CJSKbk4+60CxL
|
||||||
|
CQChj7Sh7bwNID4ua82LMUo68aHWWHPGYXjsvg==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDvDCCAyWgAwIBAgIJAMDsLG/8dCM5MA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
||||||
|
b290IEIwHhcNMTcxMTIwMTUzMzEwWhcNMTgxMTIwMTUzMzEwWjCBmzELMAkGA1UE
|
||||||
|
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
||||||
|
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
||||||
|
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTEPMA0GA1UEAxMGUm9v
|
||||||
|
dCBCMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJR+bXQaHSvKW6AJjqBwfB
|
||||||
|
e8XKNtAivk9xv15ipBz98vUIzZIcQw/rWQBUxyMAaxJBugPGF26TVribxrMrxxP4
|
||||||
|
I4yJieccw9o/re/4KLZxxs16KVfRSb8TBIflXsstWs5sAza7gSj8enVWZ059C9jw
|
||||||
|
C/hdyb7JVgUd1NwN2utP8wIDAQABo4IBBDCCAQAwHQYDVR0OBBYEFPwcIneqKSp7
|
||||||
|
aoZwKDDW6rC3puEwMIHQBgNVHSMEgcgwgcWAFPwcIneqKSp7aoZwKDDW6rC3puEw
|
||||||
|
oYGhpIGeMIGbMQswCQYDVQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8x
|
||||||
|
HzAdBgNVBAcTFlNhbnRvIEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBU
|
||||||
|
b25pY28gTHRkYTEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2ll
|
||||||
|
bmNlMQ8wDQYDVQQDEwZSb290IEKCCQDA7Cxv/HQjOTAMBgNVHRMEBTADAQH/MA0G
|
||||||
|
CSqGSIb3DQEBBQUAA4GBACvCHViEZ0wG07A3ZTgg/4aDeHz2QTU4Z3X8784JyNKV
|
||||||
|
l7CwXICusfYp8udl3bgYuSH5wtHGyBNxa2lQtNKtl8UCwe2ROZAuZIG7y8/FFoqu
|
||||||
|
vZRba33pNE2WRxR4OrTJnrFGBwpzxr+sbiUimOq7UUCoEcnZnVnGm10qrSJTxVtm
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
20
servertests/certs/serverBcert.pem
Normal file
20
servertests/certs/serverBcert.pem
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDSDCCArGgAwIBAgIJAKYuEhfbhd4JMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD
|
||||||
|
VQQGEwJCUjEXMBUGA1UECBMORXNwaXJpdG8gU2FudG8xHzAdBgNVBAcTFlNhbnRv
|
||||||
|
IEFudG9uaW8gZG8gQ2FuYWExGDAWBgNVBAoTD1NhbyBUb25pY28gTHRkYTEnMCUG
|
||||||
|
A1UECxMeRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlMQ8wDQYDVQQDEwZS
|
||||||
|
b290IEIwHhcNMTcxMTIwMTUzMzEwWhcNMTgxMTIwMTUzMzEwWjCBnTELMAkGA1UE
|
||||||
|
BhMCQlIxFzAVBgNVBAgTDkVzcGlyaXRvIFNhbnRvMR8wHQYDVQQHExZTYW50byBB
|
||||||
|
bnRvbmlvIGRvIENhbmFhMRgwFgYDVQQKEw9TYW8gVG9uaWNvIEx0ZGExJzAlBgNV
|
||||||
|
BAsTHkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZTERMA8GA1UEAxMIU2Vy
|
||||||
|
dmVyIEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJmQHyI0EUKFANIuvkR3
|
||||||
|
EhdALBI4RqkFYqN3GZf3Y91g77O+n2BHQ3LN86WqW0BI4EuVvqUqcZtvGHfFDEmw
|
||||||
|
So1B5JrUSoeHdzR+v7l3WLDJTlbBD5CnvazgaD8E41YwUaJfl41dfYBQ2rcjL5ix
|
||||||
|
Cktip+TFY++Enfi20dxZ2c1FAgMBAAGjgY8wgYwwCQYDVR0TBAIwADARBglghkgB
|
||||||
|
hvhCAQEEBAMCBkAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENl
|
||||||
|
cnRpZmljYXRlMB0GA1UdDgQWBBRzPitei+EH6/I3UHVU2ZtxB+4jnTAfBgNVHSME
|
||||||
|
GDAWgBT8HCJ3qikqe2qGcCgw1uqwt6bhMDANBgkqhkiG9w0BAQUFAAOBgQCZ0C9q
|
||||||
|
jsvH/EGIHy6JZwHfHE2ffSpMo/O3e4bSPnMTpMDu6/RSYc/H7hQo28bFsA1jD9Pa
|
||||||
|
TdN1YLtV25E0lv/b2/i9Y2YhBLIkO+9HM5cm1sTIrzf7tF0Iku6CJSKbk4+60CxL
|
||||||
|
CQChj7Sh7bwNID4ua82LMUo68aHWWHPGYXjsvg==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
16
servertests/certs/serverBkey.pem
Normal file
16
servertests/certs/serverBkey.pem
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJmQHyI0EUKFANIu
|
||||||
|
vkR3EhdALBI4RqkFYqN3GZf3Y91g77O+n2BHQ3LN86WqW0BI4EuVvqUqcZtvGHfF
|
||||||
|
DEmwSo1B5JrUSoeHdzR+v7l3WLDJTlbBD5CnvazgaD8E41YwUaJfl41dfYBQ2rcj
|
||||||
|
L5ixCktip+TFY++Enfi20dxZ2c1FAgMBAAECgYAjvg3hEilqSDbWtRaILQbC7qbT
|
||||||
|
XtHjiWNaFOCaJHTUFDn2pknGSRAD6rfpOWuf3NaIAUSsgOKMgSE6z1x60lOnjP92
|
||||||
|
H5RoH+3LqjIKnYK7JYEnrH6Ur2yHvS9eh/jwj4o47ssVsF+jBclfyqWEjrQKUUd7
|
||||||
|
x1ObU9DL4eXjjW7kgQJBAMfYKWi/Cuw/7AFcPQTPWxgZUTy6QDJsDaXXfqtEy3cV
|
||||||
|
fE9rc46ZcnUX9AzvtZoe6y4WzIBSFjycFmEmdESKEJUCQQDEtrMFqpKnIgKBymH4
|
||||||
|
39qsM2yZz4EpNOeIUR3wtD/dmzJdTeSEHpFowrO2vDmdxgA4kHkOvQTkUTyc3VxH
|
||||||
|
ni3xAkB6r+AsKCzigRO4ehIT4+D+2HwhFg7XZbKzP6rKJn/q6cvZThQxVU8JR91S
|
||||||
|
G8+XgKfNMb32gW6ZYxHyLpNuiHxJAkBEjkel2eRySvAEu7uZOKrFCMb4c9DXw5BN
|
||||||
|
ebetg6QeX1AWJGdXhC+5CuIG9WI/EhpRnEgUUtu5lnZBVQQsEXyBAkAWh65jDsSP
|
||||||
|
kJhsWLDfH81aa1Ikjl8iSx4dIrEzx7JX3qm3o+I21ZN8FImaMNP/lfoeWyxcI6/U
|
||||||
|
88ZMr8vwmJc5
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
13
servertests/certs/serverBreq.pem
Normal file
13
servertests/certs/serverBreq.pem
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIIB3jCCAUcCAQAwgZ0xCzAJBgNVBAYTAkJSMRcwFQYDVQQIEw5Fc3Bpcml0byBT
|
||||||
|
YW50bzEfMB0GA1UEBxMWU2FudG8gQW50b25pbyBkbyBDYW5hYTEYMBYGA1UEChMP
|
||||||
|
U2FvIFRvbmljbyBMdGRhMScwJQYDVQQLEx5EZXBhcnRtZW50IG9mIENvbXB1dGVy
|
||||||
|
IFNjaWVuY2UxETAPBgNVBAMTCFNlcnZlciBCMIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
||||||
|
ADCBiQKBgQCZkB8iNBFChQDSLr5EdxIXQCwSOEapBWKjdxmX92PdYO+zvp9gR0Ny
|
||||||
|
zfOlqltASOBLlb6lKnGbbxh3xQxJsEqNQeSa1EqHh3c0fr+5d1iwyU5WwQ+Qp72s
|
||||||
|
4Gg/BONWMFGiX5eNXX2AUNq3Iy+YsQpLYqfkxWPvhJ34ttHcWdnNRQIDAQABoAAw
|
||||||
|
DQYJKoZIhvcNAQELBQADgYEAEDg4MRZWZB5QUNFg/pSwVat1kaM5bD2s5DSqA4bp
|
||||||
|
dor5EiXZ+dyT4P54kR97U8Krrb+2001NWSuejGc0+r5SPCTZ/wB9m5dUy6NSrd82
|
||||||
|
w4KuzZZTTDw02UMaasXQNSEJ9wCa9hEzPRlhlQEIoSNjQGPx2wwhbk8No7oOSee2
|
||||||
|
xr4=
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
||||||
23
servertests/client.lua
Normal file
23
servertests/client.lua
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
require("socket")
|
||||||
|
ssl=require("ssl")
|
||||||
|
|
||||||
|
-- TLS/SSL client parameters (omitted)
|
||||||
|
local params = {
|
||||||
|
mode = "client",
|
||||||
|
protocol = "tlsv1_2",
|
||||||
|
key = "certs/clientAkey.pem",
|
||||||
|
certificate = "certs/clientA.pem",
|
||||||
|
cafile = "certs/rootA.pem",
|
||||||
|
verify = "peer",
|
||||||
|
options = "all"
|
||||||
|
}
|
||||||
|
|
||||||
|
local conn = socket.tcp()
|
||||||
|
conn:connect("127.0.0.1", 8888)
|
||||||
|
|
||||||
|
-- TLS/SSL initialization
|
||||||
|
conn = ssl.wrap(conn, params)
|
||||||
|
print(conn:dohandshake())
|
||||||
|
--
|
||||||
|
print(conn:receive("*l"))
|
||||||
|
conn:close()
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user