CertificationRequest.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
  5. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Pkcs
  6. {
  7. /**
  8. * Pkcs10 Certfication request object.
  9. * <pre>
  10. * CertificationRequest ::= Sequence {
  11. * certificationRequestInfo CertificationRequestInfo,
  12. * signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
  13. * signature BIT STRING
  14. * }
  15. * </pre>
  16. */
  17. public class CertificationRequest
  18. : Asn1Encodable
  19. {
  20. protected CertificationRequestInfo reqInfo;
  21. protected AlgorithmIdentifier sigAlgId;
  22. protected DerBitString sigBits;
  23. public static CertificationRequest GetInstance(
  24. object obj)
  25. {
  26. if (obj is CertificationRequest)
  27. return (CertificationRequest)obj;
  28. if (obj != null)
  29. return new CertificationRequest((Asn1Sequence)obj);
  30. return null;
  31. }
  32. protected CertificationRequest()
  33. {
  34. }
  35. public CertificationRequest(
  36. CertificationRequestInfo requestInfo,
  37. AlgorithmIdentifier algorithm,
  38. DerBitString signature)
  39. {
  40. this.reqInfo = requestInfo;
  41. this.sigAlgId = algorithm;
  42. this.sigBits = signature;
  43. }
  44. [Obsolete("Use 'GetInstance' instead")]
  45. public CertificationRequest(
  46. Asn1Sequence seq)
  47. {
  48. if (seq.Count != 3)
  49. throw new ArgumentException("Wrong number of elements in sequence", "seq");
  50. reqInfo = CertificationRequestInfo.GetInstance(seq[0]);
  51. sigAlgId = AlgorithmIdentifier.GetInstance(seq[1]);
  52. sigBits = DerBitString.GetInstance(seq[2]);
  53. }
  54. public CertificationRequestInfo GetCertificationRequestInfo()
  55. {
  56. return reqInfo;
  57. }
  58. public AlgorithmIdentifier SignatureAlgorithm
  59. {
  60. get { return sigAlgId; }
  61. }
  62. public DerBitString Signature
  63. {
  64. get { return sigBits; }
  65. }
  66. public byte[] GetSignatureOctets()
  67. {
  68. return sigBits.GetOctets();
  69. }
  70. public override Asn1Object ToAsn1Object()
  71. {
  72. return new DerSequence(reqInfo, sigAlgId, sigBits);
  73. }
  74. }
  75. }
  76. #pragma warning restore
  77. #endif