Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ jobs:
- name: Install and run RabbitMQ
run: |
brew install rabbitmq
rabbitmq-plugins enable rabbitmq_stomp
brew services start rabbitmq
rabbitmq-plugins enable rabbitmq_stomp rabbitmq_web_stomp
RABBITMQ_CONFIG_FILE=./RabbitMQ/rabbitmq rabbitmq-server -detached
- name: Run unit tests
run: swift test --enable-code-coverage
- name: Upload coverage data
Expand Down Expand Up @@ -73,6 +73,7 @@ jobs:
- 61613:61613
volumes:
- ${{ github.workspace }}/RabbitMQ:/etc/rabbitmq
- ${{ github.workspace }}/Certs:/Certs
steps:
- name: Install curl
run: apt-get update -yq && apt-get install -y curl
Expand Down
Binary file added Certs/ca.der
Binary file not shown.
28 changes: 28 additions & 0 deletions Certs/ca.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDEtzuEJbvsjvmf
UegDxXR9jjwrUVwv8t8lwKiHqKKUGUDACd1AfD4C30UqBfSMA+/adPHaFN37slGx
QDsPK5VctBCI/9HoCuqjxDYrWNd7Cz25eCnOjgfOC2hb6exBhQJovaNzNd3tNgZO
w6dQV81UxIZjhkXUUEjdn2aXPE6teY3Wmo7/TTcj2gLz1KK1rzygQAIeJvheBlfT
nHOL04Izf1Pd1qHDBWnH2jJS9XI77ffOtykVUnsNjMKNIy9Q5x41ESRevf2f0Sp/
24jdVneeYSboqmBWgvf28jCM1U0cikIJf0skV/kgHNlP0pwPNJB20L8sTOsy5ldv
dNdtqF6tAgMBAAECggEAAviY1luditVJUY3dTmVGkk46JsCr/vC7ob3XAx7Zvxk3
NaSl1KoBDm5h2eB3e5U5o60y0+45wL9GOuzzQhI7R3L+xvBE3YIrXhLXa0XZvKWE
UU9OeQIDKH+v8VIcpowEPSG+x2gvtGalp2iOwoi49LKigaakWlsQvAGC0qjvWpuz
DIeRgaJiDsnp9IojE5P09+YZklcrlwgZnBivBp8ORerDXFlUA+228G1yIuuQNnU4
cVGUrEjIl33JL4RtCmjUv56r2SYJ6uMChyXX+b3NmcOZAY2GhOb9eFvJkt1Hu87g
cI/jvEVqJNv4JwJhCpxwZme3sUJS2h/D/qsA0a+5wQKBgQD/iLnz8B9QSbiZqOQf
kdU2UXqKTZAt5ePLS5NVHkd50KhTSijVJsm5YP10Gw3ixHbU4NgQ1L8nAvBCvS8Z
8Z2YT1F0VxGRRCFn9rLEQrQb3b3eFF9RUlPe2ZnxzpUBrAN8to+T5er7HteNZ8SL
U8NKQaPKNW8u3t1cNcahZXDroQKBgQDFEw1L0rtShtvzBmD8bLvAxhFtLu0a2c37
0g6ayvoxbdJ9mF8f86037hGoyWsKAiavcOeAmdtjfPUIuKXgTz4EKhc9704tygLC
R4swCuS82bd5U5LlWkMWsmDBGKMFzWOTgrKaMVN+/X3Cy5j6tUiUkdIcEQbUOM4y
2QozRHc3jQKBgQD4tPCX1fwEPtxm4hS2DVBBf+gOuBM+OOQPN818KO5UR5utBR7c
5tWrkhTdbn+DWMh3xSdGqmop5BhIPK2dSKakWX7kBuJYSsFg2KGBl5KJFLb5cUac
dc6ftZa53OD2MZ9rQJxZzIt6Qrh1LqwDF1GZ8m0iIAPI0K0OVGCxMXRIQQKBgQCW
djlMjpOeKoB7R398ubePMqnTZmR4f5oYjQPBgv8KBgMTCOZ3ip/Rd93btAwZFBNd
FyJouQ8bIigihHeAjn+WxlwAWVii9PyuP9kw0OBanw7JftlEammWRpJAWwL8Rxej
Y8Hgn5BUAE2oD7G4l/fWFo8IBqfkF4q2n6Z+BePPcQKBgQDS2hio5WyCCU5dHXqZ
4RoL+VyQlx6a3ycdnoiYcHtk/T68tGgTAIKHeGO4bMRgelWuxaSrCv/ogT1rGCRd
T6GJUMEO1gKkxWHfwpA4rDJi8c3EewUuh6Mczirc2f9+UJsr9E9SNaFiwpuPAV5k
9b21//skzk3LPbVj3ZnLFEhwIQ==
-----END PRIVATE KEY-----
22 changes: 22 additions & 0 deletions Certs/ca.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDrTCCApWgAwIBAgIUAs0T5pmVwH2qhqX47siKhubvkwgwDQYJKoZIhvcNAQEL
BQAwZjELMAkGA1UEBhMCSVQxDzANBgNVBAgMBlNpY2lseTENMAsGA1UEBwwERW5u
YTERMA8GA1UECgwIU1RPTVBOSU8xCzAJBgNVBAsMAkNBMRcwFQYDVQQDDA5mcHNl
dmVyaW5vLmNvbTAeFw0yNjAxMDcxMTE0MzFaFw0yNzAxMDcxMTE0MzFaMGYxCzAJ
BgNVBAYTAklUMQ8wDQYDVQQIDAZTaWNpbHkxDTALBgNVBAcMBEVubmExETAPBgNV
BAoMCFNUT01QTklPMQswCQYDVQQLDAJDQTEXMBUGA1UEAwwOZnBzZXZlcmluby5j
b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEtzuEJbvsjvmfUegD
xXR9jjwrUVwv8t8lwKiHqKKUGUDACd1AfD4C30UqBfSMA+/adPHaFN37slGxQDsP
K5VctBCI/9HoCuqjxDYrWNd7Cz25eCnOjgfOC2hb6exBhQJovaNzNd3tNgZOw6dQ
V81UxIZjhkXUUEjdn2aXPE6teY3Wmo7/TTcj2gLz1KK1rzygQAIeJvheBlfTnHOL
04Izf1Pd1qHDBWnH2jJS9XI77ffOtykVUnsNjMKNIy9Q5x41ESRevf2f0Sp/24jd
VneeYSboqmBWgvf28jCM1U0cikIJf0skV/kgHNlP0pwPNJB20L8sTOsy5ldvdNdt
qF6tAgMBAAGjUzBRMB0GA1UdDgQWBBS+iIee5ucX7Hhb5VFLb8JXg0R+XjAfBgNV
HSMEGDAWgBS+iIee5ucX7Hhb5VFLb8JXg0R+XjAPBgNVHRMBAf8EBTADAQH/MA0G
CSqGSIb3DQEBCwUAA4IBAQCCicoAOFOc064q31uN3H6yKA8H7D5sDsW28T92HORh
8HmJg9BEpzFiHbHCXFZie0IpQMLelkXgR+kg4b4TE5OHmTLVWODTmmbHC9MSd8UP
jBOZEOnTaU+zPZjpZVwkzeTnJD8a0gG29q/g66TiveJWPnYBsxDMXSo8RgFpMkIM
tDiHyisEwIvbE8V0ckrk2MR8JtDKQB80xob/Yh4J7u3GYNoWjRS7f4nAtpWjC9jd
c9WcHa/moJgKoIjgLi6lytuLzeOdNwxNB5waJDE6wmoI5AC+9sAmJZ4JgBkIq0ga
6N58TkCTe6gaF949xTkVFQm+ch1eykkYw4E1Av2P1srC
-----END CERTIFICATE-----
1 change: 1 addition & 0 deletions Certs/ca.srl
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
32FA8CE071C68BB7F32F0B07B9EE05D5B38548F6
17 changes: 17 additions & 0 deletions Certs/client.csr
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE REQUEST-----
MIICrzCCAZcCAQAwajELMAkGA1UEBhMCSVQxDzANBgNVBAgMBlNpY2lseTENMAsG
A1UEBwwERW5uYTERMA8GA1UECgwIU1RPTVBOSU8xDzANBgNVBAsMBkNsaWVudDEX
MBUGA1UEAwwOZnBzZXZlcmluby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDd0c//rnNtish4zlX3GaI1oLrHfhJDlOipzU2NXUBM8RVx/PyYOhfW
ASShKpKvlzHmrzguX5BRkA5nCJ17iXV0EELuZVaFwraC9+tiwsu+R41mqvnS7R2N
JmLD9Ye8Tn1YRB+L98KxzteKmlklSgmvD/QnGbZ2dsi6x5tKhwCBEZcuL7yIyJdE
yLTU9DGrIMaE+oYor5Rpkt6sv/keSU2qBlgW4THOKuQxc736gZpJgXp8h/xkJBxG
KUbA/JsoKAXQJRQzB9aOVlKJJGuvt3vIZsEyaYvDaoI7Lp9s/WzB5OfQSCeMU3pm
U6Jgg7qxs+n5IxJA9LYDwEvKjTW9SCCxAgMBAAGgADANBgkqhkiG9w0BAQsFAAOC
AQEA18GY6B10eYnPSCdYFgRw9EG5ZVr24QYKQnF91H64EchNhSLXZfrw1crmhnix
OQlP+IjFvu+bD9D2qNVJXZtkrZVQR1n8FhIQS/e9g3XaIVvNUTi4tWhNWwa8dR4V
tZQiIvJShWosAW7rtDbmJ9uhxPcDwpwvkhsBq4/xjSIu39Jc1dniJhTcUOQV42BL
bJCizYh+BfCYSGI9xjE82o5EplN+9ADQyCgRdchgdL4jWlU1HAtQNt6/A+d0xPvj
7E9mgDkIMnhoB1rHip8cEVUj5MBxU3b14lbnNNHNR8coWAR2BIvCrrr3ZrSRTva4
LZC/b0khk150vWtYc/P2qh3jGA==
-----END CERTIFICATE REQUEST-----
28 changes: 28 additions & 0 deletions Certs/client.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDd0c//rnNtish4
zlX3GaI1oLrHfhJDlOipzU2NXUBM8RVx/PyYOhfWASShKpKvlzHmrzguX5BRkA5n
CJ17iXV0EELuZVaFwraC9+tiwsu+R41mqvnS7R2NJmLD9Ye8Tn1YRB+L98KxzteK
mlklSgmvD/QnGbZ2dsi6x5tKhwCBEZcuL7yIyJdEyLTU9DGrIMaE+oYor5Rpkt6s
v/keSU2qBlgW4THOKuQxc736gZpJgXp8h/xkJBxGKUbA/JsoKAXQJRQzB9aOVlKJ
JGuvt3vIZsEyaYvDaoI7Lp9s/WzB5OfQSCeMU3pmU6Jgg7qxs+n5IxJA9LYDwEvK
jTW9SCCxAgMBAAECggEAPe3K7W5OCaI6kAfDVmaQs/o4y2N2Q+n5/xYzdak4P4L7
YsSn3PQzHWtaR6i0JVPH+cinncLObwcSDlAIb6oT4aB8n0QpoNSY0f3XeM47xdcC
Mky/zNSocHTsFBujlr4vHop+aDx23d+Kq8al5tRB2d9RYe061N4a8pKx11/TkzTJ
8jfSgJGlJyLH/SNBYFPP4M1p4NjpFI/KhCDDcAlsjWxsXPy59TV/kfH96/jcHORY
A8tT31rHxy3Suds0n/AN4MiM4x8K9WfM87cLr2meXOOgbaiSSTDf96a/30WiI7cW
9LZhEAg0wx9TXKodLCP7I2s3Tx/nf75QdDAH9SH+RQKBgQDzbGkj59Q+EGdXWfll
NBLnjdW3xRKtJ8nZcf+hN8AqwTh0yx7dusq/fsL2Q8wSBzhWDRdWWfAbw1m45ZQL
w+kbr6k+ZvGYJVtlLRUyGVjT1WKq+cztHfBHMXF8oQHHgycd6B9NogfvcVmiuNeL
lhNHdpiA9Z6fwjAUodPjCGf6LwKBgQDpR6mRau6ILTtOkRUmtxcL4hGWJ3eMI3tT
RkMnmuoPb3/ca6FS1NPpNupCLj2Kh2y1rYA9WM+87unjH/snqFiiHZhzvIBhk/41
zLfNIkd2JZvf6qp40SuVO6Zkg5ITK5ypaF8rOi6Y+MDEZtR3qeAjQLwkjHL4at5T
lR9KRHg7HwKBgD02JbpBsb1popL0rSIl1hskL3nmtKuWNcvYPs/rlQcrT2cPLNPV
BObimWQT6F0gM6pv4E52j0pr9UPpdzD+MsAjjAuFF3uK6VCn5YyTkyKxpf4Yks+N
l75PUJpmYmwpLsz2ceiztgsgFco1cP5I3tA5ol/LY/gIfM6zYvTUSFFBAoGAeb7/
vTfcc09/4zoOmtz09yut1/qTBp1B8Kz7wUC1JQcg6M13LT6LtewGCDIPxit1Tb/V
7K5cBJN/lxyKvCC82Sau+MAJFGPjSPqldjaMqxlnp03WWCV6JHE0HsMXyk95fGRP
PsUnqogwOpAcFLOgmWVgi4aNPh6wF1j9MopXYSsCgYEAj7Ymu8Iv6uPwOfibeMnc
ZAffFNX49geK4weyfwwNsEKYJIHDn5DZdvcTzbOrj2Fgs46Ip6NRmcCyZ0/0FYXt
0mM8X347XduwIJfK4fsTzlBF2ukVG07DbQ2sBPRdSuGL/k+yrlGZPmSx/+Po/alV
csL1s4Brw9mQTRqDWosEsj0=
-----END PRIVATE KEY-----
Binary file added Certs/client.p12
Binary file not shown.
22 changes: 22 additions & 0 deletions Certs/client.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDoDCCAoigAwIBAgIUMvqM4HHGi7fzLwsHue4F1bOFSPYwDQYJKoZIhvcNAQEL
BQAwZjELMAkGA1UEBhMCSVQxDzANBgNVBAgMBlNpY2lseTENMAsGA1UEBwwERW5u
YTERMA8GA1UECgwIU1RPTVBOSU8xCzAJBgNVBAsMAkNBMRcwFQYDVQQDDA5mcHNl
dmVyaW5vLmNvbTAeFw0yNjAxMDcxMTE0MzFaFw0yNzAxMDcxMTE0MzFaMGoxCzAJ
BgNVBAYTAklUMQ8wDQYDVQQIDAZTaWNpbHkxDTALBgNVBAcMBEVubmExETAPBgNV
BAoMCFNUT01QTklPMQ8wDQYDVQQLDAZDbGllbnQxFzAVBgNVBAMMDmZwc2V2ZXJp
bm8uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3dHP/65zbYrI
eM5V9xmiNaC6x34SQ5Toqc1NjV1ATPEVcfz8mDoX1gEkoSqSr5cx5q84Ll+QUZAO
Zwide4l1dBBC7mVWhcK2gvfrYsLLvkeNZqr50u0djSZiw/WHvE59WEQfi/fCsc7X
ippZJUoJrw/0Jxm2dnbIusebSocAgRGXLi+8iMiXRMi01PQxqyDGhPqGKK+UaZLe
rL/5HklNqgZYFuExzirkMXO9+oGaSYF6fIf8ZCQcRilGwPybKCgF0CUUMwfWjlZS
iSRrr7d7yGbBMmmLw2qCOy6fbP1sweTn0EgnjFN6ZlOiYIO6sbPp+SMSQPS2A8BL
yo01vUggsQIDAQABo0IwQDAdBgNVHQ4EFgQUeoVF8KgioiQTecgwpJDHDjk/OBUw
HwYDVR0jBBgwFoAUvoiHnubnF+x4W+VRS2/CV4NEfl4wDQYJKoZIhvcNAQELBQAD
ggEBAE4FEBq43wgNePu7hydjMYY9rmcdwBQrYA27DCf0oj/TYuu84DWDyhSAF2aN
jW2KVoT+/vKQT27c/A8hQxtq2IcWKEC/Vh6lCC/fltQAdxA+mM3ZZAXNFeRFIYHx
z639EVvBFrIM06z+RmCi+tOG08mBMPyGouaCsLmSfA3Jl8rFEbUFxCOCyMDV9z2r
jVHl+YgNVV7jEEdBN84XIv8mbSIvTgYSJ4tD88eAIHiMDOB8CDXUSZUf4Zbe25PE
Hzkj2cH2f4vv6QkglBP2MEzeyiEMT3/gRSMSousD9U7cTXZAMRqfdkChAQLXgIMq
6qlRieBOhIbfGMJjtTkKOik+Ugo=
-----END CERTIFICATE-----
18 changes: 18 additions & 0 deletions Certs/server.csr
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIC2zCCAcMCAQAwajELMAkGA1UEBhMCSVQxDzANBgNVBAgMBlNpY2lseTENMAsG
A1UEBwwERW5uYTERMA8GA1UECgwIU1RPTVBOSU8xDzANBgNVBAsMBlNlcnZlcjEX
MBUGA1UEAwwOZnBzZXZlcmluby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCqECIEf4QSor/044Ad//04ObBKycfDpvjdLe29RuQadm73QwP4GSaw
aQzbGACfsjo0ObCawXUeplNVybkY6gMrF2z825MsA/DfAMrx5P/zmbExP0kg1BLd
0gxcjkjMYYsrjN+riq6ANwMwBd4xr/LAJv1H2VEvupyrh56XIJflN5xfshhi83My
CDCWlR1f275Cz4BJ+v5oUVPE1VT9jrsTHqxL1N/A525ASMz5KVyzeyJ+tis/N0v7
b5IQrm2rkIO3ZibYzeuQ9ZLpxIhm0VN9+IZf5vmIauVPtPvoGZrDfw1xXnZnyh2p
aWBuSz8XIEUkwcaP4xE42NbLCpT7jMfBAgMBAAGgLDAqBgkqhkiG9w0BCQ4xHTAb
MBkGA1UdEQQSMBCCDmZwc2V2ZXJpbm8uY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCg
vFPKFH3AkMI5i2L+9WqJkzvgMSrij3/Rf97OOlQKYRQ4GVO6f8eTKJZMITMvbjnd
iiSpsPq2LKRDspQDlxXqdtf0RtKPTnMkZtbJNuDv8HjWkOyqRGrxG1X/MqLTJmzF
Npzl5XuDGkfRIh8cqRf9RAXG3Iw/oW4/nAkT/goEEktt+3r2IhgP0YwkTmmxkftO
bZ6pkI1RVniXQXwOO1ka2ZiC18Re84hL3HEwZMrVWc0daIdiFNeQqE687KvSVUI3
RLHltCNrkDyf2tTxxEzTHOfFIw7L1m7FF81qbua5tQRlU9wzbiR/SaenWccK2U+D
9dxeFkUiQ5FV7S1VARAs
-----END CERTIFICATE REQUEST-----
28 changes: 28 additions & 0 deletions Certs/server.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCqECIEf4QSor/0
44Ad//04ObBKycfDpvjdLe29RuQadm73QwP4GSawaQzbGACfsjo0ObCawXUeplNV
ybkY6gMrF2z825MsA/DfAMrx5P/zmbExP0kg1BLd0gxcjkjMYYsrjN+riq6ANwMw
Bd4xr/LAJv1H2VEvupyrh56XIJflN5xfshhi83MyCDCWlR1f275Cz4BJ+v5oUVPE
1VT9jrsTHqxL1N/A525ASMz5KVyzeyJ+tis/N0v7b5IQrm2rkIO3ZibYzeuQ9ZLp
xIhm0VN9+IZf5vmIauVPtPvoGZrDfw1xXnZnyh2paWBuSz8XIEUkwcaP4xE42NbL
CpT7jMfBAgMBAAECggEALMvJGiQ4tuv14lzWz5AxtFDF1j1miGwAG8rQV85HoYzW
1/zoG78MSOWzBDdDWs2ItV8I3Qrefe9T/kH/psdlhEFMbSKtlqeHGEbOLn+iyBkQ
6qb/7UzPl2yP4wV7uZJsJVGbTUVfh9h1132ENNRi/iiHCRj+YLMoN6qmpKpqOG9K
D9lww23fwmAOAUqPYN8eWdqTwsIJ/kZlri+oYhRORse5+gGFHUWiBbfYNI4FTdqO
UnL5O+dX7TQsmvVOO3VLhsjapDdiPS+GX7r4TpM7iBfU0gNM+ZSlF+eH1iDNTMvk
4wL5W9hPv0N1On7+qa9EbiKRUr4sPX7PD805AQ/SbQKBgQDn/E/HtotkDXLOwKiq
6/iSrH45apTuWMlW6VkwI7omB4Uv6b9Yi255Otcx3HaUB0UwMCmUrtixLwYD2FdJ
d5caOF6aehiWeq1hhL7SZhhC2rGUe5yBusN+eU4w9HPnf+evpJeO1tKZMTeoYi9x
JDQw4OAuChrjxmTXK64JYg3Y0wKBgQC7qtq0urjkNUT06JXgv1T/WfpLFEiGuI0L
kwYBJUWuSJ9cpvWVdohnrVCJl7hCDaCNb+kz1OM9y5DIOxIBAGPInF8JFY30G+99
b57HjYFZbjZOvbArEBwwJ0HMGUKPMKa4M4v7WfRk/jRZ7P5DD7ybyP1wSSq0T4Oq
OcprU5uAmwKBgQCPWnkqXoFQeIcDgEY6KMtYR8NQU65ogvEYBeaZOtqi+W6yJu2Z
F8BSpaupIiUcYEm+92Qaftlk1DwRUDTQL1huWXsMVnqvMmvFoTQR7Aj99wpZSPFz
sSdxFiDdW5Hr8jwHa9xD5jgJdkKAiPvsHIUr1ypxCMmJC2XxGQrYvYD1BQKBgCuQ
HJapZXPr/abQOsJiB6wCyfwVqERFoNAX/+PSMBul1gBe7VEVo9JVRAW8h1Ql76gF
W1/hwiI9F82zEJnU6lTOH61vKHWK6ov2ligCbA1DbS3YEIXehnyTEE39axrsEzdd
F9hv6DBtZd+eCOOuSnzrKhGfml8iuhCQu7EwRj+TAoGBALsmqPemTVofqHtQ7Eaj
8Kd2XBCVZz9MpZO/O5pjcsHK/IrRhHcCVOwdVbUMmNNCLgqPUhdr/dWmYH74lfTU
dd1j38SaBJ6o+TX5ub85CSwKybJ0cc2vNDZVOEkX4XE/k32BWj66IaPobi7P4ypJ
pti/y8QiYdKKXy6FPNPXLHV9
-----END PRIVATE KEY-----
23 changes: 23 additions & 0 deletions Certs/server.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
-----BEGIN CERTIFICATE-----
MIID6TCCAtGgAwIBAgIUMvqM4HHGi7fzLwsHue4F1bOFSPUwDQYJKoZIhvcNAQEL
BQAwZjELMAkGA1UEBhMCSVQxDzANBgNVBAgMBlNpY2lseTENMAsGA1UEBwwERW5u
YTERMA8GA1UECgwIU1RPTVBOSU8xCzAJBgNVBAsMAkNBMRcwFQYDVQQDDA5mcHNl
dmVyaW5vLmNvbTAeFw0yNjAxMDcxMTE0MzFaFw0yNzAxMDcxMTE0MzFaMGoxCzAJ
BgNVBAYTAklUMQ8wDQYDVQQIDAZTaWNpbHkxDTALBgNVBAcMBEVubmExETAPBgNV
BAoMCFNUT01QTklPMQ8wDQYDVQQLDAZTZXJ2ZXIxFzAVBgNVBAMMDmZwc2V2ZXJp
bm8uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqhAiBH+EEqK/
9OOAHf/9ODmwSsnHw6b43S3tvUbkGnZu90MD+BkmsGkM2xgAn7I6NDmwmsF1HqZT
Vcm5GOoDKxds/NuTLAPw3wDK8eT/85mxMT9JINQS3dIMXI5IzGGLK4zfq4qugDcD
MAXeMa/ywCb9R9lRL7qcq4eelyCX5TecX7IYYvNzMggwlpUdX9u+Qs+ASfr+aFFT
xNVU/Y67Ex6sS9TfwOduQEjM+Slcs3sifrYrPzdL+2+SEK5tq5CDt2Ym2M3rkPWS
6cSIZtFTffiGX+b5iGrlT7T76Bmaw38NcV52Z8odqWlgbks/FyBFJMHGj+MRONjW
ywqU+4zHwQIDAQABo4GKMIGHMAsGA1UdDwQEAwIFoDAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwGQYDVR0RBBIwEIIOZnBzZXZlcmluby5jb20wHQYDVR0O
BBYEFPx0jGZj/HmaVJSJQfgz2x1fiqevMB8GA1UdIwQYMBaAFL6Ih57m5xfseFvl
UUtvwleDRH5eMA0GCSqGSIb3DQEBCwUAA4IBAQAXEDkfmca85c02UPOHa4lvXmwp
zDR0BQ9/mcqfIrLAVDAdn09wY3CsHCg4jld8Xq599vTUwZxEZdcl2MtVNNF4MQha
64TqQrlnFrJfNANq1Je/OEapzhappgNFVKtmDCT36uQ/9IDWNVfW6iM4kMNph5Hx
Nzpsc+NSHY9G/NLTYFM8UCFHEKvfloPnd6UUrpRC/EldkUjSS1GNF4Pbn5M9g+mq
keiq6MlY4aGO2d4brtjIngP5p3btKBmR10DYDsHwqcgj0uKCWXmIoh79T/rbi+kP
WbP1joY8/wAAn2GMqtQSmtWjbmOd60Xg01zAqw4P+Wb1RHz0wGQevKrUGvj5
-----END CERTIFICATE-----
3 changes: 2 additions & 1 deletion Notice.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ components that this product depends on.
-------------------------------------------------------------------------------

This product was heavily influenced by MQTT NIO.
It contains a derivation of MQTT NIO's 'MQTTTask.swift'.
It contains a derivation of MQTT NIO's 'MQTTTask.swift', 'WebSocketInitialRequest.swift' and 'WebSocketHandler.swift'.
It also contains a version of MQTT NIO's 'TSTLSConfiguration.swift'.

* LICENSE (Apache License 2.0)
* https://github.com/swift-server-community/mqtt-nio/blob/main/LICENSE
Expand Down
4 changes: 4 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ let package = Package(
dependencies: [
.package(url: "https://github.com/apple/swift-log.git", from: "1.7.1"),
.package(url: "https://github.com/apple/swift-nio.git", from: "2.91.0"),
.package(url: "https://github.com/apple/swift-nio-ssl.git", from: "2.36.0"),
.package(url: "https://github.com/apple/swift-nio-transport-services.git", from: "1.26.0"),
.package(url: "https://github.com/apple/swift-configuration.git", from: "1.0.0"),
],
Expand All @@ -26,6 +27,9 @@ let package = Package(
.product(name: "Logging", package: "swift-log"),
.product(name: "NIOCore", package: "swift-nio"),
.product(name: "NIOPosix", package: "swift-nio"),
.product(name: "NIOWebSocket", package: "swift-nio"),
.product(name: "NIOHTTP1", package: "swift-nio"),
.product(name: "NIOSSL", package: "swift-nio-ssl", condition: .when(platforms: [.linux, .macOS, .android])),
.product(name: "NIOTransportServices", package: "swift-nio-transport-services"),
.product(name: "Configuration", package: "swift-configuration"),
],
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ It defines a text based wire-format for messages passed between these clients an
STOMP has been in active use for several years and is supported by many message brokers and client libraries.

STOMPNIO is a Swift NIO based implementation of a STOMP client. It supports:
- [x] STOMP versions 1.0, 1.1, and 1.2
- [ ] Unencrypted and encrypted (via TLS) connections
- [ ] WebSocket connections
- [x] POSIX sockets
- [x] Apple's Network framework via [NIOTransportServices](https://github.com/apple/swift-nio-transport-services) (required for iOS)
- [x] Unix domain sockets
- STOMP versions 1.0, 1.1, and 1.2
- Unencrypted and encrypted (via TLS) connections
- WebSocket connections
- POSIX sockets
- Apple's Network framework via [NIOTransportServices](https://github.com/apple/swift-nio-transport-services) (required for iOS)
- Unix domain sockets

## Overview

Expand Down
2 changes: 1 addition & 1 deletion RabbitMQ/enabled_plugins
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[rabbitmq_stomp].
[rabbitmq_stomp,rabbitmq_web_stomp].
19 changes: 18 additions & 1 deletion RabbitMQ/rabbitmq.conf
Original file line number Diff line number Diff line change
@@ -1,4 +1,21 @@
# awful security practice,
# consider creating a new
# user with secure generated credentials!
loopback_users = none
loopback_users = none

ssl_options.cacertfile = ./Certs/ca.pem
ssl_options.certfile = ./Certs/server.pem
ssl_options.keyfile = ./Certs/server.key
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true

stomp.listeners.tcp.1 = 61613
# default TLS-enabled port for STOMP connections
stomp.listeners.ssl.1 = 61614

web_stomp.ssl.port = 15673
web_stomp.ssl.backlog = 1024
web_stomp.ssl.cacertfile = ./Certs/ca.pem
web_stomp.ssl.certfile = ./Certs/server.pem
web_stomp.ssl.keyfile = ./Certs/server.key
web_stomp.ssl.password = STOMPNIOClientCertPassword
100 changes: 100 additions & 0 deletions Scripts/generate-certs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
#!/bin/bash

set -eu

HOME=$(dirname "$0")
FULL_HOME="$(pwd)"/"$HOME"
SERVER=fpseverino.com

function generateCA() {
SUBJECT=$1
openssl req \
-nodes \
-x509 \
-sha256 \
-newkey rsa:2048 \
-subj "$SUBJECT" \
-days 365 \
-keyout ca.key \
-out ca.pem
openssl x509 -in ca.pem -out ca.der -outform DER
}

function generateServerCertificate() {
SUBJECT=$1
NAME=$2
openssl req \
-new \
-nodes \
-sha256 \
-subj "$SUBJECT" \
-extensions v3_req \
-reqexts SAN \
-config <(cat "$FULL_HOME"/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:$SERVER\n")) \
-keyout "$NAME".key \
-out "$NAME".csr

openssl x509 \
-req \
-sha256 \
-in "$NAME".csr \
-CA ca.pem \
-CAkey ca.key \
-CAcreateserial \
-extfile <(cat "$FULL_HOME"/openssl.cnf <(printf "subjectAltName=DNS:$SERVER\n")) \
-extensions v3_req \
-out "$NAME".pem \
-days 365
}

function generateClientCertificate() {
SUBJECT=$1
NAME=$2
#PASSWORD=$(openssl rand -base64 29 | tr -d "=+/" | cut -c1-25)
PASSWORD="STOMPNIOClientCertPassword"
openssl req \
-new \
-nodes \
-sha256 \
-subj "$SUBJECT" \
-keyout "$NAME".key \
-out "$NAME".csr

openssl x509 \
-req \
-sha256 \
-in "$NAME".csr \
-CA ca.pem \
-CAkey ca.key \
-CAcreateserial \
-out "$NAME".pem \
-days 365

openssl pkcs12 -export -passout pass:"$PASSWORD" -out "$NAME".p12 -in "$NAME".pem -inkey "$NAME".key

echo "Password: $PASSWORD"
}

cd "$HOME"/../Certs/

OUTPUT_ROOT=1
OUTPUT_CLIENT=1
OUTPUT_SERVER=1

while getopts 'sc' option
do
case $option in
s) OUTPUT_ROOT=0;OUTPUT_SERVER=1;OUTPUT_CLIENT=0 ;;
c) OUTPUT_ROOT=0;OUTPUT_SERVER=0;OUTPUT_CLIENT=1 ;;
esac
done

if test "$OUTPUT_ROOT" == 1; then
generateCA "/C=IT/ST=Sicily/L=Enna/O=STOMPNIO/OU=CA/CN=${SERVER}"
fi
if test "$OUTPUT_SERVER" == 1; then
generateServerCertificate "/C=IT/ST=Sicily/L=Enna/O=STOMPNIO/OU=Server/CN=${SERVER}" server
fi
if test "$OUTPUT_CLIENT" == 1; then
generateClientCertificate "/C=IT/ST=Sicily/L=Enna/O=STOMPNIO/OU=Client/CN=${SERVER}" client
fi
Loading
Loading