public void Test_Base64() { var bytes = Encoding.ASCII.GetBytes(""); var s = TextConversion.ToBase64String(bytes); bytes = Encoding.ASCII.GetBytes("H"); s = TextConversion.ToBase64String(bytes); Assert.AreEqual("SA==", s); Assert.AreEqual(TextConversion.FromBase64String(s), bytes); bytes = Encoding.ASCII.GetBytes("He"); s = TextConversion.ToBase64String(bytes); Assert.AreEqual("SGU=", s); Assert.AreEqual(TextConversion.FromBase64String(s), bytes); bytes = Encoding.ASCII.GetBytes("Hel"); s = TextConversion.ToBase64String(bytes); Assert.AreEqual("SGVs", s); Assert.AreEqual(TextConversion.FromBase64String(s), bytes); bytes = Encoding.ASCII.GetBytes("Hell"); s = TextConversion.ToBase64String(bytes); Assert.AreEqual("SGVsbA==", s); Assert.AreEqual(TextConversion.FromBase64String(s), bytes); bytes = Encoding.ASCII.GetBytes("Hello"); s = TextConversion.ToBase64String(bytes); Assert.AreEqual("SGVsbG8=", s); Assert.AreEqual(TextConversion.FromBase64String(s), bytes); }
public override void Process(Command command) { var options = this.LoadOptions <CommandOptions>((TextCommand)command); if (options.Modulus != null && options.Exponent != null && options.Algorithm != null) { var symmetric = new RijndaelManaged(); symmetric.GenerateKey(); var modulus = TextConversion.FromBase64String(options.Modulus); var exponent = TextConversion.FromBase64String(options.Exponent); var rsaparameters = new RSAParameters(); rsaparameters.Modulus = modulus; rsaparameters.Exponent = exponent; var rsa = new RSACryptoServiceProvider(); rsa.ImportParameters(rsaparameters); var myrsa = new RSACryptoServiceProvider(); rsaparameters = myrsa.ExportParameters(false); Connection.WriteOk ( "Modulus", TextConversion.ToBase64String(rsaparameters.Modulus), "Exponent", TextConversion.ToBase64String(rsaparameters.Exponent), "IV", TextConversion.ToBase64String(new RSAPKCS1KeyExchangeFormatter(rsa).CreateKeyExchange(symmetric.IV)), "KeyExchange", TextConversion.ToBase64String(new RSAPKCS1KeyExchangeFormatter(rsa).CreateKeyExchange(symmetric.Key)) ); Connection.Flush(); if (options.WaitForReady) { Connection.ReadReady(); } } else if (options.Compress) { Connection.WriteOk(); Connection.Flush(); this.Connection.ReadStream = new InteractiveInflaterInputStream(this.Connection.RawReadStream, new Inflater(true)); this.Connection.WriteStream = new InteractiveDeflaterOutputStream(this.Connection.RawWriteStream, new Deflater(Deflater.DEFAULT_COMPRESSION, true), 512); if (options.WaitForReady) { Connection.ReadReady(); } } }
public static string DecodeString(string value, string encoding) { switch (encoding) { case "url": return(TextConversion.FromEscapedHexString(value)); case "b64": return(Encoding.UTF8.GetString(TextConversion.FromBase64String(value))); default: throw new NotSupportedException(); } }
public virtual HashValue ComputeHash(string algorithm, long offset, long length) { StabilizeClientState(); var response = this.client.SendCommand(DefaultTryCount, @"computehash -o=""{0}"" -l=""{1}"" -a=""{2}""", offset, length, algorithm).ProcessError(); length = Convert.ToInt64(response.ResponseTuples["length"]); var hash = TextConversion.FromBase64String(response.ResponseTuples["hash"]); this.position = Convert.ToInt64(response.ResponseTuples["stream-position"]); this.client.ReadReady(); return(new HashValue(hash, algorithm, offset, length)); }
private static object PrivateFromString(string s, bool escaped) { int x; Type type; string typeName, value; x = s.IndexOf(':'); if (x < 0) { throw new ArgumentException(); } typeName = s.Substring(0, x); value = s.Substring(x + 1); if ((type = GetType(typeName)) == null) { throw new NotSupportedException(typeName); } if (type == typeof(DateTime)) { DateTime retval; retval = DateTime.ParseExact(value, DateTimeFormats.SortableUtcDateTimeFormatWithFractionSecondsString, System.Globalization.CultureInfo.InvariantCulture); retval = DateTime.SpecifyKind(retval, DateTimeKind.Utc); return(retval.ToLocalTime()); } else if (type == typeof(byte[])) { byte[] retval; retval = TextConversion.FromBase64String(value); return(retval); } else if (type == typeof(bool)) { value = value.ToLower(); if (value == "t") { return(true); } else if (value == "f") { return(false); } else { return(Convert.ChangeType(value, type)); } } else { if (escaped) { if (type == typeof(string)) { return(TextConversion.FromEscapedHexString(value)); } } return(Convert.ChangeType(value, type)); } }