Java Examples for com.nimbusds.jose.jwk.RSAKey

The following java examples will help you to understand the usage of com.nimbusds.jose.jwk.RSAKey. These source code samples are taken from different open source projects.

Example 1
Project: json-web-key-generator-master  File: RSAKeyMaker.java View source code
/**
     * @param keySize
     * @param keyUse
     * @param keyAlg
     * @param kid
     * @return
     */
public static RSAKey make(Integer keySize, KeyUse keyUse, Algorithm keyAlg, String kid) {
    try {
        KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
        generator.initialize(keySize);
        KeyPair kp = generator.generateKeyPair();
        RSAPublicKey pub = (RSAPublicKey) kp.getPublic();
        RSAPrivateKey priv = (RSAPrivateKey) kp.getPrivate();
        RSAKey rsaKey = new RSAKey.Builder(pub).privateKey(priv).keyUse(keyUse).algorithm(keyAlg).keyID(kid).build();
        return rsaKey;
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
        return null;
    }
}
Example 2
Project: WSign-master  File: Authorize.java View source code
public String sign(String unSignToken) {
    File jwksFile = new File(PathUtils.getInstance().getClassPath() + "keystore.jwks");
    try {
        JWKSet jwkSet = JWKSet.load(jwksFile);
        RSASSASigner rsaSSASigner = new RSASSASigner(((RSAKey) jwkSet.getKeyByKeyId("connsec_rsa1")).toRSAPrivateKey());
        // sign it with the server's key
        Base64URL base64URL = rsaSSASigner.sign(new JWSHeader(JWSAlgorithm.RS256), unSignToken.getBytes());
        logger.debug("Base64URL : " + base64URL);
        return base64URL.toString();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ParseException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (InvalidKeySpecException e) {
        e.printStackTrace();
    } catch (JOSEException e) {
        e.printStackTrace();
    }
    return "";
}
Example 3
Project: identity-providers-examples-master  File: DefaultJwtEncryptionAndDecryptionService.java View source code
/**
	 * Builds all the encrypters and decrypters for this service based on the key map.
	 * @throws
	 * @throws InvalidKeySpecException
	 * @throws NoSuchAlgorithmException
	 * @throws JOSEException
	 */
private void buildEncryptersAndDecrypters() throws NoSuchAlgorithmException, InvalidKeySpecException, JOSEException {
    for (Map.Entry<String, JWK> jwkEntry : keys.entrySet()) {
        String id = jwkEntry.getKey();
        JWK jwk = jwkEntry.getValue();
        if (jwk instanceof RSAKey) {
            // build RSA encrypters and decrypters
            // there should always at least be the public key
            RSAEncrypter encrypter = new RSAEncrypter(((RSAKey) jwk).toRSAPublicKey());
            encrypters.put(id, encrypter);
            if (// we can decrypt!
            jwk.isPrivate()) {
                RSADecrypter decrypter = new RSADecrypter(((RSAKey) jwk).toRSAPrivateKey());
                decrypters.put(id, decrypter);
            } else {
                logger.warn("No private key for key #" + jwk.getKeyID());
            }
        // TODO: add support for EC keys
        } else if (jwk instanceof OctetSequenceKey) {
            // build symmetric encrypters and decrypters
            DirectEncrypter encrypter = new DirectEncrypter(((OctetSequenceKey) jwk).toByteArray());
            DirectDecrypter decrypter = new DirectDecrypter(((OctetSequenceKey) jwk).toByteArray());
            encrypters.put(id, encrypter);
            decrypters.put(id, decrypter);
        } else {
            logger.warn("Unknown key type: " + jwk);
        }
    }
}
Example 4
Project: OpenID-Connect-Java-Spring-Server-master  File: DefaultJWTEncryptionAndDecryptionService.java View source code
/**
	 * Builds all the encrypters and decrypters for this service based on the key map.
	 * @throws
	 * @throws InvalidKeySpecException
	 * @throws NoSuchAlgorithmException
	 * @throws JOSEException
	 */
private void buildEncryptersAndDecrypters() throws NoSuchAlgorithmException, InvalidKeySpecException, JOSEException {
    for (Map.Entry<String, JWK> jwkEntry : keys.entrySet()) {
        String id = jwkEntry.getKey();
        JWK jwk = jwkEntry.getValue();
        if (jwk instanceof RSAKey) {
            // build RSA encrypters and decrypters
            // there should always at least be the public key
            RSAEncrypter encrypter = new RSAEncrypter((RSAKey) jwk);
            encrypter.getJCAContext().setProvider(BouncyCastleProviderSingleton.getInstance());
            encrypters.put(id, encrypter);
            if (// we can decrypt!
            jwk.isPrivate()) {
                RSADecrypter decrypter = new RSADecrypter((RSAKey) jwk);
                decrypter.getJCAContext().setProvider(BouncyCastleProviderSingleton.getInstance());
                decrypters.put(id, decrypter);
            } else {
                logger.warn("No private key for key #" + jwk.getKeyID());
            }
        } else if (jwk instanceof ECKey) {
            // build EC Encrypters and decrypters
            ECDHEncrypter encrypter = new ECDHEncrypter((ECKey) jwk);
            encrypter.getJCAContext().setProvider(BouncyCastleProviderSingleton.getInstance());
            encrypters.put(id, encrypter);
            if (// we can decrypt too
            jwk.isPrivate()) {
                ECDHDecrypter decrypter = new ECDHDecrypter((ECKey) jwk);
                decrypter.getJCAContext().setProvider(BouncyCastleProviderSingleton.getInstance());
                decrypters.put(id, decrypter);
            } else {
                logger.warn("No private key for key # " + jwk.getKeyID());
            }
        } else if (jwk instanceof OctetSequenceKey) {
            // build symmetric encrypters and decrypters
            DirectEncrypter encrypter = new DirectEncrypter((OctetSequenceKey) jwk);
            encrypter.getJCAContext().setProvider(BouncyCastleProviderSingleton.getInstance());
            DirectDecrypter decrypter = new DirectDecrypter((OctetSequenceKey) jwk);
            decrypter.getJCAContext().setProvider(BouncyCastleProviderSingleton.getInstance());
            encrypters.put(id, encrypter);
            decrypters.put(id, decrypter);
        } else {
            logger.warn("Unknown key type: " + jwk);
        }
    }
}
Example 5
Project: pac4j-master  File: JWKHelper.java View source code
/**
     * Build the RSA key pair from the JWK JSON.
     *
     * @param json the json
     * @return the key pair
     */
public static KeyPair buildRSAKeyPairFromJwk(final String json) {
    CommonHelper.assertNotBlank("json", json);
    try {
        final RSAKey rsaKey = RSAKey.parse(json);
        return rsaKey.toKeyPair();
    } catch (final JOSEExceptionParseException |  e) {
        throw new TechnicalException(e);
    }
}