| 388 | |
| 389 | |
| 390 | def apply_request_checksum(request): |
| 391 | checksum_context = request.get("context", {}).get("checksum", {}) |
| 392 | algorithm = checksum_context.get("request_algorithm") |
| 393 | |
| 394 | if not algorithm: |
| 395 | return |
| 396 | |
| 397 | if algorithm["in"] == "header": |
| 398 | _apply_request_header_checksum(request) |
| 399 | elif algorithm["in"] == "trailer": |
| 400 | _apply_request_trailer_checksum(request) |
| 401 | else: |
| 402 | raise FlexibleChecksumError( |
| 403 | error_msg="Unknown checksum variant: {}".format(algorithm["in"]) |
| 404 | ) |
| 405 | if "request_algorithm_header" in checksum_context: |
| 406 | request_algorithm_header = checksum_context["request_algorithm_header"] |
| 407 | request["headers"][request_algorithm_header["name"]] = ( |
| 408 | request_algorithm_header["value"] |
| 409 | ) |
| 410 | |
| 411 | |
| 412 | def _apply_request_header_checksum(request): |