How to verify one certificate with public key of another

I have two x509Certificates

X509Certificate a;
X509Certificate b;

I would like to verify the signature of b with public key of a, where a is the issuer of b.

What I have so far is:

 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);
  }

}

and I invoke method:

 verify(a.getSigAlgName(), a.getSignature(), b.getSignature(), b);

But this returns always false???

Could you please, help me to understand what might be the reason above method vertify(..) to return always false.

EDIT:

X509Certificate has a method verify(Public key).

Answers


would like do decrypt contents of b with public key of a:

No you wouldn't. Certificates aren't encrypted.

What you're really trying to do here is verify a certificate, which is done via its public key, obtained either from the certificate itself or from a second source of the same public key.

Verifying it with the public key of a different certificate doesn't begin to make sense.

In any caseX509Certificate already contains a sufficient verify() method.


Need Your Help

How to save or storing the SKPayment transaction?

ios transactions save nsuserdefaults storekit

I would like to store the SKPayment transaction in the user defaults or on the device, and I also would like to store the transaction data on my server at a later date (not done yet) so that a user...

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.