Provides access to the cryptographic service provider implementation of the AES algorithm.
Examples
import juno.security.crypto, juno.base.text, std.stdio;
ubyte[] encryptText(string text, ubyte[] key, ubyte[] iv) {
scope aes = new AesCryptoServiceProvider;
scope ms = new MemoryStream;
scope cs = new CryptoStream(ms, aes.createEncryptor(key, iv), CryptoStreamMode.Write);
ubyte[] data = Encoding.UTF8.encode(text);
cs.write(data);
cs.flushFinalBlock();
ubyte[] ret = ms.data;
cs.close();
ms.close();
return ret;
}
ubyte[] decryptText(ubyte[] data, ubyte[] key, ubyte[] iv) {
scope aes = new AesCryptoServiceProvider;
scope ms = new MemoryStream(data);
scope cs = new CryptoStream(ms, aes.createEncryptor(key, iv), CryptoStreamMode.Read);
ubyte[] bytes = new ubyte[data.length];
cs.read(bytes);
return Encoding.UTF8.decode(bytes);
}
void main() {
string text = "Some text to encrypt.";
scope aes = new AesCryptoServiceProvider;
ubyte[] data = encryptText(text, aes.key, aes.iv);
text = decryptText(data, aes.key, aes.iv);
writefln(text);
}