Merge "SourceStampVerification Return more specific error code when verification fails" am: 037244751d am: 0c5d49cdbe am: e0874198f2
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2634449 Change-Id: Ibf9b4878569d5bfd88607497f75dc14357026e9f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user