diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragment.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragment.kt index b0e02bfce947e3a0776b4ed9eca95af2ca08d524..aef9b96ac5c4557b3cbc4075d09bec3c3967edb6 100644 --- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragment.kt +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragment.kt @@ -71,6 +71,8 @@ class DebugOptionsFragment : Fragment(R.layout.fragment_test_debugoptions), Auto environmentCdnurlVerification.text = "Verification CDN:\n${state.urlVerification}" environmentUrlDatadonation.text = "DataDonation:\n${state.urlDataDonation}" environmentUrlLogUpload.text = "LogUpload:\n${state.urlLogUpload}" + environmentUrlVaccinationProof.text = "Vaccination Proof: \n${state.urlVaccinationProof}" + environmentCdnUrlVaccination.text = "Vaccination CDN: \n${state.urlVaccination}" environmentPubkeyCrowdnotifier.text = "CrowdNotifierPubKey:\n${state.pubKeyCrowdNotifier}" environmentPubkeyAppconfig.text = "AppConfigPubKey:\n${state.pubKeyAppConfig}" } diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/EnvironmentState.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/EnvironmentState.kt index c9b907793ab6812a252f519c71a9bee66af2387a..5705116888c4301f48f89d35e649f63a500fcf51 100644 --- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/EnvironmentState.kt +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/EnvironmentState.kt @@ -10,6 +10,8 @@ data class EnvironmentState( val urlVerification: String, val urlDataDonation: String, val urlLogUpload: String, + val urlVaccinationProof: String, + val urlVaccination: String, val pubKeyCrowdNotifier: String, val pubKeyAppConfig: String, ) { @@ -22,6 +24,8 @@ data class EnvironmentState( urlVerification = verificationCdnUrl, urlDataDonation = dataDonationCdnUrl, urlLogUpload = logUploadServerUrl, + urlVaccinationProof = vaccinationProofServerUrl, + urlVaccination = vaccinationCdnUrl, pubKeyCrowdNotifier = crowdNotifierPublicKey, pubKeyAppConfig = appConfigPublicKey, ) diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_debugoptions.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_debugoptions.xml index 165e76a5873ac28d6015f1d63ec99802ff2c4a4f..25c7dff4c96bbbbbefa701de75382a3a262045fb 100644 --- a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_debugoptions.xml +++ b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_debugoptions.xml @@ -109,6 +109,22 @@ android:layout_marginTop="4dp" tools:text="LogUpload: ?" /> + <TextView + android:id="@+id/environment_url_vaccination_proof" + style="@style/TextAppearance.MaterialComponents.Caption" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + tools:text="VaccinationProof: ?" /> + + <TextView + android:id="@+id/environment_cdn_url_vaccination" + style="@style/TextAppearance.MaterialComponents.Caption" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + tools:text="Vaccination: ?" /> + <TextView android:id="@+id/environment_pubkey_appconfig" style="@style/TextAppearance.MaterialComponents.Caption" diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentModule.kt index b99710e6d4a6bd5a07a5bb7d08931aecf4594746..3a81cb926a78ecec4b9f6e8333b31fb15e075770 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentModule.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentModule.kt @@ -5,6 +5,7 @@ import de.rki.coronawarnapp.environment.bugreporting.BugReportingServerModule import de.rki.coronawarnapp.environment.datadonation.DataDonationCDNModule import de.rki.coronawarnapp.environment.download.DownloadCDNModule import de.rki.coronawarnapp.environment.submission.SubmissionCDNModule +import de.rki.coronawarnapp.environment.vaccination.VaccinationCertificateUrlModule import de.rki.coronawarnapp.environment.verification.VerificationCDNModule @Module( @@ -13,7 +14,8 @@ import de.rki.coronawarnapp.environment.verification.VerificationCDNModule SubmissionCDNModule::class, VerificationCDNModule::class, DataDonationCDNModule::class, - BugReportingServerModule::class + BugReportingServerModule::class, + VaccinationCertificateUrlModule::class ] ) class EnvironmentModule diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentSetup.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentSetup.kt index d44e8e88ef378eaae6e78f7c4e73591be7c08e93..8f11f07e0bd9d8e2564181adad909ed9ce6ad294 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentSetup.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentSetup.kt @@ -12,6 +12,8 @@ import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.LOG_UPLOAD import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.SAFETYNET_API_KEY import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.SUBMISSION import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.USE_EUR_KEY_PKGS +import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.VACCINATION_PROOF +import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.VACCINATION_VALUE import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.VERIFICATION import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.VERIFICATION_KEYS import de.rki.coronawarnapp.environment.EnvironmentSetup.Type.Companion.toEnvironmentType @@ -36,6 +38,8 @@ class EnvironmentSetup @Inject constructor( VERIFICATION_KEYS("PUB_KEYS_SIGNATURE_VERIFICATION"), DATA_DONATION("DATA_DONATION_CDN_URL"), LOG_UPLOAD("LOG_UPLOAD_SERVER_URL"), + VACCINATION_PROOF("VACCINATION_PROOF_SERVER_URL"), + VACCINATION_VALUE("VACCINATION_CDN_URL"), SAFETYNET_API_KEY("SAFETYNET_API_KEY"), CROWD_NOTIFIER_PUBLIC_KEY("CROWD_NOTIFIER_PUBLIC_KEY") } @@ -135,6 +139,12 @@ class EnvironmentSetup @Inject constructor( val logUploadServerUrl: String get() = getEnvironmentValue(LOG_UPLOAD).asString + val vaccinationProofServerUrl: String + get() = getEnvironmentValue(VACCINATION_PROOF).asString + + val vaccinationCdnUrl: String + get() = getEnvironmentValue(VACCINATION_VALUE).asString + companion object { private const val PKEY_CURRENT_ENVINROMENT = "environment.current" } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/vaccination/VaccinationCertificateCDNUrl.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/vaccination/VaccinationCertificateCDNUrl.kt new file mode 100644 index 0000000000000000000000000000000000000000..5740f4bf0ca8e587642020e693a8754b43e91b09 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/vaccination/VaccinationCertificateCDNUrl.kt @@ -0,0 +1,8 @@ +package de.rki.coronawarnapp.environment.vaccination + +import javax.inject.Qualifier + +@Qualifier +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +annotation class VaccinationCertificateCDNUrl diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/vaccination/VaccinationCertificateProofServerUrl.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/vaccination/VaccinationCertificateProofServerUrl.kt new file mode 100644 index 0000000000000000000000000000000000000000..c8ede341fd2906c7188da2885814378698917fff --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/vaccination/VaccinationCertificateProofServerUrl.kt @@ -0,0 +1,8 @@ +package de.rki.coronawarnapp.environment.vaccination + +import javax.inject.Qualifier + +@Qualifier +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +annotation class VaccinationCertificateProofServerUrl diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/vaccination/VaccinationCertificateUrlModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/vaccination/VaccinationCertificateUrlModule.kt new file mode 100644 index 0000000000000000000000000000000000000000..bb368376758cf7e747e2a1f4008fe8250def894f --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/vaccination/VaccinationCertificateUrlModule.kt @@ -0,0 +1,23 @@ +package de.rki.coronawarnapp.environment.vaccination + +import dagger.Module +import dagger.Provides +import dagger.Reusable +import de.rki.coronawarnapp.environment.BaseEnvironmentModule +import de.rki.coronawarnapp.environment.EnvironmentSetup + +@Module +class VaccinationCertificateUrlModule : BaseEnvironmentModule() { + + @Reusable + @VaccinationCertificateProofServerUrl + @Provides + fun provideVaccinationProofUrl(environmentSetup: EnvironmentSetup): String = + requireValidUrl(environmentSetup.vaccinationProofServerUrl) + + @Reusable + @VaccinationCertificateCDNUrl + @Provides + fun provideVaccinationValueSetUrl(environmentSetup: EnvironmentSetup): String = + requireValidUrl(environmentSetup.vaccinationCdnUrl) +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinatedPerson.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinatedPerson.kt index fc29037ffa37a26efb60cd0a22a0868ef7a16af0..5be20e9fa039068af920b122f382e7e13e2ff2ba 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinatedPerson.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinatedPerson.kt @@ -1,7 +1,8 @@ package de.rki.coronawarnapp.vaccination.core import de.rki.coronawarnapp.vaccination.core.repository.storage.PersonData -import de.rki.coronawarnapp.vaccination.core.server.VaccinationValueSet +import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSet + import org.joda.time.LocalDate data class VaccinatedPerson( diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationModule.kt index a8347a192f3011c53a2f139323433e186e44fd18..c8a9c230647944e03cb26de79d0251861d53a191 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationModule.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/VaccinationModule.kt @@ -1,6 +1,11 @@ package de.rki.coronawarnapp.vaccination.core import dagger.Module +import de.rki.coronawarnapp.vaccination.core.server.VaccinationServerModule -@Module -class VaccinationModule +@Module( + includes = [ + VaccinationServerModule::class + ] +) +abstract class VaccinationModule diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepository.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepository.kt index c4b6a7fb8536a0def5677044033c3cad525cee58..1a3cb68addd4d000e4cf92bd0a64d13c9340e0c3 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepository.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepository.kt @@ -17,7 +17,8 @@ import de.rki.coronawarnapp.vaccination.core.repository.storage.PersonData import de.rki.coronawarnapp.vaccination.core.repository.storage.VaccinationStorage import de.rki.coronawarnapp.vaccination.core.repository.storage.toProofContainer import de.rki.coronawarnapp.vaccination.core.repository.storage.toVaccinationContainer -import de.rki.coronawarnapp.vaccination.core.server.VaccinationProofServer +import de.rki.coronawarnapp.vaccination.core.server.proof.VaccinationProofServer + import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/ValueSetsRepository.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/ValueSetsRepository.kt index 7ffaf2e5348106232304541a11db4fcce9562c5e..e3497c090778dcdf8079163b72f2bd4082338107 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/ValueSetsRepository.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/ValueSetsRepository.kt @@ -1,7 +1,8 @@ package de.rki.coronawarnapp.vaccination.core.repository import de.rki.coronawarnapp.submission.server.SubmissionServer -import de.rki.coronawarnapp.vaccination.core.server.VaccinationValueSet +import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSet + import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flowOf import javax.inject.Inject diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/storage/ProofContainer.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/storage/ProofContainer.kt index fec60be5d44adc3971a72a13f2acf3927020e955..422bf60f041b7f36fb1ae4d0be4f71f998d792e7 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/storage/ProofContainer.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/storage/ProofContainer.kt @@ -5,11 +5,12 @@ import com.google.gson.annotations.SerializedName import de.rki.coronawarnapp.vaccination.core.ProofCertificate import de.rki.coronawarnapp.vaccination.core.VaccinatedPersonIdentifier import de.rki.coronawarnapp.vaccination.core.personIdentifier -import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateCOSEParser -import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateData -import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateResponse +import de.rki.coronawarnapp.vaccination.core.server.proof.ProofCertificateCOSEParser +import de.rki.coronawarnapp.vaccination.core.server.proof.ProofCertificateData +import de.rki.coronawarnapp.vaccination.core.server.proof.ProofCertificateResponse import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateV1 -import de.rki.coronawarnapp.vaccination.core.server.VaccinationValueSet +import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSet + import okio.ByteString import org.joda.time.Instant import org.joda.time.LocalDate diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/storage/VaccinationContainer.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/storage/VaccinationContainer.kt index 0519e17300c05a76cc42e22cdc853c9fb826fe1a..87bb73192f326eff7d0e8885257e9bb39ce3062e 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/storage/VaccinationContainer.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/repository/storage/VaccinationContainer.kt @@ -10,7 +10,8 @@ import de.rki.coronawarnapp.vaccination.core.qrcode.VaccinationCertificateCOSEPa import de.rki.coronawarnapp.vaccination.core.qrcode.VaccinationCertificateData import de.rki.coronawarnapp.vaccination.core.qrcode.VaccinationCertificateQRCode import de.rki.coronawarnapp.vaccination.core.qrcode.VaccinationCertificateV1 -import de.rki.coronawarnapp.vaccination.core.server.VaccinationValueSet +import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSet + import okio.ByteString import org.joda.time.Instant import org.joda.time.LocalDate diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationServerModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationServerModule.kt new file mode 100644 index 0000000000000000000000000000000000000000..b609d87e49bcdb47968d08f6e58f961384381534 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationServerModule.kt @@ -0,0 +1,13 @@ +package de.rki.coronawarnapp.vaccination.core.server + +import dagger.Module +import de.rki.coronawarnapp.vaccination.core.server.proof.VaccinationProofModule +import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSetModule + +@Module( + includes = [ + VaccinationValueSetModule::class, + VaccinationProofModule::class + ] +) +abstract class VaccinationServerModule diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateCOSEParser.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateCOSEParser.kt similarity index 92% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateCOSEParser.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateCOSEParser.kt index 97eafeda40e53f915ea00909d2f3b79e18e8077f..555dd116eda479da40c4144270851954464a2648 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateCOSEParser.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateCOSEParser.kt @@ -1,5 +1,6 @@ -package de.rki.coronawarnapp.vaccination.core.server +package de.rki.coronawarnapp.vaccination.core.server.proof +import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateV1 import okio.ByteString import org.joda.time.Instant import org.joda.time.LocalDate diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateData.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateData.kt similarity index 78% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateData.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateData.kt index 382dbc8d37a6189fc195035123c3e1a6f85c3adf..deef7b47e4ea145106a8de9653a3e31383e56e75 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateData.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateData.kt @@ -1,5 +1,6 @@ -package de.rki.coronawarnapp.vaccination.core.server +package de.rki.coronawarnapp.vaccination.core.server.proof +import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateV1 import org.joda.time.Instant /** diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateException.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateException.kt similarity index 78% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateException.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateException.kt index 447790e02173bdb25da275124eb56b65c913e9c0..a7b10b17330ee9bbfcd829e481abc5115525aff5 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateException.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateException.kt @@ -1,4 +1,4 @@ -package de.rki.coronawarnapp.vaccination.core.server +package de.rki.coronawarnapp.vaccination.core.server.proof import de.rki.coronawarnapp.vaccination.core.VaccinationException diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateResponse.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateResponse.kt similarity index 79% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateResponse.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateResponse.kt index bc1ab87a8b3f8a8e25569c67ce7cb4115e7a97a5..41284e1569c01b8a581d7534abbe5fc76f7f0f7a 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/ProofCertificateResponse.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateResponse.kt @@ -1,4 +1,4 @@ -package de.rki.coronawarnapp.vaccination.core.server +package de.rki.coronawarnapp.vaccination.core.server.proof import okio.ByteString diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateServerData.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateServerData.kt new file mode 100644 index 0000000000000000000000000000000000000000..644c05b091e7796d30aecafb43dd52523097ca6f --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/ProofCertificateServerData.kt @@ -0,0 +1,5 @@ +package de.rki.coronawarnapp.vaccination.core.server.proof + +interface ProofCertificateServerData { + // Satisfy CI ¯\_(ツ)_/¯ +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofApiV1.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofApiV1.kt new file mode 100644 index 0000000000000000000000000000000000000000..bb4c059786efd23bd5f877100103f35f68170aec --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofApiV1.kt @@ -0,0 +1,6 @@ +package de.rki.coronawarnapp.vaccination.core.server.proof + +@Deprecated("Poor fella never was used once. Delete when everything is merged.") +interface VaccinationProofApiV1 { + // Satisfy CI ¯\_(ツ)_/¯ +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofApiV2.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofApiV2.kt new file mode 100644 index 0000000000000000000000000000000000000000..e90a9ece33ff0cc17c71421bc13370ed796e5783 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofApiV2.kt @@ -0,0 +1,23 @@ +package de.rki.coronawarnapp.vaccination.core.server.proof + +import okio.ByteString +import retrofit2.http.Body +import retrofit2.http.Headers + +import retrofit2.http.POST + +interface VaccinationProofApiV2 { + + // Returns COSE representation (as byte sequence) of a Proof Certificate + @Headers("Content-Type: application/cbor") + @POST("/api/certify/v2/reissue/cbor") + suspend fun obtainProofCertificate(@Body cose: ByteString): ByteString + + // Returns string as for the QR Code of a Proof Certificate (starting with HC1: ) + @Headers( + "Content-Type: application/cbor", + "Accept: application/cbor+base45" + ) + @POST("/api/certify/v2/reissue/cbor") + suspend fun obtainProofCertificateBase45(@Body cose: ByteString): String +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofHttpClient.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofHttpClient.kt new file mode 100644 index 0000000000000000000000000000000000000000..a94a2c643210300f0b862786430ad3cb491eded8 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofHttpClient.kt @@ -0,0 +1,8 @@ +package de.rki.coronawarnapp.vaccination.core.server.proof + +import javax.inject.Qualifier + +@Qualifier +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +annotation class VaccinationProofHttpClient diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofModule.kt new file mode 100644 index 0000000000000000000000000000000000000000..0d5d820efd78a1cbad4b0d750989021112951fa5 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofModule.kt @@ -0,0 +1,31 @@ +package de.rki.coronawarnapp.vaccination.core.server.proof + +import dagger.Module +import dagger.Provides +import dagger.Reusable +import de.rki.coronawarnapp.environment.vaccination.VaccinationCertificateProofServerUrl +import de.rki.coronawarnapp.http.HttpClientDefault +import okhttp3.OkHttpClient +import retrofit2.Retrofit + +@Module +class VaccinationProofModule { + + @Reusable + @VaccinationProofHttpClient + @Provides + fun httpClient( + @HttpClientDefault default: OkHttpClient + ): OkHttpClient = default.newBuilder().build() + + @Reusable + @Provides + fun api( + @VaccinationProofHttpClient httpClient: OkHttpClient, + @VaccinationCertificateProofServerUrl url: String + ): VaccinationProofApiV2 = Retrofit.Builder() + .client(httpClient) + .baseUrl(url) + .build() + .create(VaccinationProofApiV2::class.java) +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationProofServer.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofServer.kt similarity index 84% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationProofServer.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofServer.kt index dd3a546794c27e8fcf0a258ef032cc564b0de142..87aea53e08e53837527668101e6885db1918131b 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationProofServer.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/proof/VaccinationProofServer.kt @@ -1,4 +1,4 @@ -package de.rki.coronawarnapp.vaccination.core.server +package de.rki.coronawarnapp.vaccination.core.server.proof import dagger.Reusable import okio.ByteString diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationServer.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationServer.kt similarity index 51% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationServer.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationServer.kt index 3b4ed12919eec83292dbd27d63cbecabb23e245b..cb64715a67d263d703c095a9e64ad11c925e006c 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationServer.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationServer.kt @@ -1,6 +1,8 @@ -package de.rki.coronawarnapp.vaccination.core.server +package de.rki.coronawarnapp.vaccination.core.server.valueset import dagger.Reusable +import okhttp3.Cache +import timber.log.Timber import java.util.Locale import javax.inject.Inject @@ -8,7 +10,9 @@ import javax.inject.Inject * Talks with CWA servers */ @Reusable -class VaccinationServer @Inject constructor() { +class VaccinationServer @Inject constructor( + @VaccinationValueSetHttpClient private val cache: Cache +) { suspend fun getVaccinationValueSets(languageCode: Locale): VaccinationValueSet { throw NotImplementedError() @@ -16,6 +20,7 @@ class VaccinationServer @Inject constructor() { fun clear() { // Clear cache - throw NotImplementedError() + Timber.d("Clearing cache") + cache.evictAll() } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationValueSet.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSet.kt similarity index 68% rename from Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationValueSet.kt rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSet.kt index c1f88db7386d45b9a6e7a1ed50fbbf361fc22606..6bace45c474e8760501732e684653ab8c7360ea8 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/VaccinationValueSet.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSet.kt @@ -1,4 +1,4 @@ -package de.rki.coronawarnapp.vaccination.core.server +package de.rki.coronawarnapp.vaccination.core.server.valueset import java.util.Locale diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSetApiV1.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSetApiV1.kt new file mode 100644 index 0000000000000000000000000000000000000000..d30f63ada3e13187b20aa2952192c35b9ea9df20 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSetApiV1.kt @@ -0,0 +1,12 @@ +package de.rki.coronawarnapp.vaccination.core.server.valueset + +import okhttp3.ResponseBody +import retrofit2.Response +import retrofit2.http.GET +import retrofit2.http.Path + +interface VaccinationValueSetApiV1 { + + @GET("/version/v1/ehn-dgc/{lang}/value-sets") + suspend fun getValueSets(@Path("lang") languageCode: String): Response<ResponseBody> +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSetHttpClient.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSetHttpClient.kt new file mode 100644 index 0000000000000000000000000000000000000000..1650bcb5f61039656a1cc3e51485dacf03e5317b --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSetHttpClient.kt @@ -0,0 +1,8 @@ +package de.rki.coronawarnapp.vaccination.core.server.valueset + +import javax.inject.Qualifier + +@Qualifier +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +annotation class VaccinationValueSetHttpClient diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSetModule.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSetModule.kt new file mode 100644 index 0000000000000000000000000000000000000000..1a4d73746910ef349635ffe3e5e95f0c1a0f0807 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/core/server/valueset/VaccinationValueSetModule.kt @@ -0,0 +1,53 @@ +package de.rki.coronawarnapp.vaccination.core.server.valueset + +import android.content.Context +import dagger.Module +import dagger.Provides +import dagger.Reusable +import de.rki.coronawarnapp.environment.vaccination.VaccinationCertificateCDNUrl +import de.rki.coronawarnapp.http.HttpClientDefault +import de.rki.coronawarnapp.util.di.AppContext +import okhttp3.Cache +import okhttp3.OkHttpClient +import retrofit2.Retrofit +import java.io.File + +@Module +class VaccinationValueSetModule { + + @Reusable + @VaccinationValueSetHttpClient + @Provides + fun cache( + @AppContext context: Context + ): Cache { + val cacheDir = File(context.cacheDir, "vaccination_value") + val cacheFile = File(cacheDir, "http_cache") + return Cache(cacheFile, CACHE_SIZE_5MB) + } + + @Reusable + @VaccinationValueSetHttpClient + @Provides + fun httpClient( + @HttpClientDefault defaultHttpClient: OkHttpClient, + @VaccinationValueSetHttpClient cache: Cache + ): OkHttpClient = defaultHttpClient.newBuilder() + .cache(cache) + .build() + + @Reusable + @Provides + fun api( + @VaccinationValueSetHttpClient httpClient: OkHttpClient, + @VaccinationCertificateCDNUrl url: String + ): VaccinationValueSetApiV1 = Retrofit.Builder() + .client(httpClient) + .baseUrl(url) + .build() + .create(VaccinationValueSetApiV1::class.java) + + companion object { + private const val CACHE_SIZE_5MB = 5 * 1024 * 1024L // 5MB + } +} diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/environment/EnvironmentSetupTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/environment/EnvironmentSetupTest.kt index cfbee9a6393b9464a3c8b85d14e5dd9158516988..2825adb0544c484dd185beade0c336934e322228 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/environment/EnvironmentSetupTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/environment/EnvironmentSetupTest.kt @@ -68,6 +68,8 @@ class EnvironmentSetupTest : BaseTest() { dataDonationCdnUrl shouldBe "https://datadonation-${env.rawKey}" logUploadServerUrl shouldBe "https://logupload-${env.rawKey}" crowdNotifierPublicKey shouldBe "123_abc-${env.rawKey}" + vaccinationProofServerUrl shouldBe "https://vaccination_proof-${env.rawKey}" + vaccinationCdnUrl shouldBe "https://vaccination-${env.rawKey}" } } } @@ -127,7 +129,9 @@ class EnvironmentSetupTest : BaseTest() { EnvironmentSetup.EnvKey.LOG_UPLOAD.rawKey shouldBe "LOG_UPLOAD_SERVER_URL" EnvironmentSetup.EnvKey.SAFETYNET_API_KEY.rawKey shouldBe "SAFETYNET_API_KEY" EnvironmentSetup.EnvKey.CROWD_NOTIFIER_PUBLIC_KEY.rawKey shouldBe "CROWD_NOTIFIER_PUBLIC_KEY" - EnvironmentSetup.EnvKey.values().size shouldBe 9 + EnvironmentSetup.EnvKey.VACCINATION_PROOF.rawKey shouldBe "VACCINATION_PROOF_SERVER_URL" + EnvironmentSetup.EnvKey.VACCINATION_VALUE.rawKey shouldBe "VACCINATION_CDN_URL" + EnvironmentSetup.EnvKey.values().size shouldBe 11 } companion object { @@ -149,6 +153,8 @@ class EnvironmentSetupTest : BaseTest() { "VERIFICATION_CDN_URL": "https://verification-PROD", "DATA_DONATION_CDN_URL": "https://datadonation-PROD", "LOG_UPLOAD_SERVER_URL": "https://logupload-PROD", + "VACCINATION_PROOF_SERVER_URL": "https://vaccination_proof-PROD", + "VACCINATION_CDN_URL": "https://vaccination-PROD", "SAFETYNET_API_KEY": "placeholder-PROD", "PUB_KEYS_SIGNATURE_VERIFICATION": "12345678-PROD", "CROWD_NOTIFIER_PUBLIC_KEY": "123_abc-PROD" @@ -160,6 +166,8 @@ class EnvironmentSetupTest : BaseTest() { "VERIFICATION_CDN_URL": "https://verification-DEV", "DATA_DONATION_CDN_URL": "https://datadonation-DEV", "LOG_UPLOAD_SERVER_URL": "https://logupload-DEV", + "VACCINATION_PROOF_SERVER_URL": "https://vaccination_proof-DEV", + "VACCINATION_CDN_URL": "https://vaccination-DEV", "SAFETYNET_API_KEY": "placeholder-DEV", "PUB_KEYS_SIGNATURE_VERIFICATION": "12345678-DEV", "CROWD_NOTIFIER_PUBLIC_KEY": "123_abc-DEV" @@ -171,6 +179,8 @@ class EnvironmentSetupTest : BaseTest() { "VERIFICATION_CDN_URL": "https://verification-INT", "DATA_DONATION_CDN_URL": "https://datadonation-INT", "LOG_UPLOAD_SERVER_URL": "https://logupload-INT", + "VACCINATION_PROOF_SERVER_URL": "https://vaccination_proof-INT", + "VACCINATION_CDN_URL": "https://vaccination-INT", "SAFETYNET_API_KEY": "placeholder-INT", "PUB_KEYS_SIGNATURE_VERIFICATION": "12345678-INT", "CROWD_NOTIFIER_PUBLIC_KEY": "123_abc-INT" @@ -182,6 +192,8 @@ class EnvironmentSetupTest : BaseTest() { "VERIFICATION_CDN_URL": "https://verification-WRU", "DATA_DONATION_CDN_URL": "https://datadonation-WRU", "LOG_UPLOAD_SERVER_URL": "https://logupload-WRU", + "VACCINATION_PROOF_SERVER_URL": "https://vaccination_proof-WRU", + "VACCINATION_CDN_URL": "https://vaccination-WRU", "SAFETYNET_API_KEY": "placeholder-WRU", "PUB_KEYS_SIGNATURE_VERIFICATION": "12345678-WRU", "CREATE_TRACELOCATION_URL": "https://tracelocation-WRU", @@ -194,6 +206,8 @@ class EnvironmentSetupTest : BaseTest() { "VERIFICATION_CDN_URL": "https://verification-WRU-XD", "DATA_DONATION_CDN_URL": "https://datadonation-WRU-XD", "LOG_UPLOAD_SERVER_URL": "https://logupload-WRU-XD", + "VACCINATION_PROOF_SERVER_URL": "https://vaccination_proof-WRU-XD", + "VACCINATION_CDN_URL": "https://vaccination-WRU-XD", "SAFETYNET_API_KEY": "placeholder-WRU-XD", "PUB_KEYS_SIGNATURE_VERIFICATION": "12345678-WRU-XD", "CROWD_NOTIFIER_PUBLIC_KEY": "123_abc-WRU-XD" @@ -205,6 +219,8 @@ class EnvironmentSetupTest : BaseTest() { "VERIFICATION_CDN_URL": "https://verification-WRU-XA", "DATA_DONATION_CDN_URL": "https://datadonation-WRU-XA", "LOG_UPLOAD_SERVER_URL": "https://logupload-WRU-XA", + "VACCINATION_PROOF_SERVER_URL": "https://vaccination_proof-WRU-XA", + "VACCINATION_CDN_URL": "https://vaccination-WRU-XA", "SAFETYNET_API_KEY": "placeholder-WRU-XA", "PUB_KEYS_SIGNATURE_VERIFICATION": "12345678-WRU-XA", "CROWD_NOTIFIER_PUBLIC_KEY": "123_abc-WRU-XA" @@ -216,6 +232,8 @@ class EnvironmentSetupTest : BaseTest() { "VERIFICATION_CDN_URL": "https://verification-TESTER-MOCK", "DATA_DONATION_CDN_URL": "https://datadonation-TESTER-MOCK", "LOG_UPLOAD_SERVER_URL": "https://logupload-TESTER-MOCK", + "VACCINATION_PROOF_SERVER_URL": "https://vaccination_proof-TESTER-MOCK", + "VACCINATION_CDN_URL": "https://vaccination-TESTER-MOCK", "SAFETYNET_API_KEY": "placeholder-TESTER-MOCK", "PUB_KEYS_SIGNATURE_VERIFICATION": "12345678-TESTER-MOCK", "CROWD_NOTIFIER_PUBLIC_KEY": "123_abc-TESTER-MOCK" @@ -227,6 +245,8 @@ class EnvironmentSetupTest : BaseTest() { "VERIFICATION_CDN_URL": "https://verification-LOCAL", "DATA_DONATION_CDN_URL": "https://datadonation-LOCAL", "LOG_UPLOAD_SERVER_URL": "https://logupload-LOCAL", + "VACCINATION_PROOF_SERVER_URL": "https://vaccination_proof-LOCAL", + "VACCINATION_CDN_URL": "https://vaccination-LOCAL", "SAFETYNET_API_KEY": "placeholder-LOCAL", "PUB_KEYS_SIGNATURE_VERIFICATION": "12345678-LOCAL", "CROWD_NOTIFIER_PUBLIC_KEY": "123_abc-LOCAL" diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/VaccinationTestData.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/VaccinationTestData.kt index a8f8596ee00e7be776b987a6602f9ac8c8de5804..334f7be771cc886709ed5de362fadf43ad8d2ee5 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/VaccinationTestData.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/VaccinationTestData.kt @@ -6,8 +6,8 @@ import de.rki.coronawarnapp.vaccination.core.qrcode.VaccinationCertificateV1 import de.rki.coronawarnapp.vaccination.core.repository.storage.PersonData import de.rki.coronawarnapp.vaccination.core.repository.storage.ProofContainer import de.rki.coronawarnapp.vaccination.core.repository.storage.VaccinationContainer -import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateData -import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateResponse +import de.rki.coronawarnapp.vaccination.core.server.proof.ProofCertificateData +import de.rki.coronawarnapp.vaccination.core.server.proof.ProofCertificateResponse import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateV1 import okio.ByteString import okio.ByteString.Companion.decodeBase64 diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepositoryTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepositoryTest.kt index 9a707688ee09916569fac6caa90e9828045a41d4..dfb4b86a2e1d75f27c252e63f4949b8ca958a23d 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepositoryTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/repository/VaccinationRepositoryTest.kt @@ -4,8 +4,8 @@ import de.rki.coronawarnapp.util.TimeStamper import de.rki.coronawarnapp.vaccination.core.VaccinationTestData import de.rki.coronawarnapp.vaccination.core.repository.storage.PersonData import de.rki.coronawarnapp.vaccination.core.repository.storage.VaccinationStorage -import de.rki.coronawarnapp.vaccination.core.server.VaccinationProofServer -import de.rki.coronawarnapp.vaccination.core.server.VaccinationValueSet +import de.rki.coronawarnapp.vaccination.core.server.proof.VaccinationProofServer +import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSet import io.kotest.matchers.shouldBe import io.mockk.MockKAnnotations import io.mockk.coEvery diff --git a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt index c1b802516a2f5aa590dd3cf5ba6fcbd6d23e5906..899f6fd6ebec6a210ee296f95202f0f8bf1489ab 100644 --- a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt +++ b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt @@ -31,6 +31,8 @@ class DebugOptionsFragmentViewModelTest : BaseTestInstrumentation() { every { environmentSetup.verificationCdnUrl } returns "verificationUrl" every { environmentSetup.dataDonationCdnUrl } returns "dataDonationUrl" every { environmentSetup.logUploadServerUrl } returns "logUploadServerUrl" + every { environmentSetup.vaccinationProofServerUrl } returns "vaccinationProofServerUrl" + every { environmentSetup.vaccinationCdnUrl } returns "vaccinationCdnUrl" every { environmentSetup.crowdNotifierPublicKey } returns "crowdNotifierPublicKey" every { environmentSetup.appConfigPublicKey } returns "appConfigPublicKey" diff --git a/prod_environments.json b/prod_environments.json index 09d9015c150489eb2dac757a9dfbe5d25f476926..c5c3b3f63cb9db1cf02a4f9e542168f804038d2a 100644 --- a/prod_environments.json +++ b/prod_environments.json @@ -6,6 +6,8 @@ "VERIFICATION_CDN_URL": "https://verification.coronawarn.app", "DATA_DONATION_CDN_URL": "https://data.coronawarn.app", "LOG_UPLOAD_SERVER_URL": "https://logupload.coronawarn.app", + "VACCINATION_PROOF_SERVER_URL": "https://placeholder", + "VACCINATION_CDN_URL": "https://placeholder", "SAFETYNET_API_KEY": "placeholder", "PUB_KEYS_SIGNATURE_VERIFICATION": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEc7DEstcUIRcyk35OYDJ95/hTg3UVhsaDXKT0zK7NhHPXoyzipEnOp3GyNXDVpaPi3cAfQmxeuFMZAIX2+6A5Xg==", "CROWD_NOTIFIER_PUBLIC_KEY": "gwLMzE153tQwAOf2MZoUXXfzWTdlSpfS99iZffmcmxOG9njSK4RTimFOFwDh6t0Tyw8XR01ugDYjtuKwjjuK49Oh83FWct6XpefPi9Skjxvvz53i9gaMmUEc96pbtoaA"