/// <summary> /// Inits the instance for encryption. /// </summary> /// <param name="privateKey">The private key.</param> /// <param name="publicKey">The public key.</param> public void InitForDecryption(ECDHPrivateKeyParameters privateKey, ECDHPublicKeyParameters publicKey) { _fingerPrint = (byte[]) privateKey.FingerPrint.Clone(); _privateKey = privateKey; _publicKey = publicKey; _forEncryption = false; }
public void InitForEncryption(ISecureRandom random, ECDHPublicKeyParameters publicKey, byte[] fingerPrint, out ECDHPublicKeyParameters ephemeralPublicKey) { var genParams = publicKey.CreateKeyGenerationParameters(random, publicKey.HashAlgorithm, publicKey.SymmetricKeyAlgorithm); var generator = new ECKeyPairGenerator("ECDH"); generator.Init(genParams); var ephemeralKeyPair = generator.GenerateKeyPair(); _fingerPrint = (byte[])fingerPrint.Clone(); _privateKey = (ECPrivateKeyParameters)ephemeralKeyPair.Private; _publicKey = publicKey; _forEncryption = true; ephemeralPublicKey = (ECDHPublicKeyParameters)ephemeralKeyPair.Public; }
public ECDHPrivateKeyParameters(IBigInteger d, ECDomainParameters parameters, ECDHPublicKeyParameters publicKeyParameters, byte[] fingerPrint) : base("ECDH", d, parameters) { this.PublicKeyParameters = publicKeyParameters; this.FingerPrint = (byte[])fingerPrint.Clone(); }
protected bool Equals(ECDHPublicKeyParameters other) { return(this.HashAlgorithm == other.HashAlgorithm && this.SymmetricKeyAlgorithm == other.SymmetricKeyAlgorithm && base.Equals(other)); }
protected bool Equals(ECDHPublicKeyParameters other) { return this.HashAlgorithm == other.HashAlgorithm && this.SymmetricKeyAlgorithm == other.SymmetricKeyAlgorithm && base.Equals(other); }