Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public boolean gerarSignAc(String cnpjCpf) throws IOException, KeyStoreException, CertificateException, NoSuchAlgorithmException, UnrecoverableEntryException, NoSuchPaddingException, InvalidKeyException, SignatureException {
- String cnpjs = CNPJ_SOFTWARE_HOUSE.concat(cnpjCpf);
- byte[] data = cnpjs.getBytes(StandardCharsets.UTF_8);
- InputStream entrada = new FileInputStream(CAMINHO_CERTIFICAO);
- KeyStore ks = KeyStore.getInstance("pkcs12");
- ks.load(entrada, SENHA_CERTIFICADO.toCharArray());
- entrada.close();
- PrivateKey privateKey = (PrivateKey) ks.getKey(ks.aliases().nextElement(), SENHA_CERTIFICADO.toCharArray());
- KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry) ks.getEntry(ks.aliases().nextElement(),
- new KeyStore.PasswordProtection(SENHA_CERTIFICADO.toCharArray()));
- if (pkEntry != null && privateKey != null) {
- Certificate cert = pkEntry.getCertificate();
- // initialize cipher to encrypt
- Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
- cipher.init(Cipher.ENCRYPT_MODE, cert.getPublicKey());
- Signature sig = Signature.getInstance("SHA256withRSA");
- sig.initSign(privateKey);
- sig.update(data);
- byte[] signData = sig.sign();
- String signDataEncrypted = Base64.getEncoder().encodeToString(signData);
- System.out.println(signDataEncrypted);
- return true;
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement