QCStatement.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
  5. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509.Qualified
  6. {
  7. /**
  8. * The QCStatement object.
  9. * <pre>
  10. * QCStatement ::= SEQUENCE {
  11. * statementId OBJECT IDENTIFIER,
  12. * statementInfo ANY DEFINED BY statementId OPTIONAL}
  13. * </pre>
  14. */
  15. public class QCStatement
  16. : Asn1Encodable
  17. {
  18. private readonly DerObjectIdentifier qcStatementId;
  19. private readonly Asn1Encodable qcStatementInfo;
  20. public static QCStatement GetInstance(
  21. object obj)
  22. {
  23. if (obj == null || obj is QCStatement)
  24. {
  25. return (QCStatement) obj;
  26. }
  27. if (obj is Asn1Sequence)
  28. {
  29. return new QCStatement(Asn1Sequence.GetInstance(obj));
  30. }
  31. throw new ArgumentException("unknown object in GetInstance: " + BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.GetTypeName(obj), "obj");
  32. }
  33. private QCStatement(
  34. Asn1Sequence seq)
  35. {
  36. qcStatementId = DerObjectIdentifier.GetInstance(seq[0]);
  37. if (seq.Count > 1)
  38. {
  39. qcStatementInfo = seq[1];
  40. }
  41. }
  42. public QCStatement(
  43. DerObjectIdentifier qcStatementId)
  44. {
  45. this.qcStatementId = qcStatementId;
  46. }
  47. public QCStatement(
  48. DerObjectIdentifier qcStatementId,
  49. Asn1Encodable qcStatementInfo)
  50. {
  51. this.qcStatementId = qcStatementId;
  52. this.qcStatementInfo = qcStatementInfo;
  53. }
  54. public DerObjectIdentifier StatementId
  55. {
  56. get { return qcStatementId; }
  57. }
  58. public Asn1Encodable StatementInfo
  59. {
  60. get { return qcStatementInfo; }
  61. }
  62. public override Asn1Object ToAsn1Object()
  63. {
  64. Asn1EncodableVector v = new Asn1EncodableVector(qcStatementId);
  65. v.AddOptional(qcStatementInfo);
  66. return new DerSequence(v);
  67. }
  68. }
  69. }
  70. #pragma warning restore
  71. #endif