/// <summary> /// Encodes OCSPSingleRequest object to a ASN.1-encoded byte aray. /// </summary> /// <returns>ASN.1-encoded byte array.</returns> public Byte[] Encode() { if (String.IsNullOrEmpty(CertId.SerialNumber)) { throw new UninitializedObjectException(); } List <Byte> rawData = new List <Byte>(); rawData.AddRange(CertId.Encode()); if (Extensions.Count > 0) { Byte[] contentspecific0 = Crypt32Managed.EncodeX509Extensions(Extensions); rawData.AddRange(Asn1Utils.Encode(contentspecific0, 160)); } return(Asn1Utils.Encode(rawData.ToArray(), 48)); // Request }
List <Byte> buildTbsRequest(X500DistinguishedName requester) { List <Byte> tbsRequest = new List <Byte>(); if (requester != null) { X509AlternativeName requesterName = new X509AlternativeName(X509AlternativeNamesEnum.DirectoryName, requester); tbsRequest.AddRange(Asn1Utils.Encode(requesterName.RawData, 0xa1)); } tbsRequest.AddRange(RequestList.Encode()); if (Nonce) { _listExtensions.Add(new X509NonceExtension()); Byte[] extensionsbytes = Asn1Utils.Encode(Crypt32Managed.EncodeX509Extensions(Extensions), 162); tbsRequest.AddRange(extensionsbytes); NonceValue = _listExtensions[_listExtensions.Count - 1].Format(false).Trim(); } return(Asn1Utils.Encode(tbsRequest.ToArray(), 48).ToList()); }
/// <summary> /// Encodes revocation entry to a ASN.1-encoded byte array. /// </summary> /// <returns>ASN.1-encoded byte array</returns> public Byte[] Encode() { if (String.IsNullOrEmpty(SerialNumber)) { throw new UninitializedObjectException(); } List <Byte> rawData = new List <Byte>(AsnFormatter.StringToBinary(SerialNumber, EncodingType.HexAny)); rawData = new List <Byte>(Asn1Utils.Encode(rawData.ToArray(), (Byte)Asn1Type.INTEGER)); rawData.AddRange(Asn1Utils.EncodeDateTime(RevocationDate)); if (ReasonCode != 0) { Byte[] reasonEnum = new Byte[] { 10, 1, (Byte)ReasonCode }; X509ExtensionCollection exts = new X509ExtensionCollection(); X509Extension CRlReasonCode = new X509Extension("2.5.29.21", reasonEnum, false); exts.Add(CRlReasonCode); rawData.AddRange(Crypt32Managed.EncodeX509Extensions(exts)); } return(Asn1Utils.Encode(rawData.ToArray(), 48)); }