Class OctetSequenceKey.Builder

  • Enclosing class:
    OctetSequenceKey

    public static class OctetSequenceKey.Builder
    extends Object
    Builder for constructing octet sequence JWKs.

    Example usage:

     OctetSequenceKey key = new OctetSequenceKey.Builder(k)
         .algorithm(JWSAlgorithm.HS512)
         .keyID("123")
         .build();
     
    • Constructor Detail

      • Builder

        public Builder​(Base64URL k)
        Creates a new octet sequence JWK builder.
        Parameters:
        k - The key value. It is represented as the Base64URL encoding of value's big endian representation. Must not be null.
      • Builder

        public Builder​(byte[] key)
        Creates a new octet sequence JWK builder.
        Parameters:
        key - The key value. Must not be empty byte array or null.
      • Builder

        public Builder​(SecretKey secretKey)
        Creates a new octet sequence JWK builder.
        Parameters:
        secretKey - The secret key to represent. Must not be null.
    • Method Detail

      • keyUse

        public OctetSequenceKey.Builder keyUse​(KeyUse use)
        Sets the use (use) of the JWK.
        Parameters:
        use - The key use, null if not specified or if the key is intended for signing as well as encryption.
        Returns:
        This builder.
      • algorithm

        public OctetSequenceKey.Builder algorithm​(Algorithm alg)
        Sets the intended JOSE algorithm (alg) for the JWK.
        Parameters:
        alg - The intended JOSE algorithm, null if not specified.
        Returns:
        This builder.
      • keyID

        public OctetSequenceKey.Builder keyID​(String kid)
        Sets the ID (kid) of the JWK. The key ID can be used to match a specific key. This can be used, for instance, to choose a key within a JWKSet during key rollover. The key ID may also correspond to a JWS/JWE kid header parameter value.
        Parameters:
        kid - The key ID, null if not specified.
        Returns:
        This builder.
      • keyIDFromThumbprint

        public OctetSequenceKey.Builder keyIDFromThumbprint()
                                                     throws JOSEException
        Sets the ID (kid) of the JWK to its SHA-256 JWK thumbprint (RFC 7638). The key ID can be used to match a specific key. This can be used, for instance, to choose a key within a JWKSet during key rollover. The key ID may also correspond to a JWS/JWE kid header parameter value.
        Returns:
        This builder.
        Throws:
        JOSEException - If the SHA-256 hash algorithm is not supported.
      • keyIDFromThumbprint

        public OctetSequenceKey.Builder keyIDFromThumbprint​(String hashAlg)
                                                     throws JOSEException
        Sets the ID (kid) of the JWK to its JWK thumbprint (RFC 7638). The key ID can be used to match a specific key. This can be used, for instance, to choose a key within a JWKSet during key rollover. The key ID may also correspond to a JWS/JWE kid header parameter value.
        Parameters:
        hashAlg - The hash algorithm for the JWK thumbprint computation. Must not be null.
        Returns:
        This builder.
        Throws:
        JOSEException - If the hash algorithm is not supported.
      • x509CertURL

        public OctetSequenceKey.Builder x509CertURL​(URI x5u)
        Sets the X.509 certificate URL (x5u) of the JWK.
        Parameters:
        x5u - The X.509 certificate URL, null if not specified.
        Returns:
        This builder.
      • x509CertSHA256Thumbprint

        public OctetSequenceKey.Builder x509CertSHA256Thumbprint​(Base64URL x5t256)
        Sets the X.509 certificate SHA-256 thumbprint (x5t#S256) of the JWK.
        Parameters:
        x5t256 - The X.509 certificate SHA-256 thumbprint, null if not specified.
        Returns:
        This builder.
      • x509CertChain

        public OctetSequenceKey.Builder x509CertChain​(List<Base64> x5c)
        Sets the X.509 certificate chain (x5c) of the JWK.
        Parameters:
        x5c - The X.509 certificate chain as a unmodifiable list, null if not specified.
        Returns:
        This builder.
      • keyStore

        public OctetSequenceKey.Builder keyStore​(KeyStore keyStore)
        Sets the underlying key store.
        Parameters:
        keyStore - Reference to the underlying key store, null if none.
        Returns:
        This builder.