From e15c38273cee86cd5ab3b68035a13dbc13407eb7 Mon Sep 17 00:00:00 2001
From: Chilja Gossow <49635654+chiljamgossow@users.noreply.github.com>
Date: Mon, 17 May 2021 12:38:00 +0200
Subject: [PATCH] replace with sha256 (#3178)

Co-authored-by: Mohamed Metwalli <mohamed.metwalli@sap.com>
Co-authored-by: Matthias Urhahn <matthias.urhahn@sap.com>
---
 .../java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt | 2 +-
 .../rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt   | 2 +-
 .../coronawarnapp/ui/main/home/HomeFragmentViewModel.kt    | 4 ++--
 .../vaccination/ui/list/VaccinationListFragment.kt         | 6 +++---
 .../vaccination/ui/list/VaccinationListViewModel.kt        | 4 ++--
 .../vaccination/ui/scan/VaccinationQrCodeScanFragment.kt   | 2 +-
 .../vaccination/ui/scan/VaccinationQrCodeScanViewModel.kt  | 4 ++--
 .../src/main/res/navigation/vaccination_nav_graph.xml      | 7 +++----
 8 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt
index 41eae3dee..78005f509 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt
@@ -134,7 +134,7 @@ class HomeFragment : Fragment(R.layout.home_fragment_layout), AutoInject {
                     }
                 }
                 is HomeFragmentEvents.GoToVaccinationList -> findNavController().navigate(
-                    VaccinationListFragment.navigationUri(event.personIdentifierCode)
+                    VaccinationListFragment.navigationUri(event.personIdentifierCodeSha256)
                 )
             }
         }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt
index a26ead913..52e8e3379 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentEvents.kt
@@ -12,5 +12,5 @@ sealed class HomeFragmentEvents {
 
     data class ShowDeleteTestDialog(val type: CoronaTest.Type) : HomeFragmentEvents()
 
-    data class GoToVaccinationList(val personIdentifierCode: String) : HomeFragmentEvents()
+    data class GoToVaccinationList(val personIdentifierCodeSha256: String) : HomeFragmentEvents()
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt
index e789b1e0f..5eebce6b2 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt
@@ -320,7 +320,7 @@ class HomeFragmentViewModel @AssistedInject constructor(
                         vaccinatedPerson = vaccinatedPerson,
                         onClickAction = {
                             popupEvents.postValue(
-                                HomeFragmentEvents.GoToVaccinationList(vaccinatedPerson.identifier.code)
+                                HomeFragmentEvents.GoToVaccinationList(vaccinatedPerson.identifier.codeSHA256)
                             )
                         }
                     )
@@ -328,7 +328,7 @@ class HomeFragmentViewModel @AssistedInject constructor(
                         vaccinatedPerson = vaccinatedPerson,
                         onClickAction = {
                             popupEvents.postValue(
-                                HomeFragmentEvents.GoToVaccinationList(vaccinatedPerson.identifier.code)
+                                HomeFragmentEvents.GoToVaccinationList(vaccinatedPerson.identifier.codeSHA256)
                             )
                         }
                     )
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/list/VaccinationListFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/list/VaccinationListFragment.kt
index 6478749d8..5e6de31fa 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/list/VaccinationListFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/list/VaccinationListFragment.kt
@@ -36,7 +36,7 @@ class VaccinationListFragment : Fragment(R.layout.fragment_vaccination_list), Au
         constructorCall = { factory, _ ->
             factory as VaccinationListViewModel.Factory
             factory.create(
-                personIdentifierCode = args.personIdentifierCode
+                personIdentifierCode = args.personIdentifierCodeSha256
             )
         }
     )
@@ -124,7 +124,7 @@ class VaccinationListFragment : Fragment(R.layout.fragment_vaccination_list), Au
     }
 
     companion object {
-        fun navigationUri(personIdentifierCode: String) =
-            "coronawarnapp://vaccination-list/$personIdentifierCode".toUri()
+        fun navigationUri(personIdentifierCodeSha256: String) =
+            "coronawarnapp://vaccination-list/$personIdentifierCodeSha256".toUri()
     }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/list/VaccinationListViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/list/VaccinationListViewModel.kt
index d62122365..0ed0550a9 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/list/VaccinationListViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/list/VaccinationListViewModel.kt
@@ -21,13 +21,13 @@ import kotlinx.coroutines.flow.map
 
 class VaccinationListViewModel @AssistedInject constructor(
     vaccinationRepository: VaccinationRepository,
-    @Assisted private val personIdentifierCode: String
+    @Assisted private val personIdentifierCodeSha256: String
 ) : CWAViewModel() {
 
     val events = SingleLiveEvent<Event>()
 
     private val vaccinatedPersonFlow = vaccinationRepository.vaccinationInfos.map { vaccinatedPersonSet ->
-        vaccinatedPersonSet.single { it.identifier.code == personIdentifierCode }
+        vaccinatedPersonSet.single { it.identifier.codeSHA256 == personIdentifierCodeSha256 }
     }
 
     val uiState: LiveData<UiState> = vaccinatedPersonFlow.map { vaccinatedPerson ->
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/scan/VaccinationQrCodeScanFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/scan/VaccinationQrCodeScanFragment.kt
index f762343be..55cc22525 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/scan/VaccinationQrCodeScanFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/scan/VaccinationQrCodeScanFragment.kt
@@ -53,7 +53,7 @@ class VaccinationQrCodeScanFragment :
                     doNavigate(
                         VaccinationQrCodeScanFragmentDirections
                             .actionVaccinationQrCodeScanFragmentToVaccinationListFragment(
-                                event.personIdentifierCode
+                                event.personIdentifierCodeSha256
                             )
                     )
                 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/scan/VaccinationQrCodeScanViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/scan/VaccinationQrCodeScanViewModel.kt
index 96be326e5..5f8695e78 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/scan/VaccinationQrCodeScanViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/vaccination/ui/scan/VaccinationQrCodeScanViewModel.kt
@@ -26,7 +26,7 @@ class VaccinationQrCodeScanViewModel @AssistedInject constructor(
             event.postValue(Event.QrCodeScanInProgress)
             val qrCode = vaccinationQRCodeValidator.validate(barcodeResult.text)
             val vaccinationCertificate = vaccinationRepository.registerVaccination(qrCode)
-            event.postValue(Event.QrCodeScanSucceeded(vaccinationCertificate.personIdentifier.code))
+            event.postValue(Event.QrCodeScanSucceeded(vaccinationCertificate.personIdentifier.codeSHA256))
         } catch (e: Throwable) {
             errorEvent.postValue(e)
         }
@@ -39,7 +39,7 @@ class VaccinationQrCodeScanViewModel @AssistedInject constructor(
 
     sealed class Event {
         object QrCodeScanInProgress : Event()
-        data class QrCodeScanSucceeded(val personIdentifierCode: String) : Event()
+        data class QrCodeScanSucceeded(val personIdentifierCodeSha256: String) : Event()
     }
 
     @AssistedFactory
diff --git a/Corona-Warn-App/src/main/res/navigation/vaccination_nav_graph.xml b/Corona-Warn-App/src/main/res/navigation/vaccination_nav_graph.xml
index fddaf017a..d46c28fca 100644
--- a/Corona-Warn-App/src/main/res/navigation/vaccination_nav_graph.xml
+++ b/Corona-Warn-App/src/main/res/navigation/vaccination_nav_graph.xml
@@ -39,13 +39,12 @@
         android:label="fragment_vaccination_list"
         tools:layout="@layout/fragment_vaccination_list">
         <argument
-            android:name="personIdentifierCode"
+            android:name="personIdentifierCodeSha256"
             app:argType="string" />
         <action
             android:id="@+id/action_vaccinationListFragment_to_vaccinationDetailsFragment"
             app:destination="@id/vaccinationDetailsFragment" />
-        <deepLink
-            app:uri="coronawarnapp://vaccination-list/{personIdentifierCode}" />
+        <deepLink app:uri="coronawarnapp://vaccination-list/{personIdentifierCodeSha256}" />
         <action
             android:id="@+id/action_vaccinationListFragment_to_vaccinationQrCodeScanFragment"
             app:destination="@id/vaccinationQrCodeScanFragment" />
@@ -66,4 +65,4 @@
         android:name="de.rki.coronawarnapp.ui.information.InformationPrivacyFragment"
         android:label="privacyFragment"
         tools:layout="@layout/fragment_information_privacy" />
-</navigation>
\ No newline at end of file
+</navigation>
-- 
GitLab