aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/generators/MGF1BytesGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/generators/MGF1BytesGenerator.java')
-rw-r--r--libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/generators/MGF1BytesGenerator.java114
1 files changed, 0 insertions, 114 deletions
diff --git a/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/generators/MGF1BytesGenerator.java b/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/generators/MGF1BytesGenerator.java
deleted file mode 100644
index 03cb7ba50..000000000
--- a/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/generators/MGF1BytesGenerator.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.spongycastle.crypto.generators;
-
-import org.spongycastle.crypto.DataLengthException;
-import org.spongycastle.crypto.DerivationFunction;
-import org.spongycastle.crypto.DerivationParameters;
-import org.spongycastle.crypto.Digest;
-import org.spongycastle.crypto.params.MGFParameters;
-
-/**
- * Generator for MGF1 as defined in PKCS 1v2
- */
-public class MGF1BytesGenerator
- implements DerivationFunction
-{
- private Digest digest;
- private byte[] seed;
- private int hLen;
-
- /**
- * @param digest the digest to be used as the source of generated bytes
- */
- public MGF1BytesGenerator(
- Digest digest)
- {
- this.digest = digest;
- this.hLen = digest.getDigestSize();
- }
-
- public void init(
- DerivationParameters param)
- {
- if (!(param instanceof MGFParameters))
- {
- throw new IllegalArgumentException("MGF parameters required for MGF1Generator");
- }
-
- MGFParameters p = (MGFParameters)param;
-
- seed = p.getSeed();
- }
-
- /**
- * return the underlying digest.
- */
- public Digest getDigest()
- {
- return digest;
- }
-
- /**
- * int to octet string.
- */
- private void ItoOSP(
- int i,
- byte[] sp)
- {
- sp[0] = (byte)(i >>> 24);
- sp[1] = (byte)(i >>> 16);
- sp[2] = (byte)(i >>> 8);
- sp[3] = (byte)(i >>> 0);
- }
-
- /**
- * fill len bytes of the output buffer with bytes generated from
- * the derivation function.
- *
- * @throws DataLengthException if the out buffer is too small.
- */
- public int generateBytes(
- byte[] out,
- int outOff,
- int len)
- throws DataLengthException, IllegalArgumentException
- {
- if ((out.length - len) < outOff)
- {
- throw new DataLengthException("output buffer too small");
- }
-
- byte[] hashBuf = new byte[hLen];
- byte[] C = new byte[4];
- int counter = 0;
-
- digest.reset();
-
- if (len > hLen)
- {
- do
- {
- ItoOSP(counter, C);
-
- digest.update(seed, 0, seed.length);
- digest.update(C, 0, C.length);
- digest.doFinal(hashBuf, 0);
-
- System.arraycopy(hashBuf, 0, out, outOff + counter * hLen, hLen);
- }
- while (++counter < (len / hLen));
- }
-
- if ((counter * hLen) < len)
- {
- ItoOSP(counter, C);
-
- digest.update(seed, 0, seed.length);
- digest.update(C, 0, C.length);
- digest.doFinal(hashBuf, 0);
-
- System.arraycopy(hashBuf, 0, out, outOff + counter * hLen, len - (counter * hLen));
- }
-
- return len;
- }
-}