Skip to content

Commit cac4f71

Browse files
committed
初步完成全部功能重构。
1 parent b741abe commit cac4f71

File tree

2 files changed

+10
-91
lines changed

2 files changed

+10
-91
lines changed

Quick.Protocol/QpChannel_Recv.cs

Lines changed: 9 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -219,52 +219,20 @@ private async Task ReadRecvPipeAsync(PipeReader recvReader, CancellationToken to
219219

220220
//开始解密
221221
var encryptedBuffer = packageBuffer.Slice(PACKAGE_TOTAL_LENGTH_LENGTH).ToArray();
222-
var retBuffer = dec.TransformFinalBlock(encryptedBuffer, 0, encryptedBuffer.Length);
223-
packageTotalLength += retBuffer.Length;
224-
/*
225-
var encryptedBuffer = packageBuffer.Slice(PACKAGE_TOTAL_LENGTH_LENGTH);
226-
var inLength = 0;
227-
while (encryptedBuffer.Length > 0)
228-
{
229-
inLength = Math.Min(decryptBuffer1.Length, (int)encryptedBuffer.Length);
230-
encryptedBuffer.Slice(0, inLength).CopyTo(decryptBuffer1);
231-
encryptedBuffer = encryptedBuffer.Slice(inLength);
232-
if (inLength < dec.InputBlockSize)
233-
{
234-
var v = dec.InputBlockSize - inLength;
235-
Array.Fill(decryptBuffer1, (byte)v, inLength, v);
236-
}
237-
var outLength = dec.TransformBlock(decryptBuffer1, 0, inLength, decryptBuffer2, 0);
238-
decryptBuffer2.CopyTo(decryptPipe.Writer.GetMemory(outLength));
239-
decryptPipe.Writer.Advance(outLength);
222+
var decryptBuffer = dec.TransformFinalBlock(encryptedBuffer, 0, encryptedBuffer.Length);
223+
packageTotalLength += decryptBuffer.Length;
240224

241-
packageTotalLength += outLength;
242-
}
243-
{
244-
var finnalInLength = 0;
245-
if (inLength == dec.InputBlockSize)
246-
{
247-
decryptBuffer1[0] = (byte)dec.InputBlockSize;
248-
finnalInLength = 1;
249-
}
250-
var finalData = dec.TransformFinalBlock(decryptBuffer1, 0, finnalInLength);
251-
if (finalData.Length > 0)
252-
{
253-
finalData.CopyTo(decryptPipe.Writer.GetMemory(finalData.Length));
254-
decryptPipe.Writer.Advance(finalData.Length);
255-
packageTotalLength += finalData.Length;
256-
}
257-
}
258-
_ = decryptPipe.Writer.FlushAsync();
225+
decryptBuffer.CopyTo(decryptPipe.Writer.GetMemory(decryptBuffer.Length));
226+
decryptPipe.Writer.Advance(decryptBuffer.Length);
227+
228+
_ = decryptPipe.Writer.FlushAsync();
259229
ret = await decryptPipe.Reader.ReadAtLeastAsync(packageTotalLength, token).ConfigureAwait(false);
260-
*/
230+
261231
//解密完成,释放缓存
262232
currentReader?.AdvanceTo(packageBuffer.End);
263233

264-
//packageBuffer = ret.Buffer;
265-
packageBuffer = new ReadOnlySequence<byte>(new byte[PACKAGE_TOTAL_LENGTH_LENGTH].Concat(retBuffer).ToArray());
266-
267-
currentReader = null;//decryptPipe.Reader;
234+
packageBuffer = ret.Buffer;
235+
currentReader = decryptPipe.Reader;
268236
}
269237

270238
//如果设置了压缩

Quick.Protocol/QpChannel_Send.cs

Lines changed: 1 addition & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,7 @@ protected virtual void OnWriteError(Exception exception)
3232

3333
//压缩相关变量
3434
private Pipe writeCompressPipe = null;
35-
//加密相关变量
36-
Pipe encryptPipe = null;
37-
byte[] encryptBuffer1 = null;
38-
byte[] encryptBuffer2 = null;
39-
35+
4036
private async Task writePackageBuffer(PipeReader currentReader, QpPackageType packageType, int packageBodyLength, bool ignoreCompressAndEncrypt = false)
4137
{
4238
var stream = QpPackageHandler_Stream;
@@ -86,52 +82,7 @@ private async Task writePackageBuffer(PipeReader currentReader, QpPackageType pa
8682
{
8783
try
8884
{
89-
//准备管道
90-
if (encryptPipe == null)
91-
{
92-
encryptPipe = new Pipe();
93-
encryptBuffer1 = new byte[enc.InputBlockSize];
94-
encryptBuffer2 = new byte[enc.OutputBlockSize];
95-
}
9685
//开始加密
97-
/*
98-
var toEncryptedBuffer = packageBodyBuffer;
99-
var inLength = 0;
100-
while (toEncryptedBuffer.Length > 0)
101-
{
102-
inLength = Math.Min(encryptBuffer1.Length, (int)toEncryptedBuffer.Length);
103-
toEncryptedBuffer.Slice(0, inLength).CopyTo(encryptBuffer1);
104-
toEncryptedBuffer = toEncryptedBuffer.Slice(inLength);
105-
if (inLength < enc.InputBlockSize)
106-
{
107-
var v = enc.InputBlockSize - inLength;
108-
Array.Fill(encryptBuffer1, (byte)v, inLength, v);
109-
}
110-
var outLength = enc.TransformBlock(encryptBuffer1, 0, Math.Max(inLength, enc.InputBlockSize), encryptBuffer2, 0);
111-
encryptBuffer2.CopyTo(encryptPipe.Writer.GetMemory(outLength));
112-
encryptPipe.Writer.Advance(outLength);
113-
114-
packageTotalLength += outLength;
115-
}
116-
{
117-
var finnalInLength = 0;
118-
if (inLength == enc.InputBlockSize)
119-
{
120-
encryptBuffer1[0] = (byte)enc.InputBlockSize;
121-
finnalInLength = 1;
122-
}
123-
var finalData = enc.TransformFinalBlock(encryptBuffer1, 0, finnalInLength);
124-
if (finalData.Length > 0)
125-
{
126-
finalData.CopyTo(encryptPipe.Writer.GetMemory(finalData.Length));
127-
encryptPipe.Writer.Advance(finalData.Length);
128-
packageTotalLength += finalData.Length;
129-
}
130-
}
131-
_ = encryptPipe.Writer.FlushAsync();
132-
133-
readRet = await encryptPipe.Reader.ReadAtLeastAsync(packageTotalLength).ConfigureAwait(false);
134-
*/
13586
var ret = enc.TransformFinalBlock(packageBodyBuffer.ToArray(), 0, (int)packageBodyBuffer.Length);
13687
//加密完成,释放资源
13788
currentReader?.AdvanceTo(packageBodyBuffer.End);

0 commit comments

Comments
 (0)