Skip to content

Commit

Permalink
feat(mojaloop/#3750): add sdk security testing harness (#50)
Browse files Browse the repository at this point in the history
* add scheme adapter to compose

* add env variables

* k6 test get party inbound

* fix: fix harness running tests without sim running (#46)

* fix: increase fundsin check delay (#47)

* add outbout server k6 tests

* add outbout server k6 tests

* fix k6 tests

* add outboud server k6 transfer flow

* finish outbound server k6 tests, debug inbound ws

* finish tests

* update tests

* feat: add security harness

* chore: add instructions for security

* revert

* revert

---------

Co-authored-by: Aaron Reynoza <[email protected]>
  • Loading branch information
kleyow and aaronreynoza authored Feb 15, 2024
1 parent 69b5189 commit 19bd9f4
Show file tree
Hide file tree
Showing 64 changed files with 2,734 additions and 2 deletions.
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,35 @@ Cleanup tests
docker compose --project-name load -f docker-compose-load.yml down -v
```

### SDK Security Overhead Testing

#### Regenerating Certificates

It's recommended that you do not trouble certificates and keys found in `docker/security/`.
If you do need to for whatever reason these are the steps.

From the root `ml-core-test-harness` directory. Accept all defaults and enter `y` when prompted.

- `cd docker/security/payer/jws/ && . keygen.sh && cd ../tls/ && . createSecrets.sh && cd ../../payee/jws && . keygen.sh && cd ../tls/ && . createSecrets.sh && cd ../../../../`
- `cp docker/security/payer/jws/publickey.cer docker/security/payee/jws/verification_keys/fspiopsimpayer.pem && cp docker/security/payee/jws/publickey.cer docker/security/payer/jws/verification_keys/fspiopsimpayee.pem`
- `cd docker/security/payer/tls/ && openssl ca -config openssl-clientca.cnf -policy signing_policy -extensions signing_req -out ../../payee/tls/dfsp_client_cert.pem -infiles ../../payee/tls/dfsp_client.csr && cp dfsp_server_cacert.pem ../../payee/tls/payer_server_cacert.pem && cd ../../../../`
- `cd docker/security/payee/tls/ && openssl ca -config openssl-clientca.cnf -policy signing_policy -extensions signing_req -out ../../payer/tls/dfsp_client_cert.pem -infiles ../../payer/tls/dfsp_client.csr && cp dfsp_server_cacert.pem ../../payer/tls/payee_server_cacert.pem && cd ../../../../`

Here are more verbose hands on instructions of what above commands do.

- Run `. keygen.sh` and `. createSecrets.sh` in the `/jws` and `/tls` folders respectively for both payer and payee.
- Move `payee/jws/publickey.cer` to `payer/jws/verification_keys/fspiopsimpayee.pem` and move `payer/jws/publickey.cer` to `payee/jws/verification_keys/fspiopsimpayer.pem`
- Switch directories to `docker/security/payer/tls/`
- Run `openssl ca -config openssl-clientca.cnf -policy signing_policy -extensions signing_req -out ../../payee/tls/dfsp_client_cert.pem -infiles ../../payee/tls/dfsp_client.csr`
- Switch directories to `docker/security/payee/tls/`
- Run `openssl ca -config openssl-clientca.cnf -policy signing_policy -extensions signing_req -out ../../payer/tls/dfsp_client_cert.pem -infiles ../../payer/tls/dfsp_client.csr`
- Move each others `dfsp_server_cacert.pem` into each others folder and rename to `payer_server_cacert.pem` and `payee_server_cacert.pem`

#### Starting the Security Harness

- Run `docker compose --project-name security -f docker-compose-security.yml --profile security-sdk-scheme-adapter up`


### Automate Load Tests

This section describes the process to automate capturing of grafana rendered dashboards after running the performance testing scenarios.
Expand Down
2 changes: 1 addition & 1 deletion docker-compose-perf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -975,7 +975,7 @@ services:
- als-test
- transfers-test
- quotes-test

redis:
networks:
- mojaloop-net
Expand Down
122 changes: 122 additions & 0 deletions docker-compose-security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
version: "3.7"

networks:
mojaloop-net:
name: mojaloop-net

services:
sim-fspiop:
image: mojaloop/callback-handler-svc:${TEST_CALLBACK_HAND_SVC_VERSION}
env_file:
- .env
- ./envs/fspiop-sim-security.env
build:
context: ./packages/callback-handler-svc
cache_from:
- mojaloop/callback-handler-svc:${TEST_CALLBACK_HAND_SVC_VERSION}
ports:
- "3001:3001"
- "3002:3002"
networks:
- mojaloop-net
volumes:
- ./packages/callback-handler-svc/config:/opt/app/config
- ./packages/callback-handler-svc/handlers:/opt/app/handlers
- ./docker/config-modifier:/opt/app/config-modifier
environment: {}
# - LOG_LEVEL=error
healthcheck:
test: wget -q http://localhost:3001/health -O /dev/null || exit 1
timeout: 20s
retries: 30
interval: 15s
user: root
profiles:
- security-sdk-scheme-adapter

payer-sdk-scheme-adapter-api-svc:
image: mojaloop/sdk-scheme-adapter:v23.3.0
env_file:
- ./envs/payer-sdk-scheme-adapter-api-svc.env
container_name: payer-sdk-scheme-adapter-api-svc
command: yarn nx run modules-api-svc:start
ports:
- "5000:4000"
- "5001:4001"
networks:
- mojaloop-net
depends_on:
redis:
condition: service_healthy
volumes:
- ./docker/wait4:/opt/app/wait4
- ./docker/config-modifier:/opt/app/config-modifier
- ./docker/security/payer:/opt/app/modules/api-svc/secrets
- ./docker/security/payer:/opt/app/secrets
- ./docker/security/payer:/secrets
healthcheck:
test: [
"CMD" ,
"apk", "add", "--no-cache", "curl", # Install curl
"&&",
"curl", "-f", "http://localhost:4001" # Check if api is up
]
timeout: 20s
retries: 10
start_period: 40s
interval: 30s
user: root
profiles:
- security-sdk-scheme-adapter


payee-sdk-scheme-adapter-api-svc:
image: mojaloop/sdk-scheme-adapter:v23.3.0
env_file:
- ./envs/payee-sdk-scheme-adapter-api-svc.env
container_name: payee-sdk-scheme-adapter-api-svc
command: yarn nx run modules-api-svc:start
ports:
- "4000:4000"
- "4001:4001"
networks:
- mojaloop-net
depends_on:
redis:
condition: service_healthy
volumes:
- ./docker/wait4:/opt/app/wait4
- ./docker/config-modifier:/opt/app/config-modifier
- ./docker/security/payee:/opt/app/modules/api-svc/secrets
- ./docker/security/payee:/opt/app/secrets
- ./docker/security/payee:/secrets
healthcheck:
test: [
"CMD" ,
"apk", "add", "--no-cache", "curl", # Install curl
"&&",
"curl", "-f", "http://localhost:4001" # Check if api is up
]
timeout: 20s
retries: 10
start_period: 40s
interval: 30s
user: root
profiles:
- security-sdk-scheme-adapter

redis:
networks:
- mojaloop-net
image: "redis:6.2.4-alpine"
container_name: redis
ports:
- "6379:6379"
healthcheck:
test: ["CMD" ,"sh", "-c", "redis-cli","ping"]
timeout: 20s
retries: 10
start_period: 40s
interval: 30s
profiles:
- security-sdk-scheme-adapter
2 changes: 2 additions & 0 deletions docker/security/payee/jws/keygen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
openssl genrsa -out privatekey.pem 2048
openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 1825 -subj "/CN=fspiopsimpayee/C=US/ST=Ohio/L=Columbus/O=User/OU=Testing"
28 changes: 28 additions & 0 deletions docker/security/payee/jws/privatekey.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDEUZLuN584blSb
M6KGpK+36rJsAw+jz8y5hcRh8EvU7lBnam39a/dAx/If8LqttMAqGfx+pNx164PR
CJpmdm/FcffA0XHyrmN+K76tRev4q/O80s8qLmLpxTh2P6L9unMEtKyl9bBeuwV5
PnwZ+cJHzy9wMUCpXouWGRK09csYqavGYNqV/zai/4earpi5HR8MJgTRnNXHHHJw
6Xo8lsA6Tu/6ELOa0QDXuOeb6gWUDmynewuqsLhZgurF/EPrbAebRgXzLZVeGcDg
i0jz0kfpNdqZ45AOWq6L1p5xWYvHJUE05KKkTMnUt7E1RzwzkU24W0smmrBqG5S7
UJB1772NAgMBAAECggEAA7F1kXXj0NF072iExBvg0sjSnqj3rqeJnLhEZ51E9LzS
ljRD3Nke0Sd4MBtv8s84/QtfgYudB1QTakExrZmVZII03K1A0GwK1h3njxkgi9CP
gmIq4IqRdMyV6wkrPUyFJM9rUg6+e/TwioV46ACXvZCxvhGtiDvAzEv52wRAU/a3
GABg9gEmTqzQQPihiBHO1GV3GSflGQGRtoRpDmEFZd4ef4nTO9h+df8LZiIxFdS5
3Sh/YfFjhjTJIOgi1x5y8jx7aIOQel5DGL6rdkbNyq7TO7mU+2dapmrjQ6EBdL2J
0+977J8hkzUagGw7PONwTx7FK2pvjO+PQrcvzB/uNwKBgQD4y0mLIcC+JizciThi
mL38xW5K/QYcdVqrJjzTYxPVhU4/d8xp5zcA+qPbbCzGFX7lYhm0LvvDcUz032nV
oun6kiSdwwFYIRvvtHVa3SdL0V7k5xOUf1k/MPRw76uM4vYmfsF96tDgsxCNjzrF
UoiUXwkfPq/oJTc9gVIptDOTywKBgQDKATOOqdAmFzhYA+KetwGyIPLs4oXaNZuW
5L0k2R8hLGnIj/yoXvYmIj8DQzJ1CkeU/9QjQNNx8wGLfImOBSGBW+PftPbwh3Fq
+Fk+5IJQhcLWBd2Plqj4DPgLzZQbJENVymaH+by8mvX/ze34XAuRuAe2t26UKEGX
xDCAmwu5BwKBgBJ82Lw0B+SZZaAFumDpRMTxzt5XqwqWVeR99OsoY6LsQwJIXrJH
8jhqZ564jSMzGbjl708KZr8BPly79Vtgvc5W6c2nXgQ0gaTwXgAgivkBV/Hekf/o
7rLZanCx/qd7fhsiNDKtLlRkOgiq6g0bsvaDkWP2/o9bpJ03bOmYcHS9AoGBALsk
T8psYczYGDfaKZnWe3i187gnx8+3eFRbxysbBy7pgXrwgibOCwabFXuFRnqNsnFE
bRjX1swrUBQUpS7wa/D2226FrXx6TkXGnI+ajWvh7/Xtayy6bAGZqjbtFrfqaYNS
RpjUcdjdSufYtQ0w4Pr33hWVbJlPjiz28eRDP6IDAoGBALyLXPp0t4AnR1LQlPiH
4ZXoM01Rq7AnonPEU6TmHgcjpdlOLObzZxICHN6XRrI9OVMBCfrAOpJjXHPei1aL
pfgn7auWbix2zpIGnDW+vXwd3NnD1YYiafxpC/JmZnv04x6Idsv3tTrNxjmluorz
zUxhZDWwyPNTjTjsumYx6Q1A
-----END PRIVATE KEY-----
22 changes: 22 additions & 0 deletions docker/security/payee/jws/publickey.cer
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDszCCApugAwIBAgIUIw60tmOgWtsoMuwSiCWhFAbgYQgwDQYJKoZIhvcNAQEL
BQAwaTEXMBUGA1UEAwwOZnNwaW9wc2ltcGF5ZWUxCzAJBgNVBAYTAlVTMQ0wCwYD
VQQIDARPaGlvMREwDwYDVQQHDAhDb2x1bWJ1czENMAsGA1UECgwEVXNlcjEQMA4G
A1UECwwHVGVzdGluZzAeFw0yNDAyMTQwMjAzMjdaFw0yOTAyMTIwMjAzMjdaMGkx
FzAVBgNVBAMMDmZzcGlvcHNpbXBheWVlMQswCQYDVQQGEwJVUzENMAsGA1UECAwE
T2hpbzERMA8GA1UEBwwIQ29sdW1idXMxDTALBgNVBAoMBFVzZXIxEDAOBgNVBAsM
B1Rlc3RpbmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEUZLuN584
blSbM6KGpK+36rJsAw+jz8y5hcRh8EvU7lBnam39a/dAx/If8LqttMAqGfx+pNx1
64PRCJpmdm/FcffA0XHyrmN+K76tRev4q/O80s8qLmLpxTh2P6L9unMEtKyl9bBe
uwV5PnwZ+cJHzy9wMUCpXouWGRK09csYqavGYNqV/zai/4earpi5HR8MJgTRnNXH
HHJw6Xo8lsA6Tu/6ELOa0QDXuOeb6gWUDmynewuqsLhZgurF/EPrbAebRgXzLZVe
GcDgi0jz0kfpNdqZ45AOWq6L1p5xWYvHJUE05KKkTMnUt7E1RzwzkU24W0smmrBq
G5S7UJB1772NAgMBAAGjUzBRMB0GA1UdDgQWBBQWsU9P5kdFZxLL1WU26BglFshR
HjAfBgNVHSMEGDAWgBQWsU9P5kdFZxLL1WU26BglFshRHjAPBgNVHRMBAf8EBTAD
AQH/MA0GCSqGSIb3DQEBCwUAA4IBAQALkRuzIU+FeKn0qg1xE16JRUbMktI7LcCc
vzg1E3kXUoZ7GsTfhySeAcmibvssPQPXrRx/pKwfgoR2O/v9++DumxPRff4UEWF2
hS2WKOJu2ychQhn5H7cu9Jc7g1QTgLQJlvLR+8IZprC+xOEiaz19xvEW2aMWbE2W
Gr9S2WSxZA0aWOcq1imvVa27h+i8t51He0fwzfguH3+jz3pkkS+6vVwRl5JXke5a
/ufUzIeaRRbcVRnytlwNdgLQBKdwTEJWXFHhd9wMxTjRLa7TdA8et+VLdWF+WKai
GTCIYsiYqM0V5fSwobeH5zKT7DvDDDS5hs5OfkXs6be8vARZxn7b
-----END CERTIFICATE-----
22 changes: 22 additions & 0 deletions docker/security/payee/jws/verification_keys/fspiopsimpayer.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDszCCApugAwIBAgIUWSaadyOlOZuikVJBgnVJm6sHmS0wDQYJKoZIhvcNAQEL
BQAwaTEXMBUGA1UEAwwOZnNwaW9wc2ltcGF5ZXIxCzAJBgNVBAYTAlVTMQ0wCwYD
VQQIDARPaGlvMREwDwYDVQQHDAhDb2x1bWJ1czENMAsGA1UECgwEVXNlcjEQMA4G
A1UECwwHVGVzdGluZzAeFw0yNDAyMTQwMjAzMjBaFw0yOTAyMTIwMjAzMjBaMGkx
FzAVBgNVBAMMDmZzcGlvcHNpbXBheWVyMQswCQYDVQQGEwJVUzENMAsGA1UECAwE
T2hpbzERMA8GA1UEBwwIQ29sdW1idXMxDTALBgNVBAoMBFVzZXIxEDAOBgNVBAsM
B1Rlc3RpbmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/NERUW0kW
P7sDBZezMYuC/YIvjCVofKASQwGKkvd+kUhAPWahbIvkD5rRP0QZVtw/BlSDuq+a
ci7EkJCgWXXU29+GHapsvqoYMpFcW+jvEdMoLK1LV7EMY3wV4quOBfhK94aCIHNk
1+ZlSzK0bFVE2kGXUj05yWmsRp45UmwVvm8GVXAVrSoDQ0XB4Bi4Ej6UbRZhXdEj
OtUj5XWPOu6NotpRQuD6o0vD8ZyiJC9ZOMswolICYao5WM4Tu3QCJk4Anj27PbyI
ZAMf3n80B33IcnjDAiK3KpzpdeCMAoig23Yal2NU+PEvl/XAL5D7TK9CbMFA8irE
LhSN0iLCrOf7AgMBAAGjUzBRMB0GA1UdDgQWBBREVDEKyvB0X1PF3l76TKKbr2nV
WzAfBgNVHSMEGDAWgBREVDEKyvB0X1PF3l76TKKbr2nVWzAPBgNVHRMBAf8EBTAD
AQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBmlox7S/6VOkl1ix2X4xaWZW7LUy/5UfA+
Zxhy02zPY6puzbTd7O0TwK6WXQ0P41U24IksUj43FNgpcS2EcNy8yQTXyh2Sx7ro
wrBEX1R2kaf+vond4Yl7iVXC/127JeGPG8bnfgNeHY/NTJNedzUTJ4Ax5rTUAtCh
TVIjfhKXmR2091C4P1QMXpvHsYhWaWPUZkkrOZq8WkBxyuPaLMZE52IH5VyUqUna
w6ShQvkN48k0VrRGcejYLmpKtXMlx0bLf3/Noz8MF2HJK4sDvohPkHZlZPnyj4Zm
m/HGVUTzUiKtg8UEbEd20KDoktz2sCeOFpAk+nLmSBhvnMOvzAh4
-----END CERTIFICATE-----
132 changes: 132 additions & 0 deletions docker/security/payee/tls/09.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 9 (0x9)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, ST=Maryland, L=Baltimore, O=DFSP Server CA, OU=Payments, CN=dfspserverca/[email protected]
Validity
Not Before: Feb 14 02:03:30 2024 GMT
Not After : Nov 10 02:03:30 2026 GMT
Subject: CN=payee-sdk-scheme-adapter-api-svc
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (4096 bit)
Modulus:
00:85:44:4a:93:8b:01:60:d4:1b:89:ab:d2:8f:a8:
bd:58:01:46:aa:04:e5:34:75:53:34:06:fe:b5:37:
72:0a:a6:f0:e7:c4:80:9f:c9:02:50:83:fc:de:12:
89:e9:57:76:34:4b:26:bb:80:14:75:55:7c:38:69:
30:67:ef:91:c2:82:c3:e9:8a:d2:a3:22:62:69:0c:
3d:e0:10:0a:5d:67:3f:79:b7:20:20:4a:f8:5f:08:
cf:87:87:84:83:7a:fa:b7:63:05:bb:f4:76:8d:9e:
8a:51:02:5e:a4:75:dd:8a:f2:a9:e8:19:20:dc:85:
e2:8d:4d:b2:09:67:1b:f0:c5:f7:14:90:80:f1:39:
3a:5f:2a:bd:8c:ba:26:53:d1:41:bb:2a:9a:18:e2:
29:39:9e:c6:0b:87:72:70:6b:51:19:ff:cd:83:6a:
95:fe:d1:3c:9c:da:6a:c9:3d:e0:c5:c3:fc:e5:88:
52:df:43:78:ff:7f:0d:e2:a9:35:5d:23:14:fd:e3:
c6:55:27:d3:eb:1c:7f:b6:bf:6f:e4:b6:1a:01:38:
d3:50:be:1f:f8:b9:15:b3:c2:26:da:f8:c7:53:1d:
bc:37:d6:c1:8d:98:b5:01:25:37:f0:0a:ce:de:e7:
37:df:53:f4:39:76:00:15:28:01:11:11:0b:6a:fc:
35:63:f5:0a:0d:8b:d2:c1:2c:b3:5c:b3:bb:9f:b8:
fd:07:03:9b:d6:66:49:76:92:94:9a:51:13:f0:08:
d4:7f:c5:53:b1:7c:45:4f:53:36:f8:25:8b:47:93:
70:75:66:5e:99:73:34:52:24:e0:aa:29:ea:6a:57:
d7:f4:23:db:66:29:ae:0a:92:17:66:e6:7c:f3:95:
d8:13:71:f0:bd:c0:00:14:02:59:5d:54:b6:cf:f1:
23:f5:84:45:f5:03:0a:d2:4a:89:9c:da:67:ff:69:
97:11:d6:a4:0f:9f:e1:6c:8b:29:f5:cb:03:66:38:
c4:e2:44:93:31:e1:60:63:c6:45:e5:84:fe:43:9a:
23:96:03:af:0f:ea:43:53:07:76:af:b9:de:50:7e:
b7:82:69:c5:20:0f:94:3f:97:d1:c0:3e:c0:7d:27:
b3:19:25:ac:94:ff:1d:fd:20:c9:34:a5:75:ed:7c:
5b:1b:6e:92:a6:d7:24:62:36:76:6f:a5:29:db:8b:
be:4f:5a:41:51:89:81:6c:3a:6b:c7:85:e4:d0:32:
a8:d1:a5:37:62:70:e3:09:85:0e:4a:b4:62:89:40:
41:62:8b:43:0d:2a:40:7a:fc:99:00:77:56:0a:ed:
35:cb:f6:ed:20:01:fc:5a:f8:85:5a:64:f5:18:db:
e8:e7:0b
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
19:A4:61:22:4C:25:A3:69:5F:BD:89:19:E9:40:AC:B9:3F:C3:72:34
X509v3 Authority Key Identifier:
45:58:70:0B:E5:B2:78:A8:AB:FD:83:BA:30:48:89:A6:4C:C2:C1:98
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication, Code Signing, E-mail Protection
X509v3 Subject Alternative Name:
DNS:payee-sdk-scheme-adapter-api-svc
Netscape Comment:
OpenSSL Generated Certificate
Signature Algorithm: sha256WithRSAEncryption
Signature Value:
54:1c:48:ec:77:f4:9a:07:78:2e:ee:b1:9d:26:98:69:af:ba:
68:c4:31:56:3d:df:f1:c5:90:c4:76:07:a5:bb:09:dd:4b:a9:
9a:4b:d5:13:a7:5e:45:e4:df:78:58:b2:a1:3d:ea:b2:cd:f4:
15:01:a2:81:18:35:de:aa:ed:21:d0:76:58:29:b5:81:e1:38:
35:d9:07:0e:db:de:f0:ec:7c:c3:57:78:7d:92:35:a3:3a:7d:
cc:17:fa:b5:6e:b1:66:79:6c:e3:b2:3d:76:e2:0c:b1:2f:c6:
d1:15:fa:34:56:4f:2e:1a:05:dd:7f:ab:1c:aa:55:90:6c:d2:
52:d9:f6:d8:4b:4b:fe:2b:47:6f:ca:32:b9:83:23:3a:06:a9:
6c:c6:7c:9a:e7:21:60:26:d4:15:8a:ac:42:8e:dc:f6:5c:12:
ed:e3:85:58:0f:bb:d9:bb:ed:de:a1:92:2e:9d:7c:30:bd:0d:
81:fe:eb:c4:c1:51:f0:3a:7c:3e:7b:eb:6b:64:39:e0:b2:8f:
38:a1:31:44:93:63:97:c5:22:97:98:9b:fd:7e:01:91:76:a9:
7f:7b:34:f9:bb:ef:6e:e4:a5:bf:db:34:12:a7:e6:2b:e9:ea:
00:7a:54:06:30:3e:c9:7e:af:49:c5:63:49:60:5d:fc:9c:57:
47:23:20:d8:b7:e7:78:77:4c:8b:f6:e6:fc:8e:87:4a:c1:8b:
a7:b8:b2:81:0f:68:8e:56:7e:6e:f0:f3:a5:92:a2:3c:c8:75:
95:bd:db:a2:5f:5d:1a:ff:5d:77:7d:02:e1:16:32:bf:51:4f:
55:57:38:10:7b:ed:fc:b5:f1:83:0f:69:62:83:b8:bd:ba:88:
08:fd:9f:97:57:75:0c:9e:b1:c3:0c:5f:95:da:1c:2a:bf:3a:
f2:cf:86:34:bc:1d:95:9d:f9:d4:16:2a:86:6d:70:c0:f7:1b:
f1:bd:7c:08:d2:d3:ee:10:25:c1:a3:9f:0c:4f:a0:57:18:6f:
44:71:f5:14:c9:20:a4:88:50:ae:ac:ed:1c:fc:99:9b:45:95:
4d:7a:23:c1:ad:b2:cd:6c:98:ae:e0:3a:f5:42:fe:b8:f6:14:
30:50:b6:66:c2:3b:89:71:ed:7d:af:77:12:0d:a4:c9:3e:d3:
0f:53:be:6a:63:e7:9c:98:25:ad:f5:ab:c0:42:5a:90:33:d2:
63:d6:c5:73:fc:37:da:53:01:ad:fa:4f:13:53:62:cd:c1:92:
66:61:0f:37:22:6c:f8:8d:92:c4:2b:f6:13:55:c8:11:93:6a:
9d:5e:9d:c2:68:94:a9:95:0f:29:05:c7:ae:93:d8:4a:f5:4a:
ca:75:d6:4f:1f:57:78:5b
-----BEGIN CERTIFICATE-----
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
Tx9XeFs=
-----END CERTIFICATE-----
Loading

0 comments on commit 19bd9f4

Please sign in to comment.