Loading telephony/java/android/telephony/UiccAccessRule.java +25 −12 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Objects; /** Loading Loading @@ -177,17 +179,8 @@ public final class UiccAccessRule implements Parcelable { * {@link TelephonyManager#CARRIER_PRIVILEGE_STATUS_NO_ACCESS}. */ public int getCarrierPrivilegeStatus(PackageInfo packageInfo) { Signature[] signatures = packageInfo.signatures; SigningInfo sInfo = packageInfo.signingInfo; if (sInfo != null) { signatures = sInfo.getSigningCertificateHistory(); if (sInfo.hasMultipleSigners()) { signatures = sInfo.getApkContentsSigners(); } } if (signatures == null || signatures.length == 0) { List<Signature> signatures = getSignatures(packageInfo); if (signatures.isEmpty()) { throw new IllegalArgumentException( "Must use GET_SIGNING_CERTIFICATES when looking up package info"); } Loading Loading @@ -262,10 +255,30 @@ public final class UiccAccessRule implements Parcelable { return 0; } /** * Gets all of the Signatures from the given PackageInfo. * @hide */ @NonNull public static List<Signature> getSignatures(PackageInfo packageInfo) { Signature[] signatures = packageInfo.signatures; SigningInfo signingInfo = packageInfo.signingInfo; if (signingInfo != null) { signatures = signingInfo.getSigningCertificateHistory(); if (signingInfo.hasMultipleSigners()) { signatures = signingInfo.getApkContentsSigners(); } } return (signatures == null) ? Collections.EMPTY_LIST : Arrays.asList(signatures); } /** * Converts a Signature into a Certificate hash usable for comparison. * @hide */ private static byte[] getCertHash(Signature signature, String algo) { public static byte[] getCertHash(Signature signature, String algo) { try { MessageDigest md = MessageDigest.getInstance(algo); return md.digest(signature.toByteArray()); Loading Loading
telephony/java/android/telephony/UiccAccessRule.java +25 −12 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Objects; /** Loading Loading @@ -177,17 +179,8 @@ public final class UiccAccessRule implements Parcelable { * {@link TelephonyManager#CARRIER_PRIVILEGE_STATUS_NO_ACCESS}. */ public int getCarrierPrivilegeStatus(PackageInfo packageInfo) { Signature[] signatures = packageInfo.signatures; SigningInfo sInfo = packageInfo.signingInfo; if (sInfo != null) { signatures = sInfo.getSigningCertificateHistory(); if (sInfo.hasMultipleSigners()) { signatures = sInfo.getApkContentsSigners(); } } if (signatures == null || signatures.length == 0) { List<Signature> signatures = getSignatures(packageInfo); if (signatures.isEmpty()) { throw new IllegalArgumentException( "Must use GET_SIGNING_CERTIFICATES when looking up package info"); } Loading Loading @@ -262,10 +255,30 @@ public final class UiccAccessRule implements Parcelable { return 0; } /** * Gets all of the Signatures from the given PackageInfo. * @hide */ @NonNull public static List<Signature> getSignatures(PackageInfo packageInfo) { Signature[] signatures = packageInfo.signatures; SigningInfo signingInfo = packageInfo.signingInfo; if (signingInfo != null) { signatures = signingInfo.getSigningCertificateHistory(); if (signingInfo.hasMultipleSigners()) { signatures = signingInfo.getApkContentsSigners(); } } return (signatures == null) ? Collections.EMPTY_LIST : Arrays.asList(signatures); } /** * Converts a Signature into a Certificate hash usable for comparison. * @hide */ private static byte[] getCertHash(Signature signature, String algo) { public static byte[] getCertHash(Signature signature, String algo) { try { MessageDigest md = MessageDigest.getInstance(algo); return md.digest(signature.toByteArray()); Loading