/// <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;
    }
Esempio n. 2
0
    /// <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);
Esempio n. 5
0
 /// <summary>
 /// 生成新密钥。
 /// </summary>
 /// <param name="keyMaxSize">给定的密钥最大尺寸(默认以位为单位)。</param>
 public virtual void Generate(int keyMaxSize)
 {
     Key        = RandomExtensions.GenerateByteArray(GetKeyByteArrayLength(keyMaxSize));
     KeyMaxSize = keyMaxSize;
 }