This documentation is archived and is not being maintained.

FromBase64Transform.TransformFinalBlock Method

Converts the specified region of the specified byte array from base 64.

Namespace: System.Security.Cryptography
Assembly: mscorlib (in mscorlib.dll)

public byte[] TransformFinalBlock (
	byte[] inputBuffer,
	int inputOffset,
	int inputCount
)
public final byte[] TransformFinalBlock (
	byte[] inputBuffer, 
	int inputOffset, 
	int inputCount
)
public final function TransformFinalBlock (
	inputBuffer : byte[], 
	inputOffset : int, 
	inputCount : int
) : byte[]
Not applicable.

Parameters

inputBuffer

The input to convert from base 64.

inputOffset

The offset into the byte array from which to begin using data.

inputCount

The number of bytes in the byte array to use as data.

Return Value

The computed conversion.

Exception typeCondition

ObjectDisposedException

The current FromBase64Transform object has already been disposed.

ArgumentException

inputBuffer has an invalid offset length.

-or-

inputCount has an invalid value.

ArgumentOutOfRangeException

inputOffset is out of range. This parameter requires a non-negative number.

ArgumentNullException

inputBuffer is a null reference (Nothing in Visual Basic).

The following example decrypts a base 64-encoded file to an output text file.

using System;
using System.IO;
using System.Security.Cryptography;

namespace ToBase64Transform_Examples
{
    class MyMainClass
    {
        public static void Main()
        {
            //Insert your file names into this method call.
            DecodeFromFile("c:\\encoded.txt", "c:\\roundtrip.txt");
        }

        public static void DecodeFromFile(string inFileName, string outFileName)
        {
            FromBase64Transform myTransform = new FromBase64Transform(FromBase64TransformMode.IgnoreWhiteSpaces);

            byte[] myOutputBytes = new byte[myTransform.OutputBlockSize];

            //Open the input and output files.
            FileStream myInputFile = new FileStream(inFileName, FileMode.Open, FileAccess.Read);
            FileStream myOutputFile = new FileStream(outFileName, FileMode.Create, FileAccess.Write);

            //Retrieve the file contents into a byte array.
            byte[] myInputBytes = new byte[myInputFile.Length];
            myInputFile.Read(myInputBytes, 0, myInputBytes.Length);

            //Transform the data in chunks the size of InputBlockSize.
            int i = 0;
            while(myInputBytes.Length - i > 4/*myTransform.InputBlockSize*/)
            {
                myTransform.TransformBlock(myInputBytes, i, 4/*myTransform.InputBlockSize*/, myOutputBytes, 0);
                i += 4/*myTransform.InputBlockSize*/;
                myOutputFile.Write(myOutputBytes, 0, myTransform.OutputBlockSize);
            }
            
            //Transform the final block of data.
            myOutputBytes = myTransform.TransformFinalBlock(myInputBytes, i, myInputBytes.Length - i);
            myOutputFile.Write(myOutputBytes, 0, myOutputBytes.Length);

            //Free up any used resources.
            myTransform.Clear();

            myInputFile.Close();
            myOutputFile.Close();
        }
    }
}

package ToBase64Transform_Examples; 
import System.*;
import System.IO.*;
import System.Security.Cryptography.*;

class MyMainClass
{
    public static void main(String[] args)
    {
        // Insert your file names into this method call.
        DecodeFromFile("c:\\encoded.txt", "c:\\roundtrip.txt");
    } //main

    public static void DecodeFromFile(String inFileName, String outFileName)
    {
        FromBase64Transform myTransform = 
            new FromBase64Transform(FromBase64TransformMode.IgnoreWhiteSpaces);
        ubyte myOutputBytes[] = new ubyte[myTransform.get_OutputBlockSize()];

        // Open the input and output files.
        FileStream myInputFile = 
            new FileStream(inFileName, FileMode.Open, FileAccess.Read);
        FileStream myOutputFile = 
            new FileStream(outFileName, FileMode.Create, FileAccess.Write);

        // Retrieve the file contents into a byte array.
        // const int temp = 2;
        ubyte myInputBytes[] = 
            new ubyte[(new Long(myInputFile.get_Length())).intValue()];
        myInputFile.Read(myInputBytes, 0, myInputBytes.length);

        // Transform the data in chunks the size of InputBlockSize.
        int i = 0;
        while (myInputBytes.length - i > 4/*myTransform.InputBlockSize*/) {
            myTransform.TransformBlock(myInputBytes, i, 
                4/*myTransform.InputBlockSize*/, myOutputBytes, 0);
            i += 4 /*myTransform.InputBlockSize*/;
            myOutputFile.Write(myOutputBytes, 0, 
                myTransform.get_OutputBlockSize());
        }

        // Transform the final block of data.
        myOutputBytes = myTransform.TransformFinalBlock(myInputBytes, 
            i, myInputBytes.length - i);
        myOutputFile.Write(myOutputBytes, 0, myOutputBytes.length);

        // Free up any used resources.
        myTransform.Clear();
        myInputFile.Close();
        myOutputFile.Close();
    } //DecodeFromFile
} //MyMainClass   

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0
Show: