Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. public void generateKeys() {
  2. try {
  3. keyStore = KeyStore.getInstance(KEYSTORE_NAME);
  4. keyStore.load(null);
  5.  
  6. if (!keyStore.containsAlias(KEY_NAME)) {
  7. KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_EC, KEYSTORE_NAME);
  8. keyPairGenerator.initialize(
  9. new KeyGenParameterSpec.Builder(KEY_NAME,
  10. KeyProperties.PURPOSE_SIGN)
  11. .setDigests(KeyProperties.DIGEST_SHA256)
  12. .setAlgorithmParameterSpec(new ECGenParameterSpec("secp256r1"))
  13. // Require the user to authenticate with a fingerprint to authorize
  14. // every use of the private key
  15. .setUserAuthenticationRequired(true)
  16. .build());
  17. keyPairGenerator.generateKeyPair();
  18. }
  19.  
  20. loadKeys();
  21. } catch (NoSuchAlgorithmException e) {
  22. e.printStackTrace();
  23. } catch (NoSuchProviderException e) {
  24. e.printStackTrace();
  25. } catch (InvalidAlgorithmParameterException e) {
  26. e.printStackTrace();
  27. } catch (CertificateException e) {
  28. e.printStackTrace();
  29. } catch (KeyStoreException e) {
  30. e.printStackTrace();
  31. } catch (IOException e) {
  32. e.printStackTrace();
  33. }
  34.  
  35. public BiometricPrompt.CryptoObject getCryptoObject() {
  36. cryptoObject = new BiometricPrompt.CryptoObject(signature);
  37. return cryptoObject;
  38. }
  39.  
  40. private void loadKeys() {
  41. try {
  42. keyStore = KeyStore.getInstance(KEYSTORE_NAME);
  43. keyStore.load(null);
  44. if (keyStore.containsAlias(KEY_NAME)) {
  45. publicKey = keyStore.getCertificate(KEY_NAME).getPublicKey();
  46. privateKey = (PrivateKey) keyStore.getKey(KEY_NAME, null);
  47. signature = Signature.getInstance(Constants.SIGNATURE);
  48. signature.initSign(privateKey);
  49. }
  50. } catch (IOException e) {
  51. e.printStackTrace();
  52. } catch (NoSuchAlgorithmException e) {
  53. e.printStackTrace();
  54. } catch (CertificateException e) {
  55. e.printStackTrace();
  56. } catch (KeyStoreException e) {
  57. e.printStackTrace();
  58. } catch (UnrecoverableKeyException e) {
  59. e.printStackTrace();
  60. } catch (InvalidKeyException e) {
  61. e.printStackTrace();
  62. }
  63. }
  64.  
  65. public String sign(String inputStr) {
  66. try {
  67. Signature signature = cryptoObject.getSignature();
  68. signature.update(inputStr.getBytes());
  69. byte[] signedBytes = signature.sign();
  70. String result = HexManager.bytesToHex(signedBytes);
  71. Log.d("TAG", result);
  72. return result;
  73. } catch (SignatureException e) {
  74. e.printStackTrace();
  75. }
  76. return null;
  77.  
  78. public boolean verify(String inputStr, String savedStr) {
  79. try {
  80. Signature signature = cryptoObject.getSignature();
  81. signature.initVerify(publicKey);
  82. signature.update(inputStr.getBytes());
  83. boolean isVerified = signature.verify(savedStr.getBytes());
  84. return isVerified;
  85. } catch (InvalidKeyException e) {
  86. e.printStackTrace();
  87. } catch (SignatureException e) {
  88. e.printStackTrace();
  89. }
  90. return false;
  91. }
  92.  
  93. public boolean verify(String inputStr, String savedStr) {
  94. try {
  95. byte[] savedStrBytes = HexManager.hexToByes(savedStr);
  96. Signature signature = cryptoObject.getSignature();
  97. signature.initVerify(publicKey);
  98. signature.update(inputStr.getBytes());
  99. boolean isVerified = signature.verify(savedStrBytes);
  100. return isVerified;
  101. } catch (InvalidKeyException e) {
  102. e.printStackTrace();
  103. } catch (SignatureException e) {
  104. e.printStackTrace();
  105. }
  106. return false;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement