added signature tests
This commit is contained in:
parent
79f1015a86
commit
445a303955
@ -43,7 +43,7 @@ class PrivateKey:
|
|||||||
return PublicKey(data=data)
|
return PublicKey(data=data)
|
||||||
|
|
||||||
def generate_signature(self, data: bytes) -> bytes:
|
def generate_signature(self, data: bytes) -> bytes:
|
||||||
return self.__key.sign(data, PKCS1v15(), SHA256())
|
return self.__key.sign(data, padding=PKCS1v15(), algorithm=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":
|
||||||
@ -82,6 +82,9 @@ class PublicKey:
|
|||||||
format=serialization.PublicFormat.SubjectPublicKeyInfo
|
format=serialization.PublicFormat.SubjectPublicKeyInfo
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def verify_signature(self, signature: bytes, data: bytes) -> bytes:
|
||||||
|
return self.__key.verify(signature, data, padding=PKCS1v15(), algorithm=SHA256())
|
||||||
|
|
||||||
|
|
||||||
class Cert:
|
class Cert:
|
||||||
|
|
||||||
|
23
test/main.py
23
test/main.py
@ -40,6 +40,23 @@ def __bearer_token(origin_ref: str) -> str:
|
|||||||
return token
|
return token
|
||||||
|
|
||||||
|
|
||||||
|
def test_signing():
|
||||||
|
signature_set_header = INSTANCE_KEY_RSA.generate_signature(b'Hello')
|
||||||
|
|
||||||
|
# test plain
|
||||||
|
INSTANCE_KEY_PUB.verify_signature(signature_set_header, b'Hello')
|
||||||
|
|
||||||
|
# test "X-NLS-Signature: b'....'
|
||||||
|
x_nls_signature_header_value = f'{signature_set_header.hex().encode()}'
|
||||||
|
assert f'{x_nls_signature_header_value}'.startswith('b\'')
|
||||||
|
assert f'{x_nls_signature_header_value}'.endswith('\'')
|
||||||
|
|
||||||
|
# test eval
|
||||||
|
signature_get_header = eval(x_nls_signature_header_value)
|
||||||
|
signature_get_header = bytes.fromhex(signature_get_header.decode('ascii'))
|
||||||
|
INSTANCE_KEY_PUB.verify_signature(signature_get_header, b'Hello')
|
||||||
|
|
||||||
|
|
||||||
def test_index():
|
def test_index():
|
||||||
response = client.get('/')
|
response = client.get('/')
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
@ -214,6 +231,9 @@ def test_leasing_v1_lessor():
|
|||||||
assert client_challenge == payload.get('client_challenge')
|
assert client_challenge == payload.get('client_challenge')
|
||||||
signature = eval(response.headers.get('X-NLS-Signature'))
|
signature = eval(response.headers.get('X-NLS-Signature'))
|
||||||
assert len(signature) == 512
|
assert len(signature) == 512
|
||||||
|
signature = bytes.fromhex(signature.decode('ascii'))
|
||||||
|
assert len(signature) == 256
|
||||||
|
INSTANCE_KEY_PUB.verify_signature(signature, response.content)
|
||||||
|
|
||||||
lease_result_list = response.json().get('lease_result_list')
|
lease_result_list = response.json().get('lease_result_list')
|
||||||
assert len(lease_result_list) == 1
|
assert len(lease_result_list) == 1
|
||||||
@ -249,6 +269,9 @@ def test_leasing_v1_lease_renew():
|
|||||||
assert client_challenge == payload.get('client_challenge')
|
assert client_challenge == payload.get('client_challenge')
|
||||||
signature = eval(response.headers.get('X-NLS-Signature'))
|
signature = eval(response.headers.get('X-NLS-Signature'))
|
||||||
assert len(signature) == 512
|
assert len(signature) == 512
|
||||||
|
signature = bytes.fromhex(signature.decode('ascii'))
|
||||||
|
assert len(signature) == 256
|
||||||
|
INSTANCE_KEY_PUB.verify_signature(signature, response.content)
|
||||||
|
|
||||||
lease_ref = response.json().get('lease_ref')
|
lease_ref = response.json().get('lease_ref')
|
||||||
assert len(lease_ref) == 36
|
assert len(lease_ref) == 36
|
||||||
|
Loading…
Reference in New Issue
Block a user