mirror of https://gitlab.com/bashrc2/epicyon
Fixing signed get
parent
1398685e74
commit
a751dbdf14
|
@ -56,7 +56,7 @@ def signPostHeaders(dateStr: str, privateKeyPem: str,
|
||||||
keyID = httpPrefix + '://' + domain + '/actor#main-key'
|
keyID = httpPrefix + '://' + domain + '/actor#main-key'
|
||||||
if not messageBodyJsonStr:
|
if not messageBodyJsonStr:
|
||||||
headers = {
|
headers = {
|
||||||
'(request-target)': f'post {path}',
|
'(request-target)': f'get {path}',
|
||||||
'host': toDomain,
|
'host': toDomain,
|
||||||
'date': dateStr,
|
'date': dateStr,
|
||||||
'accept': 'application/json'
|
'accept': 'application/json'
|
||||||
|
@ -201,7 +201,7 @@ def createSignedHeader(privateKeyPem: str, nickname: str,
|
||||||
dateStr = strftime("%a, %d %b %Y %H:%M:%S %Z", gmtime())
|
dateStr = strftime("%a, %d %b %Y %H:%M:%S %Z", gmtime())
|
||||||
if not withDigest:
|
if not withDigest:
|
||||||
headers = {
|
headers = {
|
||||||
'(request-target)': f'post {path}',
|
'(request-target)': f'get {path}',
|
||||||
'host': headerDomain,
|
'host': headerDomain,
|
||||||
'date': dateStr,
|
'date': dateStr,
|
||||||
'accept': contentType
|
'accept': contentType
|
||||||
|
|
|
@ -184,9 +184,13 @@ def _getJsonSigned(session, url: str, domainFull: str, sessionHeaders: {},
|
||||||
print('Signed GET httpPrefix: ' + httpPrefix)
|
print('Signed GET httpPrefix: ' + httpPrefix)
|
||||||
messageStr = ''
|
messageStr = ''
|
||||||
withDigest = False
|
withDigest = False
|
||||||
|
if toDomainFull + '/' in url:
|
||||||
|
path = '/' + url.split(toDomainFull + '/')[1]
|
||||||
|
else:
|
||||||
|
path = '/actor'
|
||||||
signatureHeaderJson = \
|
signatureHeaderJson = \
|
||||||
createSignedHeader(signingPrivateKeyPem, nickname, domain, port,
|
createSignedHeader(signingPrivateKeyPem, nickname, domain, port,
|
||||||
toDomain, toPort, url, httpPrefix, withDigest,
|
toDomain, toPort, path, httpPrefix, withDigest,
|
||||||
messageStr)
|
messageStr)
|
||||||
print('Signed GET signatureHeaderJson ' + str(signatureHeaderJson))
|
print('Signed GET signatureHeaderJson ' + str(signatureHeaderJson))
|
||||||
for key, value in signatureHeaderJson.items():
|
for key, value in signatureHeaderJson.items():
|
||||||
|
|
11
tests.py
11
tests.py
|
@ -452,20 +452,21 @@ def _testHttpsigBase(withDigest):
|
||||||
boxpath, httpPrefix, messageBodyJsonStr)
|
boxpath, httpPrefix, messageBodyJsonStr)
|
||||||
|
|
||||||
headers['signature'] = signatureHeader
|
headers['signature'] = signatureHeader
|
||||||
|
GETmethod = not withDigest
|
||||||
assert verifyPostHeaders(httpPrefix, publicKeyPem, headers,
|
assert verifyPostHeaders(httpPrefix, publicKeyPem, headers,
|
||||||
boxpath, False, None,
|
boxpath, GETmethod, None,
|
||||||
messageBodyJsonStr, False)
|
messageBodyJsonStr, False)
|
||||||
if withDigest:
|
if withDigest:
|
||||||
# everything correct except for content-length
|
# everything correct except for content-length
|
||||||
headers['content-length'] = str(contentLength + 2)
|
headers['content-length'] = str(contentLength + 2)
|
||||||
assert verifyPostHeaders(httpPrefix, publicKeyPem, headers,
|
assert verifyPostHeaders(httpPrefix, publicKeyPem, headers,
|
||||||
boxpath, False, None,
|
boxpath, GETmethod, None,
|
||||||
messageBodyJsonStr, False) is False
|
messageBodyJsonStr, False) is False
|
||||||
assert verifyPostHeaders(httpPrefix, publicKeyPem, headers,
|
assert verifyPostHeaders(httpPrefix, publicKeyPem, headers,
|
||||||
'/parambulator' + boxpath, False, None,
|
'/parambulator' + boxpath, GETmethod, None,
|
||||||
messageBodyJsonStr, False) is False
|
messageBodyJsonStr, False) is False
|
||||||
assert verifyPostHeaders(httpPrefix, publicKeyPem, headers,
|
assert verifyPostHeaders(httpPrefix, publicKeyPem, headers,
|
||||||
boxpath, True, None,
|
boxpath, not GETmethod, None,
|
||||||
messageBodyJsonStr, False) is False
|
messageBodyJsonStr, False) is False
|
||||||
if not withDigest:
|
if not withDigest:
|
||||||
# fake domain
|
# fake domain
|
||||||
|
@ -490,7 +491,7 @@ def _testHttpsigBase(withDigest):
|
||||||
}
|
}
|
||||||
headers['signature'] = signatureHeader
|
headers['signature'] = signatureHeader
|
||||||
assert verifyPostHeaders(httpPrefix, publicKeyPem, headers,
|
assert verifyPostHeaders(httpPrefix, publicKeyPem, headers,
|
||||||
boxpath, True, None,
|
boxpath, not GETmethod, None,
|
||||||
messageBodyJsonStr, False) is False
|
messageBodyJsonStr, False) is False
|
||||||
|
|
||||||
os.chdir(baseDir)
|
os.chdir(baseDir)
|
||||||
|
|
Loading…
Reference in New Issue