16e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompackage org.bouncycastle.crypto.digests;
2c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
3c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstromimport java.io.ByteArrayOutputStream;
4c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
5c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstromimport org.bouncycastle.crypto.Digest;
6c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
7c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
8c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrompublic class NullDigest
9c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    implements Digest
10c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom{
11c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    private ByteArrayOutputStream bOut = new ByteArrayOutputStream();
12c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
13c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    public String getAlgorithmName()
14c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    {
15c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        return "NULL";
16c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    }
17c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
18c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    public int getDigestSize()
19c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    {
20c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        return bOut.size();
21c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    }
22c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
23c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    public void update(byte in)
24c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    {
25c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        bOut.write(in);
26c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    }
27c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
28c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    public void update(byte[] in, int inOff, int len)
29c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    {
30c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        bOut.write(in, inOff, len);
31c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    }
32c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
33c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    public int doFinal(byte[] out, int outOff)
34c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    {
35c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        byte[] res = bOut.toByteArray();
36c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
37c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        System.arraycopy(res, 0, out, outOff, res.length);
38c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
39c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        reset();
40c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
41c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        return res.length;
42c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    }
43c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
44c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    public void reset()
45c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    {
46c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        bOut.reset();
47c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    }
48c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom}