Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDZxz3BDLxULvL/
dP++EOjQYdDJU3kg+6GRC/VaMBIe2wB8sZpvjrI5YMmDJYMXccLh076s38doQWy1
acIBQMBQHYP7A6FlIybj7yBwzR/aVVWt3+97FuJcmQFBfACKNyBAvD49p6BxjNJT
IFg6V2RJDITCAGTeUwl+gATLrwImDdWAXJUJUOSqtsCRy9OButltUDoqlTajWK3+
+MSiHiUKnDq9skGoChDNqye9+qliRZuCX/XkUn+ZLa9wq0SarNfcE8YX4aZjVGk5
9bl/JOD3u481qQCoMGCvH7qg4GfoOA3WDb3rA/5ww5immgZyxiW5z00H+taTabDU
NWkQsvNJAgMBAAECggEACrCK1ZRjVKMC0rr6mCjikqLwgYdXQ2ESmMjsW8dPBmRz
0UsS9G2dzi7z6Tvww7h160mOWxQ3aKTIeh2lNBRKdExEl5BBrnITpT3OOvc4nGoS
pPCgY8t3ZDnu67jTWnVy//Z1fCeDmrtBsiqc5g022xaSGCc2jEqpZUQRqDFQks9F
FYDGVdEskNcKZRgLlTU66t0r7ha1LUNjlRbVnrHdGrlTVx8wJip0QpPpU3/vzdJf
5IylhrFsWO1keigAsjhw+eB5bv52tcbm05lvoTraARc2whY//r77TDKf1n4mie4J
LRdlIuUtK6d7m3d3ztpdxUrOrXxvYJHl4QamcHM+gQKBgQD0O8lz3kG7sYOzE5T7
zb2VvbnR7k0GbsJfhpI0OSkGj7WTw88Fik1RdYfCv6JU17GNIa+r5WXr+2tsDfP1
lIVMkLgBTWaBpancOnCML04KPLcnCrrO09WHg/w2PZZmEe2pX2AssUgiSu6FgAx9
XhbaN55J2v0jPboa1KpQMaltyQKBgQDkRSxBSBDFW41gqeYN8mASxC6Kl+18QbZw
fh39dmr2s+0GBOW1yUZCGilPnQb3Cy+UMClQlXlpJGZOSMO3Drz6+FIBX738FgV2
i+OUsYP/NjCyCLrrIfUfC7DZVyn5PGqDuoEu4YOXZ2JmDCfy/x/fE+MLxFgGb6MT
c+W97soZgQKBgBkqg/KVh05w1zI/pU1hANUKLLiOBo/QH+U595y7+xc6/anRNmbK
vnbTVn7hwjdd1mTFgNWEmMD9Mi97LJU0jZu7GcrAj/xx9pPDzc8UHMV/RhwWxfMD
7u+80ONB61pvJH8cXcudJOKrt/I3pJHSfSZVLtFLaGQWOzQCj94dj+jJAoGAR2K2
f0fZLs79vIAFWNE2aEf/wgnXE+e89RsLp+szcik8c4huidYC6cMirioONo3B+FbD
ZNcJ2+6tK8gnpISwZs/nXVSipkYAuVzv8907yUEaI2MFiWjaLjZKvP08PBw/tyhJ
I+8UZvHG3ODqUVyli+69Lz3cxU5+MiQpcadOfoECgYBWr177O3tjVIg7eHtjE/HA
h3a3v0XmVeq1UxQw/WC7CC9Yh6SE5odZtQdGlqzmCsOF/H08I8UT5U+BsSEb6nSv
sFJiERnKITBhrk+1pOdNehkuB2Aj2IYeKpGp6GkS8c4DLaHUfV36EE3G5wOn8fsD
Nsz2sfx29zjlCDzXd+RpjA==
-----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-----
MIIDrTCCApWgAwIBAgIUK0VkTAGFOug9F7KgRnAb4Y5IX/wwDQYJKoZIhvcNAQEL
BQAwZjELMAkGA1UEBhMCSVQxDzANBgNVBAgMBlNpY2lseTENMAsGA1UEBwwERW5u
YTERMA8GA1UECgwIU1RPTVBOSU8xCzAJBgNVBAsMAkNBMRcwFQYDVQQDDA5mcHNl
dmVyaW5vLmNvbTAeFw0yNjAxMDgwOTU4MDFaFw0yNzAxMDgwOTU4MDFaMGYxCzAJ
BgNVBAYTAklUMQ8wDQYDVQQIDAZTaWNpbHkxDTALBgNVBAcMBEVubmExETAPBgNV
BAoMCFNUT01QTklPMQswCQYDVQQLDAJDQTEXMBUGA1UEAwwOZnBzZXZlcmluby5j
b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZxz3BDLxULvL/dP++
EOjQYdDJU3kg+6GRC/VaMBIe2wB8sZpvjrI5YMmDJYMXccLh076s38doQWy1acIB
QMBQHYP7A6FlIybj7yBwzR/aVVWt3+97FuJcmQFBfACKNyBAvD49p6BxjNJTIFg6
V2RJDITCAGTeUwl+gATLrwImDdWAXJUJUOSqtsCRy9OButltUDoqlTajWK3++MSi
HiUKnDq9skGoChDNqye9+qliRZuCX/XkUn+ZLa9wq0SarNfcE8YX4aZjVGk59bl/
JOD3u481qQCoMGCvH7qg4GfoOA3WDb3rA/5ww5immgZyxiW5z00H+taTabDUNWkQ
svNJAgMBAAGjUzBRMB0GA1UdDgQWBBS6S/spfRhpwIHgrwq4kfSkaAumBzAfBgNV
HSMEGDAWgBS6S/spfRhpwIHgrwq4kfSkaAumBzAPBgNVHRMBAf8EBTADAQH/MA0G
CSqGSIb3DQEBCwUAA4IBAQCMPdS5JckDqQ7zDEVEnumpPbBg37/pQea8KW5hnoNe
uBai1ycqoSfOhfBrpbTQTliKETCvD+Ts25pdzxeWhcILvH9BwKcAihhWRyDWsKUx
oozrjiZhXEFzgT4yFv6kiE1g51HrudllWpzIJar0ufg/0Pm2ZSOVbSTsDqO8kP/M
KUBbR59yfKTX2eHtkEt0QZ8kODR00FZ/xuR4MG75Ukbzjl6OnuFKa2rpy3vD1nDW
VzQsIB7CYw4VOCbCL+IGU9Bwe8aF/KUOQeWZgU4E7j15R/D3aLmtoAm2KcOdsMkd
pBSBbWuYZdeLF1i5838WkyrnqQxEgV+2pN37C9yHFgKQ
-----END CERTIFICATE-----
1 change: 1 addition & 0 deletions Certs/ca.srl
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
32FA8CE071C68BB7F32F0B07B9EE05D5B38548F8
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
ggEKAoIBAQCd3Q9zC3Jmf9B3VUdzp2TBhO1dnlo9thFyOB4AxnW8TGJ5kYxaOTRn
NGfPKiGRSOECe2isPra2hoj0eub6sowszFlYQNsbYh2jEhCWL8G2GJD0f3xnpqJx
lyb/YYLiYcDJXpucbvMdWnaApqaEIcA25g3rZ52PmkIsIFKM00K4vTmvDpV2dwC5
59+p3da+sEYp9N5B7o8ypZwEVajY5z5glisaxGos+qDg6wHLPoxMRKojoYcE4urK
2O9A6LEDfUWDxTLkSjiVQVHD5KK5N/kAZdB57kHR/3C5gmauYus4lJfoBUA9YcSH
iyq+EDzE8lEHg+UQmNxn9ywVAT3PsXlTAgMBAAGgADANBgkqhkiG9w0BAQsFAAOC
AQEAg2DnJTIarPZOQ3gorJ2Vnarh25RIw5Y4uEwiVkp0yGM7dvX5gakN4AOwhtfY
2aHa/ChLA6UxMkd4zfjON1S7LxV0dLrtHQ2hCNp0OKBOFoF25EzLNYB1opicKYJI
oSeOY+9f0OpfGEkbYHM3Fr0eqUSjnWxOcescFYIVYAFwSvgM3tGV8Jd6ka2pRLkJ
gi9BM97N7jCCAc2L+bj0NKci1uvZTeQ9duhjifLoTJ53a7+VqVbnXTKeISMh1uQJ
IIdumoq1d6lK+f2jZboVWOTgjiXRD9ubbtuES1jMRimIHF/jB3ReB1ao8UcJfvti
fHKTKClviUj53X0ryTqpmpNBmg==
-----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-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCd3Q9zC3Jmf9B3
VUdzp2TBhO1dnlo9thFyOB4AxnW8TGJ5kYxaOTRnNGfPKiGRSOECe2isPra2hoj0
eub6sowszFlYQNsbYh2jEhCWL8G2GJD0f3xnpqJxlyb/YYLiYcDJXpucbvMdWnaA
pqaEIcA25g3rZ52PmkIsIFKM00K4vTmvDpV2dwC559+p3da+sEYp9N5B7o8ypZwE
VajY5z5glisaxGos+qDg6wHLPoxMRKojoYcE4urK2O9A6LEDfUWDxTLkSjiVQVHD
5KK5N/kAZdB57kHR/3C5gmauYus4lJfoBUA9YcSHiyq+EDzE8lEHg+UQmNxn9ywV
AT3PsXlTAgMBAAECggEAEr7VdFBM094OkkphSIWn7GY393tzyiCCFCw/Z9EpLuRq
dyFw50/OqLNWNl6Ri4UkxEeE55svgB9xSN1ald9jeiMD4vvEk40EPuvIu293/a26
HMZnWTmLeu3mIWzh/rbOjpA6QzUA5SCWXMgtPW3H5jJNlIFXz4ho84DHvKrjdo3r
RynMdSx4U2KKTTJgl+kd3oYMjH3/6wSfiDcIb1kwabrYm45igmZz7lgkwGpyrcEc
ZUNztsNOfKSiZqyh9BY1Ri0mxHK6GYs3XdvCqgDdvT+JnCXw6QErTvj+kRvlCOIu
3dg6o0GneY9YY8Fsz1sY5z1wbjdsx/wovLFpNrckBQKBgQDQ6Dbuy17goQw+p3n0
FCyagI1NYnuSF5fYDfvic/dFCr9nBc7E0Z1Qy0pqgUH4PVAqkBFM76jOmkeNyfyx
pl3E7tKfgzAgExEexc6FYLf6oiv2ChfLPUVevsBZMUE9/k8KC5O9IsGev3/ewY8z
DaA/4X4rBqG0cuAMJBS9gYZPJwKBgQDBcy45HvovT4eQMoK/nf7/lceK0vxPMkV0
zz8aQqaGkf2/SxQo+AJ7eaIiSE7QhmrV9ZCUGbjZX+rUBlL9ZM3rg19rJQHSldPd
JKhtt7zSIALVmFd3pBHw3B3dBN8c6REhzwefEkKtgIuzklg9V5jZnWwuKUPXcU0S
ajSbMB4f9QKBgF740tBowG9ah9iMBtNBwK1Ut+hwV0EpXKyqXtKqacWHh1BswX2U
1fH/GYuly7nxFdrjuBnD8nhKhzEcnLaerY50DGjcGSrbwDK/No5IVBurUlT+babF
6h2Slpt12vU2AfTNIpMfk+p5oMZCNLm+/hVMjDE/SJBikRyz4oHsuoSNAoGBAJV4
t8hvBQS1QJvMS3ZfT/6P7oR3jXhr8XrV/3387cqg1x2Nl2AocVKSoxI2KJ+6nKYB
fdrRHSDomfuFf25HC0zkTz/sckISfocqofFUvNLm5QnBEiRhY3NlwLVb5EDkXNZw
rwTcCSUiY882TnPnUTUkC8iHHeJDqzeFVGxse3pZAoGAHO+7OChgyKxV6IT4B4/x
pLURZdcV9z2KmhK/5xJ5S/9McFf7bHnv/EfikcqK4wZrawW9t1GZl4brz1EKuck+
qSi2+W6u/gdgy8W0eteRB6rfyCza3+EGmJ/0ePrpiHwz1LPOMfIPQE6+ufvuTzIB
TfGS6WhO6RJZpclS2KCz1HM=
-----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-----
MIIDoDCCAoigAwIBAgIUMvqM4HHGi7fzLwsHue4F1bOFSPgwDQYJKoZIhvcNAQEL
BQAwZjELMAkGA1UEBhMCSVQxDzANBgNVBAgMBlNpY2lseTENMAsGA1UEBwwERW5u
YTERMA8GA1UECgwIU1RPTVBOSU8xCzAJBgNVBAsMAkNBMRcwFQYDVQQDDA5mcHNl
dmVyaW5vLmNvbTAeFw0yNjAxMDgwOTU4MDFaFw0yNzAxMDgwOTU4MDFaMGoxCzAJ
BgNVBAYTAklUMQ8wDQYDVQQIDAZTaWNpbHkxDTALBgNVBAcMBEVubmExETAPBgNV
BAoMCFNUT01QTklPMQ8wDQYDVQQLDAZDbGllbnQxFzAVBgNVBAMMDmZwc2V2ZXJp
bm8uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnd0PcwtyZn/Q
d1VHc6dkwYTtXZ5aPbYRcjgeAMZ1vExieZGMWjk0ZzRnzyohkUjhAntorD62toaI
9Hrm+rKMLMxZWEDbG2IdoxIQli/BthiQ9H98Z6aicZcm/2GC4mHAyV6bnG7zHVp2
gKamhCHANuYN62edj5pCLCBSjNNCuL05rw6VdncAueffqd3WvrBGKfTeQe6PMqWc
BFWo2Oc+YJYrGsRqLPqg4OsByz6MTESqI6GHBOLqytjvQOixA31Fg8Uy5Eo4lUFR
w+SiuTf5AGXQee5B0f9wuYJmrmLrOJSX6AVAPWHEh4sqvhA8xPJRB4PlEJjcZ/cs
FQE9z7F5UwIDAQABo0IwQDAdBgNVHQ4EFgQUnZrMgVKUoj837kqd45OCwOGsPOow
HwYDVR0jBBgwFoAUukv7KX0YacCB4K8KuJH0pGgLpgcwDQYJKoZIhvcNAQELBQAD
ggEBAIylv5wAIzbEud5u+A0aP04k1sClaJuvh51leke3EObMBgBD4eT2IT9uw1Db
BgcDilIGd7mXovSsRJ8nGmXDm2U+rQb1QyL+Iqt6vKI64j9TDNdw8zGrvZbGaVDC
1ViuSwykSWc+D1uelSBuwMmUacPuxGUMstBGTdwA8UpGxtsCVniUJ5h07wrp+uCQ
mreIpmi4bhIWytdM7iZRPrlq2Vf6pRFC+wSbe6v/tWvI0/CUKW2eSi1g1avBKTcp
RtBpJNEzZr1yLTk6J8YCR304wGm0OitLW70Gf2bc8c/tesDalsMD8ANuy+u5SAzz
NhHLIVk/+/BZQiawxlDNOnR+jQs=
-----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
ggEKAoIBAQDIiBLlPDzdawP+4vLbvbH3Vj0juSa1J31ZOrDMK3YAynel7un9vMLt
hPuZseF9eqWkuBrh2NWu5D0vMtNZcxjGnP/iDIyslMM2RrWaTI9R+74Z5fTho4T8
HBIxpFdryzeAbLiAhzU7n04crcDjDwDsxSDGe3+MLUOCv3IzOoG6eyUh7LBpq2wi
5y5q5GVIyZK3trs3eSVXhhE5b/zY/JeXNeovTrktz8X1nBORCTgWJEJle7e4Pv23
WBZH7esDmbp0gLIWIh1Ox8Fo7YtgiDWAEoQLko95uKmRoMR3261cAZxuA/LnteNL
MLHJNGtM2hwXjclqBGyVOf3Ws3KP5Y6HAgMBAAGgLDAqBgkqhkiG9w0BCQ4xHTAb
MBkGA1UdEQQSMBCCDmZwc2V2ZXJpbm8uY29tMA0GCSqGSIb3DQEBCwUAA4IBAQAb
nWUDW1cpizI45fc7KpV/M4R5MOm1RNoi2b9Yobwwcy835DrBwaLwZkWzOmVGYag/
aaSKf/vZ1eG6fC32i5qjJJ18JWdip+oB+oiiF6yMUThaPN6zvlYbqUhqlSd7WfsM
hhaR5ixtm8RFIbhRdoH3Eljwc5/xG0WDjH2vPwB22ZajMNUcBMe4thPgEFSuxFsy
dCwQQMVWj101lD4nKbrMkALDd43FZBmlIFdMj6bw5klYwjBudIEcffjLkQI12l/d
A5xKFl+JAtp7GThIU1XezcXrgl4bHE3rjz8GAbA9CeAe3hABSkZk2b7lLJSGHdkx
pveAu5BqxcHMsNTxme6B
-----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-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDIiBLlPDzdawP+
4vLbvbH3Vj0juSa1J31ZOrDMK3YAynel7un9vMLthPuZseF9eqWkuBrh2NWu5D0v
MtNZcxjGnP/iDIyslMM2RrWaTI9R+74Z5fTho4T8HBIxpFdryzeAbLiAhzU7n04c
rcDjDwDsxSDGe3+MLUOCv3IzOoG6eyUh7LBpq2wi5y5q5GVIyZK3trs3eSVXhhE5
b/zY/JeXNeovTrktz8X1nBORCTgWJEJle7e4Pv23WBZH7esDmbp0gLIWIh1Ox8Fo
7YtgiDWAEoQLko95uKmRoMR3261cAZxuA/LnteNLMLHJNGtM2hwXjclqBGyVOf3W
s3KP5Y6HAgMBAAECggEADc8ZBgIk6tZwuv+j26/vbmnY4fnhCX6Dqj5ZaGXhxWIr
5RhTsq5p+fM7ZDUUoxBsEbC/4SeOZ3G+KN7mIPXFEgBDuqxEj6na24T5AnwdLncY
ey4Ts+oPwVCpjBOWFY0z8DsMZYVqDAYHWgA5FSm2VZepjyF4Ag4n5PwMAC0aO94Z
vF70zg2J6c8QYQDwMSnzNKpCTdlSEbQOA4r8NJ9Bw2g7Ufg4fklOfH8dEmFWLGmx
WYGdNQR025pFBfSLFbyZgKNV5lD+KxgAacSrt10+8yjQQM9dIHrHlvRYX0CGKOiN
s2+zO74DG41KEbknjyrusWME3mSAvlEiOTuDWi7h4QKBgQD11lJ/+zw3v48v4YPt
XgGIZqFRBFZLs5jVs0l9zb/6ZWXFtL7C1UcA831KARrFx0HzSvJDGKi7w/yTXGKw
HRveJQxV59wolHo19v0DvcfDw9fVYcHM9i6jFrOxyOkiZnBajDSYkrIHRGIMg9et
noHtPgEswHD4A61T9WJ7jyzU0QKBgQDQ0kjy8OHnkAtZH2WBf3MaG63WMrQgqKC5
/KYkTl96Ym06wqERJePiAYTcMl5j6gjWuM1CGjBUcIrXXvJ3oxBBGOTtwcOwFed3
t8Nn7Kqk4NSNyMCYxemo5iPZz6B+vSRsmLmz4DRPqCrYYSUT4oDrYroIwcbIpS7s
V1G50FJj1wKBgQC8eZ10m2Q2hXm8xtQDdvAL6EtDNuUGUuIY7MSqW8UUrwqQwhsC
esteEk97Hk+tVC/e3BXSlSRAGGkbfVf4F8kWziaf8gwbXII5v2uJo8V09EAUS0du
4UsuJCiOZC9A/XKkKRvl4Yn2Alp9p9MCPCT2g3QZIE08CG2pkdb4TfOcEQKBgA3A
i4VUT8xMNDMeWjT5C7+AayZcGHi+IjedZ+OkNa19pevkvW6/rA5KQ1GtD4JM+2AI
s5vS1bP55Wrhmd4/IubmmMz/ob+K8b90nq3NbD+HfvgHbIejIQw6e8nwXoV6N1ff
hvtNnKRSUuAFJcf1dsAJtG63NDwqhLiT15IBIivpAoGBAOHxyCpGfOq1n4xGMeFo
xvW4M3FoppiBe1RSt/ZQYQqii6P5rnkBpqHuFbXzOJIQKAy+QPzBoJO14Qc7dLq6
LkcmINS02UGanDilJk5GAZOU4SHfXiwhqgkB3Sn4Taw2gC+C1exxCH0GBb2aRRwh
AKRKQxvEbjUQlLemy5oyc2WH
-----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-----
MIID6TCCAtGgAwIBAgIUMvqM4HHGi7fzLwsHue4F1bOFSPcwDQYJKoZIhvcNAQEL
BQAwZjELMAkGA1UEBhMCSVQxDzANBgNVBAgMBlNpY2lseTENMAsGA1UEBwwERW5u
YTERMA8GA1UECgwIU1RPTVBOSU8xCzAJBgNVBAsMAkNBMRcwFQYDVQQDDA5mcHNl
dmVyaW5vLmNvbTAeFw0yNjAxMDgwOTU4MDFaFw0yNzAxMDgwOTU4MDFaMGoxCzAJ
BgNVBAYTAklUMQ8wDQYDVQQIDAZTaWNpbHkxDTALBgNVBAcMBEVubmExETAPBgNV
BAoMCFNUT01QTklPMQ8wDQYDVQQLDAZTZXJ2ZXIxFzAVBgNVBAMMDmZwc2V2ZXJp
bm8uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyIgS5Tw83WsD
/uLy272x91Y9I7kmtSd9WTqwzCt2AMp3pe7p/bzC7YT7mbHhfXqlpLga4djVruQ9
LzLTWXMYxpz/4gyMrJTDNka1mkyPUfu+GeX04aOE/BwSMaRXa8s3gGy4gIc1O59O
HK3A4w8A7MUgxnt/jC1Dgr9yMzqBunslIeywaatsIucuauRlSMmSt7a7N3klV4YR
OW/82PyXlzXqL065Lc/F9ZwTkQk4FiRCZXu3uD79t1gWR+3rA5m6dICyFiIdTsfB
aO2LYIg1gBKEC5KPebipkaDEd9utXAGcbgPy57XjSzCxyTRrTNocF43JagRslTn9
1rNyj+WOhwIDAQABo4GKMIGHMAsGA1UdDwQEAwIFoDAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwGQYDVR0RBBIwEIIOZnBzZXZlcmluby5jb20wHQYDVR0O
BBYEFKZY3up3J8Fd4et0kBlaPl8GTEqeMB8GA1UdIwQYMBaAFLpL+yl9GGnAgeCv
CriR9KRoC6YHMA0GCSqGSIb3DQEBCwUAA4IBAQAUT14J8+++NJXo8WDQ/Oclmiwi
xG6/tyctPSVJBuhqzNR8y3R20T+TD3t43J7SzxW1uINqsAEz0nJigbNjNOeTS7Zf
uZ2xzLvwtPsOKPi+2lb+D+Zcncqp0VeIsOsOcxMBbSEN+mUD8qhmsN7P0jPrhMHp
s2sKj2dURVdysLGbedTNdNWCjoyRd8T+v4RxPMQUimVOSV6dAEHdvWnjv0YZLAX1
/teX8VelYDPVv3zn8xhbqSP5G7rNMiJ7Trt3JwST5O7/db7IITLi8Fyx967p+ssX
qg32zy79FeqPfV1g1MPOlu35sLkFrI6B5/C3eOQ9BKTMEPkDfAuou2IQqh5z
-----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

SCRIPT_HOME=$(dirname "$0")
FULL_HOME="$(pwd)"/"$SCRIPT_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 "$SCRIPT_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