anchor.diff:  NIST SP 800-108 specification.
   
   
  -Ciphers
  -~~~~~~~
  -
  -TODO
  +Block Ciphers
  +~~~~~~~~~~~~~
  +
  +WIP
  +
  +
  +Stream Ciphers
  +~~~~~~~~~~~~~~
  +
  +WIP
   
   
   Codecs (binary -> string conversion)
  
positive.code: ----
  
  
  
  RSASSA PKCS1 v1.5
  ^^^^^^^^^^^^^^^^^
  
  
negative.code: 
  - generic authorization system using exceptions for fast return and unauthorized-handler function
    for handle unauthorized requsts.
  - access rules system, using rules and logical combinators that applies to specific urls (matching
    them using regular expressions) or specific handlers wrapping it with the `restricted` decorator.
  
  
  Generic authorization
  ^^^^^^^^^^^^^^^^^^^^^
  
  This authorization system encapsulates your handlers/controllers in one try/catch block
  catching only notauthorized exceptions. So spliting unauthorized request handling code from
  your handlers/controllers in a separate function. Moreover, it permits fast return when
  not authorized request is detected.
  
  Like authentication system, authorization is also implemented using protocols. Taking advantage of
  it, all builtin authentication backends also implements this authorization protocol (`IAuthorization`).
  
  Some authentication backends require specific behavior in the authorization layer (like http-basic
  which should return `WWW-Authenticate` header when request is unauthorized). By default, all backends
  come with an specific implementation.
  
  You can overwrite the default behavior by passing your own exception handler through the
  `:unauthorized-handler` keyword parameter in the backend constructor.
  
  Below is a complete example setting up a basic/generic authorization
  system for your ring compatible web application:
  
  .Defining unauthorized handler
  [source,clojure]
  ----
  