Пример #1
0
        public string GetDataStr(bool pureHexMode)
        {
            string str;

            if (pureHexMode)
            {
                str = Asn1Util.FormatString(Asn1Util.ToHexString(this.data), 32, 2);
            }
            else
            {
                switch (this.tag)
                {
                case 2:
                    str = Asn1Util.FormatString(Asn1Util.ToHexString(this.data), 32, 2);
                    break;

                case 3:
                    str = Asn1Util.FormatString(Asn1Util.ToHexString(this.data), 32, 2);
                    break;

                case 6:
                    str = new Oid().Decode((Stream) new MemoryStream(this.data));
                    break;

                case 12:
                    str = new UTF8Encoding().GetString(this.data);
                    break;

                case 13:
                    str = new RelativeOid().Decode((Stream) new MemoryStream(this.data));
                    break;

                case 18:
                case 19:
                case 22:
                case 23:
                case 24:
                case 26:
                case 27:
                case 28:
                case 30:
                    str = Asn1Util.BytesToString(this.data);
                    break;

                default:
                    str = ((int)this.tag & 31) == 6 || Asn1Util.IsAsciiString(this.Data) ? Asn1Util.BytesToString(this.data) : Asn1Util.FormatString(Asn1Util.ToHexString(this.data), 32, 2);
                    break;
                }
            }
            return(str);
        }
Пример #2
0
        public static string BytesToPem(byte[] data, string pemHeader)
        {
            if (pemHeader == null || pemHeader.Length < 1)
            {
                pemHeader = "ASN.1 Editor Generated PEM File";
            }
            if (pemHeader.Length > 0 && pemHeader[0] != ' ')
            {
                pemHeader = " " + pemHeader;
            }
            string str = Asn1Util.FormatString(Convert.ToBase64String(data), 64, 0);

            return("-----BEGIN" + pemHeader + "-----\r\n" + str + "\r\n-----END" + pemHeader + "-----\r\n");
        }
        public static void Copy(Asn1Node node)
        {
            DataFormats.GetFormat(Asn1ClipboardData.asn1FormatName);
            MemoryStream memoryStream = new MemoryStream();

            node.SaveData((Stream)memoryStream);
            memoryStream.Position = 0L;
            byte[] numArray = new byte[memoryStream.Length];
            memoryStream.Read(numArray, 0, (int)memoryStream.Length);
            memoryStream.Close();
            DataObject dataObject = new DataObject();

            dataObject.SetData(Asn1ClipboardData.asn1FormatName, (object)numArray);
            dataObject.SetData(DataFormats.Text, (object)Asn1Util.FormatString(Asn1Util.ToHexString(numArray), 32, 2));
            Clipboard.SetDataObject((object)dataObject, true);
        }
Пример #4
0
        /// <summary>
        /// Copy Asn1Node data into clipboard as Asn1NodeDataFormat and Text format.
        /// </summary>
        /// <param name="node">Asn1Node</param>
        public static void Copy(Asn1Node node)
        {
            DataFormats.Format asn1Format = DataFormats.GetFormat(asn1FormatName);
            MemoryStream       ms         = new MemoryStream();

            node.SaveData(ms);
            ms.Position = 0;
            byte[] ndata = new byte[ms.Length];
            ms.Read(ndata, 0, (int)ms.Length);
            ms.Close();
            DataObject aDataObj = new DataObject();

            aDataObj.SetData(asn1FormatName, ndata);
            aDataObj.SetData(
                DataFormats.Text,
                Asn1Util.FormatString(Asn1Util.ToHexString(ndata), 32, 2));
            Clipboard.SetDataObject(aDataObj, true);
        }