/// <exception cref="System.Exception"></exception> public virtual byte[] GetK() { if (K == null) { KeyFactory myKeyFac = KeyFactory.GetInstance("DH"); DHPublicKeySpec keySpec = new DHPublicKeySpec(f, p, g); PublicKey yourPubKey = myKeyFac.GeneratePublic(keySpec); myKeyAgree.DoPhase(yourPubKey, true); byte[] mySharedSecret = myKeyAgree.GenerateSecret(); K = new BigInteger(mySharedSecret); K_array = K.ToByteArray(); //System.err.println("K.signum(): "+K.signum()+ // " "+Integer.toHexString(mySharedSecret[0]&0xff)+ // " "+Integer.toHexString(K_array[0]&0xff)); K_array = mySharedSecret; } return K_array; }
public override PublicKey GeneratePublic(KeySpec key) { DHPublicKeySpec spec = (DHPublicKeySpec)key; return(new DHPublicKey(spec.Y)); }