anchor.diff:      Attributes = lists:foldl(fun format_attribute/2, [], STVList),
       lists:flatten(string:join(lists:reverse(Attributes), ", ")).
   
  +extract_fields_by_type({rdnSequence, STVList}, Type) ->
  +    [format_value(V) || [#'AttributeTypeAndValue'{type = T, value = V}] <- STVList,
  +                        T =:= Type];
  +extract_fields_by_type(_, _) ->
  +    [].
  +
   convert_date(Year, Rest) ->
       {ok, [Month, Day, Hour, Min, Sec], "Z"} = io_lib:fread("~2d~2d~2d~2d~2d", Rest),
       calendar:datetime_to_gregorian_seconds({{Year, Month, Day}, {Hour, Min, Sec}}).
  
positive.code:     NotBefore = convert_date(Validity#'Validity'.notBefore),
      NotAfter = convert_date(Validity#'Validity'.notAfter),
      {Subject, NotBefore, NotAfter}.
  
  parse_cluster_ca(CA) ->
      case decode_single_certificate(CA) of
  
negative.code:          apply_certificate_chain_from_inbox/0,
           apply_certificate_chain_from_inbox/1,
           get_warnings/1,
           get_subject_fields_by_type/2,
           get_sub_alt_names_by_type/2,
           get_node_cert_info/1]).
  
  inbox_chain_path() ->
  