docs: def build_signature_template(key_id, algorithm, headers):
      """
      Build the Signature template for use with the Authorization header.
  
      key_id is the mandatory label indicating to the server which secret to use
      algorithm is one of the supported algorithms
      headers is a list of http headers to be included in the signing string.
  
      The signature must be interpolated into the template to get the final
      Authorization header value.
      """
      param_map = {'keyId': key_id,
                   'algorithm': algorithm,
                   'signature': '%s'}
      if headers:
          headers = [h.lower() for h in headers]
          param_map['headers'] = ' '.join(headers)
      kv = map('{0[0]}="{0[1]}"'.format, param_map.items())
      kv_string = ','.join(kv)
      sig_string = 'Signature {0}'.format(kv_string)
      return sig_string