/*
 * Copyright (c) 2015, the IRMA Team
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice, this
 *   list of conditions and the following disclaimer.
 *
 *  Redistributions in binary form must reproduce the above copyright notice,
 *   this list of conditions and the following disclaimer in the documentation
 *   and/or other materials provided with the distribution.
 *
 *  Neither the name of the IRMA project nor the names of its
 *   contributors may be used to endorse or promote products derived from
 *   this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package org.irmacard.credentials.idemix.messages;

import java.math.BigInteger;

import org.irmacard.credentials.idemix.proofs.ProofList;
import org.irmacard.credentials.idemix.proofs.ProofP;
import org.irmacard.credentials.idemix.proofs.ProofU;

/**
 * Encapsulates the messages sent by the receiver to the issuer in the second
 * step of the issuance protocol.
 *
 */
public class IssueCommitmentMessage {
	private ProofU proofU;
	private ProofList combinedProofs;
	private ProofP proofP;
	private BigInteger n_2;

	public IssueCommitmentMessage(ProofU proofU, BigInteger n_2) {
		this.proofU = proofU;
		this.n_2 = n_2;
	}

	public IssueCommitmentMessage(ProofList combinedProofs, BigInteger n_2) {
		this.combinedProofs = combinedProofs;
		this.proofU = combinedProofs.getProofU();
		this.n_2 = n_2;
	}

	public IssueCommitmentMessage(ProofList combinedProofs, BigInteger n_2, ProofP proofP) {
		this(combinedProofs, n_2);
		this.proofP = proofP;
	}

	public ProofU getCommitmentProof() {
		return proofU;
	}

	public BigInteger getNonce2() {
		return n_2;
	}

	public ProofList getCombinedProofs() {
		return combinedProofs;
	}

	public ProofP getProofP() {
		return proofP;
	}
}

@@ -1703,62 +1703,8 @@
 st;%0A
-import org.irmacard.credentials.idemix.proofs.ProofP;%0A
 impo
@@ -1983,29 +1983,32 @@
 private 
-ProofP
+String
  proofP
+Jwt
 ;%0A%09priva
@@ -2395,21 +2395,24 @@
 _2, 
-ProofP
+String
  proofP
+Jwt
 ) %7B%0A
@@ -2453,16 +2453,19 @@
 s.proofP
+Jwt
  = proof
@@ -2461,24 +2461,27 @@
 Jwt = proofP
+Jwt
 ;%0A%09%7D%0A%0A%09publi
@@ -2661,22 +2661,22 @@
 %09public 
-ProofP
+String
  getProo
@@ -2677,16 +2677,19 @@
 etProofP
+Jwt
 () %7B%0A%09%09r
@@ -2700,15 +2700,18 @@
 n proofP
+Jwt
 ;%0A%09%7D%0A%7D%0A

Send entire JWT in IssueCommitmentMessage