2009-12-02 12 views
0

무제한 관할 정책 파일이 설치된 Java 1.4.2를 사용합니다.서명 디버깅 오류가 발생했습니다.

나는 서명하고 검증 한 클래스가 있습니다. 그러나 이제는 키를 변경하고 갑자기 확인이 실패합니다. 내가 사용하는 PEM 키와의 openssl을 사용하여 검증을 했는가

openssl genrsa -aes256 -out production_private.pem 2048 
openssl pkcs8 -topk8 -nocrypt -in production_private.pem -outform der -out production_private.der 
openssl rsa -in production_private.pem -pubout -outform DER -out production_public.der 

:

openssl dgst -sha1 -sign production_private.pem -out test.txt.sha1 test.txt 
Enter pass phrase for production_private.pem: 
openssl dgst -sha1 -verify production_public.pem -signature test.txt.sha1 test.txt 
Verified OK 

를하지만 당신이 할 수있는 표시되지 않는 DER 키를 사용하여

키 생성되었다.

오류가 발생하지 않습니다. Signature.verify는 false를 반환합니다. 한 세트의 키와 다른 세트가 아닌 키 세트로 작동하기 때문에 내 가정은 어떤 종류의 중요한 문제 여야합니다.

키 쌍이 올바른지 확인하는 방법에 대한 추가 의견이 있으십니까? 나는 키가 문제의 근원임을 알기 위해 코딩 오류를 찾는 자신을 죽이고 싶지 않습니다.

요청에 따라 자료를 공유하게되어 기쁩니다. 필요한만큼 문제를 진흙탕에 담그고 싶지 않습니다.

답변

0

완전히 관련이없는 것으로 판명되었습니다. DB 프로 시저가 키 값을 손상 시켰습니다.

0

기본 키 형식은 PEM입니다. DER을 사용하려면이 매개 변수를 추가해야합니다.

-keyform DER 
+0

지원하는 것처럼 보이지 않습니다. 문서에서 : -keyform arg 다이제스트로 서명 할 키 형식을 지정합니다. dgst 명령은 PEM 및 ENGINE 형식 만 지원합니다. – wadesworld

관련 문제