Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bef81fb8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "SourceStampVerification Return more specific error code when...

Merge "SourceStampVerification Return more specific error code when verification fails" am: 03724475 am: 0c5d49cd am: e0874198

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2634449



Change-Id: Ibf9b4878569d5bfd88607497f75dc14357026e9f
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 9deecc01 e0874198
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -142,16 +142,21 @@ public abstract class SourceStampVerifier {


    private static SourceStampVerificationResult verify(
    private static SourceStampVerificationResult verify(
            RandomAccessFile apk, byte[] sourceStampCertificateDigest, byte[] manifestBytes) {
            RandomAccessFile apk, byte[] sourceStampCertificateDigest, byte[] manifestBytes) {
        SignatureInfo signatureInfo;
        try {
        try {
            SignatureInfo signatureInfo =
            signatureInfo =
                    ApkSigningBlockUtils.findSignature(apk, SOURCE_STAMP_BLOCK_ID);
                    ApkSigningBlockUtils.findSignature(apk, SOURCE_STAMP_BLOCK_ID);
        } catch (IOException | SignatureNotFoundException | RuntimeException e) {
            return SourceStampVerificationResult.notPresent();
        }
        try {
            Map<Integer, Map<Integer, byte[]>> signatureSchemeApkContentDigests =
            Map<Integer, Map<Integer, byte[]>> signatureSchemeApkContentDigests =
                    getSignatureSchemeApkContentDigests(apk, manifestBytes);
                    getSignatureSchemeApkContentDigests(apk, manifestBytes);
            return verify(
            return verify(
                    signatureInfo,
                    signatureInfo,
                    getSignatureSchemeDigests(signatureSchemeApkContentDigests),
                    getSignatureSchemeDigests(signatureSchemeApkContentDigests),
                    sourceStampCertificateDigest);
                    sourceStampCertificateDigest);
        } catch (IOException | SignatureNotFoundException | RuntimeException e) {
        } catch (IOException | RuntimeException e) {
            return SourceStampVerificationResult.notVerified();
            return SourceStampVerificationResult.notVerified();
        }
        }
    }
    }
+1 −1
Original line number Original line Diff line number Diff line
@@ -100,7 +100,7 @@ public class SourceStampVerifierTest {
        SourceStampVerificationResult result =
        SourceStampVerificationResult result =
                SourceStampVerifier.verify(mPrimaryApk.getAbsolutePath());
                SourceStampVerifier.verify(mPrimaryApk.getAbsolutePath());


        assertTrue(result.isPresent());
        assertFalse(result.isPresent());
        assertFalse(result.isVerified());
        assertFalse(result.isVerified());
        assertNull(result.getCertificate());
        assertNull(result.getCertificate());
    }
    }