Beispiel #1
0
        /// <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());
        }
Beispiel #2
0
 public IBitRead Encryption(IBitRead plaintext)
 => Aided(plaintext, Algorithm.Encrypt);
Beispiel #3
0
 public IBitRead Decrypt(IBitRead ciphertext)
 => Aided(ciphertext, Algorithm.Decrypt);
Beispiel #4
0
 public IBitRead Decrypt(IBitRead ciphertext)
 => PackCryptology.Decrypt(ciphertext);
Beispiel #5
0
        public IBitRead Encryption(IBitRead plaintext)
        {
            var hash = PackHash.Encryption(plaintext);

            return(PackCryptology.Encryption(hash));
        }