From f0495701357761647f720791f1d8400254e3a937 Mon Sep 17 00:00:00 2001 From: silk Date: Thu, 19 Sep 2019 14:07:01 +0300 Subject: [PATCH 1/4] optional verify parameter for requests package --- monero/backends/jsonrpc.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/monero/backends/jsonrpc.py b/monero/backends/jsonrpc.py index c79f692..5ba8802 100644 --- a/monero/backends/jsonrpc.py +++ b/monero/backends/jsonrpc.py @@ -25,7 +25,7 @@ class JSONRPCDaemon(object): :param timeout: request timeout """ def __init__(self, protocol='http', host='127.0.0.1', port=18081, path='/json_rpc', - user='', password='', timeout=30): + user='', password='', timeout=30, verify=True): self.url = '{protocol}://{host}:{port}'.format( protocol=protocol, host=host, @@ -34,6 +34,7 @@ class JSONRPCDaemon(object): self.user = user self.password = password self.timeout = timeout + self.verify = verify def info(self): info = self.raw_jsonrpc_request('get_info') @@ -66,7 +67,7 @@ class JSONRPCDaemon(object): path=path, data=json.dumps(data, indent=2, sort_keys=True))) rsp = requests.post( - self.url + path, headers=hdr, data=json.dumps(data), timeout=self.timeout) + self.url + path, headers=hdr, data=json.dumps(data), timeout=self.timeout, verify=self.verify) if rsp.status_code != 200: raise RPCError("Invalid HTTP status {code} for path {path}.".format( code=rsp.status_code, @@ -86,7 +87,7 @@ class JSONRPCDaemon(object): auth = requests.auth.HTTPDigestAuth(self.user, self.password) rsp = requests.post( self.url + '/json_rpc', headers=hdr, data=json.dumps(data), auth=auth, - timeout=self.timeout) + timeout=self.timeout, verify=self.verify) if rsp.status_code == 401: raise Unauthorized("401 Unauthorized. Invalid RPC user name or password.") elif rsp.status_code != 200: @@ -121,7 +122,7 @@ class JSONRPCWallet(object): _master_address = None def __init__(self, protocol='http', host='127.0.0.1', port=18088, path='/json_rpc', - user='', password='', timeout=30): + user='', password='', timeout=30, verify=True): self.url = '{protocol}://{host}:{port}/json_rpc'.format( protocol=protocol, host=host, @@ -130,6 +131,7 @@ class JSONRPCWallet(object): self.user = user self.password = password self.timeout = timeout + self.verify = verify _log.debug("JSONRPC wallet backend auth: '{user}'/'{stars}'".format( user=user, stars=('*' * len(password)) if password else '')) @@ -350,7 +352,7 @@ class JSONRPCWallet(object): params=json.dumps(params, indent=2, sort_keys=True))) auth = requests.auth.HTTPDigestAuth(self.user, self.password) rsp = requests.post( - self.url, headers=hdr, data=json.dumps(data), auth=auth, timeout=self.timeout) + self.url, headers=hdr, data=json.dumps(data), auth=auth, timeout=self.timeout, verify=self.verify) if rsp.status_code == 401: raise Unauthorized("401 Unauthorized. Invalid RPC user name or password.") elif rsp.status_code != 200: From 13efdb967cb63e6c5af0eecb9025f72d9ff8d426 Mon Sep 17 00:00:00 2001 From: silk Date: Thu, 19 Sep 2019 14:22:52 +0300 Subject: [PATCH 2/4] docstrings --- monero/backends/jsonrpc.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/monero/backends/jsonrpc.py b/monero/backends/jsonrpc.py index 5ba8802..c50e8f1 100644 --- a/monero/backends/jsonrpc.py +++ b/monero/backends/jsonrpc.py @@ -23,6 +23,7 @@ class JSONRPCDaemon(object): :param port: port number :param path: path for JSON RPC requests (should not be changed) :param timeout: request timeout + :param timeout: request verify """ def __init__(self, protocol='http', host='127.0.0.1', port=18081, path='/json_rpc', user='', password='', timeout=30, verify=True): @@ -118,6 +119,7 @@ class JSONRPCWallet(object): :param user: username to authenticate with over RPC :param password: password to authenticate with over RPC :param timeout: request timeout + :param verify: request verify """ _master_address = None From 4adef4de8aa90470d9d7e4fd7dcd0bbf87d2bbc3 Mon Sep 17 00:00:00 2001 From: silk Date: Mon, 21 Oct 2019 12:45:49 +0300 Subject: [PATCH 3/4] verify parameter name changed to verify_ssl_certs --- monero/backends/jsonrpc.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/monero/backends/jsonrpc.py b/monero/backends/jsonrpc.py index c50e8f1..57df587 100644 --- a/monero/backends/jsonrpc.py +++ b/monero/backends/jsonrpc.py @@ -23,10 +23,10 @@ class JSONRPCDaemon(object): :param port: port number :param path: path for JSON RPC requests (should not be changed) :param timeout: request timeout - :param timeout: request verify + :param verify_ssl_certs: verify ssl certs for request """ def __init__(self, protocol='http', host='127.0.0.1', port=18081, path='/json_rpc', - user='', password='', timeout=30, verify=True): + user='', password='', timeout=30, verify_ssl_certs=True): self.url = '{protocol}://{host}:{port}'.format( protocol=protocol, host=host, @@ -35,7 +35,7 @@ class JSONRPCDaemon(object): self.user = user self.password = password self.timeout = timeout - self.verify = verify + self.verify_ssl_certs = verify_ssl_certs def info(self): info = self.raw_jsonrpc_request('get_info') @@ -68,7 +68,8 @@ class JSONRPCDaemon(object): path=path, data=json.dumps(data, indent=2, sort_keys=True))) rsp = requests.post( - self.url + path, headers=hdr, data=json.dumps(data), timeout=self.timeout, verify=self.verify) + self.url + path, headers=hdr, data=json.dumps(data), + timeout=self.timeout, verify_ssl_certs=self.verify_ssl_certs) if rsp.status_code != 200: raise RPCError("Invalid HTTP status {code} for path {path}.".format( code=rsp.status_code, @@ -88,7 +89,8 @@ class JSONRPCDaemon(object): auth = requests.auth.HTTPDigestAuth(self.user, self.password) rsp = requests.post( self.url + '/json_rpc', headers=hdr, data=json.dumps(data), auth=auth, - timeout=self.timeout, verify=self.verify) + timeout=self.timeout, verify_ssl_certs=self.verify_ssl_certs) + if rsp.status_code == 401: raise Unauthorized("401 Unauthorized. Invalid RPC user name or password.") elif rsp.status_code != 200: @@ -119,12 +121,12 @@ class JSONRPCWallet(object): :param user: username to authenticate with over RPC :param password: password to authenticate with over RPC :param timeout: request timeout - :param verify: request verify + :param verify_ssl_certs: verify ssl certs for request """ _master_address = None def __init__(self, protocol='http', host='127.0.0.1', port=18088, path='/json_rpc', - user='', password='', timeout=30, verify=True): + user='', password='', timeout=30, verify_ssl_certs=True): self.url = '{protocol}://{host}:{port}/json_rpc'.format( protocol=protocol, host=host, @@ -133,7 +135,7 @@ class JSONRPCWallet(object): self.user = user self.password = password self.timeout = timeout - self.verify = verify + self.verify_ssl_certs = verify_ssl_certs _log.debug("JSONRPC wallet backend auth: '{user}'/'{stars}'".format( user=user, stars=('*' * len(password)) if password else '')) @@ -354,7 +356,9 @@ class JSONRPCWallet(object): params=json.dumps(params, indent=2, sort_keys=True))) auth = requests.auth.HTTPDigestAuth(self.user, self.password) rsp = requests.post( - self.url, headers=hdr, data=json.dumps(data), auth=auth, timeout=self.timeout, verify=self.verify) + self.url, headers=hdr, data=json.dumps(data), auth=auth, + timeout=self.timeout, verify_ssl_certs=self.verify_ssl_certs) + if rsp.status_code == 401: raise Unauthorized("401 Unauthorized. Invalid RPC user name or password.") elif rsp.status_code != 200: From 5699c26f6ba0a64f50ac065ebe0419daf01fd993 Mon Sep 17 00:00:00 2001 From: silk Date: Mon, 21 Oct 2019 13:06:13 +0300 Subject: [PATCH 4/4] requests verify argument name fix --- monero/backends/jsonrpc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/monero/backends/jsonrpc.py b/monero/backends/jsonrpc.py index 57df587..437ea75 100644 --- a/monero/backends/jsonrpc.py +++ b/monero/backends/jsonrpc.py @@ -69,7 +69,7 @@ class JSONRPCDaemon(object): data=json.dumps(data, indent=2, sort_keys=True))) rsp = requests.post( self.url + path, headers=hdr, data=json.dumps(data), - timeout=self.timeout, verify_ssl_certs=self.verify_ssl_certs) + timeout=self.timeout, verify=self.verify_ssl_certs) if rsp.status_code != 200: raise RPCError("Invalid HTTP status {code} for path {path}.".format( code=rsp.status_code, @@ -89,7 +89,7 @@ class JSONRPCDaemon(object): auth = requests.auth.HTTPDigestAuth(self.user, self.password) rsp = requests.post( self.url + '/json_rpc', headers=hdr, data=json.dumps(data), auth=auth, - timeout=self.timeout, verify_ssl_certs=self.verify_ssl_certs) + timeout=self.timeout, verify=self.verify_ssl_certs) if rsp.status_code == 401: raise Unauthorized("401 Unauthorized. Invalid RPC user name or password.") @@ -357,7 +357,7 @@ class JSONRPCWallet(object): auth = requests.auth.HTTPDigestAuth(self.user, self.password) rsp = requests.post( self.url, headers=hdr, data=json.dumps(data), auth=auth, - timeout=self.timeout, verify_ssl_certs=self.verify_ssl_certs) + timeout=self.timeout, verify=self.verify_ssl_certs) if rsp.status_code == 401: raise Unauthorized("401 Unauthorized. Invalid RPC user name or password.")