Ejemplo n.º 1
0
        void m_initialize(Byte[] rawData)
        {
            Asn1Reader asn = new Asn1Reader(rawData);

            if (asn.Tag != 48)
            {
                throw new Asn1InvalidTagException(asn.Offset);
            }
            asn.MoveNext();
            SerialNumber = Asn1Utils.DecodeInteger(asn.GetTagRawData(), true);
            asn.MoveNext();
            if (asn.Tag != (Byte)Asn1Type.UTCTime && asn.Tag != (Byte)Asn1Type.GeneralizedTime)
            {
                throw new Asn1InvalidTagException(asn.Offset);
            }
            if (asn.Tag == (Byte)Asn1Type.UTCTime)
            {
                RevocationDate = new Asn1UtcTime(asn.GetTagRawData()).Value;
            }
            if (asn.Tag == (Byte)Asn1Type.GeneralizedTime)
            {
                RevocationDate = Asn1Utils.DecodeGeneralizedTime(asn.GetTagRawData());
            }
            if (asn.MoveNext())
            {
                var extensions = new X509ExtensionCollection();
                extensions.Decode(asn.GetTagRawData());
                X509Extension crlReason = extensions[X509CertExtensions.X509CRLReasonCode];
                if (crlReason != null)
                {
                    ReasonCode = crlReason.RawData[2];
                }
            }
            RawData = rawData;
        }
Ejemplo n.º 2
0
        void readExtensions(Asn1Reader asn)
        {
            // extensions are explicitly tagged, so move to inner
            asn.MoveNext();
            // and then decode
            _extensions.Decode(asn);
            if (_extensions[X509ExtensionOid.DeltaCRLIndicator] != null)
            {
                Type = X509CrlType.DeltaCrl;
            }
            var crlNumExt = (X509CRLNumberExtension)_extensions[X509ExtensionOid.CRLNumber];

            CRLNumber = crlNumExt?.CRLNumber ?? 0;
        }