2011-10-24 6 views
1

Aspose 단어 예제와 비슷한 빈 테스트 문서를 생성하는 단위 테스트를 만들려고합니다. 이것이 내가 일을 한 후 나는 VS 명령 Promp테스트 인증서를 사용하면 aspose.words에서 문서에 디지털 서명을합니다.

makecert.exe -sv MyKey.pvk -n "CN=MY DIGITAL KEY" MyKey.cer 

내가 다음 줄

pvk2pfx.exe -pvk MyKey.pvk -spc MyKey.cer -pfx MyPFX.pfx 

를 사용하여 .pvk 파일로 변환에 다음 줄에 Makecert.exe를을 사용하여 인증서 테스트를 생성 .pfx 파일을 내 .net 콘솔 응용 프로그램에 복사하고 copy 매개 변수를 copy로 설정하여 디버그에서 응용 프로그램을 테스트 할 때 파일이 bin 디렉토리에 복사되도록합니다.

내 콘솔 앱에는 디지털 서명 된 pdf를 작성하려고하는 다음 코드 줄이 들어 있습니다.

static void Main() 
{ 
string MyDir = AppDomain.CurrentDomain.BaseDirectory; 
// Create a simple document from scratch. 
Document doc = new Document(); 
DocumentBuilder builder = new DocumentBuilder(doc); 
builder.Writeln("Test Signed PDF."); 
// Load the certificate from disk. 
// The other constructor overloads can be used to load certificates from different locations. 
X509Certificate2 cert = new X509Certificate2(MyDir + "RpaKey.pfx", ""); 
Console.WriteLine("Loading certificate..."); 
// Pass the certificate and details to the save options class to sign with. 
PdfSaveOptions options = new PdfSaveOptions(); 
options.DigitalSignatureDetails = new PdfDigitalSignatureDetails(
cert, 
"Test Signing", 
"Aspose Office", 
DateTime.Now); 
Console.WriteLine("Creating digital signature details..."); 
try 
{ 
// Save the document as PDF with the digital signature set. 
doc.Save(MyDir + "Document.Signed Out.pdf", options); 
Console.WriteLine("File saved successfully."); 
} 
catch (Exception ex) 
{ 
Console.WriteLine("File write failed."); 
Console.WriteLine(ex.Message); 
if (ex.InnerException != null) 
{ 
Console.WriteLine(""); 
Console.WriteLine(ex.InnerException); 
} 
} 
Console.ReadKey(); 
} 

그러나 내부 예외가없는 "잘못된 알고리즘 지정됨"오류가 계속 발생합니다. 어느 누구도이 문제에 부딪 혔습니까? 나는 한 걸음도 놓쳤는가? 어떤 도움을 주셔서 감사합니다.

답변

1

자신이 직접 사용하지는 않았지만 PVK에서 PFX 형식으로의 변환이 예상대로 작동했는지 확인해야합니다.

변경이 :

X509Certificate2 cert = new X509Certificate2(MyDir + "RpaKey.pfx", ""); 
Console.WriteLine("Loading certificate..."); 

예외가 없었기 때문에 그 성공 가능성을했다는 것을 참고

X509Certificate2 cert = new X509Certificate2(MyDir + "RpaKey.pfx", ""); 
Console.WriteLine("Loading certificate... private key available ? {0}", cert.HasPrivateKey); 

에 -하지만 적어도 프로세스의 첫 번째 부분이 유효한지 확인합니다 -)

이 경우 사실이 표시되면 예를 들어 예외에서 전체 스택 추적을 표시하도록 질문을 업데이트해야합니다.

catch (Exception ex) 
{ 
    Console.WriteLine(ex); 
} 

오류는 Aspose 또는 BCL 자체에서 발생합니다.

1

전체 스택 추적은 예외가 생성되는 정확한 위치와 이유를 이해하는 데 도움이된다는 점에 동의합니다. 또한이 문제가 귀하의 목적으로 지속되는 경우 Aspose.Words forum을 통해 지원팀에 문의 할 수도 있습니다. 이 문제를 자세히 조사하고 실제로 Aspose.Words가 원인인지 확인해야합니다. 그렇다면, 우리는 당신에게 그 문제에 대한 해결책을 제공 할 것입니다.

또한 매우 간단한 문서를 만들면 문제가 서명으로 인해 발생한 것 같습니다. 다른 서명 파일을 사용해 보시겠습니까?

공개 사항 : 저는 Aspose에서 개발자 전도사로 일하고 있습니다.