Package com.nimbusds.jose.util

Examples of com.nimbusds.jose.util.Base64URL


    KeyUse use = KeyUse.SIGNATURE;

    Set<KeyOperation> ops = new HashSet<>(Arrays.asList(KeyOperation.SIGN, KeyOperation.VERIFY));

    try {
      new RSAKey(new Base64URL(n), new Base64URL(e), use, ops, null, null, null, null, null);

      fail();
    } catch (IllegalArgumentException e) {
      // ok
    }

    try {
      new RSAKey.Builder(new Base64URL(n), new Base64URL(e)).
        keyUse(use).keyOperations(ops).build();
      fail();
    } catch (IllegalStateException e) {
      // ok
    }
View Full Code Here



  public void testConstructorAndSerialization()
    throws Exception {

    Base64URL k = new Base64URL("GawgguFyGrWKav7AX4VKUg");
    URL x5u = new URL("http://example.com/jwk.json");
    Base64URL x5t = new Base64URL("abc");
    List<Base64> x5c = new LinkedList<>();
    x5c.add(new Base64("def"));

    Set<KeyOperation> ops = new LinkedHashSet<>(Arrays.asList(KeyOperation.SIGN, KeyOperation.VERIFY));

    OctetSequenceKey key = new OctetSequenceKey(k, null, ops, JWSAlgorithm.HS256, "1", x5u, x5t, x5c);

    assertEquals(KeyType.OCT, key.getKeyType());
    assertNull(key.getKeyUse());
    assertTrue(key.getKeyOperations().contains(KeyOperation.SIGN));
    assertTrue(key.getKeyOperations().contains(KeyOperation.VERIFY));
    assertEquals(2, key.getKeyOperations().size());
    assertEquals(JWSAlgorithm.HS256, key.getAlgorithm());
    assertEquals("1", key.getKeyID());
    assertEquals(x5u.toString(), key.getX509CertURL().toString());
    assertEquals(x5t.toString(), key.getX509CertThumbprint().toString());
    assertEquals(x5c.size(), key.getX509CertChain().size());

    assertEquals(k, key.getKeyValue());

    byte[] keyBytes = k.decode();

    for (int i=0; i < keyBytes.length; i++) {
      assertEquals(keyBytes[i], key.toByteArray()[i]);
    }

    assertNull(key.toPublicJWK());

    assertTrue(key.isPrivate());

    String jwkString = key.toJSONObject().toString();

    key = OctetSequenceKey.parse(jwkString);

    assertEquals(KeyType.OCT, key.getKeyType());
    assertNull(key.getKeyUse());
    assertTrue(key.getKeyOperations().contains(KeyOperation.SIGN));
    assertTrue(key.getKeyOperations().contains(KeyOperation.VERIFY));
    assertEquals(2, key.getKeyOperations().size());
    assertEquals(JWSAlgorithm.HS256, key.getAlgorithm());
    assertEquals("1", key.getKeyID());
    assertEquals(x5u.toString(), key.getX509CertURL().toString());
    assertEquals(x5t.toString(), key.getX509CertThumbprint().toString());
    assertEquals(x5c.size(), key.getX509CertChain().size());

    assertEquals(k, key.getKeyValue());

    keyBytes = k.decode();
View Full Code Here


  public void testAltConstructorAndSerialization()
    throws Exception {

    Base64URL k = new Base64URL("GawgguFyGrWKav7AX4VKUg");
    URL x5u = new URL("http://example.com/jwk.json");
    Base64URL x5t = new Base64URL("abc");
    List<Base64> x5c = new LinkedList<>();
    x5c.add(new Base64("def"));

    OctetSequenceKey key = new OctetSequenceKey(k, KeyUse.SIGNATURE, null, JWSAlgorithm.HS256, "1", x5u, x5t, x5c);

    assertEquals(KeyType.OCT, key.getKeyType());
    assertEquals(KeyUse.SIGNATURE, key.getKeyUse());
    assertNull(key.getKeyOperations());
    assertEquals(JWSAlgorithm.HS256, key.getAlgorithm());
    assertEquals("1", key.getKeyID());
    assertEquals(x5u.toString(), key.getX509CertURL().toString());
    assertEquals(x5t.toString(), key.getX509CertThumbprint().toString());
    assertEquals(x5c.size(), key.getX509CertChain().size());

    assertEquals(k, key.getKeyValue());

    byte[] keyBytes = k.decode();

    for (int i=0; i < keyBytes.length; i++) {
      assertEquals(keyBytes[i], key.toByteArray()[i]);
    }

    assertNull(key.toPublicJWK());

    assertTrue(key.isPrivate());

    String jwkString = key.toJSONObject().toString();

    key = OctetSequenceKey.parse(jwkString);

    assertEquals(KeyType.OCT, key.getKeyType());
    assertEquals(KeyUse.SIGNATURE, key.getKeyUse());
    assertNull(key.getKeyOperations());
    assertEquals(JWSAlgorithm.HS256, key.getAlgorithm());
    assertEquals("1", key.getKeyID());
    assertEquals(x5u.toString(), key.getX509CertURL().toString());
    assertEquals(x5t.toString(), key.getX509CertThumbprint().toString());
    assertEquals(x5c.size(), key.getX509CertChain().size());

    assertEquals(k, key.getKeyValue());

    keyBytes = k.decode();
View Full Code Here

  public void testRejectUseAndOpsTogether() {

    Set<KeyOperation> ops = new LinkedHashSet<>(Arrays.asList(KeyOperation.SIGN, KeyOperation.VERIFY));

    try {
      new OctetSequenceKey(new Base64URL("GawgguFyGrWKav7AX4VKUg"), KeyUse.SIGNATURE, ops, null, null, null, null, null);
      fail();
    } catch (IllegalArgumentException e) {
      // ok
    }
  }
View Full Code Here


  public void testBuilder()
    throws Exception {

    Base64URL k = new Base64URL("GawgguFyGrWKav7AX4VKUg");
    URL x5u = new URL("http://example.com/jwk.json");
    Base64URL x5t = new Base64URL("abc");
    List<Base64> x5c = new LinkedList<>();
    x5c.add(new Base64("def"));

    Set<KeyOperation> ops = new LinkedHashSet<>(Arrays.asList(KeyOperation.SIGN, KeyOperation.VERIFY));

    OctetSequenceKey key = new OctetSequenceKey.Builder(k).
      keyOperations(ops).
      algorithm(JWSAlgorithm.HS256).
      keyID("1").
      x509CertURL(x5u).
      x509CertThumbprint(x5t).
      x509CertChain(x5c).
      build();

    assertEquals(KeyType.OCT, key.getKeyType());
    assertNull(key.getKeyUse());
    assertTrue(key.getKeyOperations().contains(KeyOperation.SIGN));
    assertTrue(key.getKeyOperations().contains(KeyOperation.VERIFY));
    assertEquals(2, key.getKeyOperations().size());
    assertEquals(JWSAlgorithm.HS256, key.getAlgorithm());
    assertEquals("1", key.getKeyID());
    assertEquals(x5u.toString(), key.getX509CertURL().toString());
    assertEquals(x5t.toString(), key.getX509CertThumbprint().toString());
    assertEquals(x5c.size(), key.getX509CertChain().size());

    assertEquals(k, key.getKeyValue());

    byte[] keyBytes = k.decode();

    for (int i=0; i < keyBytes.length; i++) {
      assertEquals(keyBytes[i], key.toByteArray()[i]);
    }

    assertNull(key.toPublicJWK());

    assertTrue(key.isPrivate());


    String jwkString = key.toJSONObject().toString();

    key = OctetSequenceKey.parse(jwkString);


    assertEquals(KeyType.OCT, key.getKeyType());
    assertNull(key.getKeyUse());
    assertTrue(key.getKeyOperations().contains(KeyOperation.SIGN));
    assertTrue(key.getKeyOperations().contains(KeyOperation.VERIFY));
    assertEquals(2, key.getKeyOperations().size());
    assertEquals(JWSAlgorithm.HS256, key.getAlgorithm());
    assertEquals("1", key.getKeyID());
    assertEquals(x5u.toString(), key.getX509CertURL().toString());
    assertEquals(x5t.toString(), key.getX509CertThumbprint().toString());
    assertEquals(x5c.size(), key.getX509CertChain().size());

    assertEquals(k, key.getKeyValue());

    keyBytes = k.decode();
View Full Code Here

   */
  public static OctetSequenceKey parse(final JSONObject jsonObject)
    throws ParseException {

    // Parse the mandatory parameters first
    Base64URL k = new Base64URL(JSONObjectUtils.getString(jsonObject, "k"));

    // Check key type
    KeyType kty = KeyType.parse(JSONObjectUtils.getString(jsonObject, "kty"));

    if (kty != KeyType.OCT) {

      throw new ParseException("The key type \"kty\" must be oct", 0);
    }

    // Get optional key use
    KeyUse use = null;

    if (jsonObject.containsKey("use")) {
      use = KeyUse.parse(JSONObjectUtils.getString(jsonObject, "use"));
    }

    // Get optional key operations
    Set<KeyOperation> ops = null;

    if (jsonObject.containsKey("key_ops")) {
      ops = KeyOperation.parse(JSONObjectUtils.getStringList(jsonObject, "key_ops"));
    }

    // Get optional intended algorithm
    Algorithm alg = null;

    if (jsonObject.containsKey("alg")) {
      alg = new Algorithm(JSONObjectUtils.getString(jsonObject, "alg"));
    }

    // Get optional key ID
    String kid = null;

    if (jsonObject.containsKey("kid")) {
      kid = JSONObjectUtils.getString(jsonObject, "kid");
    }

    // Get optional X.509 cert URL
    URL x5u = null;

    if (jsonObject.containsKey("x5u")) {
      x5u = JSONObjectUtils.getURL(jsonObject, "x5u")
    }

    // Get optional X.509 cert thumbprint
    Base64URL x5t = null;

    if (jsonObject.containsKey("x5t")) {
      x5t = new Base64URL(JSONObjectUtils.getString(jsonObject, "x5t"));
    }

    // Get optional X.509 cert chain
    List<Base64> x5c = null;

View Full Code Here

      } else if (name.equals("jwk")) {
        h.setJWK(JWK.parse(JSONObjectUtils.getJSONObject(json, name)));
      } else if (name.equals("x5u")) {
        h.setX509CertURL(JSONObjectUtils.getURL(json, name));
      } else if (name.equals("x5t")) {
        h.setX509CertThumbprint(new Base64URL(JSONObjectUtils.getString(json, name)));
      } else if (name.equals("x5c")) {
        h.setX509CertChain(X509CertChainUtils.parseX509CertChain(JSONObjectUtils.getJSONArray(json, name)));
      } else if (name.equals("kid")) {
        h.setKeyID(JSONObjectUtils.getString(json, name));
      } else {
View Full Code Here

   */
  public static RSAKey parse(final JSONObject jsonObject)
    throws ParseException {

    // Parse the mandatory public key parameters first
    Base64URL n = new Base64URL(JSONObjectUtils.getString(jsonObject, "n"));
    Base64URL e = new Base64URL(JSONObjectUtils.getString(jsonObject, "e"));

    // Check key type
    KeyType kty = KeyType.parse(JSONObjectUtils.getString(jsonObject, "kty"));
    if (kty != KeyType.RSA) {
      throw new ParseException("The key type \"kty\" must be RSA", 0);
    }
   
    // Parse the optional private key parameters

    // 1st private representation
    Base64URL d = null;
    if (jsonObject.containsKey("d")) {
      d = new Base64URL(JSONObjectUtils.getString(jsonObject, "d"));
    }

    // 2nd private (CRT) representation
    Base64URL p = null;
    if (jsonObject.containsKey("p")) {
      p = new Base64URL(JSONObjectUtils.getString(jsonObject, "p"));
    }
    Base64URL q = null;
    if (jsonObject.containsKey("q")) {
      q = new Base64URL(JSONObjectUtils.getString(jsonObject, "q"));
    }
    Base64URL dp = null;
    if (jsonObject.containsKey("dp")) {
      dp = new Base64URL(JSONObjectUtils.getString(jsonObject, "dp"));
    }
    Base64URL dq= null;
    if (jsonObject.containsKey("dq")) {
      dq = new Base64URL(JSONObjectUtils.getString(jsonObject, "dq"));
    }
    Base64URL qi = null;
    if (jsonObject.containsKey("qi")) {
      qi = new Base64URL(JSONObjectUtils.getString(jsonObject, "qi"));
    }
   
    List<OtherPrimesInfo> oth = null;
    if (jsonObject.containsKey("oth")) {

      JSONArray arr = JSONObjectUtils.getJSONArray(jsonObject, "oth");
      oth = new ArrayList<RSAKey.OtherPrimesInfo>(arr.size());
     
      for (Object o : arr) {

        if (o instanceof JSONObject) {
          JSONObject otherJson = (JSONObject)o;

          Base64URL r = new Base64URL(JSONObjectUtils.getString(otherJson, "r"));
          Base64URL odq = new Base64URL(JSONObjectUtils.getString(otherJson, "dq"));
          Base64URL t = new Base64URL(JSONObjectUtils.getString(otherJson, "t"));

          OtherPrimesInfo prime = new OtherPrimesInfo(r, odq, t);
          oth.add(prime);
        }
      }
    }
   
    // Get optional key use
    KeyUse use = null;

    if (jsonObject.containsKey("use")) {
      use = KeyUse.parse(JSONObjectUtils.getString(jsonObject, "use"));
    }

    // Get optional key operations
    Set<KeyOperation> ops = null;

    if (jsonObject.containsKey("key_ops")) {
      ops = KeyOperation.parse(JSONObjectUtils.getStringList(jsonObject, "key_ops"));
    }

    // Get optional intended algorithm
    Algorithm alg = null;

    if (jsonObject.containsKey("alg")) {
      alg = new Algorithm(JSONObjectUtils.getString(jsonObject, "alg"));
    }

    // Get optional key ID
    String kid = null;

    if (jsonObject.containsKey("kid")) {
      kid = JSONObjectUtils.getString(jsonObject, "kid");
    }

    // Get optional X.509 cert URL
    URL x5u = null;

    if (jsonObject.containsKey("x5u")) {
      x5u = JSONObjectUtils.getURL(jsonObject, "x5u")
    }

    // Get optional X.509 cert thumbprint
    Base64URL x5t = null;

    if (jsonObject.containsKey("x5t")) {
      x5t = new Base64URL(JSONObjectUtils.getString(jsonObject, "x5t"));
    }

    // Get optional X.509 cert chain
    List<Base64> x5c = null;

View Full Code Here

    final int firstDotPos = s.indexOf(".");
   
    if (firstDotPos == -1)
      throw new ParseException("Invalid JWT serialization: Missing dot delimiter(s)", 0);
     
    Base64URL header = new Base64URL(s.substring(0, firstDotPos));
   
    JSONObject jsonObject;

    try {
      jsonObject = JSONObjectUtils.parseJSONObject(header.decodeToString());

    } catch (ParseException e) {

      throw new ParseException("Invalid plain/JWS/JWE header: " + e.getMessage(), 0);
    }
View Full Code Here

      } else if (name.equals("jwk")) {
        h.setJWK(JWK.parse(JSONObjectUtils.getJSONObject(json, name)));
      } else if (name.equals("x5u")) {
        h.setX509CertURL(JSONObjectUtils.getURL(json, name));
      } else if (name.equals("x5t")) {
        h.setX509CertThumbprint(new Base64URL(JSONObjectUtils.getString(json, name)));
      } else if (name.equals("x5c")) {
        h.setX509CertChain(X509CertChainUtils.parseX509CertChain(JSONObjectUtils.getJSONArray(json, name)));
      } else if (name.equals("kid")) {
        h.setKeyID(JSONObjectUtils.getString(json, name));
      } else if (name.equals("apu")) {
        h.setAgreementPartyUInfo(new Base64URL(JSONObjectUtils.getString(json, name)));
      } else if (name.equals("apv")) {
        h.setAgreementPartyVInfo(new Base64URL(JSONObjectUtils.getString(json, name)));
      } else if (name.equals("p2s")) {
        h.setPBES2Salt(new Base64URL(JSONObjectUtils.getString(json, name)));
      } else if (name.equals("p2c")) {
        h.setPBES2Count(JSONObjectUtils.getInt(json, name));
      } else {
        h.setCustomParameter(name, json.get(name));
      }
View Full Code Here

TOP

Related Classes of com.nimbusds.jose.util.Base64URL

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.