public override Byte[] DecryptData(Byte[] cipheredData, PDUDecrypter.WriteKeySpec keySpec) { if (keySpec == PDUDecrypter.WriteKeySpec.Client) { return(this.Decrypt(this.CStreamCipher, cipheredData)); } return(this.Decrypt(this.SStreamCipher, cipheredData)); }
public override void SetIv(Byte[] iv, PDUDecrypter.WriteKeySpec keySpec) { var key = keySpec == PDUDecrypter.WriteKeySpec.Client? this._clientKey : this._serverKey; var cipher = keySpec == PDUDecrypter.WriteKeySpec.Client? this.Ccipher : this.Scipher; var keyAndIv = new ParametersWithIV(key, iv); cipher.Reset(); cipher.Init(false, keyAndIv); }
public override void SetGcmParameters(Byte[] exNonce, PDUDecrypter.WriteKeySpec writeKeySpec) { var iv = writeKeySpec == PDUDecrypter.WriteKeySpec.Client? this._clientIv : this._serverIv; var key = writeKeySpec == PDUDecrypter.WriteKeySpec.Client? this._clientKey : this._serverKey; var cipher = writeKeySpec == PDUDecrypter.WriteKeySpec.Client? this.CaeadCipher : this.SaeadCipher; /* Currently Bouncy Castle implementation of GCM supports only MAC size up to 128b */ var par = new AeadParameters(key, this.Digest.GetDigestSize() * 8, iv, exNonce); cipher.Reset(); cipher.Init(false, par); }
public override Byte[] DecryptData(Byte[] cipheredData, PDUDecrypter.WriteKeySpec keySpec) { switch (this.Mode) { case CipherMode.Cbc: if (keySpec == PDUDecrypter.WriteKeySpec.Client) { return(this.Decrypt(this.Ccipher, cipheredData)); } return(this.Decrypt(this.Scipher, cipheredData)); case CipherMode.Ccm: case CipherMode.Gcm: if (keySpec == PDUDecrypter.WriteKeySpec.Client) { return(this.Decrypt(this.CaeadCipher, cipheredData)); } return(this.Decrypt(this.SaeadCipher, cipheredData)); default: return(null); } }
public override void SetIv(Byte[] iv, PDUDecrypter.WriteKeySpec keySpec) { throw new NotImplementedException(); }
public override void SetGcmParameters(Byte[] exNonce, PDUDecrypter.WriteKeySpec writeKeySpec) { throw new NotImplementedException(); }
public abstract void SetIv(Byte[] iv, PDUDecrypter.WriteKeySpec keySpec);
public abstract void SetGcmParameters(Byte[] exNonce, PDUDecrypter.WriteKeySpec writeKeySpec);
public abstract Byte[] DecryptData(Byte[] cipheredData, PDUDecrypter.WriteKeySpec keySpec);