Here is what I followed
Create Keystore
keytool -genkey -keyalg RSA -alias self -igned -keystore keystore.jks -storepass password -validity 360 -keysize 2048
You can create a keystore from an existing private key and public key. Google how to do it.
Download Keystore
KeyStore ks = KeyStore.getInstance("JKS");
InputStream readStream = // Use file stream to load from file system or class.getResourceAsStream to load from classpath
ks.load(readStream, "password".toCharArray());
Key key = ks.getKey("selfsigned", "password".toCharArray());
readStream.close();
Use JJwt api to sign a message
String s = Jwts.builder().setSubject("Abc").signWith(SignatureAlgorithm.RS512, key).compact();
Use JJwt api to request a message
X509Certificate certificate = (X509Certificate) keyEntry.getCertificate();
Jwts.parser().setSigningKey(certificate.getPublicKey()).parseClaimsJws(s).getBody().getSubject().equals("Abc");
source
share