ParametersWithIV.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. using System;
  3. namespace Org.BouncyCastle.Crypto.Parameters
  4. {
  5. public class ParametersWithIV
  6. : ICipherParameters
  7. {
  8. private readonly ICipherParameters parameters;
  9. private readonly byte[] iv;
  10. public ParametersWithIV(
  11. ICipherParameters parameters,
  12. byte[] iv)
  13. : this(parameters, iv, 0, iv.Length)
  14. {
  15. }
  16. public ParametersWithIV(
  17. ICipherParameters parameters,
  18. byte[] iv,
  19. int ivOff,
  20. int ivLen)
  21. {
  22. // NOTE: 'parameters' may be null to imply key re-use
  23. if (iv == null)
  24. throw new ArgumentNullException("iv");
  25. this.parameters = parameters;
  26. this.iv = new byte[ivLen];
  27. Array.Copy(iv, ivOff, this.iv, 0, ivLen);
  28. }
  29. public byte[] GetIV()
  30. {
  31. return (byte[]) iv.Clone();
  32. }
  33. public ICipherParameters Parameters
  34. {
  35. get { return parameters; }
  36. }
  37. }
  38. }
  39. #endif