public void RemoveAt (int index)
{
if (disposed)
throw new ObjectDisposedException ("SecureString");
if (read_only) {
throw new InvalidOperationException (Locale.GetText (
"SecureString is read-only."));
}
if ((index < 0) || (index >= length))
throw new ArgumentOutOfRangeException ("index", "< 0 || > length");
try {
Decrypt ();
Buffer.BlockCopy (data, index + 1, data, index, data.Length - index - 1);
Alloc (--length, true);
}
finally {
Encrypt ();
}
}