Class JWEHeader.Builder

  • Enclosing class:
    JWEHeader

    public static class JWEHeader.Builder
    extends Object
    Builder for constructing JSON Web Encryption (JWE) headers.

    Example usage:

     JWEHeader header = new JWEHeader.Builder(JWEAlgorithm.RSA1_5, EncryptionMethod.A128GCM)
                        .contentType("text/plain")
                        .customParam("exp", new Date().getTime())
                        .build();
     
    • Constructor Detail

      • Builder

        public Builder​(JWEAlgorithm alg,
                       EncryptionMethod enc)
        Creates a new JWE header builder.
        Parameters:
        alg - The JWE algorithm (alg) parameter. Must not be "none" or null.
        enc - The encryption method. Must not be null.
      • Builder

        public Builder​(JWEHeader jweHeader)
        Creates a new JWE header builder with the parameters from the specified header.
        Parameters:
        jweHeader - The JWE header to use. Must not be null.
    • Method Detail

      • alg

        public JWEHeader.Builder alg​(JWEAlgorithm alg)
        Sets the algorithm (alg) parameter.
        Parameters:
        alg - The alg parameter, null if not specified.
        Returns:
        This builder.
      • type

        public JWEHeader.Builder type​(JOSEObjectType typ)
        Sets the type (typ) parameter.
        Parameters:
        typ - The type parameter, null if not specified.
        Returns:
        This builder.
      • contentType

        public JWEHeader.Builder contentType​(String cty)
        Sets the content type (cty) parameter.
        Parameters:
        cty - The content type parameter, null if not specified.
        Returns:
        This builder.
      • criticalParams

        public JWEHeader.Builder criticalParams​(Set<String> crit)
        Sets the critical header parameters (crit) parameter.
        Parameters:
        crit - The names of the critical header parameters, empty set or null if none.
        Returns:
        This builder.
      • jwkURL

        public JWEHeader.Builder jwkURL​(URI jku)
        Sets the public JSON Web Key (JWK) Set URL (jku) parameter.
        Parameters:
        jku - The public JSON Web Key (JWK) Set URL parameter, null if not specified.
        Returns:
        This builder.
      • jwk

        public JWEHeader.Builder jwk​(JWK jwk)
        Sets the public JSON Web Key (JWK) (jwk) parameter.
        Parameters:
        jwk - The public JSON Web Key (JWK) (jwk) parameter, null if not specified.
        Returns:
        This builder.
      • x509CertURL

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

        @Deprecated
        public JWEHeader.Builder x509CertThumbprint​(Base64URL x5t)
        Deprecated.
        Sets the X.509 certificate SHA-1 thumbprint (x5t) parameter.
        Parameters:
        x5t - The X.509 certificate SHA-1 thumbprint parameter, null if not specified.
        Returns:
        This builder.
      • x509CertSHA256Thumbprint

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

        public JWEHeader.Builder x509CertChain​(List<Base64> x5c)
        Sets the X.509 certificate chain parameter (x5c) corresponding to the key used to sign the JWS object.
        Parameters:
        x5c - The X.509 certificate chain parameter, null if not specified.
        Returns:
        This builder.
      • keyID

        public JWEHeader.Builder keyID​(String kid)
        Sets the key ID (kid) parameter.
        Parameters:
        kid - The key ID parameter, null if not specified.
        Returns:
        This builder.
      • ephemeralPublicKey

        public JWEHeader.Builder ephemeralPublicKey​(JWK epk)
        Sets the Ephemeral Public Key (epk) parameter.
        Parameters:
        epk - The Ephemeral Public Key parameter, null if not specified.
        Returns:
        This builder.
      • agreementPartyUInfo

        public JWEHeader.Builder agreementPartyUInfo​(Base64URL apu)
        Sets the agreement PartyUInfo (apu) parameter.
        Parameters:
        apu - The agreement PartyUInfo parameter, null if not specified.
        Returns:
        This builder.
      • agreementPartyVInfo

        public JWEHeader.Builder agreementPartyVInfo​(Base64URL apv)
        Sets the agreement PartyVInfo (apv) parameter.
        Parameters:
        apv - The agreement PartyVInfo parameter, null if not specified.
        Returns:
        This builder.
      • pbes2Salt

        public JWEHeader.Builder pbes2Salt​(Base64URL p2s)
        Sets the PBES2 salt (p2s) parameter.
        Parameters:
        p2s - The PBES2 salt parameter, null if not specified.
        Returns:
        This builder.
      • pbes2Count

        public JWEHeader.Builder pbes2Count​(int p2c)
        Sets the PBES2 count (p2c) parameter.
        Parameters:
        p2c - The PBES2 count parameter, zero if not specified. Must not be negative.
        Returns:
        This builder.
      • iv

        public JWEHeader.Builder iv​(Base64URL iv)
        Sets the initialisation vector (iv) parameter.
        Parameters:
        iv - The initialisation vector, null if not specified.
        Returns:
        This builder.
      • authTag

        public JWEHeader.Builder authTag​(Base64URL tag)
        Sets the authentication tag (tag) parameter.
        Parameters:
        tag - The authentication tag, null if not specified.
        Returns:
        This builder.
      • senderKeyID

        public JWEHeader.Builder senderKeyID​(String skid)
        Sets the sender key ID (skid) parameter.
        Parameters:
        skid - The sender Key ID parameter, null if not specified.
        Returns:
        This builder.
      • customParam

        public JWEHeader.Builder customParam​(String name,
                                             Object value)
        Sets a custom (non-registered) parameter.
        Parameters:
        name - The name of the custom parameter. Must not match a registered parameter name and must not be null.
        value - The value of the custom parameter, should map to a valid JSON entity, null if not specified.
        Returns:
        This builder.
        Throws:
        IllegalArgumentException - If the specified parameter name matches a registered parameter name.
      • customParams

        public JWEHeader.Builder customParams​(Map<String,​Object> customParameters)
        Sets the custom (non-registered) parameters. The values must be serialisable to a JSON entity, otherwise will be ignored.
        Parameters:
        customParameters - The custom parameters, empty map or null if none.
        Returns:
        This builder.
      • parsedBase64URL

        public JWEHeader.Builder parsedBase64URL​(Base64URL base64URL)
        Sets the parsed Base64URL.
        Parameters:
        base64URL - The parsed Base64URL, null if the header is created from scratch.
        Returns:
        This builder.
      • build

        public JWEHeader build()
        Builds a new JWE header.
        Returns:
        The JWE header.