Esempio n. 1
0
            protected override string DerStringToManagedString(byte[] anyString)
            {
                DerSequenceReader reader = DerSequenceReader.CreateForPayload(anyString);

                var    tag   = (DerSequenceReader.DerTag)reader.PeekTag();
                string value = null;

                switch (tag)
                {
                case DerSequenceReader.DerTag.BMPString:
                    value = reader.ReadBMPString();
                    break;

                case DerSequenceReader.DerTag.IA5String:
                    value = reader.ReadIA5String();
                    break;

                case DerSequenceReader.DerTag.PrintableString:
                    value = reader.ReadPrintableString();
                    break;

                case DerSequenceReader.DerTag.UTF8String:
                    value = reader.ReadUtf8String();
                    break;

                    // Ignore anything we don't know how to read.
                }

                return(value);
            }
        private static string ReadString(DerSequenceReader tavReader)
        {
            var tag = (DerSequenceReader.DerTag)tavReader.PeekTag();

            switch (tag)
            {
            case DerSequenceReader.DerTag.BMPString:
                return(tavReader.ReadBMPString());

            case DerSequenceReader.DerTag.IA5String:
                return(tavReader.ReadIA5String());

            case DerSequenceReader.DerTag.PrintableString:
                return(tavReader.ReadPrintableString());

            case DerSequenceReader.DerTag.UTF8String:
                return(tavReader.ReadUtf8String());

            case DerSequenceReader.DerTag.T61String:
                return(tavReader.ReadT61String());

            default:
                throw new CryptographicException(SR.Cryptography_Der_Invalid_Encoding);
            }
        }
Esempio n. 3
0
        private static IEnumerable <KeyValuePair <string, string> > ReadReverseRdns(X500DistinguishedName name)
        {
            DerSequenceReader x500NameReader = new DerSequenceReader(name.RawData);
            var rdnReaders = new Stack <DerSequenceReader>();

            while (x500NameReader.HasData)
            {
                rdnReaders.Push(x500NameReader.ReadSet());
            }


            while (rdnReaders.Count > 0)
            {
                DerSequenceReader rdnReader = rdnReaders.Pop();

                while (rdnReader.HasData)
                {
                    DerSequenceReader tavReader = rdnReader.ReadSequence();
                    string            oid       = tavReader.ReadOidAsString();

                    var    tag   = (DerSequenceReader.DerTag)tavReader.PeekTag();
                    string value = null;

                    switch (tag)
                    {
                    case DerSequenceReader.DerTag.BMPString:
                        value = tavReader.ReadBMPString();
                        break;

                    case DerSequenceReader.DerTag.IA5String:
                        value = tavReader.ReadIA5String();
                        break;

                    case DerSequenceReader.DerTag.PrintableString:
                        value = tavReader.ReadPrintableString();
                        break;

                    case DerSequenceReader.DerTag.UTF8String:
                        value = tavReader.ReadUtf8String();
                        break;

                    case DerSequenceReader.DerTag.T61String:
                        value = tavReader.ReadT61String();
                        break;

                        // Ignore anything we don't know how to read.
                    }

                    if (value != null)
                    {
                        yield return(new KeyValuePair <string, string>(oid, value));
                    }
                }
            }
        }