/// <summary> /// 生成新密钥、初始向量(IV)、验证标记。 /// </summary> /// <param name="keyMaxSize">给定的密钥最大尺寸(默认以位为单位)。</param> /// <param name="nonceMaxSize">给定的初始向量(IV)最大尺寸(默认以位为单位)。</param> /// <param name="tagMaxSize">给定的验证标记最大尺寸(默认以位为单位)。</param> public virtual void Generate(int keyMaxSize, int nonceMaxSize, int tagMaxSize) { base.Generate(keyMaxSize, nonceMaxSize); Tag = RandomExtensions.GenerateByteArray(GetKeyByteArrayLength(tagMaxSize)); TagMaxSize = tagMaxSize; }
/// <summary> /// 生成 RSA 密钥。 /// </summary> /// <returns>返回 <see cref="TemporaryRsaKey"/>。</returns> public static TemporaryRsaKey Generate() { var rsaKey = new TemporaryRsaKey(); rsaKey.KeyId = RandomExtensions.GenerateByteArray(16).AsBase64String(); rsaKey.Parameters = new(); rsaKey.Parameters.Populate(RSA.Create().ExportParameters(true)); return(rsaKey); }
/// <summary> /// 生成指定数组长度的验证标记。 /// </summary> /// <param name="length">给定的数组长度。</param> /// <param name="key">给定可参与运算的密钥(可选)。</param> /// <returns>返回字节数组。</returns> public virtual byte[] GenerateTag(int length, byte[]?key = null) => RandomExtensions.GenerateByteArray(length);
/// <summary> /// 生成指定数组长度的密钥。 /// </summary> /// <param name="length">给定的数组长度。</param> /// <returns>返回字节数组。</returns> public virtual byte[] GenerateKey(int length) => RandomExtensions.GenerateByteArray(length);
/// <summary> /// 生成新密钥。 /// </summary> /// <param name="keyMaxSize">给定的密钥最大尺寸(默认以位为单位)。</param> public virtual void Generate(int keyMaxSize) { Key = RandomExtensions.GenerateByteArray(GetKeyByteArrayLength(keyMaxSize)); KeyMaxSize = keyMaxSize; }