Search in sources :

Example 1 with OKPKey

use of io.gravitee.am.model.jose.OKPKey in project gravitee-access-management by gravitee-io.

the class DynamicClientRegistrationResponseTest method convert.

@Test
public void convert() {
    RSAKey rsaKey = new RSAKey();
    rsaKey.setKty("RSA");
    rsaKey.setKid("kidRSA");
    rsaKey.setUse("enc");
    rsaKey.setE("exponent");
    rsaKey.setN("modulus");
    ECKey ecKey = new ECKey();
    ecKey.setKty("EC");
    ecKey.setKid("kidEC");
    ecKey.setUse("enc");
    ecKey.setCrv("P-256");
    ecKey.setX("vBT2JhFHd62Jcf4yyBzSV9NuDBNBssR1zlmnHelgZcs");
    ecKey.setY("up8E8b3TjeKS2v2GCH23UJP0bak0La77lkQ7_n4djqE");
    OKPKey okpKey = new OKPKey();
    okpKey.setKty("OKP");
    okpKey.setKid("kidOKP");
    okpKey.setCrv("Ed25519");
    okpKey.setX("vBNW8f19leF79U4U6NrDDQaK_i5kL0iMKghB39AUT2I");
    OCTKey octKey = new OCTKey();
    octKey.setKty("oct");
    octKey.setKid("kidOCT");
    octKey.setK("FdFYFzERwC2uCBB46pZQi4GG85LujR8obt-KWRBICVQ");
    JWKSet jwkSet = new JWKSet();
    jwkSet.setKeys(Arrays.asList(rsaKey, ecKey, okpKey, octKey));
    Client client = new Client();
    client.setClientId("clientId");
    client.setClientName("clientName");
    client.setJwks(jwkSet);
    DynamicClientRegistrationResponse response = DynamicClientRegistrationResponse.fromClient(client);
    assertNotNull("expecting response", response);
    assertEquals(response.getClientId(), "clientId");
    assertEquals(response.getClientName(), "clientName");
    assertTrue(response.getJwks().getKeys().size() == 4);
}
Also used : RSAKey(io.gravitee.am.model.jose.RSAKey) JWKSet(io.gravitee.am.model.oidc.JWKSet) OCTKey(io.gravitee.am.model.jose.OCTKey) ECKey(io.gravitee.am.model.jose.ECKey) Client(io.gravitee.am.model.oidc.Client) OKPKey(io.gravitee.am.model.jose.OKPKey) Test(org.junit.Test)

Example 2 with OKPKey

use of io.gravitee.am.model.jose.OKPKey in project gravitee-access-management by gravitee-io.

the class JWKServiceTest method testFilter_OKP.

@Test
public void testFilter_OKP() {
    OKPKey okpEnc = new OKPKey();
    okpEnc.setKty("OKP");
    okpEnc.setKid("okpEnc");
    okpEnc.setCrv("X25519");
    OKPKey okpSig = new OKPKey();
    okpSig.setKty("OKP");
    okpSig.setKid("okpSig");
    okpSig.setCrv("Ed25519");
    JWKSet okpSet = new JWKSet();
    okpSet.setKeys(Arrays.asList(okpEnc, okpSig));
    TestObserver testObserver = jwkService.filter(okpSet, JWKFilter.CURVE_KEY_ENCRYPTION()).test();
    testObserver.assertNoErrors();
    testObserver.assertComplete();
    testObserver.assertValue(jwk -> ((JWK) jwk).getKid().equals("okpEnc"));
}
Also used : JWKSet(io.gravitee.am.model.oidc.JWKSet) OKPKey(io.gravitee.am.model.jose.OKPKey) TestObserver(io.reactivex.observers.TestObserver) JWK(io.gravitee.am.model.jose.JWK) Test(org.junit.Test)

Example 3 with OKPKey

use of io.gravitee.am.model.jose.OKPKey in project gravitee-access-management by gravitee-io.

the class JWSServiceTest method testVerifier_OKP_invalid.

@Test(expected = IllegalArgumentException.class)
public void testVerifier_OKP_invalid() {
    OKPKey key = new OKPKey();
    key.setKty("OKP");
    key.setKid(KID);
    // Not Signature curve
    key.setCrv("X25519");
    key.setX("vBNW8f19leF79U4U6NrDDQaK_i5kL0iMKghB39AUT2I");
    jwsService.verifier(key);
}
Also used : OKPKey(io.gravitee.am.model.jose.OKPKey) Test(org.junit.Test)

Example 4 with OKPKey

use of io.gravitee.am.model.jose.OKPKey in project gravitee-access-management by gravitee-io.

the class JWSServiceTest method testVerifier_OKP_unknownCurve.

@Test(expected = IllegalArgumentException.class)
public void testVerifier_OKP_unknownCurve() {
    OKPKey key = new OKPKey();
    key.setKty("OKP");
    key.setCrv("unknown");
    // Should throw InvalidClientException due to unknown curve
    jwsService.verifier(key);
}
Also used : OKPKey(io.gravitee.am.model.jose.OKPKey) Test(org.junit.Test)

Example 5 with OKPKey

use of io.gravitee.am.model.jose.OKPKey in project gravitee-access-management by gravitee-io.

the class JWEServiceTest method encryptIdToken_OKP_parseError.

@Test
public void encryptIdToken_OKP_parseError() {
    OKPKey key = new OKPKey();
    key.setCrv("crv");
    key.setX("x");
    encryptIdToken_parseError(key, "ECDH-ES");
}
Also used : OKPKey(io.gravitee.am.model.jose.OKPKey) Test(org.junit.Test)

Aggregations

OKPKey (io.gravitee.am.model.jose.OKPKey)9 Test (org.junit.Test)9 JWKSet (io.gravitee.am.model.oidc.JWKSet)5 TestObserver (io.reactivex.observers.TestObserver)4 OctetKeyPair (com.nimbusds.jose.jwk.OctetKeyPair)3 OctetKeyPairGenerator (com.nimbusds.jose.jwk.gen.OctetKeyPairGenerator)3 Client (io.gravitee.am.model.oidc.Client)3 JOSEException (com.nimbusds.jose.JOSEException)2 JWEObject (com.nimbusds.jose.JWEObject)2 X25519Decrypter (com.nimbusds.jose.crypto.X25519Decrypter)2 JWSHeader (com.nimbusds.jose.JWSHeader)1 Ed25519Signer (com.nimbusds.jose.crypto.Ed25519Signer)1 JWTClaimsSet (com.nimbusds.jwt.JWTClaimsSet)1 SignedJWT (com.nimbusds.jwt.SignedJWT)1 ECKey (io.gravitee.am.model.jose.ECKey)1 JWK (io.gravitee.am.model.jose.JWK)1 OCTKey (io.gravitee.am.model.jose.OCTKey)1 RSAKey (io.gravitee.am.model.jose.RSAKey)1