CertificationRequest.cs 2.2 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. public CertificationRequest(
  45. Asn1Sequence seq)
  46. {
  47. if (seq.Count != 3)
  48. throw new ArgumentException("Wrong number of elements in sequence", "seq");
  49. reqInfo = CertificationRequestInfo.GetInstance(seq[0]);
  50. sigAlgId = AlgorithmIdentifier.GetInstance(seq[1]);
  51. sigBits = DerBitString.GetInstance(seq[2]);
  52. }
  53. public CertificationRequestInfo GetCertificationRequestInfo()
  54. {
  55. return reqInfo;
  56. }
  57. public AlgorithmIdentifier SignatureAlgorithm
  58. {
  59. get { return sigAlgId; }
  60. }
  61. public DerBitString Signature
  62. {
  63. get { return sigBits; }
  64. }
  65. public byte[] GetSignatureOctets()
  66. {
  67. return sigBits.GetOctets();
  68. }
  69. public override Asn1Object ToAsn1Object()
  70. {
  71. return new DerSequence(reqInfo, sigAlgId, sigBits);
  72. }
  73. }
  74. }
  75. #pragma warning restore
  76. #endif