19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package com.oracle.security.ucrypto;
27
28 import java.lang.ref.*;
29
30 import java.io.ByteArrayOutputStream;
31 import java.util.*;
32 import java.util.concurrent.ConcurrentSkipListSet;
33 import java.security.*;
34
35 /**
36 * MessageDigest implementation class. This class currently supports
37 * MD5, SHA1, SHA256, SHA384, and SHA512
38 *
39 * @since 1.9
40 */
41 public abstract class NativeDigest extends MessageDigestSpi
42 implements Cloneable {
43
44 private static final int MECH_MD5 = 1;
45 private static final int MECH_SHA1 = 2;
46 private static final int MECH_SHA256 = 3;
47 private static final int MECH_SHA224 = 4;
48 private static final int MECH_SHA384 = 5;
49 private static final int MECH_SHA512 = 6;
50
51 private final int digestLen;
52 private final int mech;
53
54 // field for ensuring native memory is freed
55 private DigestContextRef pCtxt = null;
56
57 private static class DigestContextRef extends PhantomReference<NativeDigest>
58 implements Comparable<DigestContextRef> {
59
|
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package com.oracle.security.ucrypto;
27
28 import java.lang.ref.*;
29
30 import java.io.ByteArrayOutputStream;
31 import java.util.*;
32 import java.util.concurrent.ConcurrentSkipListSet;
33 import java.security.*;
34
35 /**
36 * MessageDigest implementation class. This class currently supports
37 * MD5, SHA1, SHA256, SHA384, and SHA512
38 *
39 * @since 9
40 */
41 public abstract class NativeDigest extends MessageDigestSpi
42 implements Cloneable {
43
44 private static final int MECH_MD5 = 1;
45 private static final int MECH_SHA1 = 2;
46 private static final int MECH_SHA256 = 3;
47 private static final int MECH_SHA224 = 4;
48 private static final int MECH_SHA384 = 5;
49 private static final int MECH_SHA512 = 6;
50
51 private final int digestLen;
52 private final int mech;
53
54 // field for ensuring native memory is freed
55 private DigestContextRef pCtxt = null;
56
57 private static class DigestContextRef extends PhantomReference<NativeDigest>
58 implements Comparable<DigestContextRef> {
59
|