67 * ...etc.
68 * } catch (CloneNotSupportedException cnse) {
69 * throw new DigestException("couldn't make digest of partial content");
70 * }
71 * }</pre>
72 *
73 * <p>Note that if a given implementation is not cloneable, it is
74 * still possible to compute intermediate digests by instantiating
75 * several instances, if the number of digests is known in advance.
76 *
77 * <p>Note that this class is abstract and extends from
78 * {@code MessageDigestSpi} for historical reasons.
79 * Application developers should only take notice of the methods defined in
80 * this {@code MessageDigest} class; all the methods in
81 * the superclass are intended for cryptographic service providers who wish to
82 * supply their own implementations of message digest algorithms.
83 *
84 * <p> Every implementation of the Java platform is required to support
85 * the following standard {@code MessageDigest} algorithms:
86 * <ul>
87 * <li>{@code MD5}</li>
88 * <li>{@code SHA-1}</li>
89 * <li>{@code SHA-256}</li>
90 * </ul>
91 * These algorithms are described in the <a href=
92 * "{@docRoot}/../specs/security/standard-names.html#messagedigest-algorithms">
93 * MessageDigest section</a> of the
94 * Java Security Standard Algorithm Names Specification.
95 * Consult the release documentation for your implementation to see if any
96 * other algorithms are supported.
97 *
98 * @author Benjamin Renaud
99 * @since 1.1
100 *
101 * @see DigestInputStream
102 * @see DigestOutputStream
103 */
104
105 public abstract class MessageDigest extends MessageDigestSpi {
106
107 private static final Debug pdebug =
|
67 * ...etc.
68 * } catch (CloneNotSupportedException cnse) {
69 * throw new DigestException("couldn't make digest of partial content");
70 * }
71 * }</pre>
72 *
73 * <p>Note that if a given implementation is not cloneable, it is
74 * still possible to compute intermediate digests by instantiating
75 * several instances, if the number of digests is known in advance.
76 *
77 * <p>Note that this class is abstract and extends from
78 * {@code MessageDigestSpi} for historical reasons.
79 * Application developers should only take notice of the methods defined in
80 * this {@code MessageDigest} class; all the methods in
81 * the superclass are intended for cryptographic service providers who wish to
82 * supply their own implementations of message digest algorithms.
83 *
84 * <p> Every implementation of the Java platform is required to support
85 * the following standard {@code MessageDigest} algorithms:
86 * <ul>
87 * <li>{@code SHA-1}</li>
88 * <li>{@code SHA-256}</li>
89 * </ul>
90 * These algorithms are described in the <a href=
91 * "{@docRoot}/../specs/security/standard-names.html#messagedigest-algorithms">
92 * MessageDigest section</a> of the
93 * Java Security Standard Algorithm Names Specification.
94 * Consult the release documentation for your implementation to see if any
95 * other algorithms are supported.
96 *
97 * @author Benjamin Renaud
98 * @since 1.1
99 *
100 * @see DigestInputStream
101 * @see DigestOutputStream
102 */
103
104 public abstract class MessageDigest extends MessageDigestSpi {
105
106 private static final Debug pdebug =
|