//* Licensed Materials - Property of * //* IBM * //* * //* eu.abc4trust.pabce.1.34 * //* * //* (C) Copyright IBM Corp. 2014. All Rights Reserved. * //* US Government Users Restricted Rights - Use, duplication or * //* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. * //* * //* This file is 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 eu.abc4trust.cryptoArchitecture; import java.io.Serializable; import java.math.BigInteger; import java.util.List; public class ZkBuilderStateNonce { private final ZkBuilder builder; ZkBuilderStateNonce(ZkBuilder builder) { this.builder = builder; } /** * Open the commitment made to a nonce. * Typically, one would call getNonceCommitments() before this method, and in the next round * check that all the openings are correct. * The commitment satisfies commitment = HASH(nonce, opening) * The builder will check that this relation holds. * @param commitment * @param nonce * @param opening */ void openNonceCommitment(byte[] commitment, byte[] nonce, byte[] opening) { builder.openNonceCommitment(commitment, nonce, opening); } /** * Returns a list of all nonce commitment used in this proof. * @return */ List<byte[]> getNonceCommitments() { return builder.getNonceCommitments(); } /** * Returns the part of the challenge that depends on common values and T-values, * excluding the nonces. */ byte[] getChallengeWithoutNonce() { return builder.getChallengeWithoutNonce(); } /** * Returns true if the given witness is revealed. * @param witnessName * @return */ boolean isRevealedWitness(String witnessName) { return builder.isRevealedWitness(witnessName); } /** * Returns the value of the given witness if it is a revealed witness, * or null otherwise. * @param witnessName * @return */ BigInteger getRevealedWitness(String witnessName) { return builder.getRevealedWitness(witnessName); } /** * Returns the range a given witness can take. * @param witnessName * @return */ WitnessRange getRangeForWitness(String witnessName) { return builder.getRangeForWitness(witnessName); } /** * Returns the R-value of a given managed witness. * @param witnessName * @return */ BigInteger getRandomizer(String witnessName) { return builder.getRandomizer(witnessName); } /** * Returns the given common value, assuming it was an integer common value. * @param commonValue * @return */ BigInteger getCommonValueAsInteger(String commonValue) { return builder.getCommonValueAsInteger(commonValue); } /** * Returns the given common value, assuming it was NOT an integer common value. * @param commonValue * @return */ Serializable getCommonValueAsObject(String commonValue) { return builder.getCommonValueAsObject(commonValue); } }