Class SDObjectDecoder

java.lang.Object
com.authlete.sd.SDObjectDecoder

public class SDObjectDecoder extends Object
A utility to decode selectively-disclosable elements in a map or a list recursively.
// Original dataset
//
//   {
//     "key-1": "value-1",
//     "key-2": "value-2"
//   }
//
Map<String, Object> originalMap = Map.of(
        "key-1", "value-1",
        "key-2", "value-2"
);

// Encoder
SDObjectEncoder encoder = new SDObjectEncoder();

// Encode
Map<String, Object> encodedMap = encoder.encode(originalMap);

// Disclosures yielded as a result of the encoding process.
List<Disclosure> disclosures = encoder.getDisclosures();

// Disclosures for claims to disclose.
List<Disclosure> disclosed = disclosures.stream()
        .filter(d -> "key-1".equals(d.getClaimName()))
        .collect(Collectors.toList());

// Decode the encoded map with the selected disclosures.
SDObjectDecoder decoder = new SDObjectDecoder();
Map<String, Object> decodedMap = decoder.decode(encodedMap, disclosed);

// Decoded dataset
//
//   {
//     "key-1": "value-1"
//   }
//
Since:
1.3
  • Constructor Details

    • SDObjectDecoder

      public SDObjectDecoder()
  • Method Details

    • decode

      public Map<String,Object> decode(Map<String,Object> encodedMap, Collection<Disclosure> disclosures)
      Decode the given map with the specified disclosures.
      Parameters:
      encodedMap - The input map. If null is given, null is returned.
      disclosures - Disclosures for claims to disclose. If null is given, it means that none of selectively-disclosable elements in the input map are disclosed.
      Returns:
      The decoded map.
    • decode

      public List<Object> decode(List<?> encodedList, Collection<Disclosure> disclosures)
      Decode the given list with the specified disclosures and the default hash algorithm ("sha-256").
      Parameters:
      encodedList - The input list. If null is given, null is returned.
      disclosures - Disclosures for claims to disclose. If null is given, it means that none of selectively-disclosable elements in the input list are disclosed.
      Returns:
      The decoded list.
    • decode

      public List<Object> decode(List<?> encodedList, Collection<Disclosure> disclosures, String hashAlgorithm)
      Decode the given list with the specified disclosures and hash algorithm.
      Parameters:
      encodedList - The input list. If null is given, null is returned.
      disclosures - Disclosures for claims to disclose. If null is given, it means that none of selectively-disclosable elements in the input list are disclosed.
      hashAlgorithm - The hash algorithm for digests. If null is given, the default hash algorithm ("sha-256") is used.
      Returns:
      The decoded list.