/// <summary> /// 该方法为加密和解密提供统一抽象 /// </summary> /// <param name="read">用来读取原始明文或密文的管道</param> /// <param name="fun">用来进行加密或解密的函数</param> /// <returns></returns> private static IBitRead Aided(IBitRead read, Func <byte[], RSAEncryptionPadding, byte[]> fun) { #region 本地函数 async IAsyncEnumerable <byte[]> Fun() { yield return(fun(await read.ReadComplete(), RSAEncryptionPadding.Pkcs1)); } #endregion return(Fun().ToBitRead()); }
public IBitRead Encryption(IBitRead plaintext) => Aided(plaintext, Algorithm.Encrypt);
public IBitRead Decrypt(IBitRead ciphertext) => Aided(ciphertext, Algorithm.Decrypt);
public IBitRead Decrypt(IBitRead ciphertext) => PackCryptology.Decrypt(ciphertext);
public IBitRead Encryption(IBitRead plaintext) { var hash = PackHash.Encryption(plaintext); return(PackCryptology.Encryption(hash)); }