Package iu.crypt

Class Jose

All Implemented Interfaces:
WebCertificateReference, WebCryptoHeader, WebKeyReference

public final class Jose extends JsonKeyReference<Jose> implements WebCryptoHeader
WebCryptoHeader implementation.
  • Constructor Details

    • Jose

      Jose(JsonValue joseValue)
      Constructor.
      Parameters:
      joseValue - header parameters
  • Method Details

    • register

      public static <T> void register(String parameterName, Jose.Extension<T> extension)
      Registers an extension.
      Type Parameters:
      T - parameter type
      Parameters:
      parameterName - parameter name; must not be a registered parameter name enumerated by WebCryptoHeader.Param, should be collision-resistant. Take care when using Jose.Extension to implement an IANA Registered Parameter not enumerated by WebCryptoHeader.Param, since these may be implemented internally in a future release.
      extension - provider implementation
      See Also:
    • getExtension

      static <T> Jose.Extension<T> getExtension(String parameterName)
      Gets a registered extension.
      Type Parameters:
      T - parameter type
      Parameters:
      parameterName - parameter name
      Returns:
      extension registered for the named parameter
    • from

      static Jose from(JsonObject protectedHeader, JsonObject sharedHeader, JsonObject perRecipientHeader)
      Creates a JOSE header from serialized headers.
      Parameters:
      protectedHeader - protected header data
      sharedHeader - unprotected shared header data
      perRecipientHeader - unprotected per-recipient header data
      Returns:
      JOSE header
    • getKeySetUri

      public URI getKeySetUri()
      Description copied from interface: WebCryptoHeader
      Gets the URI where JWKS well-known key data can be retrieved.
      Specified by:
      getKeySetUri in interface WebCryptoHeader
      Returns:
      URI
    • getKey

      public Jwk getKey()
      Description copied from interface: WebCryptoHeader
      Gets the well-known key data.
      Specified by:
      getKey in interface WebCryptoHeader
      Returns:
      WebKey
    • getType

      public String getType()
      Description copied from interface: WebCryptoHeader
      Gets the header type parameter value.
      Specified by:
      getType in interface WebCryptoHeader
      Returns:
      header type parameter value.
    • getContentType

      public String getContentType()
      Description copied from interface: WebCryptoHeader
      Gets the header type parameter value.
      Specified by:
      getContentType in interface WebCryptoHeader
      Returns:
      header type parameter value.
    • getCriticalParameters

      public Set<String> getCriticalParameters()
      Description copied from interface: WebCryptoHeader
      Gets the set of critical parameter names.
      Specified by:
      getCriticalParameters in interface WebCryptoHeader
      Returns:
      critical parameter names
    • getExtendedParameter

      public <T> T getExtendedParameter(String name)
      Description copied from interface: WebCryptoHeader
      Gets extended parameters.
      Specified by:
      getExtendedParameter in interface WebCryptoHeader
      Type Parameters:
      T - parameter type
      Parameters:
      name - parameter name
      Returns:
      extended parameters
    • toString

      public String toString()
      Overrides:
      toString in class JsonCertificateReference<Jose>
    • wellKnown

      Jwk wellKnown()
      Gets the verified well-known key resolved for this header.
      Returns:
      well-known key
    • extendedParameters

      JsonObject extendedParameters()
      Gets the extended parameters.
      Returns:
      extended parameters
    • toJson

      JsonObject toJson(Predicate<String> nameFilter)
      Gets the JOSE header as JSON.
      Parameters:
      nameFilter - accepts standard or extended param name and returns true to include the parameter; else false
      Returns:
      JsonObject; null if no parameters match the filter