# File lib/aws/s3/presigned_post.rb, line 342
      def fields

        secret = config.credential_provider.secret_access_key
        signature = Core::Signer.sign(secret, policy, 'sha1')

        fields = {
          "AWSAccessKeyId" => config.credential_provider.access_key_id,
          "key" => key,
          "policy" => policy,
          "signature" => signature
        }.merge(optional_fields)

        if token = config.credential_provider.session_token
          fields["x-amz-security-token"] = token
        end

        fields.merge(optional_fields)
      end