Ejemplo n.º 1
0
        /// <summary>
        /// Read a string from the specified offset.
        /// </summary>
        /// <param name="offset">Offset to read from.</param>
        /// <param name="encodingType">Encoding, default: UTF-8</param>
        /// <returns>Read string.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Gets thrown when an unknown string encoding is provided.</exception>
        public string ReadString(ulong offset, StringEncodingType encodingType = StringEncodingType.Utf8)
        {
            var bytes = new List <byte>();

            do
            {
                bytes.Add(ReadByte(offset));
                offset++;
            } while (bytes[bytes.Count - 1] != 0x0);

            bytes = bytes.Take(bytes.Count - 1).ToList();

            switch (encodingType)
            {
            case StringEncodingType.ASCII:
                return(Encoding.UTF8.GetString(bytes.ToArray()));

            case StringEncodingType.Unicode:
                return(Encoding.UTF8.GetString(bytes.ToArray()));

            case StringEncodingType.Utf8:
                return(Encoding.UTF8.GetString(bytes.ToArray()));

            default:
                throw new ArgumentOutOfRangeException(nameof(encodingType), encodingType, null);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Write a string to the specified offset.
        /// </summary>
        /// <param name="offset"></param>
        /// <param name="data"></param>
        /// <param name="encodingType"></param>
        /// <param name="zeroTerminated"></param>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public void WriteString(ulong offset, string data, StringEncodingType encodingType = StringEncodingType.Utf8,
                                bool zeroTerminated = true)
        {
            if (zeroTerminated)
            {
                data += "\0";
            }

            byte[] stringBytes;
            switch (encodingType)
            {
            case StringEncodingType.ASCII:
                stringBytes = Encoding.ASCII.GetBytes(data);
                break;

            case StringEncodingType.Unicode:
                stringBytes = Encoding.Unicode.GetBytes(data);
                break;

            case StringEncodingType.Utf8:
                stringBytes = Encoding.UTF8.GetBytes(data);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(encodingType), encodingType, null);
            }

            WriteBytes(offset, stringBytes);
        }
 public string Encrypt( string plaintext, StringEncodingType encoding )
 {
     var bytesIn = ByteEncoding.StringToBytes(plaintext);
     var encryptedBytes = Encrypt(bytesIn);
     string returnValue = null;
     switch(encoding)
     {
         case StringEncodingType.Base64:
             returnValue = ByteEncoding.BytesToBase64(encryptedBytes);
             break;
         case StringEncodingType.Hex:
             returnValue = ByteEncoding.BytesToHex(encryptedBytes);
             break;
         default:
             throw new ArgumentException("Unknown encoding type.");
     }
     Array.Clear(bytesIn, 0, bytesIn.Length);
     Array.Clear(encryptedBytes, 0, encryptedBytes.Length);
     return returnValue;
 }
 public string Decrypt( string cipherText, StringEncodingType encoding )
 {
     byte[] bytesIn = null;
     switch(encoding)
     {
         case StringEncodingType.Base64:
             bytesIn = ByteEncoding.Base64ToBytes(cipherText);
             break;
         case StringEncodingType.Hex:
             bytesIn = ByteEncoding.HexToBytes(cipherText);
             break;
         default:
             throw new ArgumentException("Unknown encoding type.");
     }
     var bytesOut = Decrypt(bytesIn);
     var returnValue = ByteEncoding.BytesToString(bytesOut);
     Array.Clear(bytesIn, 0, bytesIn.Length);
     Array.Clear(bytesOut, 0, bytesOut.Length);
     return returnValue;
 }
Ejemplo n.º 5
0
 public string Encrypt(string plaintext, StringEncodingType encoding)
 {
     var plaintext1 = ByteEncoding.StringToBytes(plaintext);
     var bytes = Encrypt(plaintext1);
     string str;
     switch (encoding)
     {
         case StringEncodingType.Hex:
             str = ByteEncoding.BytesToHex(bytes);
             break;
         case StringEncodingType.Base64:
             str = ByteEncoding.BytesToBase64(bytes);
             break;
         default:
             throw new ArgumentException("Unknown encoding type.");
     }
     Array.Clear(plaintext1, 0, plaintext1.Length);
     Array.Clear(bytes, 0, bytes.Length);
     return str;
 }
Ejemplo n.º 6
0
 public string Decrypt(string cipherText, StringEncodingType encoding)
 {
     byte[] cipherText1;
     switch (encoding)
     {
         case StringEncodingType.Hex:
             cipherText1 = ByteEncoding.HexToBytes(cipherText);
             break;
         case StringEncodingType.Base64:
             cipherText1 = ByteEncoding.Base64ToBytes(cipherText);
             break;
         default:
             throw new ArgumentException("Unknown encoding type.");
     }
     var bytes = Decrypt(cipherText1);
     var str = ByteEncoding.BytesToString(bytes);
     Array.Clear(cipherText1, 0, cipherText1.Length);
     Array.Clear(bytes, 0, bytes.Length);
     return str;
 }
Ejemplo n.º 7
0
        public string Decrypt(string cipherText, StringEncodingType encoding)
        {
            byte[] bytesIn = null;
            switch (encoding)
            {
            case StringEncodingType.Base64:
                bytesIn = ByteEncoding.Base64ToBytes(cipherText);
                break;

            case StringEncodingType.Hex:
                bytesIn = ByteEncoding.HexToBytes(cipherText);
                break;

            default:
                throw new ArgumentException("Unknown encoding type.");
            }
            var bytesOut    = Decrypt(bytesIn);
            var returnValue = ByteEncoding.BytesToString(bytesOut);

            Array.Clear(bytesIn, 0, bytesIn.Length);
            Array.Clear(bytesOut, 0, bytesOut.Length);
            return(returnValue);
        }
Ejemplo n.º 8
0
        public string Encrypt(string plaintext, StringEncodingType encoding)
        {
            var    bytesIn        = ByteEncoding.StringToBytes(plaintext);
            var    encryptedBytes = Encrypt(bytesIn);
            string returnValue    = null;

            switch (encoding)
            {
            case StringEncodingType.Base64:
                returnValue = ByteEncoding.BytesToBase64(encryptedBytes);
                break;

            case StringEncodingType.Hex:
                returnValue = ByteEncoding.BytesToHex(encryptedBytes);
                break;

            default:
                throw new ArgumentException("Unknown encoding type.");
            }
            Array.Clear(bytesIn, 0, bytesIn.Length);
            Array.Clear(encryptedBytes, 0, encryptedBytes.Length);
            return(returnValue);
        }