Example usage for org.bouncycastle.crypto.digests SHA256Digest SHA256Digest

List of usage examples for org.bouncycastle.crypto.digests SHA256Digest SHA256Digest

Introduction

In this page you can find the example usage for org.bouncycastle.crypto.digests SHA256Digest SHA256Digest.

Prototype

public SHA256Digest() 

Source Link

Document

Standard constructor

Usage

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=", }, };
}