CryptoStream Constructor
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Initializes a new instance of the CryptoStream class with a target data stream, the transformation to use, and the mode of the stream.
Namespace: System.Security.Cryptography
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Sub New ( _
stream As Stream, _
transform As ICryptoTransform, _
mode As CryptoStreamMode _
)
public CryptoStream(
Stream stream,
ICryptoTransform transform,
CryptoStreamMode mode
)
Parameters
- stream
Type: System.IO.Stream
The stream on which to perform the cryptographic transformation.
- transform
Type: System.Security.Cryptography.ICryptoTransform
The cryptographic transformation that is to be performed on the stream.
- mode
Type: System.Security.Cryptography.CryptoStreamMode
One of the enumeration values that specifies whether to read or write the cryptographic stream.
Exceptions
Exception | Condition |
---|---|
ArgumentException | stream is not readable. |
ArgumentException | stream is not writable. |
ArgumentException | stream is invalid. |
Remarks
Any object that derives from Stream can be passed into the stream parameter. Any object that implements ICryptoTransform (such as HashAlgorithm) can be passed into the transform parameter.
Examples
The following example demonstrates how to use the CryptoStream constructor when you encrypt an isolated storage file. This code example is part of a larger example provided for the AesManaged class.
Using aes = New System.Security.Cryptography.AesManaged()
Dim deriveBytes As New Rfc2898DeriveBytes(passwordBox.Password, Encoding.UTF8.GetBytes(PasswordSalt))
aes.Key = deriveBytes.GetBytes(128 / 8)
If Integer.MaxValue = Int64.MaxValue Then intSize = 8
isoStoreStream.Write(BitConverter.GetBytes(aes.IV.Length), 0, intSize)
isoStoreStream.Write(aes.IV, 0, aes.IV.Length)
Using cs As New CryptoStream(isoStoreStream, aes.CreateEncryptor(), CryptoStreamMode.Write)
Dim rawPlaintext As Byte() = Encoding.Unicode.GetBytes(inputBox.Text)
cs.Write(rawPlaintext, 0, rawPlaintext.Length)
cs.FlushFinalBlock()
End Using
End Using
using (Aes aes = new AesManaged())
{
Rfc2898DeriveBytes deriveBytes = new Rfc2898DeriveBytes(passwordBox.Password, Encoding.UTF8.GetBytes(PasswordSalt));
aes.Key = deriveBytes.GetBytes(128 / 8);
isoStoreStream.Write(BitConverter.GetBytes(aes.IV.Length), 0, sizeof(int));
isoStoreStream.Write(aes.IV, 0, aes.IV.Length);
using (CryptoStream cs = new CryptoStream(isoStoreStream, aes.CreateEncryptor(), CryptoStreamMode.Write))
{
byte[] rawPlaintext = Encoding.Unicode.GetBytes(inputBox.Text);
cs.Write(rawPlaintext, 0, rawPlaintext.Length);
cs.FlushFinalBlock();
}
}
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also