diff --git a/.idea/sonarlint/issuestore/2/f/2f8371ba41afcb67d9051946cc189a09643637be b/.idea/sonarlint/issuestore/2/f/2f8371ba41afcb67d9051946cc189a09643637be new file mode 100644 index 00000000..e69de29b diff --git a/.idea/sonarlint/issuestore/7/b/7bbea943dc2077e68f09568eca397dbf74cd622d b/.idea/sonarlint/issuestore/7/b/7bbea943dc2077e68f09568eca397dbf74cd622d new file mode 100644 index 00000000..e69de29b diff --git a/.idea/sonarlint/issuestore/b/7/b73af1a45eb4e13c946a7f69475a41669caeb2bf b/.idea/sonarlint/issuestore/b/7/b73af1a45eb4e13c946a7f69475a41669caeb2bf new file mode 100644 index 00000000..e69de29b diff --git a/.idea/sonarlint/issuestore/index.pb b/.idea/sonarlint/issuestore/index.pb index d8845623..cebd6697 100644 --- a/.idea/sonarlint/issuestore/index.pb +++ b/.idea/sonarlint/issuestore/index.pb @@ -74,4 +74,10 @@ n „ Tapp/src/main/java/dgca/wallet/app/android/certificate/claim/VaccinationViewHolder.kt,4/7/4774f218010287c0da4585eacc9ffd61e11503ce € -Papp/src/main/java/dgca/wallet/app/android/certificate/CertificateCardsAdapter.kt,0/2/0223df1f55766185176f6d7c6c73166998c9b604 \ No newline at end of file +Papp/src/main/java/dgca/wallet/app/android/certificate/CertificateCardsAdapter.kt,0/2/0223df1f55766185176f6d7c6c73166998c9b604 +h +8app/src/main/java/dgca/wallet/app/android/data/Config.kt,7/b/7bbea943dc2077e68f09568eca397dbf74cd622d +W +'app/src/tst/assets/wallet-context.jsonc,2/f/2f8371ba41afcb67d9051946cc189a09643637be + +Osrc/main/java/dgca/verifier/app/decoder/compression/DefaultCompressorService.kt,b/7/b73af1a45eb4e13c946a7f69475a41669caeb2bf \ No newline at end of file diff --git a/app/src/main/java/dgca/wallet/app/android/certificate/claim/ClaimCertificateViewModel.kt b/app/src/main/java/dgca/wallet/app/android/certificate/claim/ClaimCertificateViewModel.kt index 54d195dc..eab62f64 100644 --- a/app/src/main/java/dgca/wallet/app/android/certificate/claim/ClaimCertificateViewModel.kt +++ b/app/src/main/java/dgca/wallet/app/android/certificate/claim/ClaimCertificateViewModel.kt @@ -75,7 +75,7 @@ class ClaimCertificateViewModel @Inject constructor( private val _event = MutableLiveData>() val event: LiveData> = _event - private var cose = ByteArray(0) + private var cose: ByteArray = ByteArray(0) private var greenCertificate: GreenCertificate? = null fun init(qrCodeText: String) { @@ -85,7 +85,13 @@ class ClaimCertificateViewModel @Inject constructor( val verificationResult = VerificationResult() val plainInput = prefixValidationService.decode(qrCodeText, verificationResult) val compressedCose = base45Service.decode(plainInput, verificationResult) - cose = compressorService.decode(compressedCose, verificationResult) + val coseResult: ByteArray? = compressorService.decode(compressedCose, verificationResult) + + if (coseResult == null) { + Timber.d("Verification failed: Too many bytes read") + return@withContext + } + cose = coseResult val coseData = coseService.decode(cose, verificationResult) if (coseData == null) { diff --git a/app/src/main/java/dgca/wallet/app/android/certificate/view/validity/rules/RulesValidationViewModel.kt b/app/src/main/java/dgca/wallet/app/android/certificate/view/validity/rules/RulesValidationViewModel.kt index 2b69e5ff..1d502ba3 100644 --- a/app/src/main/java/dgca/wallet/app/android/certificate/view/validity/rules/RulesValidationViewModel.kt +++ b/app/src/main/java/dgca/wallet/app/android/certificate/view/validity/rules/RulesValidationViewModel.kt @@ -74,9 +74,9 @@ class RulesValidationViewModel @Inject constructor( val verificationResult = VerificationResult() val plainInput = prefixValidationService.decode(qrCodeText, verificationResult) val compressedCose = base45Service.decode(plainInput, verificationResult) - val cose = compressorService.decode(compressedCose, verificationResult) + val cose: ByteArray? = compressorService.decode(compressedCose, verificationResult) - val coseData: CoseData? = coseService.decode(cose, verificationResult) + val coseData: CoseData? = cose?.let { coseService.decode(cose, verificationResult) } val greenCertificateData: GreenCertificateData? = coseData?.let { cborService.decodeData(it.cbor, verificationResult) } val base64EncodedKid: String? = coseData?.kid?.toBase64()