anchor.diff:  -type iat() :: posix_time().
   -type iss() :: bstring().
   -type kid() :: bstring().
  +-type key() :: term().
   -type jose_header() :: json().
   -type jws_payload() :: json().
   -type jws_signature() :: base64_urlencoded().
  
positive.code:                                   hdr = signing_header(KID)}).
  
  %%-------------------------------------------------------------------
  kid(<<Context/binary>>) ->
      kid(ctx_to_internal(Context));
  kid(#apns_jwt_ctx{kid=KID}) ->
      KID.
  
  %%-------------------------------------------------------------------
  iss(<<Context/binary>>) ->
      iss(ctx_to_internal(Context));
  iss(#apns_jwt_ctx{iss=Iss}) ->
      Iss.
  
  %%-------------------------------------------------------------------
  key(<<Context/binary>>) ->
      key(ctx_to_internal(Context));
  key(#apns_jwt_ctx{key=Key}) ->
  
negative.code:               jws_signature/0,
                jws_signing_input/0,
                jwt/0,
                key/0,
                kid/0,
                pem_encoded_key/0,
                posix_time/0
  