Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Provider provider = null;
- if (useBouncyCastleProvider) {
- provider = new BouncyCastleProvider();
- Security.addProvider(provider);
- }
- // Message Digest
- Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
- FileInputStream fin = new FileInputStream(FILENAME_CER);
- CertificateFactory f = CertificateFactory.getInstance("X.509");
- X509Certificate certificate = (X509Certificate) f.generateCertificate(fin);
- PublicKey publickey = certificate.getPublicKey();
- String hashingAlgorithm = "SHA-256";
- MessageDigest messageDigestProvider = null;
- if (null != provider) {
- messageDigestProvider = MessageDigest.getInstance(hashingAlgorithm, provider);
- } else {
- messageDigestProvider = MessageDigest.getInstance(hashingAlgorithm);
- }
- messageDigestProvider.update(firmaCompuesta.getBytes());
- byte[] hash = messageDigestProvider.digest();
- DigestAlgorithmIdentifierFinder hashAlgorithmFinder = new DefaultDigestAlgorithmIdentifierFinder();
- AlgorithmIdentifier hashingAlgorithmIdentifier = hashAlgorithmFinder.find(hashingAlgorithm);
- DigestInfo digestInfo = new DigestInfo(hashingAlgorithmIdentifier, hash);
- byte[] hashToEncrypt = digestInfo.getEncoded();
- // Crypto
- // You could also use "RSA/ECB/PKCS1Padding" for both the BC and SUN Providers.
- Cipher encCipher = null;
- if (null != provider) {
- encCipher = Cipher.getInstance("RSA/NONE/PKCS1Padding", provider);
- } else {
- encCipher = Cipher.getInstance("RSA");
- }
- //=============== JEMJ CIFRADO DESDE .CER =============
- encCipher.init(Cipher.ENCRYPT_MODE, publickey);
- byte[] encrypted = encCipher.doFinal(hashToEncrypt);
- System.out.println("nnHash and Encryption Output : nn");
- //
- encodedBytes = Base64.encodeBase64(encrypted);
- encodedBytesStr = new String(encodedBytes);
- //
- System.out.println(encodedBytesStr);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement