anchor.diff:  ;; => {:userid 1}
   ----
   
  +You do not need specify the algorithm explicitly, it is automatically detected.
  +
   
   === Claims validation
   
   _buddy-sign_ json web signature implementation also includes validation of a concrete subset
   of claims related to the age of the signed data: *exp* (expiration time), *nbf* (not before).
   
  -The validation is performed on decoding the token. If `:exp` claim is found and posterior to
  +The validation is performed on decoding the token. If `:exp` claim is found and is posterior to
   the current date time (UTC) an validation exception will be raised or a failure instance will
   be returned, depending on that api you are using direct or monadic.
   
  
positive.code: 
  === Encrypting data
  
  TODO
  
  
  === Decrypting Data
  
  TODO
  
  
  === Claims validation
  
  TODO
  
  
  == Compact message signing
  
negative.code: 
  ;; And unsign
  (def unsigned-data (jws/unsign signed-data ec-pubkey {:alg :es256}))
  ----
  
  
  === Monadic api
  
  If you are using monadic composition with cats library you're in luck, because _buddy-sign_ also
  offers monadic api. You can use it with `encode` and `decode` functions, that return the _Exception_
  monad types: the `Success` instances when everything goes ok, and the `Failure` instances when
  something goes wrong.
  
  [source, clojure]
  ----
  (jws/encode {:userid 1} "secret")
  ;; => #<Success [eyJ0eXAiOiJKV1MiLCJhbGciOiJIU...]>
  ----
  
  The _Exception_ monad instances, for convenience implements the clojure `IDeref` interface that
  makes they play well with `@something` syntax for extract value from them:
  
  [source, clojure]
  ----
  @(jws/encode {:userid 1} "secret")
  ;; "eyJ0eXAiOiJKV1MiLCJhbGciOiJIU..."
  ----
  
  
  