CertificationRequest.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
  5. namespace Best.HTTP.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 == null)
  27. return null;
  28. if (obj is CertificationRequest)
  29. return (CertificationRequest)obj;
  30. return new CertificationRequest(Asn1Sequence.GetInstance(obj));
  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. internal CertificationRequest(Asn1Sequence seq)
  45. {
  46. if (seq.Count != 3)
  47. throw new ArgumentException("Wrong number of elements in sequence", "seq");
  48. reqInfo = CertificationRequestInfo.GetInstance(seq[0]);
  49. sigAlgId = AlgorithmIdentifier.GetInstance(seq[1]);
  50. sigBits = DerBitString.GetInstance(seq[2]);
  51. }
  52. public CertificationRequestInfo GetCertificationRequestInfo()
  53. {
  54. return reqInfo;
  55. }
  56. public AlgorithmIdentifier SignatureAlgorithm
  57. {
  58. get { return sigAlgId; }
  59. }
  60. public DerBitString Signature
  61. {
  62. get { return sigBits; }
  63. }
  64. public byte[] GetSignatureOctets()
  65. {
  66. return sigBits.GetOctets();
  67. }
  68. public override Asn1Object ToAsn1Object()
  69. {
  70. return new DerSequence(reqInfo, sigAlgId, sigBits);
  71. }
  72. }
  73. }
  74. #pragma warning restore
  75. #endif