>ac@s^ddlZddlZddlZddlZddlZddlZddlmZmZddl m Z m Z ddl m Z ddl mZddl mZddlmZddlmZd efd YZd efd YZd ZddZdefdYZdZddddZdZddddZdZdS(iN(tsixt OrderedDict(tcreate_request_objecttprepare_request_dict(tUnknownSignatureVersionError(tUnknownClientMethodError(t UnsupportedSignatureVersionError(tdatetime2timestamp(t fix_s3_hostt RequestSignercBseZdZdZedZedZedZd d dZ d dd d dZ dZ d d Z e Z d d d d ZRS( s0 An object to sign requests before they go out over the wire using one of the authentication mechanisms defined in ``auth.py``. This class fires two events scoped to a service and operation name: * choose-signer: Allows overriding the auth signer name. * before-sign: Allows mutating the request before signing. Together these events allow for customization of the request signing pipeline, including overrides, request path manipulation, and disabling signing per operation. :type service_id: botocore.model.ServiceId :param service_id: The service id for the service, e.g. ``S3`` :type region_name: string :param region_name: Name of the service region, e.g. ``us-east-1`` :type signing_name: string :param signing_name: Service signing name. This is usually the same as the service name, but can differ. E.g. ``emr`` vs. ``elasticmapreduce``. :type signature_version: string :param signature_version: Signature name like ``v4``. :type credentials: :py:class:`~botocore.credentials.Credentials` :param credentials: User credentials with which to sign requests. :type event_emitter: :py:class:`~botocore.hooks.BaseEventHooks` :param event_emitter: Extension mechanism to fire events. cCsC||_||_||_||_||_tj||_dS(N(t _region_namet _signing_namet_signature_versiont _credentialst _service_idtweakreftproxyt_event_emitter(tselft service_idt region_namet signing_nametsignature_versiont credentialst event_emitter((s1/usr/lib/fence-agents/bundled/botocore/signers.pyt__init__As      cCs|jS(N(R (R((s1/usr/lib/fence-agents/bundled/botocore/signers.pyRLscCs|jS(N(R (R((s1/usr/lib/fence-agents/bundled/botocore/signers.pyRPscCs|jS(N(R (R((s1/usr/lib/fence-agents/bundled/botocore/signers.pyRTscKs|j||S(N(tsign(Rtoperation_nametrequesttkwargs((s1/usr/lib/fence-agents/bundled/botocore/signers.pythandlerXststandardc Cs|}|d kr|j}n|d kr6|j}n|j|||j}|jjdj|jj |d|d|d|jd|d|d||t j kri|d6|d6|d6} |d k r|| d s0        3L  >  t