How to verify PEM format certificate in Java

后端 未结 1 1819
梦如初夏
梦如初夏 2021-01-20 00:52

I have PEM format file, How can verify the signature in Java, as I followed http://download.oracle.com/javase/tutorial/security/apisign/versig.html but found that Java doesn

相关标签:
1条回答
  • 2021-01-20 01:17

    You can read a certificate in a PEM file using BouncyCastle's PEMReader. If the content is an X.509 certificate, you should get an instance of X509Certificate and verify it as you want from there.

    EDIT: Here is what the code should look like (not tried):

    // The key with which you want to verify the cert.
    // This is probably a CA certificate's public key.
    PublicKey publicKey = ...;
    
    PEMReader reader = new PEMReader(new FileReader("/path/to/file.pem"));
    Object pemObject = reader.readObject();
    if (pemObject instanceof X509Certificate) {
        X509Certificate cert = (X509Certificate)pemObject;
        cert.checkValidity(); // to check it's valid in time
        cert.verify(publicKey); // verify the sig. using the issuer's public key
    }
    

    (Of course, as with any I/O operations, you'll need to close the reader perhaps with try/finally.)

    Note that checkValidity and verify don't return anything: instead, they throw exceptions if when they fail.

    0 讨论(0)
提交回复
热议问题