Advertisement
ratacheski

Gerar SignAC

Nov 8th, 2019
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.54 KB | None | 0 0
  1.     @Override
  2.     public boolean gerarSignAc(String cnpjCpf) throws IOException, KeyStoreException, CertificateException, NoSuchAlgorithmException, UnrecoverableEntryException, NoSuchPaddingException, InvalidKeyException, SignatureException {
  3.         String cnpjs = CNPJ_SOFTWARE_HOUSE.concat(cnpjCpf);
  4.         byte[] data = cnpjs.getBytes(StandardCharsets.UTF_8);
  5.         InputStream entrada = new FileInputStream(CAMINHO_CERTIFICAO);
  6.         KeyStore ks = KeyStore.getInstance("pkcs12");
  7.         ks.load(entrada, SENHA_CERTIFICADO.toCharArray());
  8.         entrada.close();
  9.         PrivateKey privateKey = (PrivateKey) ks.getKey(ks.aliases().nextElement(), SENHA_CERTIFICADO.toCharArray());
  10.         KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry) ks.getEntry(ks.aliases().nextElement(),
  11.                 new KeyStore.PasswordProtection(SENHA_CERTIFICADO.toCharArray()));
  12.         if (pkEntry != null && privateKey != null) {
  13.             Certificate cert = pkEntry.getCertificate();
  14.             // initialize cipher to encrypt
  15.             Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
  16.             cipher.init(Cipher.ENCRYPT_MODE, cert.getPublicKey());
  17.             Signature sig = Signature.getInstance("SHA256withRSA");
  18.             sig.initSign(privateKey);
  19.             sig.update(data);
  20.             byte[] signData = sig.sign();
  21.             String signDataEncrypted = Base64.getEncoder().encodeToString(signData);
  22.             System.out.println(signDataEncrypted);
  23.             return true;
  24.         }
  25.         return false;
  26.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement