.net 如何对字节数组进行PGP加密
我有一个PGP加密示例,它从文件中读取数据并进行加密,没有任何问题 我试图将代码转换为从字节数组而不是从文件加密 下面给出了原始示例代码和我的转换尝试 转换后的代码输出错误 请问我错过了什么 示例代码-读取文件并使用PGP加密 我的转换代码-PGP加密字节数组.net 如何对字节数组进行PGP加密,.net,encryption,pgp,.net,Encryption,Pgp,我有一个PGP加密示例,它从文件中读取数据并进行加密,没有任何问题 我试图将代码转换为从字节数组而不是从文件加密 下面给出了原始示例代码和我的转换尝试 转换后的代码输出错误 请问我错过了什么 示例代码-读取文件并使用PGP加密 我的转换代码-PGP加密字节数组 Public Sub EncryptAndSign(outputStream As Stream, unencryptedFileInfo As FileInfo) Using encryptedOut As Stream = C
Public Sub EncryptAndSign(outputStream As Stream, unencryptedFileInfo As FileInfo)
Using encryptedOut As Stream = ChainEncryptedOut(outputStream)
Using compressedOut As Stream = ChainCompressedOut(encryptedOut)
Dim signatureGenerator As PgpSignatureGenerator = InitSignatureGenerator(compressedOut)
Using literalOut As Stream = ChainLiteralOut(compressedOut, unencryptedFileInfo)
Using inputFile As FileStream = unencryptedFileInfo.OpenRead()
WriteOutputAndSign(compressedOut, literalOut, inputFile, signatureGenerator)
End Using
End Using
End Using
End Using
End Sub
Private Shared Function ChainLiteralOut(compressedOut As Stream, file As FileInfo) As Stream
Dim pgpLiteralDataGenerator As New PgpLiteralDataGenerator()
Return pgpLiteralDataGenerator.Open(compressedOut, PgpLiteralData.Binary, file)
End Function
Private Shared Sub WriteOutputAndSign(compressedOut As Stream, literalOut As Stream, inputFile As FileStream, signatureGenerator As PgpSignatureGenerator)
Dim length As Integer = 0
Dim buf(BufferSize - 1) As Byte
length = inputFile.Read(buf, 0, buf.Length)
Do While length > 0
literalOut.Write(buf, 0, length)
signatureGenerator.Update(buf, 0, length)
length = inputFile.Read(buf, 0, buf.Length)
Loop
signatureGenerator.Generate().Encode(compressedOut)
End Sub
Public Sub EncryptAndSign(outputStream As Stream, unencryptedData As Byte())
Using encryptedOut As Stream = ChainEncryptedOut(outputStream)
Using compressedOut As Stream = ChainCompressedOut(encryptedOut)
Dim signatureGenerator As PgpSignatureGenerator = InitSignatureGenerator(compressedOut)
Using literalOut As Stream = ChainLiteralOut(compressedOut, unencryptedData)
WriteOutputAndSign(compressedOut, literalOut, unencryptedData, signatureGenerator)
End Using
End Using
End Using
End Sub
Private Shared Function ChainLiteralOut(compressedOut As Stream, data As Byte()) As Stream
Dim pgpLiteralDataGenerator As New PgpLiteralDataGenerator()
Return pgpLiteralDataGenerator.Open(compressedOut, PgpLiteralData.Utf8, "enc_" & Now.Ticks, Now, data)
End Function
Private Shared Sub WriteOutputAndSign(compressedOut As Stream, literalOut As Stream, inputData As Byte(), signatureGenerator As PgpSignatureGenerator)
Dim length As Integer = inputData.Length
Dim buf = inputData
literalOut.Write(buf, 0, length)
signatureGenerator.Update(buf, 0, length)
signatureGenerator.Generate().Encode(compressedOut)
End Sub