273
|
1 /*
|
|
2 * Copyright (c) 2006-2011 Christian Plattner. All rights reserved.
|
|
3 * Please refer to the LICENSE.txt for licensing details.
|
|
4 */
|
|
5 package ch.ethz.ssh2.crypto.digest;
|
|
6
|
|
7 import java.security.DigestException;
|
|
8 import java.security.MessageDigest;
|
|
9 import java.security.NoSuchAlgorithmException;
|
|
10
|
|
11 /**
|
|
12 * @version $Id: SHA512.java 152 2014-04-28 11:02:23Z dkocher@sudo.ch $
|
|
13 */
|
|
14 public final class SHA512 implements Digest {
|
|
15
|
|
16 private MessageDigest md;
|
|
17
|
|
18 public SHA512() {
|
|
19 try {
|
|
20 md = MessageDigest.getInstance("SHA-512");
|
|
21 }
|
|
22 catch(NoSuchAlgorithmException e) {
|
|
23 throw new IllegalArgumentException(e);
|
|
24 }
|
|
25 }
|
|
26
|
|
27 public final int getDigestLength() {
|
|
28 return md.getDigestLength();
|
|
29 }
|
|
30
|
|
31 public final void reset() {
|
|
32 md.reset();
|
|
33 }
|
|
34
|
|
35 public final void update(byte b[]) {
|
|
36 md.update(b);
|
|
37 }
|
|
38
|
|
39 public final void update(byte b[], int off, int len) {
|
|
40 md.update(b, off, len);
|
|
41 }
|
|
42
|
|
43 public final void update(byte b) {
|
|
44 md.update(b);
|
|
45 }
|
|
46
|
|
47 public final void digest(byte[] out) {
|
|
48 md.digest(out);
|
|
49 }
|
|
50
|
|
51 public final void digest(byte[] out, int off) throws DigestException {
|
|
52 md.digest(out, off, out.length);
|
|
53 }
|
|
54 }
|