List of usage examples for org.bouncycastle.crypto.digests SHA256Digest SHA256Digest
public SHA256Digest()
From source file:org.bunkr.core.descriptor.PBKDF2Descriptor.java
License:Open Source License
public static int calculateRounds(int milliseconds) { Logging.info("Calculating how many SHA1 rounds we can do in %d millis.", milliseconds); HMac mac = new HMac(new SHA256Digest()); byte[] state = new byte[mac.getMacSize()]; long startTime = System.currentTimeMillis(); int pbkdf2Iterations = 0; while ((System.currentTimeMillis() - startTime) < milliseconds) { mac.update(state, 0, state.length); mac.doFinal(state, 0);//www. j a v a 2s.c o m pbkdf2Iterations++; } pbkdf2Iterations = Math.max(pbkdf2Iterations, PBKDF2Descriptor.MINIMUM_PBKD2_ITERS); Logging.info("Got %d", pbkdf2Iterations); return pbkdf2Iterations; }
From source file:org.bunkr.core.usersec.PasswordProvider.java
License:Open Source License
private byte[] hash(byte[] input) { GeneralDigest digest = new SHA256Digest(); digest.update(input, 0, input.length); byte[] buffer = new byte[digest.getDigestSize()]; digest.doFinal(buffer, 0);//from w ww . java 2 s . co m Arrays.fill(input, (byte) 0); return buffer; }
From source file:org.candlepin.util.X509CRLStreamWriter.java
License:Open Source License
protected static Digest createDigest(AlgorithmIdentifier digAlg) throws CryptoException { Digest dig;//from ww w .j a v a 2 s.c om if (digAlg.getAlgorithm().equals(OIWObjectIdentifiers.idSHA1)) { dig = new SHA1Digest(); } else if (digAlg.getAlgorithm().equals(NISTObjectIdentifiers.id_sha224)) { dig = new SHA224Digest(); } else if (digAlg.getAlgorithm().equals(NISTObjectIdentifiers.id_sha256)) { dig = new SHA256Digest(); } else if (digAlg.getAlgorithm().equals(NISTObjectIdentifiers.id_sha384)) { dig = new SHA384Digest(); } else if (digAlg.getAlgorithm().equals(NISTObjectIdentifiers.id_sha512)) { dig = new SHA384Digest(); } else if (digAlg.getAlgorithm().equals(PKCSObjectIdentifiers.md5)) { dig = new MD5Digest(); } else if (digAlg.getAlgorithm().equals(PKCSObjectIdentifiers.md4)) { dig = new MD4Digest(); } else { throw new CryptoException("Cannot recognize digest."); } return dig; }
From source file:org.cesecore.util.StringTools.java
License:Open Source License
public static String pbeEncryptStringWithSha256Aes192(final String in) throws NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException { CryptoProviderTools.installBCProviderIfNotAvailable(); if (CryptoProviderTools.isUsingExportableCryptography()) { log.warn("Obfuscation not possible due to weak crypto policy."); return in; }//w w w . j a v a 2 s . co m final Digest digest = new SHA256Digest(); final PKCS12ParametersGenerator pGen = new PKCS12ParametersGenerator(digest); pGen.init(PBEParametersGenerator.PKCS12PasswordToBytes(p), getSalt(), iCount); final ParametersWithIV params = (ParametersWithIV) pGen.generateDerivedParameters(192, 128); final SecretKeySpec encKey = new SecretKeySpec(((KeyParameter) params.getParameters()).getKey(), "AES"); final Cipher c; c = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC"); c.init(Cipher.ENCRYPT_MODE, encKey, new IvParameterSpec(params.getIV())); final byte[] enc = c.doFinal(in.getBytes("UTF-8")); final byte[] hex = Hex.encode(enc); return new String(hex); }
From source file:org.codice.ddf.platform.util.RandomNumberGenerator.java
License:Open Source License
public static byte[] createSeed() { EntropySourceProvider esp = new BasicEntropySourceProvider(new SecureRandom(), true); byte[] nonce = new byte[256]; new SecureRandom().nextBytes(nonce); DualECSP800DRBG bcRbg = new DualECSP800DRBG(new SHA256Digest(), 256, esp.get(256), null, nonce); byte[] seed = new byte[256]; bcRbg.generate(seed, null, true);/*from www. j ava2 s .c o m*/ return seed; }
From source file:org.cryptacular.generator.SecretKeyGenerator.java
License:Open Source License
/** * Generates a symmetric encryption key of the given length. * * @param bitLength Desired key length in bits. * @param cipher Cipher with with key will be used. * * @return Symmetric encryption key.// ww w .j a va 2 s .c om */ public static SecretKey generate(final int bitLength, final BlockCipher cipher) { // Want as much nonce data as key bits final byte[] nonce = NonceUtil.timestampNonce((bitLength + 7) / 8); return generate(bitLength, cipher, new SP800SecureRandomBuilder().buildHash(new SHA256Digest(), nonce, false)); }
From source file:org.cryptacular.generator.sp80038d.RBGNonce.java
License:Open Source License
/** * Creates a new DRBG instance./*ww w. j a va2 s . c o m*/ * * @param length Length in bits of values produced by DRBG. * @param domain Domain qualifier. * * @return New DRBG instance. */ private static SP80090DRBG newRBG(final int length, final byte[] domain) { return new HashSP800DRBG(new SHA256Digest(), length, new EntropySource() { @Override public boolean isPredictionResistant() { return false; } @Override public byte[] getEntropy() { return NonceUtil.timestampNonce(length); } @Override public int entropySize() { return length; } }, domain, NonceUtil.timestampNonce(8)); }
From source file:org.cryptacular.spec.DigestSpec.java
License:Open Source License
/** * Creates a new digest instance.//from www .ja v a 2s . c o m * * @return Digest instance. */ @Override public Digest newInstance() { final Digest digest; if ("GOST3411".equalsIgnoreCase(algorithm)) { digest = new GOST3411Digest(); } else if ("MD2".equalsIgnoreCase(algorithm)) { digest = new MD2Digest(); } else if ("MD4".equalsIgnoreCase(algorithm)) { digest = new MD4Digest(); } else if ("MD5".equalsIgnoreCase(algorithm)) { digest = new MD5Digest(); } else if ("RIPEMD128".equalsIgnoreCase(algorithm) || "RIPEMD-128".equalsIgnoreCase(algorithm)) { digest = new RIPEMD128Digest(); } else if ("RIPEMD160".equalsIgnoreCase(algorithm) || "RIPEMD-160".equalsIgnoreCase(algorithm)) { digest = new RIPEMD160Digest(); } else if ("RIPEMD256".equalsIgnoreCase(algorithm) || "RIPEMD-256".equalsIgnoreCase(algorithm)) { digest = new RIPEMD256Digest(); } else if ("RIPEMD320".equalsIgnoreCase(algorithm) || "RIPEMD-320".equalsIgnoreCase(algorithm)) { digest = new RIPEMD320Digest(); } else if ("SHA1".equalsIgnoreCase(algorithm) || "SHA-1".equalsIgnoreCase(algorithm)) { digest = new SHA1Digest(); } else if ("SHA224".equalsIgnoreCase(algorithm) || "SHA-224".equalsIgnoreCase(algorithm)) { digest = new SHA224Digest(); } else if ("SHA256".equalsIgnoreCase(algorithm) || "SHA-256".equalsIgnoreCase(algorithm)) { digest = new SHA256Digest(); } else if ("SHA384".equalsIgnoreCase(algorithm) || "SHA-384".equalsIgnoreCase(algorithm)) { digest = new SHA384Digest(); } else if ("SHA512".equalsIgnoreCase(algorithm) || "SHA-512".equalsIgnoreCase(algorithm)) { digest = new SHA512Digest(); } else if ("SHA3".equalsIgnoreCase(algorithm) || "SHA-3".equalsIgnoreCase(algorithm)) { digest = new SHA3Digest(size); } else if ("Tiger".equalsIgnoreCase(algorithm)) { digest = new TigerDigest(); } else if ("Whirlpool".equalsIgnoreCase(algorithm)) { digest = new WhirlpoolDigest(); } else { throw new IllegalStateException("Unsupported digest algorithm " + algorithm); } return digest; }
From source file:org.cryptacular.util.HashUtil.java
License:Open Source License
/** * Produces the SHA-256 hash of the given data. * * @param data Data to hash. See {@link #hash(Digest, Object...)} for * supported inputs./*from w ww. jav a2 s.c o m*/ * * @return 32-byte array containing hash output. * * @see #hash(Digest, Object...) */ public static byte[] sha256(final Object... data) { return hash(new SHA256Digest(), data); }
From source file:org.cryptacular.util.HashUtilTest.java
License:Open Source License
@DataProvider(name = "salted-hashes") public Object[][] getSaltedHashData() { return new Object[][] { { new SHA1Digest(), new Object[] { ByteUtil.toBytes("deoxyribonucleic acid"), }, 1, "0aDM5g/qqfVV/8MIqkTKQaklWSg=", }, { new SHA1Digest(), new Object[] { ByteUtil.toBytes("protoporphyrin-9"), SALT, }, 1, "6SafHIoTusYN6dnK1pxx7udaBLA=", }, { new SHA256Digest(), new Object[] { SALT, ByteUtil.toBytes("N-arachidonoylethanolamine"), }, 5, "RWIg3BIXdqZPI9C7PFvSn62miU3L9ponVZLvKmC9XlQ=", }, }; }