Example usage for android.content.pm Signature toByteArray

List of usage examples for android.content.pm Signature toByteArray

Introduction

In this page you can find the example usage for android.content.pm Signature toByteArray.

Prototype

public byte[] toByteArray() 

Source Link

Usage

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;
}