diff options
Diffstat (limited to 'keystore-cts/java/com/google/security/wycheproof/JsonUtil.java')
-rw-r--r-- | keystore-cts/java/com/google/security/wycheproof/JsonUtil.java | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/keystore-cts/java/com/google/security/wycheproof/JsonUtil.java b/keystore-cts/java/com/google/security/wycheproof/JsonUtil.java deleted file mode 100644 index 6ff9e2f..0000000 --- a/keystore-cts/java/com/google/security/wycheproof/JsonUtil.java +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.google.security.wycheproof; - -import static java.nio.charset.StandardCharsets.UTF_8; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.gson.JsonParser; -import com.google.gson.stream.JsonReader; -import java.io.FileInputStream; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.IOException; -import java.math.BigInteger; - -/** Utilities for reading test vectors in JSON format */ -public class JsonUtil { - - /** - * Reads a set of test vectors from a file. - * @param filename the name of the file, local to the directory with the - * the test vectors. - * @return a JsonObject with a test - * @throws IOException if the test vectors could not be read. - * @throws JsonParseException if the file is not valid JSON. - */ - public static JsonObject getTestVectors(Class ref, String filename) throws - IOException { - // The directory where the test vectors are. - String testVectorsDir = "/"; - try (InputStream is = ref.getResourceAsStream(testVectorsDir + filename)) { - JsonReader reader = new JsonReader(new InputStreamReader(is, UTF_8)); - JsonParser parser = new JsonParser(); - JsonElement elem = parser.parse(reader); - return elem.getAsJsonObject(); - } - } - - /** - * Converts a JsonElement into a byte array. - * @param element a JsonElement containing an encoded byte array. - * Wycheproof represents byte arrays as hexadeciamal strings. - * @throws ClassCastException if element is not a valid string value. - * @throws IllegalStateException - if element contains an array. - */ - public static byte[] asByteArray(JsonElement element) { - String hex = element.getAsString(); - return TestUtil.hexToBytes(hex); - } - - /** - * Converts a JsonElement into a BigInteger. - * @param element a JsonElement containing a BigInteger. - * Wycheproof represents BigIntegers as hexadecimal strings using - * twos complement representation. - * <p> E.g., 31 is represented as "1f", -1 is represented as "f", and - * 255 is represented as "0ff". - * @throws ClassCastException if element is not a valid string value. - * @throws IllegalStateException if element contains an array. - * @throws NumberFormatException if representation of the BigInteger is invalid. - */ - public static BigInteger asBigInteger(JsonElement element) { - String hex = element.getAsString(); - return asBigInteger(hex); - } - public static BigInteger asBigInteger(String hex) { - // TODO(bleichen): Consider to change the representation of BigIntegers in - // Wycheproof as hexadecimal string with a sign. - if (hex.length() % 2 == 1) { - if (hex.charAt(0) >= '0' && hex.charAt(0) <= '7') { - hex = "0" + hex; - } else { - hex = "f" + hex; - } - } - return new BigInteger(TestUtil.hexToBytes(hex)); - } -} |