Пример #1
0
  /**
   * Create Preq message body Preq = Comm(ID_P, r_P)|T|L_1
   *
   * @param aStampContext current context
   * @param aLocLevel desired location level (0 usually)
   * @return Preq message
   */
  public static byte[] createPreq(ProverContext aStampContext) {
    byte commID[] = aStampContext.getCommittedID();
    byte time[] = ByteBuffer.allocate(8).putLong(ProverContext.getTime()).array();
    /* TODO: check if aLocLevel is valid */
    byte location[] = aStampContext.getLocation().toString().getBytes();

    ArrayList<byte[]> array = new ArrayList<byte[]>();
    array.add(commID);
    array.add(time);
    array.add(location);

    return MessageUtil.compileMessages(array);
  }
Пример #2
0
  /**
   * Create DB ready message body
   *
   * @return DB ready message
   */
  public static byte[] createCeCk(ProverContext aStampContext) {

    BigInteger e = aStampContext.getE();
    BigInteger k = aStampContext.getK();
    BigInteger p = aStampContext.getPubDSASelf().getParams().getP();
    BigInteger g = aStampContext.getPubDSASelf().getParams().getG();
    BigInteger h = aStampContext.getH();
    BigInteger v = aStampContext.getV();

    ArrayList<byte[]> ces = CryptoUtil.getBitCommitments(g, p, h, v, e);
    ArrayList<byte[]> cks = CryptoUtil.getBitCommitments(g, p, h, v, k);

    byte[] cesBytes = MessageUtil.createMessageFromArray(ces);
    byte[] cksBytes = MessageUtil.createMessageFromArray(cks);

    ArrayList<byte[]> array = new ArrayList<byte[]>();
    array.add(cesBytes);
    array.add(cksBytes);

    return MessageUtil.compileMessages(array);
  }