Implemented commitment creation
This commit is contained in:
parent
3ba1463936
commit
0d3d38e773
57
src/main/java/Main/Commitment.java
Normal file
57
src/main/java/Main/Commitment.java
Normal file
@ -0,0 +1,57 @@
|
||||
package Main;
|
||||
|
||||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.LogManager;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Random;
|
||||
|
||||
public class Commitment {
|
||||
private static final Logger logger = LogManager.getLogger(App.class);
|
||||
|
||||
final private int randomSequenceByteCount = 128;
|
||||
|
||||
private String message;
|
||||
private byte[] sequenceA;
|
||||
private byte[] sequenceB;
|
||||
private byte[] hash;
|
||||
|
||||
private byte[] generateRandomSequence(){
|
||||
byte[] result = new byte[randomSequenceByteCount];
|
||||
Random r = new Random();
|
||||
r.nextBytes(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
public Commitment(String message) {
|
||||
logger.log(Level.INFO, "Creating commitment...");
|
||||
this.message = message;
|
||||
|
||||
this.sequenceA = generateRandomSequence();
|
||||
logger.log(Level.INFO, "Random sequence A is " + Arrays.toString(this.sequenceA));
|
||||
this.sequenceB = generateRandomSequence();
|
||||
logger.log(Level.INFO, "Random sequence B is " + Arrays.toString(this.sequenceB));
|
||||
|
||||
try {
|
||||
MessageDigest digest = MessageDigest.getInstance("SHA-256");
|
||||
digest.update(this.sequenceA);
|
||||
digest.update(this.sequenceB);
|
||||
digest.update(this.message.getBytes(StandardCharsets.UTF_8));
|
||||
|
||||
this.hash = digest.digest();
|
||||
logger.log(Level.INFO, "Hash is " + Arrays.toString(this.hash));
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public Commitment() {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user