Hi,
from the docs of 5.3:
Common Crypto
MonoTouch will now use the iOS CommonCrypto libraries to provide some of
the functionality exposed by its APIs. This replaces our managed
implementations with the native versions. It is now used for for digest
(hash) and symmetric ciphers, leveraging the hardware acceleration for
SHA-1 and AES under the right circumstances.
I'm using code like the one below for hashing and encryption. How can I
take advantage of HW crypto? Or will it automatically become faster?
/// <summary>
/// Calculates the SHA256 hash value of the data <c>b</c>.
/// </summary>
/// <detail declaration="public static"/>
/// <param name="b" type="byte[]">The data of which the hash value is
calculated.</param>
/// <returns type="byte[]">The SHA256 hash value of <c>b</c>.</returns>
public static byte[] CalculateHash ( byte[] b )
{
SHA256Managed oSha = new SHA256Managed ();
byte[] aHash = oSha.ComputeHash ( b );
return aHash;
}
/// <summary>
/// Computes SHA256 hash from a string
/// </summary>
/// <param name="sData"></param>
/// <returns></returns>
public static string ComputeSHA256HashUnicode ( string sData )
{
byte[] aData, aHash;
UnicodeEncoding oEncoding = new UnicodeEncoding ();
aData = oEncoding.GetBytes ( sData );
aHash = CalculateHash(aData);
string sResult = oEncoding.GetString ( aHash );
return sResult;
}
public static void Crypt ( Stream oFileIn, Stream oFileOut,
ICryptoTransform oTrans )
{
// Declare local variables
byte[] buf = new byte[ 4096]; // Read buffer
int iLen; // Current buffer length
long lReadLen = 0; // Total number of bytes written.
long lTotLen = oFileIn.Length; // Total length of the input file.
// Move to the beginning of the file
if ( oFileIn.Position > 0 && oFileIn.CanSeek )
oFileIn.Seek ( 0, SeekOrigin.Begin );
// Create the cryptographic stream
CryptoStream encStream = new CryptoStream (oFileOut, oTrans,
CryptoStreamMode.Write);
// Read from the input file, then encrypt/decrypt and write to the output
file.
while ( lReadLen < lTotLen )
{
iLen = oFileIn.Read ( buf, 0, buf.Length );
encStream.Write ( buf, 0, iLen );
lReadLen += iLen;
}
// Clean up
encStream.Close ();
}
René
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch