MCPcopy
hub / github.com/ticarpi/jwt_tool / validateToken

Function validateToken

jwt_tool.py:1239–1293  ·  view source on GitHub ↗
(jwt)

Source from the content-addressed store, hash-verified

1237 return comparestamps, expiredtoken
1238
1239def validateToken(jwt):
1240 try:
1241 headB64, paylB64, sig = jwt.split(".",3)
1242 except:
1243 cprintc("[-] Invalid token:\nNot 3 parts -> header.payload.signature", "red")
1244 exit(1)
1245 try:
1246 sig = base64.urlsafe_b64encode(base64.urlsafe_b64decode(sig + "=" * (-len(sig) % 4))).decode('UTF-8').strip("=")
1247 except:
1248 cprintc("[-] Invalid token:\nCould not base64-decode SIGNATURE - incorrect formatting/invalid characters", "red")
1249 cprintc("----------------", "white")
1250 cprintc(headB64, "cyan")
1251 cprintc(paylB64, "cyan")
1252 cprintc(sig, "red")
1253 exit(1)
1254 contents = headB64+"."+paylB64
1255 contents = contents.encode()
1256 try:
1257 head = base64.urlsafe_b64decode(headB64 + "=" * (-len(headB64) % 4))
1258 except:
1259 cprintc("[-] Invalid token:\nCould not base64-decode HEADER - incorrect formatting/invalid characters", "red")
1260 cprintc("----------------", "white")
1261 cprintc(headB64, "red")
1262 cprintc(paylB64, "cyan")
1263 cprintc(sig, "cyan")
1264 exit(1)
1265 try:
1266 payl = base64.urlsafe_b64decode(paylB64 + "=" * (-len(paylB64) % 4))
1267 except:
1268 cprintc("[-] Invalid token:\nCould not base64-decode PAYLOAD - incorrect formatting/invalid characters", "red")
1269 cprintc("----------------", "white")
1270 cprintc(headB64, "cyan")
1271 cprintc(paylB64, "red")
1272 cprintc(sig, "cyan")
1273 exit(1)
1274 try:
1275 headDict = json.loads(head, object_pairs_hook=OrderedDict)
1276 except:
1277 cprintc("[-] Invalid token:\nHEADER not valid JSON format", "red")
1278
1279 cprintc(head.decode('UTF-8'), "red")
1280 exit(1)
1281 if payl.decode() == "":
1282 cprintc("Payload is blank", "white")
1283 paylDict = {}
1284 else:
1285 try:
1286 paylDict = json.loads(payl, object_pairs_hook=OrderedDict)
1287 except:
1288 cprintc("[-] Invalid token:\nPAYLOAD not valid JSON format", "red")
1289 cprintc(payl.decode('UTF-8'), "red")
1290 exit(1)
1291 if args.verbose:
1292 cprintc("Token: "+head.decode()+"."+payl.decode()+"."+sig+"\n", "green")
1293 return headDict, paylDict, sig, contents
1294
1295def rejigToken(headDict, paylDict, sig):
1296 cprintc("=====================\nDecoded Token Values:\n=====================", "white")

Callers 1

jwt_tool.pyFile · 0.85

Calls 1

cprintcFunction · 0.85

Tested by

no test coverage detected