Linux yavrix.internet-webhosting.com 3.10.0-962.3.2.lve1.5.88.el7.x86_64 #1 SMP Fri Sep 26 14:06:42 UTC 2025 x86_64
LiteSpeed
Server IP : 103.8.25.136 & Your IP : 216.73.216.204
Domains :
Cant Read [ /etc/named.conf ]
User : klinikpe
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
lib /
mysqlsh /
lib /
python3.9 /
site-packages /
oci /
Delete
Unzip
Name
Size
Permission
Date
Action
_vendor
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
access_governance_cp
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
addons
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
adm
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
ai_data_platform
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
ai_document
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
ai_language
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
ai_speech
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
ai_vision
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
analytics
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
announcements_service
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
api_platform
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
apiaccesscontrol
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
apigateway
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
apm_config
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
apm_control_plane
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
apm_synthetics
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
apm_traces
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
appmgmt_control
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
artifacts
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
audit
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
auth
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
autoscaling
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
bastion
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
batch
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
bds
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
blockchain
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
budget
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
capacity_management
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
certificates
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
certificates_management
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
cims
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
circuit_breaker
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
cloud_bridge
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
cloud_guard
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
cloud_migrations
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
cluster_placement_groups
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
compute_cloud_at_customer
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
compute_instance_agent
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
container_engine
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
container_instances
[ DIR ]
drwxr-xr-x
2026-05-04 18:19
core
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
dashboard_service
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
data_catalog
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
data_flow
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
data_integration
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
data_labeling_service
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
data_labeling_service_dataplane
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
data_safe
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
data_science
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
database
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
database_management
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
database_migration
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
database_tools
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
dblm
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
dbmulticloud
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
delegate_access_control
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
demand_signal
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
desktops
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
devops
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
dif
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
disaster_recovery
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
distributed_database
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
dns
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
em_warehouse
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
email
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
email_data_plane
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
encryption
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
events
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
file_storage
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
fleet_apps_management
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
fleet_software_update
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
functions
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
fusion_apps
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
gdp
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
generative_ai
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
generative_ai_agent
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
generative_ai_agent_runtime
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
generative_ai_inference
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
generic_artifacts_content
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
golden_gate
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
governance_rules_control_plane
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
healthchecks
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
identity
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
identity_data_plane
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
identity_domains
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
integration
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
iot
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
jms
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
jms_java_downloads
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
jms_utils
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
key_management
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
license_manager
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
limits
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
limits_increase
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
load_balancer
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
lockbox
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
log_analytics
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
logging
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
loggingingestion
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
loggingsearch
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
lustre_file_storage
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
managed_kafka
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
management_agent
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
management_dashboard
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
marketplace
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
marketplace_private_offer
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
marketplace_publisher
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
media_services
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
mngdmac
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
model_deployment
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
monitoring
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
multicloud
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
mysql
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
network_firewall
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
network_load_balancer
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
nosql
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
object_storage
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
oce
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
oci_control_center
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
ocvp
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
oda
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
onesubscription
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
ons
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
opa
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
opensearch
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
operator_access_control
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
opsi
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
optimizer
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
os_management_hub
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
osp_gateway
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
osub_billing_schedule
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
osub_organization_subscription
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
osub_subscription
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
osub_usage
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
pagination
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
psa
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
psql
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
queue
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
recovery
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
redis
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
resource_analytics
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
resource_manager
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
resource_scheduler
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
resource_search
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
retry
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
rover
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
sch
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
secrets
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
security_attribute
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
service_catalog
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
service_manager_proxy
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
stack_monitoring
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
streaming
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
tenant_manager_control_plane
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
threat_intelligence
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
usage
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
usage_api
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
vault
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
vbs_inst
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
visual_builder
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
vn_monitoring
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
vulnerability_scanning
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
waa
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
waas
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
waf
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
wlms
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
work_requests
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
zpr
[ DIR ]
drwxr-xr-x
2026-05-04 18:20
__init__.py
6.52
KB
-rw-r--r--
2026-03-24 06:27
base_client.py
65.06
KB
-rw-r--r--
2026-03-24 06:27
config.py
9.98
KB
-rw-r--r--
2026-03-24 06:27
constants.py
487
B
-rw-r--r--
2026-03-24 06:27
decorators.py
1.61
KB
-rw-r--r--
2026-03-24 06:27
developer_tool_configuration.py
7.72
KB
-rw-r--r--
2026-03-24 06:27
exceptions.py
8.7
KB
-rw-r--r--
2026-03-24 06:27
fips.py
4.35
KB
-rw-r--r--
2026-03-24 06:27
regions.py
22.57
KB
-rw-r--r--
2026-03-24 06:27
regions_definitions.py
7.34
KB
-rw-r--r--
2026-03-24 06:27
request.py
1.97
KB
-rw-r--r--
2026-03-24 06:27
response.py
2.19
KB
-rw-r--r--
2026-03-24 06:27
service_endpoints.py
2.01
KB
-rw-r--r--
2026-03-24 06:27
signer.py
11.49
KB
-rw-r--r--
2026-03-24 06:27
util.py
13.09
KB
-rw-r--r--
2026-03-24 06:27
version.py
367
B
-rw-r--r--
2026-03-24 06:27
waiter.py
7.68
KB
-rw-r--r--
2026-03-24 06:27
Save
Rename
# coding: utf-8 # Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved. # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. from __future__ import absolute_import import base64 import email.utils import hashlib import io import functools import os from oci._vendor import six from oci.util import record_body_position_for_rewind, rewind_body, back_up_body_calculate_stream_content_length, read_stream_for_signing from ._vendor import httpsig_cffi, requests from .exceptions import InvalidPrivateKey, MissingPrivateKeyPassphrase from cryptography.exceptions import UnsupportedAlgorithm from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization import logging logger = logging.getLogger(__name__) SIGNATURE_VERSION = "1" def load_private_key_from_file(filename, pass_phrase=None): filename = os.path.expanduser(filename) with io.open(filename, mode="rb") as f: private_key_data = f.read().strip() return load_private_key(private_key_data, pass_phrase) def load_private_key(secret, pass_phrase): """Loads a private key that may use a pass_phrase. Tries to correct or diagnose common errors: - provided pass_phrase but didn't need one - provided a public key """ if isinstance(secret, six.text_type): secret = secret.encode("ascii") if isinstance(pass_phrase, six.text_type): pass_phrase = pass_phrase.encode("ascii") backend = default_backend() try: # 0) Try with pass_phrase return serialization.load_pem_private_key(secret, pass_phrase, backend=backend) except TypeError: # 1) Either: # - key has pass_phrase and one wasn't provided # - key doesn't have pass_phrase and one was provided. # # Can't fix the first, but we *can* fix the second. # This can happen if the DEFAULT profile has a pass_phrase but # another profile uses a key file without a pass_phrase. if pass_phrase is None: # 1.1) private key needed a pass_phrase and we don't have one raise MissingPrivateKeyPassphrase("The provided key requires a passphrase.") else: # 1.2) try again without pass_phrase; could be an artifact from DEFAULT return serialization.load_pem_private_key(secret, None, backend=backend) except ValueError: # 2) Try to determine what kind of failure this is. # Most likely, this is either a bad password or a public key. # If loading it as a public key fails, it's almost certainly a bad password. for loader in [ serialization.load_der_public_key, serialization.load_pem_public_key, serialization.load_ssh_public_key ]: try: loader(secret, backend=backend) except (ValueError, UnsupportedAlgorithm): # 2.1) Not a public key; try the next format pass else: # 2.2) This is a public key raise InvalidPrivateKey("Authentication requires a private key, but a public key was provided.") # 2.3) Password is probably wrong. raise InvalidPrivateKey("The provided key is not a private key, or the provided passphrase is incorrect.") def inject_missing_headers(request, sign_body, enforce_content_headers): # Inject date, host, and content-type if missing request.headers.setdefault( "date", email.utils.formatdate(usegmt=True)) request.headers.setdefault( "host", six.moves.urllib.parse.urlparse(request.url).netloc) if hasattr(request.body, "buffer") or hasattr(request.body, "read"): request.headers.setdefault("content-type", "application/octet-stream") request.headers.setdefault("content-type", "application/json") if enforce_content_headers: # Requests with a body need to send content-type, # content-length, and x-content-sha256 if "x-content-sha256" not in request.headers and sign_body: body = request.body or "" m = hashlib.sha256() # Handle String types if isinstance(body, six.string_types): body = body.encode("utf-8") request.headers.setdefault("content-length", str(len(body))) m.update(body) # Handle bytes elif isinstance(body, (bytes, bytearray)): m.update(body) # Handling signing for Files/stdin elif hasattr(body, "buffer") or hasattr(body, "read"): is_body_rewindable, original_position = record_body_position_for_rewind(body) if is_body_rewindable: content_length = read_stream_for_signing(m, body) if content_length == -1: raise IOError("Unable to read stream for signing! Please sign the stream yourself by using the custom header x-content-sha256") request.headers.setdefault("content-length", str(content_length)) is_rewind_success = rewind_body(body, original_position) if not is_rewind_success: raise IOError("Unable to rewind request body while signing!") else: logger.warning("Stream cannot be rewound, trying to backup and sign the body!") stream = back_up_body_calculate_stream_content_length(body) # Updating request body as it cannot be rewound request.body = stream.get("byte_content") m.update(stream.get("byte_content")) request.headers.setdefault("content-length", str(stream.get("content_length"))) # Update sha256 header if m: base64digest = base64.b64encode(m.digest()) base64string = base64digest.decode("utf-8") request.headers["x-content-sha256"] = base64string # HeaderSigner doesn't support private keys with passwords. # Patched since the constructor parses the key in __init__ class _PatchedHeaderSigner(httpsig_cffi.sign.HeaderSigner): HEADER_SIGNER_TEMPLATE = 'Signature algorithm="rsa-sha256",headers="{}",keyId="{}",signature="%s",version="{}"' """Internal. If you need to construct a Signer, use :class:`~.Signer` instead.""" def __init__(self, key_id, private_key, headers): # Dropped general support for the specific signing/hash the SDK uses. self.sign_algorithm = "rsa" self.hash_algorithm = "sha256" self._hash = None self._rsahash = httpsig_cffi.utils.HASHES[self.hash_algorithm] self._rsa_private = private_key self._rsa_public = self._rsa_private.public_key() self.headers = headers self.signature_template = self.HEADER_SIGNER_TEMPLATE.format(" ".join(headers), key_id, SIGNATURE_VERSION) def reset_signer(self, key_id, private_key): self._hash = None self._rsa_private = private_key self._rsa_public = self._rsa_private.public_key() self.signature_template = self.HEADER_SIGNER_TEMPLATE.format(" ".join(self.headers), key_id, SIGNATURE_VERSION) # An abstract class whose subclasses can sign requests. This contains the core logic for creating a signer and signing # requests, but does not source the required information: # # - api key # - private key # - headers # # As concrete implementations are expected to provide these and have their ways of sourcing/constructing them. class AbstractBaseSigner(requests.auth.AuthBase): def create_signers(self, api_key, private_key, generic_headers, body_headers): self._basic_signer = _PatchedHeaderSigner( key_id=api_key, private_key=private_key, headers=generic_headers) self._body_signer = _PatchedHeaderSigner( key_id=api_key, private_key=private_key, headers=generic_headers + body_headers) def validate_request(self, request): verb = request.method.lower() if verb not in ["get", "head", "delete", "put", "post", "patch"]: raise ValueError("Don't know how to sign request verb {}".format(verb)) def do_request_sign(self, request, enforce_content_headers=True): verb = request.method.lower() sign_body = verb in ["put", "post", "patch"] if sign_body and enforce_content_headers: signer = self._body_signer else: signer = self._basic_signer # The requests library sets the Transfer-Encoding header to 'chunked' if the # body is a stream with 0 length. Object storage does not currently support this option, # and the request will fail if it is not removed. This is the only hook available where we # can do this after the header is added and before the request is sent. request.headers.pop('Transfer-Encoding', None) inject_missing_headers(request, sign_body, enforce_content_headers) signed_headers = signer.sign( request.headers, host=six.moves.urllib.parse.urlparse(request.url).netloc, method=request.method, path=request.path_url) request.headers.update(signed_headers) return request def __call__(self, request, enforce_content_headers=True): self.validate_request(request) return self.do_request_sign(request, enforce_content_headers) @property def without_content_headers(self): return functools.partial(self, enforce_content_headers=False) class Signer(AbstractBaseSigner): """ A requests auth instance that can be reused across requests. This signer is intended to be used when signing requests for a given user and it requires that user's ID, their private key and cerificate fingerprint. The private key can be sourced from a file (private_key_file_location) or the PEM string can be provided directly (private_key_content). The headers to be signed by this signer are not customizable. You can manually sign calls by creating an instance of the signer, and providing it as the ``auth`` argument to Requests functions: .. code-block:: python import requests from oci import Signer auth = Signer(...) resp = requests.get("https://...", auth=auth) """ def __init__(self, tenancy, user, fingerprint, private_key_file_location, pass_phrase=None, private_key_content=None): self.api_key = tenancy + "/" + user + "/" + fingerprint if private_key_content: self.private_key = load_private_key(private_key_content, pass_phrase) else: self.private_key = load_private_key_from_file(private_key_file_location, pass_phrase) generic_headers = ["date", "(request-target)", "host"] body_headers = ["content-length", "content-type", "x-content-sha256"] self.create_signers(self.api_key, self.private_key, generic_headers, body_headers) @staticmethod def from_config(config): from .config import validate_config validate_config(config) return Signer( config['tenancy'], config['user'], config['fingerprint'], private_key_file_location=config['key_file'], pass_phrase=config.get('pass_phrase'), private_key_content=config.get('key_content') )