-1
公鑰一個證書,我有兩個x509Certificates如何驗證與另一
X509Certificate a;
X509Certificate b;
我想用一個公共密鑰,其中A是B的發行人,以驗證B的簽名。
我至今是:
public static boolean verify(String algorithm, byte[] content, byte[] signature, X509Certificate certificate) {
try {
Signature s = Signature.getInstance(algorithm, PROVIDER);
s.initVerify(certificate);
s.update(content);
return s.verify(signature);
} catch (NoSuchAlgorithmException | InvalidKeyException | SignatureException e) {
throw new IllegalArgumentException(e);
}
}
,我調用方法:
verify(a.getSigAlgName(), a.getSignature(), b.getSignature(), b);
但這總是返回假的???
請問,請幫助我理解上述方法vertify(..)返回總是false的原因。
編輯:
x509證書有一個方法驗證(公鑰)。
我的目標是檢查證書b是否由a簽署。我沒有找到解決方案,所以我認爲這是方法,但你是對的,謝謝。你知道嗎,我如何驗證b是否由一個簽名? – user2739823 2014-09-30 09:48:24
我只能重複我上面所說的。 'Certificate.verify()'方法已經足夠。您提供應該簽名的實體的公鑰。您不需要所有其他代碼。 – EJP 2014-09-30 10:04:41
非常感謝你,我發現x509Certificate有一個方法驗證(公鑰),我正在尋找的是 – user2739823 2014-09-30 10:21:17