public static void checkProvider() { BouncyCastleProvider provider = new BouncyCastleProvider(); if (Security.getProvider(provider.getName()) == null) Security.addProvider(provider); }
public class GenSignCastle { BouncyCastleProvider bcProvider = null; public GenSignCastle() { if ( bcProvider == null ) { bcProvider = new BouncyCastleProvider(); Provider[] providers = Security.getProviders(); String name = bcProvider.getName(); Security.removeProvider( name ); // remove old instance Security.addProvider( bcProvider ); } } . . . }
appearance.setImageScale((float) ((1)/img.getWidth())); PrivateKeySignature pks = new PrivateKeySignature(pk, DigestAlgorithms.SHA256, provider.getName()); ExternalDigest digest = new BouncyCastleDigest(); MakeSignature.signDetached(appearance, digest, pks, chain, null, null, null, 0, MakeSignature.CryptoStandard.CMS);
} finally { Security.removeProvider(new BouncyCastleJsseProvider().getName()); Security.removeProvider(new BouncyCastleProvider().getName());