List of usage examples for android.content.pm Signature toByteArray
public byte[] toByteArray()
From source file:Main.java
/** * Get current certificate fingerprint//from w ww. j av a 2 s .co m * * @param ctx context of application * @param packageName your package name * @return Base64 packed SHA fingerprint of your packet certificate */ public static String[] getCertificateFingerprint(Context ctx, String packageName) { try { if (ctx == null || ctx.getPackageManager() == null) return null; PackageInfo info = ctx.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES); assert info.signatures != null; String[] result = new String[info.signatures.length]; int i = 0; for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); // result[i++] = Base64.encodeToString(md.digest(), Base64.DEFAULT); result[i++] = toHex(md.digest()); } return result; } catch (Exception e) { return null; } }
From source file:Main.java
/** * Get current certificate fingerprint//from w w w. j av a 2s . c o m * * @param ctx context of application * @param packageName your package name * @return Base64 packed SHA fingerprint of your packet certificate */ public static String[] getCertificateFingerprint(Context ctx, String packageName) { try { if (ctx == null || ctx.getPackageManager() == null) return null; @SuppressLint("PackageManagerGetSignatures") PackageInfo info = ctx.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES); assert info.signatures != null; String[] result = new String[info.signatures.length]; int i = 0; for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); result[i++] = toHex(md.digest()); } return result; } catch (Exception e) { return null; } }
From source file:Main.java
/** * Prints your current certificate signature to the Logcat. Use this method to obtain your certificate signature. * * @param context The application context. *///ww w . j av a2s. c o m public static void getCertificateSignature(Context context) { try { PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES); // The APK is signed with multiple signatures, probably it was tampered. if (packageInfo.signatures.length > 1) { return; } for (Signature signature : packageInfo.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.d("TAMPERING_PROTECTION", "**" + Base64.encodeToString(md.digest(), Base64.DEFAULT) + "**"); } } catch (Exception exception) { Log.d("TAMPERING_PROTECTION", exception.getStackTrace().toString()); } }
From source file:Main.java
/** * Gets the key hash of application package's certificate signature. * @since 0.1.1//from w w w. java2 s . c o m * @param aContext The context from which the package manager is retrieved to get the signature's information. * @return The list of signatures embedded to the application package. */ public static List<String> getKeyHash(Context aContext) { try { PackageInfo info = aContext.getPackageManager().getPackageInfo(getPackageName(aContext), PackageManager.GET_SIGNATURES); List<String> keyHashList = new ArrayList<String>(info.signatures.length); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); keyHashList.add(Base64.encodeToString(md.digest(), Base64.DEFAULT)); } return keyHashList; } catch (Exception e) { return null; } }
From source file:Main.java
/** * Returns the key hashes of the signatures of the app with the specified package name * which may be needed when integrating with 3rd party services such as Facebook. Note that * Android apps usually only have one signature. * * @param context//from w w w. j a v a 2 s . com * @param packageName The package name of the app * @return The key hashes */ public static List<String> getKeyHashes(Context context, String packageName) { try { List<String> hashes = new ArrayList<>(); PackageInfo info = context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); hashes.add(Base64.encodeToString(md.digest(), Base64.DEFAULT)); } return hashes; } catch (PackageManager.NameNotFoundException e) { } catch (NoSuchAlgorithmException e) { } return null; }
From source file:Main.java
public static String getApkSignatureMD5String(Signature signature) { MessageDigest md;/* w ww . jav a2 s . c o m*/ try { md = MessageDigest.getInstance("MD5"); md.update(signature.toByteArray()); byte[] digest = md.digest(); return toHexString(digest); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; }
From source file:Main.java
private static X509Certificate generateX509CertificateFromSignature(final Signature signature) throws CertificateException { CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); ByteArrayInputStream inputStream = new ByteArrayInputStream(signature.toByteArray()); X509Certificate certificate = (X509Certificate) certificateFactory.generateCertificate(inputStream); return certificate; }
From source file:kr.co.sangcomz.facebooklogin.HelloFacebookSampleActivity.java
public static void showHashKey(Context context) { try {//from w w w. j a v a 2 s.c om PackageInfo info = context.getPackageManager().getPackageInfo("kr.co.sangcomz.facebooklogin", PackageManager.GET_SIGNATURES); //Your package name here for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } } catch (PackageManager.NameNotFoundException e) { } catch (NoSuchAlgorithmException e) { } }
From source file:com.github.javiersantos.piracychecker.LibraryUtils.java
@SuppressLint("PackageManagerGetSignatures") static String getCurrentSignature(Context context) { String res = ""; try {/*from w w w .j av a 2 s.c o m*/ PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES); for (Signature signature : packageInfo.signatures) { MessageDigest messageDigest = MessageDigest.getInstance("SHA"); messageDigest.update(signature.toByteArray()); res = Base64.encodeToString(messageDigest.digest(), Base64.DEFAULT); } } catch (PackageManager.NameNotFoundException | NoSuchAlgorithmException ignored) { } return res.trim(); }
From source file:com.vinexs.tool.Utility.java
public static String getKeyHash(Context context) { String keyHash = ""; try {// ww w. j a v a 2 s. co m PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); keyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT); } } catch (Exception e) { Log.e("Data Encryption", "Fail to get key hash.", e); } return keyHash; }