public byte[] calculateAgreement(CipherParameters pubKey) { ECDHUPublicParameters pubParams = (ECDHUPublicParameters)pubKey; ECDHCBasicAgreement sAgree = new ECDHCBasicAgreement(); ECDHCBasicAgreement eAgree = new ECDHCBasicAgreement(); sAgree.init(privParams.getStaticPrivateKey()); BigInteger sComp = sAgree.calculateAgreement(pubParams.getStaticPublicKey()); eAgree.init(privParams.getEphemeralPrivateKey()); BigInteger eComp = eAgree.calculateAgreement(pubParams.getEphemeralPublicKey()); return Arrays.concatenate( BigIntegers.asUnsignedByteArray(this.getFieldSize(), eComp), BigIntegers.asUnsignedByteArray(this.getFieldSize(), sComp)); } }
ECUtils.generatePublicKeyParameter(dheParameters.getOtherPartyEphemeralKey()); pubKey = new ECDHUPublicParameters(staticKey, ephemKey);