CertRequest.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using BestHTTP.SecureProtocol.Org.BouncyCastle.Crmf;
  5. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Crmf
  6. {
  7. public class CertRequest
  8. : Asn1Encodable
  9. {
  10. private readonly DerInteger certReqId;
  11. private readonly CertTemplate certTemplate;
  12. private readonly Controls controls;
  13. private CertRequest(Asn1Sequence seq)
  14. {
  15. certReqId = DerInteger.GetInstance(seq[0]);
  16. certTemplate = CertTemplate.GetInstance(seq[1]);
  17. if (seq.Count > 2)
  18. {
  19. controls = Controls.GetInstance(seq[2]);
  20. }
  21. }
  22. public static CertRequest GetInstance(object obj)
  23. {
  24. if (obj is CertRequest)
  25. return (CertRequest)obj;
  26. if (obj != null)
  27. return new CertRequest(Asn1Sequence.GetInstance(obj));
  28. return null;
  29. }
  30. public CertRequest(
  31. int certReqId,
  32. CertTemplate certTemplate,
  33. Controls controls)
  34. : this(new DerInteger(certReqId), certTemplate, controls)
  35. {
  36. }
  37. public CertRequest(
  38. DerInteger certReqId,
  39. CertTemplate certTemplate,
  40. Controls controls)
  41. {
  42. this.certReqId = certReqId;
  43. this.certTemplate = certTemplate;
  44. this.controls = controls;
  45. }
  46. public virtual DerInteger CertReqID
  47. {
  48. get { return certReqId; }
  49. }
  50. public virtual CertTemplate CertTemplate
  51. {
  52. get { return certTemplate; }
  53. }
  54. public virtual Controls Controls
  55. {
  56. get { return controls; }
  57. }
  58. /**
  59. * <pre>
  60. * CertRequest ::= SEQUENCE {
  61. * certReqId INTEGER, -- ID for matching request and reply
  62. * certTemplate CertTemplate, -- Selected fields of cert to be issued
  63. * controls Controls OPTIONAL } -- Attributes affecting issuance
  64. * </pre>
  65. * @return a basic ASN.1 object representation.
  66. */
  67. public override Asn1Object ToAsn1Object()
  68. {
  69. Asn1EncodableVector v = new Asn1EncodableVector(certReqId, certTemplate);
  70. v.AddOptional(controls);
  71. return new DerSequence(v);
  72. }
  73. }
  74. }
  75. #pragma warning restore
  76. #endif