mirror of
				https://gitea.publichub.eu/oscar.krause/fastapi-dls.git
				synced 2025-11-04 05:36:06 +00:00 
			
		
		
		
	fixed signature
This commit is contained in:
		@@ -4,10 +4,9 @@ from calendar import timegm
 | 
				
			|||||||
from contextlib import asynccontextmanager
 | 
					from contextlib import asynccontextmanager
 | 
				
			||||||
from datetime import datetime, timedelta, UTC
 | 
					from datetime import datetime, timedelta, UTC
 | 
				
			||||||
from hashlib import sha256
 | 
					from hashlib import sha256
 | 
				
			||||||
from json import loads as json_loads
 | 
					from json import loads as json_loads, dumps as json_dumps
 | 
				
			||||||
from os import getenv as env
 | 
					from os import getenv as env
 | 
				
			||||||
from os.path import join, dirname, isfile
 | 
					from os.path import join, dirname, isfile
 | 
				
			||||||
from random import randbytes
 | 
					 | 
				
			||||||
from uuid import uuid4
 | 
					from uuid import uuid4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from dateutil.relativedelta import relativedelta
 | 
					from dateutil.relativedelta import relativedelta
 | 
				
			||||||
@@ -728,7 +727,8 @@ async def leasing_v1_lessor(request: Request):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    logger.debug(response)
 | 
					    logger.debug(response)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    signature = f'b\'{randbytes(256).hex()}\''
 | 
					    signature = INSTANCE_KEY_RSA.generate_signature(json_dumps(response).encode('utf-8'))
 | 
				
			||||||
 | 
					    signature = f'b\'{signature.hex()}\''
 | 
				
			||||||
    return JSONr(response, headers={'access-control-expose-headers': 'X-NLS-Signature', 'X-NLS-Signature': signature})
 | 
					    return JSONr(response, headers={'access-control-expose-headers': 'X-NLS-Signature', 'X-NLS-Signature': signature})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -780,7 +780,8 @@ async def leasing_v1_lease_renew(request: Request, lease_ref: str):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    Lease.renew(db, entity, expires, cur_time)
 | 
					    Lease.renew(db, entity, expires, cur_time)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    signature = f'b\'{randbytes(256).hex()}\''
 | 
					    signature = INSTANCE_KEY_RSA.generate_signature(json_dumps(response).encode('utf-8'))
 | 
				
			||||||
 | 
					    signature = f'b\'{signature.hex()}\''
 | 
				
			||||||
    return JSONr(response, headers={'access-control-expose-headers': 'X-NLS-Signature', 'X-NLS-Signature': signature})
 | 
					    return JSONr(response, headers={'access-control-expose-headers': 'X-NLS-Signature', 'X-NLS-Signature': signature})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,9 @@
 | 
				
			|||||||
import logging
 | 
					import logging
 | 
				
			||||||
 | 
					from json import loads as json_loads
 | 
				
			||||||
from cryptography.hazmat.primitives import serialization
 | 
					from cryptography.hazmat.primitives import serialization
 | 
				
			||||||
 | 
					from cryptography.hazmat.primitives.asymmetric.padding import PKCS1v15
 | 
				
			||||||
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey, RSAPublicKey, generate_private_key
 | 
					from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey, RSAPublicKey, generate_private_key
 | 
				
			||||||
 | 
					from cryptography.hazmat.primitives.hashes import SHA256
 | 
				
			||||||
from cryptography.hazmat.primitives.serialization import load_pem_private_key, load_pem_public_key
 | 
					from cryptography.hazmat.primitives.serialization import load_pem_private_key, load_pem_public_key
 | 
				
			||||||
from cryptography.x509 import load_pem_x509_certificate, Certificate
 | 
					from cryptography.x509 import load_pem_x509_certificate, Certificate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -40,6 +42,9 @@ class PrivateKey:
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
        return PublicKey(data=data)
 | 
					        return PublicKey(data=data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def generate_signature(self, data: bytes) -> bytes:
 | 
				
			||||||
 | 
					        return self.__key.sign(data, PKCS1v15(), SHA256())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
    def generate(public_exponent: int = 65537, key_size: int = 2048) -> "PrivateKey":
 | 
					    def generate(public_exponent: int = 65537, key_size: int = 2048) -> "PrivateKey":
 | 
				
			||||||
        log = logging.getLogger(__name__)
 | 
					        log = logging.getLogger(__name__)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user