PgpDecrypt라는 클래스를 사용하여 클라이언트가 제공 한이 샘플 파일의 암호를 해독하려고했습니다. 코드가이 선에 올 때 :BouncyCastle PGP를 사용하여 파일의 암호 해독에서 예외가 발생했습니다.
Stream clear = pbe.GetDataStream(privKey);
는 오류를 반환 : 예외가 해독 된 비밀 키
여기 내 암호 해독 코드입니다 : 내 세 번째로 BouncyCastle을 사용하고
PgpDecrypt test = new PgpDecrypt(string.Concat(pathh, "TestDecryptionFile"),
string.Concat(pathh, "mypgpprivatekey.key"),
"mypassphrase",
@"d:/test/",
string.Concat(pathh, "clientpublickey.key"));
FileStream fs = File.Open(string.Concat(pathh, "TestDecryptionFile"), FileMode.Open);
test.Decrypt(fs, @"d:\test\");
.NET 용 파티 라이브러리
이 문제를 해결할 수있는 아이디어는 큰 도움이 될 것입니다. 미리 감사드립니다! 의 PgpEncryptionKeys 클래스 내부에 여전히
/// <summary>
/// Return the last key we can use to decrypt.
/// Note: A file can contain multiple keys (stored in "key rings")
/// </summary>
private PgpSecretKey GetLastSecretKey(PgpSecretKeyRingBundle secretKeyRingBundle)
{
return (from PgpSecretKeyRing kRing in secretKeyRingBundle.GetKeyRings()
select kRing.GetSecretKeys().Cast<PgpSecretKey>()
.LastOrDefault(k => k.IsSigningKey))
.LastOrDefault(key => key != null);
}
ReadSecretKey을 확인하십시오
당신은 BouncyCastle 클래스 PGPEncrypt, PGPDecrypt 및 PGPEncryptionKeys 다음과 같은 경우
'pathh '는 어디에 할당되어 있습니까? –
파일이있는 로컬 경로 ... @ "D : \ Users \ MyUser \ Documents \ Visual Studio 2008 \ Projects \ sFTPwithPGP \ keys \ keys26112012 \" – iceheaven31
경로를 작성할 때 안전을 추가하려면 [Path.Combine] (http://msdn.microsoft.com/en-us/library/system.io.path.combine.aspx). –