Skip to content

Commit

Permalink
Prepare for 37c3
Browse files Browse the repository at this point in the history
  • Loading branch information
stblassitude committed Dec 17, 2023
1 parent c9af96e commit 62584f4
Show file tree
Hide file tree
Showing 73 changed files with 455 additions and 652 deletions.
10 changes: 7 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@
/.idea/misc.xml
/.idea/workspace.xml
/venv
/*.wav
certs/*-key.pem
certs/*.p12
*~
*.pcm
__pycache__
*.pyc
*.wav
certs/*-key.pem
certs/*.p12
certs/old
.DS_Store

.gitsecret/keys/random_seed
!*.secret
44 changes: 35 additions & 9 deletions c3lingo_mumble/play_wav.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/usr/bin/env python3

import audioop
import logging
import math
import sys
import time
import wave
Expand All @@ -8,10 +10,22 @@
import pymumble_py3


def play_wav(server_args, channelname, file):
def dBFS(value):
if value < 1:
value = 1
return 20 * math.log10(value / 32767) + 3


def volume(buffer):
return dBFS(audioop.rms(buffer, 2))


def play_wav(server_args, channelname, file, level):
mumble = pymumble_py3.Mumble(**server_args)
mumble.set_receive_sound(True)
mumble.start()
mumble.is_ready()
log = logging.getLogger('play_wav')

if not mumble.is_alive():
raise Exception(f'Connection to "{server_args["host"]}" failed')
Expand All @@ -34,7 +48,13 @@ def play_wav(server_args, channelname, file):
start = time.perf_counter()
data = wf.readframes(chunk)
while len(data) > 0:
mumble.sound_output.add_sound(data)
v = volume(data)
log.debug(f'Seconds to send: {mumble.sound_output.get_buffer_size():5.1f}s, volume: {v:5.1f} dbFS')
if v > level:
mumble.sound_output.add_sound(data)
time.sleep(mumble.sound_output.get_buffer_size() * 0.9)
else:
log.debug(f'Skipping chunk because volume {v:5.1f} dBFS is below {level:3.0f} dBFS')
data = wf.readframes(chunk)
now = time.perf_counter()
elapsed = now - start
Expand Down Expand Up @@ -62,21 +82,27 @@ def play_wav(server_args, channelname, file):
'debug': False,
},
'channel': None,
'loop': True
'loop': True,
'level': -999
})
c = config.get_config()
for k in ('file', 'channel'):
if k not in c:
if k not in c or c[k] is None:
print('Missing required parameter --{}'.format(k))
sys.exit(64)
for k in ('host',):
if k not in c['mumble-server']:
if k not in c['mumble-server'] or c['mumble-server'][k] is None:
print('Missing required parameter --{}'.format(k))
sys.exit(64)
print('Playing \"{}\" on channel \"{}\" at {}'
.format(c['file'], c['channel'], c['mumble-server']['host']))
lh = logging.StreamHandler(stream=sys.stderr)
lh.setLevel(logging.DEBUG if c['mumble-server']['debug'] else logging.INFO)
lh.setFormatter(logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s'))
logging.root.addHandler(lh)
log = logging.getLogger('play_wav')
log.setLevel(logging.INFO)
log.info(f"Playing \"c['file']\" on channel \"c['channel']\" at c['mumble-server']['host']")
try:
play_wav(c['mumble-server'], c['channel'], c['file'])
play_wav(c['mumble-server'], c['channel'], c['file'], c['level'])
except Exception as e:
print(f'Unable to play file: {e.__class__.__name__}: {e}', file=sys.stderr)

26 changes: 22 additions & 4 deletions c3lingo_mumble/send_stdin.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
selected Mumble channels.
"""
import argparse
import audioop
import math
import os
import re
import struct
Expand All @@ -23,14 +25,26 @@ class AppError(Exception):
pass


def dBFS(value):
if value < 1:
value = 1
return 20 * math.log10(value / 32767) + 3


def volume(buffer):
return dBFS(audioop.rms(buffer, 2))


class MumbleSender:
def __init__(self, server_args, channelname):
def __init__(self, server_args, channelname, level=-999):
self.server_args = server_args
self.channel = channelname
self.level = level
self.count = 0

mumble = pymumble_py3.Mumble(**server_args)
self.mumble = mumble
mumble.set_receive_sound(True)
mumble.start()
mumble.is_ready()

Expand All @@ -48,7 +62,9 @@ def __init__(self, server_args, channelname):
raise AppError(f'Unable to move to channel "{channelname}"')

def send(self, data):
self.mumble.sound_output.add_sound(data)
v = volume(data)
if self.mumble.sound_output is not None and v > self.level:
self.mumble.sound_output.add_sound(data)
self.count += 1


Expand All @@ -58,8 +74,9 @@ def __init__(self, config):
self.mumbles = {}
self.maxchannels = len(config)
for (index, params) in enumerate(self.config):
self.mumbles[index] = MumbleSender(params['server'], params['channel'])
print(f'Connected {index} to {params["server"]["host"]}/{params["channel"]}')
level = params['level'] if 'level' in params else -999
self.mumbles[index] = MumbleSender(params['server'], params['channel'], level)
print(f'Connected {index} to {params["server"]["host"]}/{params["channel"]}, minimum level {level}')

def start(self):
self.thread = threading.Thread(target=self.send, daemon=True)
Expand All @@ -84,6 +101,7 @@ def send(self):
streams = self.split_channels(b, self.maxchannels)
for index in range(len(self.config)):
self.mumbles[index].send(streams[index])
time.sleep(0.005)


if __name__ == "__main__":
Expand Down
30 changes: 30 additions & 0 deletions certs/Saal_1-0-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFOzCCAyOgAwIBAgIUJi+EgrC5mq4ipYm5Bb2f+l3rAj8wDQYJKoZIhvcNAQEL
BQAwRjEQMA4GA1UECgwHYzNsaW5nbzERMA8GA1UEAwwIU2FhbF8xLTAxHzAdBgkq
hkiG9w0BCQEWEGluZm9AYzNsaW5nby5vcmcwHhcNMjMxMjE1MjIxOTI3WhcNMjQx
MjE0MjIxOTI3WjBGMRAwDgYDVQQKDAdjM2xpbmdvMREwDwYDVQQDDAhTYWFsXzEt
MDEfMB0GCSqGSIb3DQEJARYQaW5mb0BjM2xpbmdvLm9yZzCCAiIwDQYJKoZIhvcN
AQEBBQADggIPADCCAgoCggIBALkenVIk+A7pauK+UI6V1n5U/CurYfNaeX++ZwXq
gjOtg6ZZ+bxxeEYyJbL4OAJ+Euk5ZIPE0C0NYTLnvH8BFKHZW3AIJd5c9eOg+1Vc
gvtVzZy+fMKWsKskx/c3UkcSXYG/cwL6kpVw/jNekoLjstkCfdKCpuAMmbllmDzF
uqXOp8Ldv8gTt3v03U/f91HDar7bmpBmouxaTC7GjYLiVz6rdqyvSMsJBEDnMGtY
KhI2ROZJ3u0uU2Be1oVTdZHbzoKWhegwZd5AMaokAfdvLKMU41krvSil7udrBkzP
TF53WlJKtDTTi4ZbVIgamJvqjs7VHKLe9L3cOavyRhYB+1vndbaDsI5HadGvR2HS
4Y5zqqBAy788+ja39XmnRcZdqKpl+4dAN3hl0/qCcul26sxJrU3N08058fDteU8V
0n86j4IM7aBweNWyd8JmOUdyKZ0blvA57Gp0EBKE8KZbFVjh8Aq7yYGM3LHLcXbn
ZI/zL6Lj+EhDHyrdGlWbmOfA86AgCi7ZsRcUrLOOh3lHylYNUuzA1sFS/8Ouaf0F
qcnZGhmUnmjL7uYHt4jbQIbjxD2ak1Aenko62bOBOTiaACcdqp9yfqRniJhvM15P
a12N2Z4zgJAnIBpXybtVq4omzZl+Ojl87uahxKoXYrCxGZ47TWf8tL3dMW6lDsm8
FdHnAgMBAAGjITAfMB0GA1UdDgQWBBR9x3aWARbZLqb9MdK/5lUT0oXskTANBgkq
hkiG9w0BAQsFAAOCAgEAi+wFQCIvnARIMJARofJV3YYlEjsj3PyzM3ItNJ2IFfnh
uz/Gie2pVRq2hFHgPrAU5rTQaJaOI4TYdkEsoBRhH1j1YdRWmlnRL6BQXG5nreZ1
b2lotWL1Z/wBkJUcC/mCODCCN/4Y4gMPQ/8DB7rHOS3LgY4P7WSdifPA0+xz8+1p
dRo71WVPY7mjbyceSq/+64KVDPrjTDgk7Wbm0KIGPH2iVJmEMN0YK+DgbwMNPn3s
1B2ci8eusy3PaCduszdliC5MAJIKQly/cJERG4zh+ZTUHo6fYWH9Xu0GJcBzYlEM
c67EvFR17f3teeaPfgZudynVk7779xoZGuK+azQBL6u34X/NI6IXxYx3sQqUexIs
mN90Pl+6S33xuLye/M8kikoFljE1Tnmu9aoBmCwPgnJU07F17o0bofBk4Qw3X1kQ
FaqQWGzeTXQmAzCEDBMorLF28DfllGFQzswoffTIyCtx1BLMadoPBhX5bsJfgo3I
QWvvDU0FqhruXJW50/li7Waoe4jwXKxDjXa8AAmdArqxkn8LL8xpa0NsJK4bG10v
SUf2IKmFRRm8Q7iQkKaZguMZn3N/6JnCzMMYjPXAPB7fbR7HU3be8yZBHvH5pSmP
r3lyN9r/N0SGe1lJuvn2fTJ0mjqdSeyhtTjm+TPhJF2CiZioeWc8EGZjWIXEldU=
-----END CERTIFICATE-----
30 changes: 30 additions & 0 deletions certs/Saal_1-1-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFOzCCAyOgAwIBAgIUaImUQGW28/WC/a/dC5JSq5fXeokwDQYJKoZIhvcNAQEL
BQAwRjEQMA4GA1UECgwHYzNsaW5nbzERMA8GA1UEAwwIU2FhbF8xLTExHzAdBgkq
hkiG9w0BCQEWEGluZm9AYzNsaW5nby5vcmcwHhcNMjMxMjE1MTYwMDU2WhcNMjQx
MjE0MTYwMDU2WjBGMRAwDgYDVQQKDAdjM2xpbmdvMREwDwYDVQQDDAhTYWFsXzEt
MTEfMB0GCSqGSIb3DQEJARYQaW5mb0BjM2xpbmdvLm9yZzCCAiIwDQYJKoZIhvcN
AQEBBQADggIPADCCAgoCggIBAMXYKxsrbP29LBccb999FHJ10V3FTaRNu2jFypYF
wnZYXAMKxNkOIysvvKXBO9pfXlSqTgU9iw3TyXH9+35sZZ8WrQKLagCYLM3GWmeO
sq6Yw+nxi9IKQ8dBK5F6VLcqea5rjQSKCGd07H7fAIisXq+CxmlB87EMMvZBoivS
Y7BLBeS3FJG44zYrz0R5WcV8xYfqAiVvOYY4+ahxMOSgf3gWpYY/jim68sclkbLo
b6ANbecbvHoGQnk9GQk/e6aa/Ja0kWzYvUkw+Sc1CxqWh3k5RGOqh5vAwMTtOVE+
zubD8aahppmpcML51+JqyS0iszt561Du1UF9hcgrEvlKJwVwBJX0GQWXAex642CF
I0+BNIZkNSR8E/ahu2qbhGz1bD1rgdA1AqlvwM0O1NaRq7Rm6l2KmMdNG0xT+iKm
NujmJP/Whb5JBRzgsXNCBOiKn/8bU/wAeLye+IbCUU+nslYe2mw26sM4zOfWth+f
D2EaJDujjys3uJxuBdKTrzAw1dwlItJ2qs/FrIuYipBBaipAmUscoW73mCwcurNj
mZ+06Z/FKfYBobBUPcOZOt+y1A/ryfJ51isqwVkR0wOu9z1Ktd2o04q1x46lNAE/
aK1UtjiJEAFL5qhb50J/l7wohi7aLl+XbFPpPo/E8Bkrygi3Y6hSm7bUVlmfzxDl
eiMbAgMBAAGjITAfMB0GA1UdDgQWBBT5hNIVkuyI9L/fIs8WJXA6P8hyCDANBgkq
hkiG9w0BAQsFAAOCAgEAKVj1H9tYsyVeyL91Ko2dR5zkRAHBvu+cd06p1VF2NVcR
HTbO+uzABQrdG6vO7DdD8iBHWszMNCS7gEluhh0vRy5K+GrkPTMBoSdbjy+cWmZJ
yJhSp8E8D9Dk8gnGAoJyJ268D9SJedk/f8Ej8KoE+HodzgPyiAtNHyV6CaQEeX0t
fNyyqMxfRRLZ4vgwEVZmA0A2igQ8l2AaZneQc3QK0w66EJ2n5tcn1sIGHJ0U8/ex
9xMKm2DKL5AZ9BFVvgEA15fvS+UQQdIwPECyWI7+EJtDm9NVcrzZkEwRPoegfKHY
5DEcK1f1H+T0s74S4rGrxcGDItUPlZTH86UOuY4QsCybHdv6qNveD9DOAMIBqtaN
nMPJkvtZ7pW10WP5BIsZH7/maFaawy38+1wyyYv+AQiqy5xSYInTg8QA+qr6E7Zh
ZIvKXMDzgosbWmt24/8qxY6NZMPgLcQ4AVsRfN4adV6cfHeMIBQNtj6eRC4YCRda
MYodRRMXCVFMgmLVrfO7BT3iFDoVWLjIuGBsaTitW/fSWejeuweTlVlydlyzSYr8
z3aGcF4nivUA8A9p3Ryy6bLutA1oveTaJUS/5PJDY1YwaOMnWBCGTkNtGUsceazk
RhmGYmibpjCo7EXOYUV3CnMxfcC9+UXYPXartB3Ce5ykBxT3YCuDLrhnvEEJ9nU=
-----END CERTIFICATE-----
30 changes: 30 additions & 0 deletions certs/Saal_1-2-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFOzCCAyOgAwIBAgIUfH92tPLb3XA8tn5kd4V/aT1wl10wDQYJKoZIhvcNAQEL
BQAwRjEQMA4GA1UECgwHYzNsaW5nbzERMA8GA1UEAwwIU2FhbF8xLTIxHzAdBgkq
hkiG9w0BCQEWEGluZm9AYzNsaW5nby5vcmcwHhcNMjMxMjE1MTYwMDU2WhcNMjQx
MjE0MTYwMDU2WjBGMRAwDgYDVQQKDAdjM2xpbmdvMREwDwYDVQQDDAhTYWFsXzEt
MjEfMB0GCSqGSIb3DQEJARYQaW5mb0BjM2xpbmdvLm9yZzCCAiIwDQYJKoZIhvcN
AQEBBQADggIPADCCAgoCggIBAMtD/DK2m8pLdiuLtHDpBPX+eqmGwBAXdPo3OZXe
+HuEzAZL/3Hywf1r2Y29PTrntl3kgWvPN7pUgC8XIXx+6MPRgZwcurV1+3hFYAp4
9/OqY4rwzPdU+exBODrWK610BZholDiHxJ9k0GnUHeI+WU8IxvkYDDQLJRY23aIk
xmXv7+hkF/Z2+P8rdgYHuK3UVJ3t6v79XC0W6WWYl8k9XvK5CrEZu77GdITJASuE
ansgu5QUxRy0pjPB05D7VYtwUwF+TyrXYcpew/POjNdaGD7hjBbsbUrPblXCcIoz
otXpfjP6N+AopLDlm2zeToSxb9Y/Dg0rrX8zjCmP1MYYINy7Bwf5RiBSQ87lrCog
K1NMFjoG/MUCj3ODo8h3rUl/EQHz/uQPpXNVy7vw8+2NBEhb+QqrVbubMjSoc3gf
priE96eCS/BtfhiOTrpUgfsKGT/ncqQScZV2vk+qQB4u74sxWaX9vGaoz7SuwWAL
hmXduP1UcoIy/JUtu57OGxAy13E7+orqrRVXGZl7TiryeVa+8X1OQ2BnBtKzXFiP
aKz+05HnUPfNJP/GNBwKPvyFJ52JHq8iEeAjHQ9obT6ViqOcVD151e4DeqhnBSi7
apX5cybPvlcGvXCYCK5Zeg4i99ywTzJ31ODhyRcXehvFmMI9rFQvj2xL7N8vL0+L
Org/AgMBAAGjITAfMB0GA1UdDgQWBBQ3p1kIPHwpnMVI5UfD00gY7u5M9zANBgkq
hkiG9w0BAQsFAAOCAgEAdGISX/dVUyjfR4FNKf9uQ927paUetMj4tDLQpb27v+bK
K1vOTSNIXOWbIMwJt1w6nFCmQ3zWyQiG7S32XuBBu9DpVZ6Vuv2qo154JLZGaCzY
GQ1Bt7E2wqS4cjv9mDTMXdkxzYVNR7cVfZxwZrdLHgNr0trmFRfWNUGu7ixqPy4R
RKxrSHLbnvdeR80x6oHPcHolyh0TfV5QgUX1p23rRy6jita/RpoUvKadJJ/gRtM1
oZiTFAXxUtYUVgkOIN/XOL00dPnmlIDPJzvEX6x9YTCoAcCASLUPNhO8R7uyTDGJ
G2ahq6bIkaiAmtDAxCJY+pOqnllmnpzE8KK94FHyhjLJ8wu1dwiLVvmOB6Ye5yoG
MW0oLLU548ik5v2fu6y2Jo+l1/56AGuHBhmrDeSmjWuOVslrnaE5DgknGE+50zPq
S+857DwMSeJaw/mGiIb5QclSruizQ+pmIZYWk8v3g627Az0OmEpYTTe+bX/jKZfc
Jr4XXzSb3MSbumOepg3kE3NurbNtNI19nt6IL6UxDrvX7/vHayZrA/n2PV2J1I8l
hqYB1Gsr9BAlR4GW/wjd97CHRtdoDoscEeyBL0wg6yhBCOzcT7ilGoApXIfOuNxQ
Cm8p2P2a2B2dfdIotWJ7AuzjcvCdVdL1D8NkixEyUO46vkKDRiuGdPGK7VWEXAg=
-----END CERTIFICATE-----
31 changes: 31 additions & 0 deletions certs/Saal_Grace-0-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFQzCCAyugAwIBAgIUatpTPehwz+h8emMMJ6r3Q0aUHdYwDQYJKoZIhvcNAQEL
BQAwSjEQMA4GA1UECgwHYzNsaW5nbzEVMBMGA1UEAwwMU2FhbF9HcmFjZS0wMR8w
HQYJKoZIhvcNAQkBFhBpbmZvQGMzbGluZ28ub3JnMB4XDTIzMTIxNTIyMTkyOFoX
DTI0MTIxNDIyMTkyOFowSjEQMA4GA1UECgwHYzNsaW5nbzEVMBMGA1UEAwwMU2Fh
bF9HcmFjZS0wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQGMzbGluZ28ub3JnMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0bmjyQvKwe406MeL5OptRufI9RSN
mBPU9VJcNUcvzbd+CgKuUTDYFAChJAdk2fb9TLQKRco5d4v1KRHgFHL43GrwCfvM
zBTu2j/heTSCtQchKxInMR8Jqz8lowW4YJ0HfjbA++V//IYDWaLhwjlnuEMxEG/f
0hGf1/X21NN1zuyc4aqwFB/Ek4jdC59aMn2riNuyC15+/ozGfBvtge9e7xAoNy1E
NItWu0HVgyVIAzgOE/Kv2Ox/Fb9il9zE2P1rnmRjLDGwsT63RW0vFajGIeR2AqbU
EtbUBwOJ2Y7JPnIc5rLMpZDWCk76cdbzAaWLmzDJFMGMItkRHAo5B7ULdVZiSPmp
NDKsVOI/b2TCBiYOkxmouhFzSlfeB/SJvvrlysXjU6KNRGUYERv87v4aNOB2V4lo
yTbH4Ue9oMYJ46CtfNJDG+ZARnOVyWBDo4kqhpdrq2DNB0hvbttlMazASpOlFJO8
kYBll5wTC5sdrVYZguT2QJYZlDF6fy6584W2LDnlj2B0wfnbZvpC5+ICi41nNWx/
fYi+0cYgGmDGsjaRKTnVY9HFdzH6cGCUhjMW2b+l5piCV8yyNgxr5aHKN/GoJazR
L663EB+9G7D5fikUqEw194uqZdsuJWPPYcLrs3MTgjriBUCXgY3s65yPVAezjdXp
zEF1FhSKjdT5PK0CAwEAAaMhMB8wHQYDVR0OBBYEFC4WGM3HYBQ0WGQjBu39JMpD
SsGnMA0GCSqGSIb3DQEBCwUAA4ICAQAYB4RoUaCWi3ILjwDE4BCGN4tbitioXWHK
jDnGBE2XBKXj47I0c1rxs6CVmcaCSd4YmQ2sa9BQapm9XoKbfelS2DTqYngZfB64
8HpmTnQSe0h5cxiW6UpyRYRG1qOkZljL6ZwKbrgJSR5D2V50ttMu2KxivMymQ0hr
1P5xNGJhKDCM32O4J9sHIw+A2bN0LD7U/KKaUunJTkl6A7yE1kFP0q2sutO/2K6u
8xvjgOfT9U7k/Ji9ZeBGG/CDHNhK0ZYoBBmVk916m8cCq6ozt4Eiafo+1o8t++G4
w0PN97gX8tJyNuvqHxiq9xZ+cW8dtNfNOwgwSKt3EvXYNqf0HTAfdIDGE9oX6ltN
s2z3PzPdfhPfb0m1NGAjAlAKW2mzR/Ch0mF2q3BF3pmp6pFP1EyaYVw4wnK3Ksbj
kstk34sywTV798YvqwTeu+MqS+UrWJljZ/UXNdcLTYhAjioB4/dDaNrh5fsZKzT9
NKn4Ta2Q4MqxDaX4LXgWzXkCF+twboHTQZLd4ezpfduP0g9rotus7F91vuustoAc
iBmerXQ0XVcKbu4B6pGnCtDn6mpXaYI+DbIfrKo5hDpnuynzMaCpHVYPD5EANnN8
CQsXEwDHs+gXxQPUd6h4x4d9KyRdtmSAvtwbTD28ZrnaAjblAmqIKcAPkq6o67/J
56nYU/4NBg==
-----END CERTIFICATE-----
31 changes: 31 additions & 0 deletions certs/Saal_Grace-1-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFQzCCAyugAwIBAgIUKFNrVxcIxzk2lI3KDCfB759gACIwDQYJKoZIhvcNAQEL
BQAwSjEQMA4GA1UECgwHYzNsaW5nbzEVMBMGA1UEAwwMU2FhbF9HcmFjZS0xMR8w
HQYJKoZIhvcNAQkBFhBpbmZvQGMzbGluZ28ub3JnMB4XDTIzMTIxNTE2MDA1N1oX
DTI0MTIxNDE2MDA1N1owSjEQMA4GA1UECgwHYzNsaW5nbzEVMBMGA1UEAwwMU2Fh
bF9HcmFjZS0xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQGMzbGluZ28ub3JnMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnNg1W5AFkA/x4RRz96i6JE+90wHe
VqUy36CLQxlutiAFqhx4IzMLRqu4wnaP/efsGRbBEP5O6M3cMMD01tomNbYkkAP0
F2/2eus1ggEw61+4UNKOcZ06RKCCPXqu1mm9LBvRv7prmQxKdHyMwRjPS3YUkrnv
ueGD+wSQxTtYDgUO4L0TBOtXlyyuwbFBILiT3D4pfpW7KT29HrPKUmHPI8jx6qyk
kSOBzpZPkKMrjMuRK/JLqS/P5BjnRy7WvbS8SdwmUqoEPFqcZV383w4X2zJx2OeI
So7fSceSyYWp+83ubaBRSOm67KVwjHAeymsbeq7q+cXWOSlBUvCgm3gsNlkajA/P
/CyHJhl5EEcZ+xZg5EjNRdyRYx47MeDufCflh6HjO6MqRY7WNs+BJYIi07J8QkQ/
w6V3B3OJlRmkSLLcmhCLWyPL87NYfyTzySdQDj9YgAfBREQxML1PEw50ywZ1ZScD
hes+WvBQqdm/6IOF8Aib5ash9MxMP4MQgka0T1Heep5i9xw6hvhPo0LbnnqYbUVT
9f/MAN1/RCO78tlEnRkICw11qOrcAfDQJt/4njTi+1sAIxvkqS9zlxZtkbhJneB4
e2fu2kSEBN1v9BjadeYgQsFaCD+GbgF10uCdqY8vA2q/V52r8+RlrBduwwgnsabT
lD2f4s8YJAz0TWkCAwEAAaMhMB8wHQYDVR0OBBYEFBgYVT7qksjdfb1DAaEaJo3E
1Y5yMA0GCSqGSIb3DQEBCwUAA4ICAQAvZrColrfovsorrokQGGkWfBsPR+UA8K3n
Wmm1f8B5wUlIe22QBdIU8qwZsfCxtIMlCWVeNoH4xtHVCI+MNxN7hk5tybcqO6ZC
I6K38+1gwPzk3e3fBl4GtB2U4e1LnrRmX2MRz5hjHe9eBH5hMJTZ8Ngy56oOLIGS
Rg0cpDgq56K3d1ifvjOB4BqtSuvnQ+k/RUREQ+upcfBxbmOAaC5zlieFIo8PKutc
9Cgk6eX+O8GsbufVnTMltx+IJ6znFusFU3bLdR/VgHrSanI1cio076YFDxJvrwLf
CSk/41F2iWrN6s174jE4AoW9hQpKSOHqeX+9aAKCTGDzrmcpeEzEb1mtddkrEGmi
5tCQkD2wqMQ4efFbzTxrObLP+F0btU7XzE121yF0J6gJz1m6QGpZqcIm+CfQDiwn
UknvNvNTmp+JaWD4RVoOYBIV2pdwRFwygL5u8HeHS2dlX1iagye4bp1DAHqeMcBI
SUmvYw9G/CFPv22kIiAwIxY2BPQCJyRD1D6aYzoLpG5gMuV2+1k5P8mfev8HrXUz
A+uUlrFbYIQWRrWoW9lDci6IHW2hazsjeFlJPXgyUSBJ9ACgwa3WxnQv6qmBzGUD
D2bzpu1V9PXIBuHFiTlxJ8BlgOVyCDezouoLwB+HkSLz/dGJ42/Mx9NHo1p9bWsQ
Y0Q26f8q/A==
-----END CERTIFICATE-----
31 changes: 31 additions & 0 deletions certs/Saal_Grace-2-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFQzCCAyugAwIBAgIUIcHxztyEOGnBdxvvggi/8FR9KWwwDQYJKoZIhvcNAQEL
BQAwSjEQMA4GA1UECgwHYzNsaW5nbzEVMBMGA1UEAwwMU2FhbF9HcmFjZS0yMR8w
HQYJKoZIhvcNAQkBFhBpbmZvQGMzbGluZ28ub3JnMB4XDTIzMTIxNTE2MDA1N1oX
DTI0MTIxNDE2MDA1N1owSjEQMA4GA1UECgwHYzNsaW5nbzEVMBMGA1UEAwwMU2Fh
bF9HcmFjZS0yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQGMzbGluZ28ub3JnMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxxXVnj9TCSgdehbtujNTA4pNb4+b
uo9OyPYXC/AuLlIy3k4X4B1bZkWiBRQT4oHm3kZ6enBQ/wK0wucD4Atg+KpHgrEl
etcNIX5qLEqOOrHMhOVC/pDm1ojRsu4MaDMZ2Q5cSvts4FGnJ8WforI/zTv9sI6r
EXZoE3BZ+HVO33lPzXO7oXfzBGt7BWtck1fQ8Wn+/tcNQK1pBXTClet7K7yxIzBH
RxwBLSl40iavPKMUUrS+E2e55YwV1nhZcj+TkDPbnBvE1esF7rkqu4W+tmff+r9t
rSh6ACBvaHNxQAtcM+Pfge43qCN8oqJ68Ox4cq56MC7BywqE1BLx2kgGGP1MFMle
J6ADJGBLLQ4Gi4nSV6+7yOnFpzmqo9M2b7oFwnDIf7WX9kWorcFn85ZfsKaGzBtT
AhCM7Qap8RYxTWXgWxeed3zt+BH6kaDL+ZLeR1vWoEZLFWAFdHS0D3BNt/kSXylQ
9k+6zbn3mOyq82w+PpB7cnrRg8rUJ2jHWm7cZ8XJhBFEMIAru+EtzVBW940VUn0H
uoU2mwvcda9PkFlqxpu7mQrVliwEolfC3lNqsrusGXNXxD0GpKZub5D1YpUIw6PT
CeMlOKaHSYEMn3OoqqDCTIC71szeRNLpyqL7JuKHruDCQtp0an3ujTgAwVcUowWJ
xZghrHwjh/bSanMCAwEAAaMhMB8wHQYDVR0OBBYEFHWG/3Dr400enqd2pgNabq35
Nm2ZMA0GCSqGSIb3DQEBCwUAA4ICAQB00nGcpzhf/Gf85UF5HIfLIX5SveO2Yvej
lt/i5LmvUzb0U1qbBltpYi1A/s/IiJYaCWbxXba+HroY/T6li2tZ1XCknPtibkyz
mElOwPwbUlNYiCPXQ3u2v5zFzwMVdm6JgHvK1qPIKQ9Q+2cTuH5Nesy+ELPKhuPP
GK01c/kxnir4jrBk++Ra7J7mquXfRG0cACVfyCFckiVi/Nkz9B1zUHKlZTDsnZX9
//GjFzMrKGEuSLeTg9b52iSCQH/zxrAkQtvLEJx+LcahRTlpkfce5so/yoHXzKkm
zwXm/OZPvHVqQJKQiRUZNewQHNZtpJC9zxxA0C8pyChEJhqSIWg8PjHFWZDHw//H
PSgwBW2Yike2S7vBokMDZdutt102WysB85R82IBDSOT/Q3Y16gg0y7XSwcVK6lw/
cJky1VKO7DIZ9cWyLoTmcWGtvrxrabu6mh6cST7BRqnM9RKVLWtusTI/+dixLyB2
6m+tVqR3k8EHPdE3A849agMU1B8+JSDtFL6ibjNZInZRGkvqHsZxbk+hzUS7qQ0A
NpUK+2yfk7L1GgS/dDIai3w1oMHsExxXJUbpVAQjUUbAyYceskzwRp413Hkh5xjS
q+g09uFs/NG7/T6k0GJKvIKDDuKgvxwuT4NLSRxsumuw8X1VXL0e3UWgtO5CqdXO
mj3SF6nw3A==
-----END CERTIFICATE-----
31 changes: 31 additions & 0 deletions certs/Saal_Zuse-0-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFQTCCAymgAwIBAgIUARowC8GcMnaS9SuQahHzHOb5AEYwDQYJKoZIhvcNAQEL
BQAwSTEQMA4GA1UECgwHYzNsaW5nbzEUMBIGA1UEAwwLU2FhbF9adXNlLTAxHzAd
BgkqhkiG9w0BCQEWEGluZm9AYzNsaW5nby5vcmcwHhcNMjMxMjE1MjIxOTI4WhcN
MjQxMjE0MjIxOTI4WjBJMRAwDgYDVQQKDAdjM2xpbmdvMRQwEgYDVQQDDAtTYWFs
X1p1c2UtMDEfMB0GCSqGSIb3DQEJARYQaW5mb0BjM2xpbmdvLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBAK/l2GsROwJBgEcbIgUsd1eD5WBCU6KB
gA//4uqw2GQ4spQtJLa6qxXCYHmVkzOrldaA1zZJPlwWJlc2mZ8Xp+KG2G+MSfps
02XynuYzko355oVjWn8vEiOrDi8zHFHvLy3gZAd9N0WQFYObaeMgOsbHAJYgqG9G
BQbKwvPqm3Cja5dHGUV5Als2W65/EklCle++4rGRDEsZJjzAAdWqSzFnfgb8q5VL
P37zv5GyMMkhjwBemlq5YyOZYZplIcm85jfpPfv+QZnF9p7W/gmFuy7PjC89RlZh
h2j4VGfAIyk+FRkieoaW0hTNkY8jbUC88nFhn2v+9UlGXtpjFHesUAFv8Pcfekmv
3wMBPo5PE1UKaVajCGSPvw16UiTd+myS9pMb9uEmsCM2f5apKe3A244pVrc93ICz
PySdVRx2CaZ2sNUT0jmTt+rvjh1BJTgdEgtIL9YtdgvZcHPpDfVpv9VQvJuo/5iC
IIJBlXALqXinVOTTXD/VDUWDD42KU8Ae5SR2SBSMKb9Zl1jUuPaIWhHBtqOhoJkd
mX/GTbBONtyIZarJK/sQXdu1TwpdEnkR82vJBY5AwxV5LFTfNzZdXTkTs3HyEdGN
6fKXCE3zv+5EXzVh65mdHw5upPgTDS324CfTvRQ5lkrZkG/B1bkVn5s+jMFYlF/4
PFgA4fKQriIdAgMBAAGjITAfMB0GA1UdDgQWBBQ5w+mVkoYSS5/fKICWAQ4T3z63
cDANBgkqhkiG9w0BAQsFAAOCAgEAGE7+w68jj2dI/X5bZLYi//gg4DAS6w6xzM6m
APLHqyK6N56jyjU37x2+JAg18RcUYHsjFP8C3f2PB/U/X0MwVt0p4ToY1JiHL6ml
Z4r7rNorBYumGsO86Asjg1AI1zBvlZuCGsMVIEUeWpG7BhHUfri25py79gRa/Ymt
iT5TMb/CCKFXGjkeMcsQDfPdFb9RN7LmNNCYlE7i7ZxqjSVEiDZl3qNQ4sHHti5T
WKZUPqkZ9VdMBZbuz9D+xeuBveNHhsUNP5++PVZr3jRy1XxB2HyflEQIkrj5PZZR
sRZzXK94TbKTN5w64jPmODTMk1FbncfRX0QrAipRUXJaFJdLXzJ7o5LQ51CVF3w1
LcU7LskMZUhAsVNjXk/Au3pHbIFQdudemj3kMj6FSnivB5Bs/rtzeazsOyVyfYpa
FPVI0H2nOIGq4sssYegqn5y0ZT0GQgHxwop4g9G5YvCgkLs1E7wcSMjWvUcb8Se4
7keMOIVy1XEgOBhx9CfMQkijfkMQ01QFRK/blZntV8+hlHOKS/z3sxU8yT8gnkpb
+2rZuWwzSnNfwRfd+hLBvQ1J8T/9AYfmTHZcM29jrFCnkO4hr894MfcodYBSokta
C2Ay6JZiIpjuIXv1bu/+e6T9tPIl5Fr1Q9g4qUDI5ZkHflDvbnI/PqRNWaGKKZ1w
XuRz/lg=
-----END CERTIFICATE-----
Loading

0 comments on commit 62584f4

Please sign in to comment.