added signature tests
This commit is contained in:
parent
79f1015a86
commit
445a303955
@ -43,7 +43,7 @@ class PrivateKey:
|
||||
return PublicKey(data=data)
|
||||
|
||||
def generate_signature(self, data: bytes) -> bytes:
|
||||
return self.__key.sign(data, PKCS1v15(), SHA256())
|
||||
return self.__key.sign(data, padding=PKCS1v15(), algorithm=SHA256())
|
||||
|
||||
@staticmethod
|
||||
def generate(public_exponent: int = 65537, key_size: int = 2048) -> "PrivateKey":
|
||||
@ -82,6 +82,9 @@ class PublicKey:
|
||||
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:
|
||||
|
||||
|
23
test/main.py
23
test/main.py
@ -40,6 +40,23 @@ def __bearer_token(origin_ref: str) -> str:
|
||||
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():
|
||||
response = client.get('/')
|
||||
assert response.status_code == 200
|
||||
@ -214,6 +231,9 @@ def test_leasing_v1_lessor():
|
||||
assert client_challenge == payload.get('client_challenge')
|
||||
signature = eval(response.headers.get('X-NLS-Signature'))
|
||||
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')
|
||||
assert len(lease_result_list) == 1
|
||||
@ -249,6 +269,9 @@ def test_leasing_v1_lease_renew():
|
||||
assert client_challenge == payload.get('client_challenge')
|
||||
signature = eval(response.headers.get('X-NLS-Signature'))
|
||||
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')
|
||||
assert len(lease_ref) == 36
|
||||
|
Loading…
Reference in New Issue
Block a user