The x509.verify() is an inbuilt application programming interface of class X509Certificate within crypto module which is used to check if the certificate was signed by the given public key.
Syntax:
const x509.verify(publicKey)
Parameters: This function takes the public key object as a parameter.
Return Value: This function returns Boolean value true if and only if a certificate was signed by the given public key.
How to generate a Public certificate?
Public certificate: Open notepad and copy-paste the following key and save the file as public-cert.pem
-----BEGIN CERTIFICATE----- MIICfzCCAegCCQDxxeXw914Y2DANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC SU4xEzARBgNVBAgMCldlc3RiZW5nYWwxEDAOBgNVBAcMB0tvbGthdGExFDASBgNV BAoMC1BhbmNvLCBJbmMuMRUwEwYDVQQDDAxSb2hpdCBQcmFzYWQxIDAeBgkqhkiG 9w0BCQEWEXJvZm9mb2ZAZ21haWwuY29tMB4XDTIwMDkwOTA1NTExN1oXDTIwMTAw OTA1NTExN1owgYMxCzAJBgNVBAYTAklOMRMwEQYDVQQIDApXZXN0YmVuZ2FsMRAw DgYDVQQHDAdLb2xrYXRhMRQwEgYDVQQKDAtQYW5jbywgSW5jLjEVMBMGA1UEAwwM Um9oaXQgUHJhc2FkMSAwHgYJKoZIhvcNAQkBFhFyb2ZvZm9mQGdtYWlsLmNvbTCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAt/EfcF3FG4TneOBWr4JhOUdyuCXm Dhy5yO3VKtQfPxr+5d0joCSnn/5vYDNSr1MfedZmqVxrXFoMAdPCd71BNmDmeLVi QK61WREtASP0ZhQMoUBT+R3Fpdy0jPS0YoT/fBd96CJCmgsQOS8Tq5IKVeB61MyC kwAQ2Goe0T3sdVkCAwEAATANBgkqhkiG9w0BAQsFAAOBgQATe6ixdAjoV7BSHgRX bXM2+IZLq8kq3s7ck0EZrRVhsivutcaZwDXRCCinB+OlPedbzXwNZGvVX0nwPYHG BfiXwdiuZeVJ88ni6Fm6RhoPtu2QF1UExfBvSXuMBgR+evp+e3QadNpGx6Ppl1aC hWF6W2H9+MAlU7yvtmCQQuZmfQ== -----END CERTIFICATE-----
Example 1:
Filename: index.js
// Node.js program to demonstrate the // x509.verify() function // Importing crypto module const {X509Certificate} = require( 'crypto' )
// Importing fs module const fs = require( 'fs' )
// getting object of a PEM encoded X509 Certificate. const x509 = new X509Certificate(fs.readFileSync( 'public-cert.pem' ));
// checking if this certificate is signed by the given public key or not // by using x509.verify() function const value = x509.verify(x509.publicKey) // display the result if (value)
console.log( "certificate is signed by the given public key" )
else console.log( "certificate is not signed by the given public key" )
|
Run the index.js file using the following command.
node index.js
Output:
certificate is signed by the given public key
Example 2:
Filename: index.js
// Node.js program to demonstrate the // x509.verify() function // Importing crypto module const {X509Certificate} = require( 'crypto' )
// Importing fs module const fs = require( 'fs' )
// display the result if (( new X509Certificate(fs.readFileSync( 'public-cert.pem' )))
.verify(( new X509Certificate(fs.readFileSync( 'public-cert.pem' ))).publicKey))
console.log( "certificate is signed by the given public key" )
else console.log( "certificate is not signed by the given public key" )
|
Run the index.js file using the following command.
node index.js
Output:
certificate is signed by the given public key
Reference: https://nodejs.org/dist/latest-v15.x/docs/api/crypto.html#crypto_x509_publickey