1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @author Vladimir N. Molotkov
198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.security.tests.support;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.HashMap;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Golden data for Message Digest related tests.<br>
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Encapsulates the following data:<br>
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * - reference message<br>
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * - reference message digests calculated using
308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * BEA JRockit j2sdk1.4.2_04 (http://www.bea.com)
318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * for various MD algorithms:
328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * SHA-1, SHA-256, SHA-384, SHA-512, MD-5.
338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Standard algorithm names are defined in
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * "JavaTM Cryptography Architecture API Specification & Reference"
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class MDGoldenData {
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    // The length of test message
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private static final int MY_MESSAGE_LEN = 1024;
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    // Test message for digest computations
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private static final byte[] myMessage = new byte[MY_MESSAGE_LEN];
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    // Reference digests for various algorithms calculated
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    // for <code>myMessage</code>
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private static final HashMap goldenData = new HashMap();
448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    static {
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // fill myMessage
478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        for (int i = 0; i < myMessage.length; i++) {
488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            myMessage[i] = (byte) i;
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // fill goldenData
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // digest updated with myMessage bytes
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA-1", new byte[] {
538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x5b, (byte) 0x00, (byte) 0x66, (byte) 0x9c,
548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x48, (byte) 0x0d, (byte) 0x5c, (byte) 0xff,
558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xbd, (byte) 0xfa, (byte) 0x8b, (byte) 0xdb,
568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xa9, (byte) 0x95, (byte) 0x61, (byte) 0x16,
578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x0f, (byte) 0x2d, (byte) 0x1b, (byte) 0x77
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // digest without updates at all;
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // use MD algorithm name + "_NU" if not updated MD value is needed
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA-1_NU", new byte[] {
628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xda, (byte) 0x39, (byte) 0xa3, (byte) 0xee,
638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x5e, (byte) 0x6b, (byte) 0x4b, (byte) 0x0d,
648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x32, (byte) 0x55, (byte) 0xbf, (byte) 0xef,
658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x95, (byte) 0x60, (byte) 0x18, (byte) 0x90,
668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xaf, (byte) 0xd8, (byte) 0x07, (byte) 0x09
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA", goldenData.get("SHA-1"));
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA_NU", goldenData.get("SHA-1_NU"));
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA1", goldenData.get("SHA-1"));
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA1_NU", goldenData.get("SHA-1_NU"));
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA-256", new byte[] {
768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x78, (byte) 0x5b, (byte) 0x07, (byte) 0x51,
778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xfc, (byte) 0x2c, (byte) 0x53, (byte) 0xdc,
788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x14, (byte) 0xa4, (byte) 0xce, (byte) 0x3d,
798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x80, (byte) 0x0e, (byte) 0x69, (byte) 0xef,
808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x9c, (byte) 0xe1, (byte) 0x00, (byte) 0x9e,
818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xb3, (byte) 0x27, (byte) 0xcc, (byte) 0xf4,
828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x58, (byte) 0xaf, (byte) 0xe0, (byte) 0x9c,
838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x24, (byte) 0x2c, (byte) 0x26, (byte) 0xc9
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA-256_NU", new byte[] {
868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xe3, (byte) 0xb0, (byte) 0xc4, (byte) 0x42,
878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x98, (byte) 0xfc, (byte) 0x1c, (byte) 0x14,
888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x9a, (byte) 0xfb, (byte) 0xf4, (byte) 0xc8,
898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x99, (byte) 0x6f, (byte) 0xb9, (byte) 0x24,
908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x27, (byte) 0xae, (byte) 0x41, (byte) 0xe4,
918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x64, (byte) 0x9b, (byte) 0x93, (byte) 0x4c,
928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xa4, (byte) 0x95, (byte) 0x99, (byte) 0x1b,
938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x78, (byte) 0x52, (byte) 0xb8, (byte) 0x55
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA-384", new byte[] {
968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x55, (byte) 0xfd, (byte) 0x17, (byte) 0xee,
978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xb1, (byte) 0x61, (byte) 0x1f, (byte) 0x91,
988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x93, (byte) 0xf6, (byte) 0xac, (byte) 0x60,
998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x02, (byte) 0x38, (byte) 0xce, (byte) 0x63,
1008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xaa, (byte) 0x29, (byte) 0x8c, (byte) 0x2e,
1018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x33, (byte) 0x2f, (byte) 0x04, (byte) 0x2b,
1028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x80, (byte) 0xc8, (byte) 0xf6, (byte) 0x91,
1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xf8, (byte) 0x00, (byte) 0xe4, (byte) 0xc7,
1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x50, (byte) 0x5a, (byte) 0xf2, (byte) 0x0c,
1058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x1a, (byte) 0x86, (byte) 0xa3, (byte) 0x1f,
1068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x08, (byte) 0x50, (byte) 0x45, (byte) 0x87,
1078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x39, (byte) 0x5f, (byte) 0x08, (byte) 0x1f
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA-384_NU", new byte[] {
1108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x38, (byte) 0xb0, (byte) 0x60, (byte) 0xa7,
1118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x51, (byte) 0xac, (byte) 0x96, (byte) 0x38,
1128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x4c, (byte) 0xd9, (byte) 0x32, (byte) 0x7e,
1138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xb1, (byte) 0xb1, (byte) 0xe3, (byte) 0x6a,
1148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x21, (byte) 0xfd, (byte) 0xb7, (byte) 0x11,
1158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x14, (byte) 0xbe, (byte) 0x07, (byte) 0x43,
1168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x4c, (byte) 0x0c, (byte) 0xc7, (byte) 0xbf,
1178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x63, (byte) 0xf6, (byte) 0xe1, (byte) 0xda,
1188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x27, (byte) 0x4e, (byte) 0xde, (byte) 0xbf,
1198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xe7, (byte) 0x6f, (byte) 0x65, (byte) 0xfb,
1208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xd5, (byte) 0x1a, (byte) 0xd2, (byte) 0xf1,
1218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x48, (byte) 0x98, (byte) 0xb9, (byte) 0x5b
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA-512", new byte[] {
1248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x37, (byte) 0xf6, (byte) 0x52, (byte) 0xbe,
1258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x86, (byte) 0x7f, (byte) 0x28, (byte) 0xed,
1268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x03, (byte) 0x32, (byte) 0x69, (byte) 0xcb,
1278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xba, (byte) 0x20, (byte) 0x1a, (byte) 0xf2,
1288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x11, (byte) 0x2c, (byte) 0x2b, (byte) 0x3f,
1298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xd3, (byte) 0x34, (byte) 0xa8, (byte) 0x9f,
1308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xd2, (byte) 0xf7, (byte) 0x57, (byte) 0x93,
1318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x8d, (byte) 0xde, (byte) 0xe8, (byte) 0x15,
1328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x78, (byte) 0x7c, (byte) 0xc6, (byte) 0x1d,
1338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x6e, (byte) 0x24, (byte) 0xa8, (byte) 0xa3,
1348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x33, (byte) 0x40, (byte) 0xd0, (byte) 0xf7,
1358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xe8, (byte) 0x6f, (byte) 0xfc, (byte) 0x05,
1368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x88, (byte) 0x16, (byte) 0xb8, (byte) 0x85,
1378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x30, (byte) 0x76, (byte) 0x6b, (byte) 0xa6,
1388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xe2, (byte) 0x31, (byte) 0x62, (byte) 0x0a,
1398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x13, (byte) 0x0b, (byte) 0x56, (byte) 0x6c
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("SHA-512_NU", new byte[] {
1428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xcf, (byte) 0x83, (byte) 0xe1, (byte) 0x35,
1438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x7e, (byte) 0xef, (byte) 0xb8, (byte) 0xbd,
1448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xf1, (byte) 0x54, (byte) 0x28, (byte) 0x50,
1458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xd6, (byte) 0x6d, (byte) 0x80, (byte) 0x07,
1468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xd6, (byte) 0x20, (byte) 0xe4, (byte) 0x05,
1478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x0b, (byte) 0x57, (byte) 0x15, (byte) 0xdc,
1488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x83, (byte) 0xf4, (byte) 0xa9, (byte) 0x21,
1498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xd3, (byte) 0x6c, (byte) 0xe9, (byte) 0xce,
1508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x47, (byte) 0xd0, (byte) 0xd1, (byte) 0x3c,
1518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x5d, (byte) 0x85, (byte) 0xf2, (byte) 0xb0,
1528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xff, (byte) 0x83, (byte) 0x18, (byte) 0xd2,
1538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x87, (byte) 0x7e, (byte) 0xec, (byte) 0x2f,
1548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x63, (byte) 0xb9, (byte) 0x31, (byte) 0xbd,
1558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x47, (byte) 0x41, (byte) 0x7a, (byte) 0x81,
1568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xa5, (byte) 0x38, (byte) 0x32, (byte) 0x7a,
1578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xf9, (byte) 0x27, (byte) 0xda, (byte) 0x3e
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("MD5", new byte[] {
1608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xb2, (byte) 0xea, (byte) 0x9f, (byte) 0x7f,
1618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xce, (byte) 0xa8, (byte) 0x31, (byte) 0xa4,
1628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xa6, (byte) 0x3b, (byte) 0x21, (byte) 0x3f,
1638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x41, (byte) 0xa8, (byte) 0x85, (byte) 0x5b
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        goldenData.put("MD5_NU", new byte[] {
1668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xd4, (byte) 0x1d, (byte) 0x8c, (byte) 0xd9,
1678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0x8f, (byte) 0x00, (byte) 0xb2, (byte) 0x04,
1688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xe9, (byte) 0x80, (byte) 0x09, (byte) 0x98,
1698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (byte) 0xec, (byte) 0xf8, (byte) 0x42, (byte) 0x7e
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    // No need to instantiate
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private MDGoldenData() {
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Returns reference message
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     *
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @return reference message
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public static byte[] getMessage() {
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        return myMessage.clone();
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Returns digest golden data
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     *
1898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     * @param key MD algorithm name or MD algorithm name + "_NU" if
1908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     *            not updated MD value requested
1918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     * @return reference digest for specified MD algorithm name
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public static byte[] getDigest(String key) {
1948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        return ((byte[]) goldenData.get(key)).clone();
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
198