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); }
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); }
/// <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); }