Test signers pattern
This commit is contained in:
parent
8cf30893f2
commit
c1aad3882c
1 changed files with 41 additions and 3 deletions
|
@ -308,12 +308,51 @@ class TestContentUser:
|
||||||
user_content["signs"] = {
|
user_content["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(user_content, sort_keys=True), user_priv)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(user_content, sort_keys=True), user_priv)
|
||||||
}
|
}
|
||||||
|
def testCertSignersPattern(self, site):
|
||||||
|
user_priv = "5Kk7FSA63FC2ViKmKLuBxk9gQkaQ5713hKq8LmFAf4cVeXh6K6A"
|
||||||
|
cert_priv = "5JusJDSjHaMHwUjDT3o6eQ54pA6poo8La5fAgn1wNc3iK59jxjA" # For 14wgQ4VDDZNoRMFF4yCDuTrBSHmYhL3bet
|
||||||
|
|
||||||
|
user_content = site.content_manager.contents["data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json"]
|
||||||
|
rules_content = site.content_manager.contents["data/users/content.json"]
|
||||||
|
|
||||||
|
# Override valid cert signers for the test
|
||||||
|
rules_content["user_contents"]["cert_signers_pattern"] = "14wgQ[0-9][A-Z]"
|
||||||
|
|
||||||
|
# Sign a valid cert
|
||||||
|
user_content["cert_user_id"] = "certuser@14wgQ4VDDZNoRMFF4yCDuTrBSHmYhL3bet"
|
||||||
|
user_content["cert_sign"] = CryptBitcoin.sign("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C#%s/%s" % (
|
||||||
|
user_content["cert_auth_type"],
|
||||||
|
"certuser"
|
||||||
|
), cert_priv)
|
||||||
|
signed_content = site.content_manager.sign(
|
||||||
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json", user_priv, filewrite=False
|
||||||
|
)
|
||||||
|
|
||||||
|
assert site.content_manager.verifyFile(
|
||||||
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
|
StringIO(json.dumps(signed_content)), ignore_same=False
|
||||||
|
)
|
||||||
|
|
||||||
|
# Cert does not matches the pattern
|
||||||
|
rules_content["user_contents"]["cert_signers_pattern"] = "14wgX[0-9][A-Z]"
|
||||||
|
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(
|
site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(user_content)), ignore_same=False
|
StringIO(json.dumps(signed_content)), ignore_same=False
|
||||||
)
|
)
|
||||||
assert "Missing cert_user_id" in str(err)
|
assert "Invalid cert signer: 14wgQ4VDDZNoRMFF4yCDuTrBSHmYhL3bet" in str(err)
|
||||||
|
|
||||||
|
# Removed cert_signers_pattern
|
||||||
|
del rules_content["user_contents"]["cert_signers_pattern"]
|
||||||
|
|
||||||
|
with pytest.raises(VerifyError) as err:
|
||||||
|
site.content_manager.verifyFile(
|
||||||
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
|
StringIO(json.dumps(signed_content)), ignore_same=False
|
||||||
|
)
|
||||||
|
assert "Invalid cert signer: 14wgQ4VDDZNoRMFF4yCDuTrBSHmYhL3bet" in str(err)
|
||||||
|
|
||||||
|
|
||||||
def testNewFile(self, site):
|
def testNewFile(self, site):
|
||||||
privatekey = "5KUh3PvNm5HUWoCfSUfcYvfQ2g3PrRNJWr6Q9eqdBGu23mtMntv" # For 1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT
|
privatekey = "5KUh3PvNm5HUWoCfSUfcYvfQ2g3PrRNJWr6Q9eqdBGu23mtMntv" # For 1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT
|
||||||
|
@ -324,4 +363,3 @@ class TestContentUser:
|
||||||
assert "test" in site.storage.loadJson(inner_path)
|
assert "test" in site.storage.loadJson(inner_path)
|
||||||
|
|
||||||
site.storage.delete(inner_path)
|
site.storage.delete(inner_path)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue