diff --git a/Server-Protocol-Buffer/src/main/proto/internal/evreg/check_in.proto b/Server-Protocol-Buffer/src/main/proto/internal/evreg/check_in.proto new file mode 100644 index 0000000000000000000000000000000000000000..5e3fdf892809ea3de57161cf40060fb737b3c50b --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/evreg/check_in.proto @@ -0,0 +1,34 @@ +// This file is auto-generated, DO NOT make any changes here +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.evreg; + +import "internal/evreg/signed_event.proto"; + +message CheckIn { + uint32 trl = 1; + SignedEvent signedEvent = 2; + uint32 checkinTime = 3; + uint32 checkoutTime = 4; +} + +message CheckInOption1 { + uint32 trl = 1; + bytes eventKey = 2; // 16 byte random string + uint32 checkinTime = 3; + uint32 checkoutTime = 4; +} +message CheckInOption2 { + uint32 trl = 1; + bytes rei = 2; // 16 byte random string +} +message CheckInOption3 { + uint32 trl = 1; + bytes checkinRei = 2; // 16 byte random string + bytes checkoutRei = 3; // 16 byte random string +} +message CheckInOption4 { + uint32 trl = 1; + SignedEvent signedEvent = 2; + uint32 checkinTime = 3; + uint32 checkoutTime = 4; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/evreg/check_in_export.proto b/Server-Protocol-Buffer/src/main/proto/internal/evreg/check_in_export.proto new file mode 100644 index 0000000000000000000000000000000000000000..5ef3d0a4abe9d2a808d8b21e70c5580176c698da --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/evreg/check_in_export.proto @@ -0,0 +1,30 @@ +// This file is auto-generated, DO NOT make any changes here +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.evreg; + + +import "internal/evreg/check_in.proto"; + +message CheckInExport { + repeated CheckInExportItem checkIns = 1; +} + +message CheckInExportItem { + uint32 trl = 1; + bytes eventKey = 2; // 16 byte random string + uint32 checkinTime = 3; + uint32 checkoutTime = 4; +} + +message CheckInExportOption1 { + repeated CheckInOption1 checkIns = 1; +} + +message CheckInExportOption2 { + repeated CheckInOption2 checkIns = 1; +} + +message CheckInExportOption3 { + repeated CheckInOption3 checkIns = 1; +} + diff --git a/Server-Protocol-Buffer/src/main/proto/internal/evreg/event.proto b/Server-Protocol-Buffer/src/main/proto/internal/evreg/event.proto new file mode 100644 index 0000000000000000000000000000000000000000..c567f95503d0f796208d793bea5bdf2b01fae877 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/evreg/event.proto @@ -0,0 +1,12 @@ +// This file is auto-generated, DO NOT make any changes here +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.evreg; + + +message Event { + bytes guid = 1; + string description = 2; + uint32 start = 3; + uint32 end = 4; + uint32 defaultCheckInLengthInMinutes = 5; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/evreg/signed_event.proto b/Server-Protocol-Buffer/src/main/proto/internal/evreg/signed_event.proto new file mode 100644 index 0000000000000000000000000000000000000000..bcf33008dfdb4f59692bf08d3b4c786e78815de2 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/evreg/signed_event.proto @@ -0,0 +1,10 @@ +// This file is auto-generated, DO NOT make any changes here +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.evreg; + +import "internal/evreg/event.proto"; + +message SignedEvent { + Event event = 1; + bytes signature = 2; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/els_otp.proto b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/els_otp.proto new file mode 100644 index 0000000000000000000000000000000000000000..f8831e5184e810de369d5d556b4c432e4dd53076 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/els_otp.proto @@ -0,0 +1,9 @@ +// This file is auto-generated, DO NOT make any changes here +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.ppdd; + + +message ELSOneTimePassword { + + string otp = 1; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/els_otp_request_android.proto b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/els_otp_request_android.proto new file mode 100644 index 0000000000000000000000000000000000000000..0b01eae144108cce115085d627034ee8267797a2 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/els_otp_request_android.proto @@ -0,0 +1,13 @@ +// This file is auto-generated, DO NOT make any changes here +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.ppdd; + +import "internal/ppdd/ppac_android.proto"; +import "internal/ppdd/els_otp.proto"; + +message ELSOneTimePasswordRequestAndroid { + + PPACAndroid authentication = 1; + + ELSOneTimePassword payload = 2; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/els_otp_request_ios.proto b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/els_otp_request_ios.proto new file mode 100644 index 0000000000000000000000000000000000000000..1495785c2ad6b789a2a1cbaa3b16f8dda49c0883 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/els_otp_request_ios.proto @@ -0,0 +1,13 @@ +// This file is auto-generated, DO NOT make any changes here +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.ppdd; + +import "internal/ppdd/ppac_ios.proto"; +import "internal/ppdd/els_otp.proto"; + +message ELSOneTimePasswordRequestIOS { + + PPACIOS authentication = 1; + + ELSOneTimePassword payload = 2; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppa_data_request_android.proto b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppa_data_request_android.proto index 1153d872fcb12ab5ba93d38d6e8386a6cf38ca41..0e1cd12374a0b5e564951cf5e900dc108842948c 100644 --- a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppa_data_request_android.proto +++ b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppa_data_request_android.proto @@ -10,4 +10,4 @@ message PPADataRequestAndroid { PPACAndroid authentication = 1; PPADataAndroid payload = 2; -} \ No newline at end of file +} diff --git a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppa_data_request_ios.proto b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppa_data_request_ios.proto index 18118015327dc1d782df1b31dfd0be8a9cd1c1e4..e7feff7b800c2d254707d792e55a0c2131db9d50 100644 --- a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppa_data_request_ios.proto +++ b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppa_data_request_ios.proto @@ -10,4 +10,4 @@ message PPADataRequestIOS { PPACIOS authentication = 1; PPADataIOS payload = 2; -} \ No newline at end of file +} diff --git a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppac_android.proto b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppac_android.proto index 98aa1159a75bfe7a99318ee88fa2cbe888a6e78a..8e52a3ad922bece16394bd7679707f1028604ae6 100644 --- a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppac_android.proto +++ b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppac_android.proto @@ -8,4 +8,4 @@ message PPACAndroid { string safetyNetJws = 1; string salt = 2; -} \ No newline at end of file +} diff --git a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppac_ios.proto b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppac_ios.proto index 93fcdf23e00191f66557fd163b5c5e82d39a5bba..214426ca0d9cc2446524e2940e5e395b2c12df7e 100644 --- a/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppac_ios.proto +++ b/Server-Protocol-Buffer/src/main/proto/internal/ppdd/ppac_ios.proto @@ -8,4 +8,4 @@ message PPACIOS { string deviceToken = 1; string apiToken = 2; -} \ No newline at end of file +} diff --git a/Server-Protocol-Buffer/src/main/proto/internal/submission_payload.proto b/Server-Protocol-Buffer/src/main/proto/internal/submission_payload.proto index 3d574f61541d07742a410f481051bdbffd1c77ba..5c7ce61c8b935b7ba505cd6fe0f77b1b2430604a 100644 --- a/Server-Protocol-Buffer/src/main/proto/internal/submission_payload.proto +++ b/Server-Protocol-Buffer/src/main/proto/internal/submission_payload.proto @@ -3,6 +3,7 @@ syntax = "proto2"; package de.rki.coronawarnapp.server.protocols.internal; import "external/exposurenotification/temporary_exposure_key_export.proto"; +import "internal/evreg/check_in.proto"; message SubmissionPayload { repeated de.rki.coronawarnapp.server.protocols.external.exposurenotification.TemporaryExposureKey keys = 1; @@ -10,4 +11,5 @@ message SubmissionPayload { repeated string visitedCountries = 3; optional string origin = 4; optional bool consentToFederation = 5; + repeated de.rki.coronawarnapp.server.protocols.internal.evreg.CheckIn checkIns = 6; } diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_android.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_android.proto index 4b66239e8a7006d19da6882316be38e92127ecf0..3a1c608852dd20043a198f3c22213917e308cdd5 100644 --- a/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_android.proto +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_android.proto @@ -3,9 +3,11 @@ syntax = "proto3"; package de.rki.coronawarnapp.server.protocols.internal.v2; import "internal/v2/app_features.proto"; +import "internal/v2/event_registration_parameters.proto"; import "internal/v2/exposure_detection_parameters.proto"; import "internal/v2/key_download_parameters.proto"; import "internal/v2/ppdd_edus_parameters.proto"; +import "internal/v2/ppdd_els_parameters.proto"; import "internal/v2/ppdd_ppa_parameters.proto"; import "internal/v2/risk_calculation_parameters.proto"; @@ -30,6 +32,9 @@ message ApplicationConfigurationAndroid { PPDDEventDrivenUserSurveyParametersAndroid eventDrivenUserSurveyParameters = 10; PPDDPrivacyPreservingAnalyticsParametersAndroid privacyPreservingAnalyticsParameters = 11; + PPDDErrorLogSharingParametersAndroid errorLogSharingParameters = 12; + + EventRegistrationParameters eventRegistrationParameters = 13; } message DiagnosisKeysDataMapping { diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_ios.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_ios.proto index b9c24f0d1f7e75cee721cdb0024b9da3b80ec689..e57b4a2ea15d0828a9014f35bfd820bbe74a281a 100644 --- a/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_ios.proto +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_ios.proto @@ -3,9 +3,11 @@ syntax = "proto3"; package de.rki.coronawarnapp.server.protocols.internal.v2; import "internal/v2/app_features.proto"; +import "internal/v2/event_registration_parameters.proto"; import "internal/v2/exposure_detection_parameters.proto"; import "internal/v2/key_download_parameters.proto"; import "internal/v2/ppdd_edus_parameters.proto"; +import "internal/v2/ppdd_els_parameters.proto"; import "internal/v2/ppdd_ppa_parameters.proto"; import "internal/v2/risk_calculation_parameters.proto"; import "internal/v2/semantic_version.proto"; @@ -29,6 +31,9 @@ message ApplicationConfigurationIOS { PPDDEventDrivenUserSurveyParametersIOS eventDrivenUserSurveyParameters = 9; PPDDPrivacyPreservingAnalyticsParametersIOS privacyPreservingAnalyticsParameters = 10; + PPDDErrorLogSharingParametersIOS errorLogSharingParameters = 11; + + EventRegistrationParameters eventRegistrationParameters = 12; } message ExposureConfiguration { diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/event_registration_parameters.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/event_registration_parameters.proto new file mode 100644 index 0000000000000000000000000000000000000000..5394e14bf36e22c1b9c6fe0059b704ccaa2cf2d8 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/event_registration_parameters.proto @@ -0,0 +1,14 @@ +// This file is auto-generated, DO NOT make any changes here +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.v2; + +import "internal/v2/risk_calculation_parameters.proto"; + +message EventRegistrationParameters { + + // Note: this is very much work in progress! + + // repeated TransmissionRiskValueMapping transmissionRiskValueMapping = 1; + + // repeated NormalizedTimeToRiskLevelMapping normalizedTimePerCheckInToRiskLevelMapping = 2; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/ppdd_els_parameters.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/ppdd_els_parameters.proto new file mode 100644 index 0000000000000000000000000000000000000000..2e88893bd7fe5ae23dc10a3b0a0fd1cae3044e72 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/ppdd_els_parameters.proto @@ -0,0 +1,18 @@ +// This file is auto-generated, DO NOT make any changes here +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.v2; + +import "internal/v2/ppdd_ppac_parameters.proto"; + +message PPDDErrorLogSharingParametersIOS { + PPDDErrorLogSharingParametersCommon common = 1; + PPDDPrivacyPreservingAccessControlParametersIOS ppac = 2; +} + +message PPDDErrorLogSharingParametersAndroid { + PPDDErrorLogSharingParametersCommon common = 1; + PPDDPrivacyPreservingAccessControlParametersAndroid ppac = 2; +} + +message PPDDErrorLogSharingParametersCommon { +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/risk_calculation_parameters.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/risk_calculation_parameters.proto index 955db85e121dd20a1b987dcdace78648e884808a..5ce9691d8fd1b6776093b270f2961bc981f7a9cf 100644 --- a/Server-Protocol-Buffer/src/main/proto/internal/v2/risk_calculation_parameters.proto +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/risk_calculation_parameters.proto @@ -17,7 +17,9 @@ message RiskCalculationParameters { TransmissionRiskLevelEncoding trlEncoding = 6; - double transmissionRiskLevelMultiplier = 7; + double transmissionRiskLevelMultiplier = 7 [deprecated = true]; + + repeated TransmissionRiskValueMapping transmissionRiskValueMapping = 8; } message Range { @@ -62,4 +64,9 @@ message TransmissionRiskLevelEncoding { int32 reportTypeOffsetSelfReport = 4; int32 reportTypeOffsetConfirmedClinicalDiagnosis = 5; int32 reportTypeOffsetConfirmedTest = 6; +} + +message TransmissionRiskValueMapping { + int32 transmissionRiskLevel = 1; + double transmissionRiskValue = 2; } \ No newline at end of file