Guest User

Untitled

a guest
Sep 24th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. public bool ValidateAppSignature(Android.Content.Context context)
  2. {
  3. PackageInfo packageInfo = context.PackageManager.GetPackageInfo(context.PackageName, PackageInfoFlags.Signatures);
  4. //note sample just checks the first signature
  5. foreach (Signature signature in packageInfo.Signatures) {
  6. // SHA1 the signature
  7. String sha1 = GetSHA1(signature.ToByteArray());
  8. // check is matches hardcoded value
  9. return APP_SIGNATURE.Equals(sha1);
  10. }
  11.  
  12. //computed the sha1 hash of the signature
  13. public static String GetSHA1(byte[] sig)
  14. {
  15. Java.Security.MessageDigest digest = Java.Security.MessageDigest.GetInstance("SHA1", "BC");
  16. digest.Update(sig);
  17. byte[] hashtext = digest.Digest();
  18. return BytesToHex(hashtext);
  19. }
  20.  
  21. //util method to convert byte array to hex string
  22. public static String BytesToHex(byte[] bytes)
  23. {
  24. char[] hexArray = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
  25. '9', 'A', 'B', 'C', 'D', 'E', 'F' };
  26. char[] hexChars = new char[bytes.Length * 2];
  27. int v;
  28. for (int j = 0; j < bytes.Length; j++)
  29. {
  30. v = bytes[j] & 0xFF;
  31. hexChars[j * 2] = hexArray[(int)((uint)v >> 4)];
  32. hexChars[j * 2 + 1] = hexArray[v & 0x0F];
  33. }
  34. return new String(hexChars);
  35. }
Add Comment
Please, Sign In to add comment