anchor.diff:  ;; "eyJ0eXAiOiJKV1MiLCJhbGciOiJIU..."
   ----
   
  -The `sign` function return a encoded and signed token as plain `String` instance or an exception in
  -case of something goes wrong. As you can observe, no algorithm is passed as parameter.
  -In this situations the default one will be used, and in this case is `:hs256`.
  -
  -NOTE: Due to the nature of the storage format, the input is restricted mainly to json objects in the current version.
  +The `sign` function return a encoded and signed token as plain `String` instance
  +or an exception in case of something goes wrong. As you can observe, no algorithm
  +is passed as parameter. In this situations the default one will be used, and in
  +this case is `:hs256`.
  +
  +NOTE: Due to the nature of the storage format, the input is restricted mainly to
  +json objects in the current version.
   
   
   === Unsigning data
   
  -It's time to unsing data. That process consists on verify the signature of incoming data and return the
  -plain data (without signature). For it we will use the `unsign` function from `buddy.sign.jws`
  -namespace:
  +It's time to unsing data. That process consists on verify the signature of incoming
  +data and return the plain data (without signature). For it we will use the `unsign`
  +function from `buddy.sign.jws` namespace:
   
   [source, clojure]
   ----
  
positive.code: ;; wait 5 seconds and try unsign it
  
  (jwe/decrypt token secret)
  ;; => ExceptionInfo throw+: {:type :validation, :cause :exp, :message "Token is older than :exp (1427836475)"}
  ----
  
  The best way to capture this type of exceptions is using
  link:https://github.com/scgilardi/slingshot[slingshot] library:
  
  [source, clojure]
  ----
  (require '[slingshot.slingshot :refer [try+]])
  
  (try+
    (jwe/encrypt token secret)
    (catch [:type :validation] e
      (println "Error: " (:message e))))
  ;; => Will print in console: "Error: Token is older than :exp (1427836475)"
  ----
  
  
  === Asymetric encryption schemes
  
  In order to use any asymetric encryption algorithm, you should have private/public
  key pair. If you don't have one, don't worry, it is very easy to generate it using *openssl*, see
  this <<generate-keypairs,faq entry>>.
  
  Then, having ready the key pair, you can strart using one of the supported key encryption
  algorithm in the JWE specification such as `:rsa1_5`, `:rsa-oaep` or `:rsa-oaep-256`.
  
  Let see an demostration example:
  
  
negative.code: 
  === Contributing
  
  Unlike Clojure and other Clojure contributed libraries _buddy-sign_ does not
  have many restrictions for contributions. Just open an issue or pull request.
  
  
  === Philosophy
  