KeySpecificInfo.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.X9
  4. {
  5. /**
  6. * ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
  7. * RFC 2631, or X9.42, for further details.
  8. */
  9. public class KeySpecificInfo
  10. : Asn1Encodable
  11. {
  12. private DerObjectIdentifier algorithm;
  13. private Asn1OctetString counter;
  14. public KeySpecificInfo(
  15. DerObjectIdentifier algorithm,
  16. Asn1OctetString counter)
  17. {
  18. this.algorithm = algorithm;
  19. this.counter = counter;
  20. }
  21. public KeySpecificInfo(Asn1Sequence seq)
  22. {
  23. var e = seq.GetEnumerator();
  24. e.MoveNext();
  25. algorithm = (DerObjectIdentifier)e.Current;
  26. e.MoveNext();
  27. counter = (Asn1OctetString)e.Current;
  28. }
  29. public DerObjectIdentifier Algorithm
  30. {
  31. get { return algorithm; }
  32. }
  33. public Asn1OctetString Counter
  34. {
  35. get { return counter; }
  36. }
  37. /**
  38. * Produce an object suitable for an Asn1OutputStream.
  39. * <pre>
  40. * KeySpecificInfo ::= Sequence {
  41. * algorithm OBJECT IDENTIFIER,
  42. * counter OCTET STRING SIZE (4..4)
  43. * }
  44. * </pre>
  45. */
  46. public override Asn1Object ToAsn1Object()
  47. {
  48. return new DerSequence(algorithm, counter);
  49. }
  50. }
  51. }
  52. #pragma warning restore
  53. #endif