All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.crypto.fips.FixedEntropySourceProvider Maven / Gradle / Ivy

Go to download

The FIPS 140-3 Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms certified to FIPS 140-3 level 1. This jar contains JCE provider and low-level API for the BC-FJA version 2.0.0, FIPS Certificate #4743. Please see certificate for certified platform details.

There is a newer version: 2.0.0
Show newest version
package org.bouncycastle.crypto.fips;

import org.bouncycastle.crypto.EntropySource;
import org.bouncycastle.crypto.EntropySourceProvider;

class FixedEntropySourceProvider
        implements EntropySourceProvider
    {
        private final byte[] data;
        private final boolean isPredictionResistant;

        protected FixedEntropySourceProvider(byte[] data, boolean isPredictionResistant)
        {
            this.data = data;
            this.isPredictionResistant = isPredictionResistant;
        }

        public EntropySource get(final int bitsRequired)
        {
            return new EntropySource()
            {
                int index = 0;

                public boolean isPredictionResistant()
                {
                    return isPredictionResistant;
                }

                public byte[] getEntropy()
                {
                    byte[] rv = new byte[(bitsRequired + 7) / 8];

                    System.arraycopy(data, index, rv, 0, rv.length);

                    index += (bitsRequired + 7) / 8;

                    return rv;
                }

                public int entropySize()
                {
                    return bitsRequired;
                }
            };
        }
    }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy