     # gets the user's encrypted salt.
     # request is not wrapped because the user has not auth'ed yet.
     getSalt: (uuid) ->
+      cached = Cache.get( Cache.SALTS, uuid )
+      if cached?
+        return cached
       Promise.resolve(axios({
         url    : saltUrl() + '/' + uuid
         method : 'GET'

        if _.isEmpty(ciphertext)
          throw new Error 'incorrect credentials'
        else
          return new BlockCiphertext(ciphertext)

    # sets the encrypted salt for a new user account.
    # manually sets principal and credential headers since user has not auth'ed yet.

  'kryptnostic.requests'
  'kryptnostic.block-ciphertext'
  'kryptnostic.validators'
  'kryptnostic.caching-service'
], (require) ->

  axios             = require 'axios'
