Пример #1
0
 /**
  * To save from Attacks on Parameter Authentication one can send hash of parameters to other party
  *
  * @return byte[] of what???
  */
 @Override
 public byte[] getParametersHash() {
   byte[] parms = NativeLib.getECParameters(ecGroup);
   SHA1 sha1 = new SHA1(BLOCK_SIZE);
   sha1.update(parms, 0, parms.length);
   sha1.generate();
   byte[] digest = sha1.getDigest();
   return digest;
 }
Пример #2
0
 @Override
 public boolean checkParametersHash(byte[] hash) {
   if (hash == null || hash.length != BLOCK_SIZE) return false;
   byte[] parms = NativeLib.getECParameters(ecGroup);
   SHA1 sha1 = new SHA1(BLOCK_SIZE);
   sha1.update(parms, 0, parms.length);
   sha1.generate();
   byte[] digest = sha1.getDigest();
   for (int i = 0; i < digest.length; i++) if (digest[i] != hash[i]) return false;
   return true;
 }
Пример #3
0
 @Override
 public byte[] getSharedKey(byte[] composite) {
   byte[] sharedKey;
   sharedKey = NativeLib.getECSharedKey(privateKey, composite, ecGroup);
   return sharedKey;
 }
Пример #4
0
 protected EllipticCurve(byte[] privateKey, int ecGroup) {
   super(privateKey);
   this.ecGroup = ecGroup;
   publicKey = NativeLib.getECPublicKey(privateKey, ecGroup);
 }