コード例 #1
0
        /// <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
        }
コード例 #2
0
ファイル: OCSPRequest.cs プロジェクト: ntthanh/pkix.net
        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());
        }
コード例 #3
0
        /// <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));
        }