Tag Archives: infections

Diagnosis Keys Distribution

#!/bin/bash
DAY=0
# https://github.com/corona-warn-app/cwa-server/blob/master/services/distribution/src/test/java/app/coronawarn/server/services/distribution/objectstore/publish/PublishedFileSetTest.java
URL="https://svc90.main.px.t-online.de/version/v1/diagnosis-keys"
while true ; do
  DAY=$(expr $DAY + 86400)
  DATE=$(date -r $(expr $(date +%s) - $DAY) +%Y-%m-%d)
  # https://github.com/corona-warn-app/cwa-server/blob/master/services/distribution/api_v1.json#L229
  for HOUR in $(curl --silent "$URL/country/DE/date/$DATE/hour" | egrep -o "[0-9]+") ; do
    FILENAME="diagnosis_keys_DE_$DATE_$HOUR"
    # https://github.com/corona-warn-app/cwa-server/blob/master/services/distribution/api_v1.json#L289
    curl --silent "$URL/country/DE/date/$DATE/hour/$HOUR" --output "$FILENAME.zip"
    unzip -q "$FILENAME.zip"
    rm "$FILENAME.zip"
    # https://github.com/google/exposure-notifications-server/tree/main/examples/export#inspecting-an-export
    tail +17c < export.bin  | protoc --decode=TemporaryExposureKeyExport TemporaryExposureKeyExport.proto > "$FILENAME.txt"
    rm export.*
    # https://developers.google.com/android/exposure-notifications/exposure-key-file-format
    head -20 "$FILENAME.txt"
    echo "..."
    echo
  done
done       
start_timestamp: 1596517200
end_timestamp: 1596520800
region: "DE"
batch_num: 1
batch_size: 1
signature_infos {
  verification_key_version: "v1"
  verification_key_id: "262"
  signature_algorithm: "1.2.840.10045.4.3.2"
  1: "de.rki.coronawarnapp"
}
keys {
  key_data: "\002\306\311\0249\"0ya\275\017\2548\233\022\275"
  transmission_risk_level: 8
  rolling_start_interval_number: 2660400
  rolling_period: 144
}
keys {
  key_data: "\004X4o\321^r:\344\343\222)\222Df\177"
  transmission_risk_level: 6
...