List of usage examples for org.bouncycastle.jce.provider JCERSAPublicKey getModulus
public BigInteger getModulus()
From source file:org.silvertunnel.netlib.layer.tor.util.Encryption.java
License:Open Source License
/** * makes RSA public key from PEM string/*from w ww . j a va 2s . co m*/ * * @param s PEM string that contains the key * @return * @see JCERSAPublicKey */ public static RSAPublicKey extractPublicRSAKey(String s) { RSAPublicKey theKey; try { PEMReader reader = new PEMReader(new StringReader(s)); Object o = reader.readObject(); if (!(o instanceof JCERSAPublicKey)) { throw new IOException("Encryption.extractPublicRSAKey: no public key found in string '" + s + "'"); } JCERSAPublicKey JCEKey = (JCERSAPublicKey) o; theKey = getRSAPublicKey(JCEKey.getModulus(), JCEKey.getPublicExponent()); } catch (Exception e) { log.warning("Encryption.extractPublicRSAKey: Caught exception:" + e.getMessage()); theKey = null; } return theKey; }
From source file:org.silvertunnel.netlib.layer.tor.util.Encryption.java
License:Open Source License
/** * copy from one format to another//www . j av a 2 s. co m */ public static RSAPublicKey getRSAPublicKey(JCERSAPublicKey jpub) { return getRSAPublicKey(jpub.getModulus(), jpub.getPublicExponent()); }
From source file:org.xdi.oxauth.ws.rs.FederationMetadataSignatureTest.java
License:MIT License
@Test public void test() throws JSONException, NoSuchProviderException, NoSuchAlgorithmException, IOException, IllegalBlockSizeException, InvalidKeyException, InvalidKeySpecException, NoSuchPaddingException, BadPaddingException, InvalidJwtException { final JSONObject jsonHeader = JwtHeader.instance().setType(JwtType.JWS) .setAlgorithm(SignatureAlgorithm.RS512).toJsonObject(); final JSONObject jsonPayload = new JSONObject(TEST_METADATA); final KeyPair keyPair = JwtUtil.generateRsaKey(); final JCERSAPrivateCrtKey jcersaPrivateCrtKey = (JCERSAPrivateCrtKey) keyPair.getPrivate(); final JCERSAPublicKey jcersaPublicKey = (JCERSAPublicKey) keyPair.getPublic(); final RSAPrivateKey privateKey = new RSAPrivateKey(jcersaPrivateCrtKey.getModulus(), jcersaPrivateCrtKey.getPrivateExponent()); final RSAPublicKey publicKey = new RSAPublicKey(jcersaPublicKey.getModulus(), jcersaPublicKey.getPublicExponent()); String encodedString = JwtUtil.encodeJwt(jsonHeader, jsonPayload, SignatureAlgorithm.RS512, privateKey); System.out.println("Encoded string: " + encodedString); String[] parts = encodedString.split("\\."); if (parts.length == 3) { String encodedHeader = parts[0]; String encodedPayload = parts[1]; String encodedSignature = parts[2]; String header = new String(JwtUtil.base64urldecode(encodedHeader), Util.UTF8_STRING_ENCODING); String payload = new String(JwtUtil.base64urldecode(encodedPayload), Util.UTF8_STRING_ENCODING); System.out.println("Header: " + header); System.out.println("Payload: " + payload); byte[] signature = JwtUtil.base64urldecode(encodedSignature); final String signingInput = encodedHeader + "." + encodedPayload; boolean signatureVerified = JwtUtil .verifySignatureRS512(signingInput.getBytes(Util.UTF8_STRING_ENCODING), signature, publicKey); assertTrue(signatureVerified, "Invalid signature"); }/*from w w w . ja v a2 s .c om*/ }
From source file:org.xdi.oxauth.ws.rs.TokenSignaturesHttpTest.java
License:MIT License
@Test public void rs256() throws NoSuchProviderException, NoSuchAlgorithmException, SignatureException, InvalidKeyException, InvalidKeySpecException, IllegalBlockSizeException, IOException, NoSuchPaddingException, BadPaddingException { showTitle("rs256"); // Generate RSA Key KeyPair keyPair = JwtUtil.generateRsaKey(); JCERSAPrivateCrtKey jcersaPrivateCrtKey = (JCERSAPrivateCrtKey) keyPair.getPrivate(); JCERSAPublicKey jcersaPublicKey = (JCERSAPublicKey) keyPair.getPublic(); RSAPrivateKey privateKey = new RSAPrivateKey(jcersaPrivateCrtKey.getModulus(), jcersaPrivateCrtKey.getPrivateExponent()); System.out.println("PRIVATE KEY"); System.out.println("Modulus: " + privateKey.getModulus()); System.out.println("Private Exponent: " + privateKey.getPrivateExponent()); RSAPublicKey publicKey = new RSAPublicKey(jcersaPublicKey.getModulus(), jcersaPublicKey.getPublicExponent()); System.out.println("PUBLIC KEY"); System.out.println("Modulus: " + publicKey.getModulus()); System.out.println("Public Exponent: " + publicKey.getPublicExponent()); // Encode message String signingInput = "eyJhbGciOiJIUzI1NiJ9.eyJub25jZSI6ICI2Qm9HN1QwR0RUZ2wiLCAiaWRfdG9rZW4iOiB7Im1heF9hZ2UiOiA4NjQwMH0sICJzdGF0ZSI6ICJTVEFURTAiLCAicmVkaXJlY3RfdXJpIjogImh0dHBzOi8vbG9jYWxob3N0L2NhbGxiYWNrMSIsICJ1c2VyaW5mbyI6IHsiY2xhaW1zIjogeyJuYW1lIjogbnVsbH19LCAiY2xpZW50X2lkIjogIkAhMTExMSEwMDA4IUU2NTQuQjQ2MCIsICJzY29wZSI6IFsib3BlbmlkIl0sICJyZXNwb25zZV90eXBlIjogWyJjb2RlIl19"; byte[] signature = JwtUtil.getSignatureRS256(signingInput.getBytes(), privateKey); String encodedSignature = JwtUtil.base64urlencode(signature); System.out.println("Encoded Signature: " + encodedSignature); // Verify signature boolean signatureVerified = JwtUtil.verifySignatureRS256(signingInput.getBytes(), signature, publicKey); assertTrue(signatureVerified, "Invalid signature"); }
From source file:org.xdi.oxauth.ws.rs.TokenSignaturesHttpTest.java
License:MIT License
@Test public void rs384() throws NoSuchProviderException, NoSuchAlgorithmException, SignatureException, InvalidKeyException, InvalidKeySpecException, IllegalBlockSizeException, IOException, NoSuchPaddingException, BadPaddingException { showTitle("rs384"); // Generate RSA Key KeyPair keyPair = JwtUtil.generateRsaKey(); JCERSAPrivateCrtKey jcersaPrivateCrtKey = (JCERSAPrivateCrtKey) keyPair.getPrivate(); JCERSAPublicKey jcersaPublicKey = (JCERSAPublicKey) keyPair.getPublic(); RSAPrivateKey privateKey = new RSAPrivateKey(jcersaPrivateCrtKey.getModulus(), jcersaPrivateCrtKey.getPrivateExponent()); System.out.println("PRIVATE KEY"); System.out.println("Modulus: " + privateKey.getModulus()); System.out.println("Private Exponent: " + privateKey.getPrivateExponent()); RSAPublicKey publicKey = new RSAPublicKey(jcersaPublicKey.getModulus(), jcersaPublicKey.getPublicExponent()); System.out.println("PUBLIC KEY"); System.out.println("Modulus: " + publicKey.getModulus()); System.out.println("Public Exponent: " + publicKey.getPublicExponent()); // Encode message String signingInput = "eyJhbGciOiJIUzI1NiJ9.eyJub25jZSI6ICI2Qm9HN1QwR0RUZ2wiLCAiaWRfdG9rZW4iOiB7Im1heF9hZ2UiOiA4NjQwMH0sICJzdGF0ZSI6ICJTVEFURTAiLCAicmVkaXJlY3RfdXJpIjogImh0dHBzOi8vbG9jYWxob3N0L2NhbGxiYWNrMSIsICJ1c2VyaW5mbyI6IHsiY2xhaW1zIjogeyJuYW1lIjogbnVsbH19LCAiY2xpZW50X2lkIjogIkAhMTExMSEwMDA4IUU2NTQuQjQ2MCIsICJzY29wZSI6IFsib3BlbmlkIl0sICJyZXNwb25zZV90eXBlIjogWyJjb2RlIl19"; byte[] signature = JwtUtil.getSignatureRS384(signingInput.getBytes(), privateKey); String encodedSignature = JwtUtil.base64urlencode(signature); System.out.println("Encoded Signature: " + encodedSignature); // Verify signature boolean signatureVerified = JwtUtil.verifySignatureRS384(signingInput.getBytes(), signature, publicKey); assertTrue(signatureVerified, "Invalid signature"); }
From source file:org.xdi.oxauth.ws.rs.TokenSignaturesHttpTest.java
License:MIT License
@Test public void rs512() throws NoSuchProviderException, NoSuchAlgorithmException, SignatureException, InvalidKeyException, InvalidKeySpecException, IllegalBlockSizeException, IOException, NoSuchPaddingException, BadPaddingException { showTitle("rs512"); // Generate RSA Key KeyPair keyPair = JwtUtil.generateRsaKey(); JCERSAPrivateCrtKey jcersaPrivateCrtKey = (JCERSAPrivateCrtKey) keyPair.getPrivate(); JCERSAPublicKey jcersaPublicKey = (JCERSAPublicKey) keyPair.getPublic(); RSAPrivateKey privateKey = new RSAPrivateKey(jcersaPrivateCrtKey.getModulus(), jcersaPrivateCrtKey.getPrivateExponent()); System.out.println("PRIVATE KEY"); System.out.println("Modulus: " + privateKey.getModulus()); System.out.println("Private Exponent: " + privateKey.getPrivateExponent()); RSAPublicKey publicKey = new RSAPublicKey(jcersaPublicKey.getModulus(), jcersaPublicKey.getPublicExponent()); System.out.println("PUBLIC KEY"); System.out.println("Modulus: " + publicKey.getModulus()); System.out.println("Public Exponent: " + publicKey.getPublicExponent()); // Encode message String signingInput = "eyJhbGciOiJIUzI1NiJ9.eyJub25jZSI6ICI2Qm9HN1QwR0RUZ2wiLCAiaWRfdG9rZW4iOiB7Im1heF9hZ2UiOiA4NjQwMH0sICJzdGF0ZSI6ICJTVEFURTAiLCAicmVkaXJlY3RfdXJpIjogImh0dHBzOi8vbG9jYWxob3N0L2NhbGxiYWNrMSIsICJ1c2VyaW5mbyI6IHsiY2xhaW1zIjogeyJuYW1lIjogbnVsbH19LCAiY2xpZW50X2lkIjogIkAhMTExMSEwMDA4IUU2NTQuQjQ2MCIsICJzY29wZSI6IFsib3BlbmlkIl0sICJyZXNwb25zZV90eXBlIjogWyJjb2RlIl19"; byte[] signature = JwtUtil.getSignatureRS512(signingInput.getBytes(), privateKey); String encodedSignature = JwtUtil.base64urlencode(signature); System.out.println("Encoded Signature: " + encodedSignature); // Verify signature boolean signatureVerified = JwtUtil.verifySignatureRS512(signingInput.getBytes(), signature, publicKey); assertTrue(signatureVerified, "Invalid signature"); }
From source file:TorJava.Common.Encryption.java
License:Open Source License
/** * makes RSA public key from string//w w w .j a va 2s .com * * @param s * string that contais the key * @return * @see JCERSAPublicKey */ public static RSAPublicKeyStructure extractRSAKey(String s) { PEMReader reader = new PEMReader(new StringReader(s)); JCERSAPublicKey JCEKey; RSAPublicKeyStructure theKey; try { Object o = reader.readObject(); if (!(o instanceof JCERSAPublicKey)) throw new IOException("Common.extractRSAKey: no public key found for signing key in string '" + s + "' type " + o.getClass().getName()); JCEKey = (JCERSAPublicKey) o; theKey = new RSAPublicKeyStructure(JCEKey.getModulus(), JCEKey.getPublicExponent()); } catch (IOException e) { Logger.logDirectory(Logger.WARNING, "Common.extractRSAKey: Caught exception:" + e.getMessage()); theKey = null; } return theKey; }
From source file:TorJava.Common.Encryption.java
License:Open Source License
/** * copy from one format to another/*from www. j a va 2 s .c o m*/ */ public static RSAPublicKeyStructure getRSAPublicKeyStructureFromJCERSAPublicKey(JCERSAPublicKey jpub) { return new RSAPublicKeyStructure(jpub.getModulus(), jpub.getPublicExponent()); }