def test_generate_different_keys(default_params): seed2 = 'Seed' + '0' * (48 - len('Seed')) seed3 = 'seeeed' + '0' * (48 - len('seeeed')) sk1, pk1 = BlsCryptoSignerIndyCrypto.generate_keys(default_params) sk3, pk3 = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed2) sk4, pk4 = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed3) assert sk1 != sk3 != sk4 assert pk1 != pk3 != pk4
def test_generate_different_keys(default_params): seed2 = 'Seed' + '0' * (32 - len('Seed')) seed3 = 'seeeed' + '0' * (32 - len('seeeed')) seed4 = 'Seed' + '0' * (31 - len('Seed')) sk1, pk1, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params) sk2, pk2, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed2) sk3, pk3, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed3) sk4, pk4, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed4) assert sk1 != sk2 != sk3 != sk4 assert pk1 != pk2 != pk3 != pk4
def test_generate_different_keys(default_params): seed2 = 'Seed' + '0' * (32 - len('Seed')) seed3 = 'seeeed' + '0' * (32 - len('seeeed')) seed4 = 'Seed' + '0' * (31 - len('Seed')) sk1, pk1, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params) sk2, pk2, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed2) sk3, pk3, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed3) sk4, pk4, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed4) assert sk1 != sk2 != sk3 != sk4 assert pk1 != pk2 != pk3 != pk4
def test_generate_keys_no_seed(default_params): sk, pk = BlsCryptoSignerIndyCrypto.generate_keys(default_params) assert sk assert isinstance(sk, str) assert pk assert isinstance(pk, str) assert sk != pk
def test_generate_keys_bytes_seed(default_params, seed): seed = seed.encode() sk, pk = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed) assert sk assert isinstance(sk, str) assert pk assert isinstance(pk, str) assert sk != pk
def test_generate_keys_str_seed(default_params, seed, bls_verifier): sk, pk, key_proof = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed) assert sk assert isinstance(sk, str) assert pk assert isinstance(pk, str) assert sk != pk assert bls_verifier.verify_key_proof_of_possession(key_proof, pk)
def test_generate_keys_str_seed_32bit(default_params): seed = 'Seed' + '0' * (32 - len('Seed')) sk, pk = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed) assert sk assert isinstance(sk, str) assert pk assert isinstance(pk, str) assert sk != pk
def test_generate_keys_bytes_seed_48bit(default_params): seed = 'Seed' + '0' * (48 - len('Seed')) seed = seed.encode() sk, pk = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed) assert sk assert isinstance(sk, str) assert pk assert isinstance(pk, str) assert sk != pk
def test_generate_keys_str_seed(default_params, seed, bls_verifier): sk, pk, key_proof = BlsCryptoSignerIndyCrypto.generate_keys( default_params, seed) assert sk assert isinstance(sk, str) assert pk assert isinstance(pk, str) assert sk != pk assert bls_verifier.verify_key_proof_of_possession(key_proof, pk)
def _create_bls_crypto_signer(self, sk: str, pk: str, group_params: GroupParams): sk_bls = IndyCryptoBlsUtils.bls_from_str(sk, cls=SignKey) # type: SignKey pk_bls = IndyCryptoBlsUtils.bls_from_str(pk, cls=VerKey) # type: VerKey return BlsCryptoSignerIndyCrypto(sk=sk_bls, pk=pk_bls, params=group_params)
def test_generate_keys_no_seed(default_params, bls_verifier): sk, pk, key_proof = BlsCryptoSignerIndyCrypto.generate_keys(default_params) assert sk assert isinstance(sk, SignKey) assert pk assert isinstance(pk, VerKey) assert key_proof assert isinstance(key_proof, ProofOfPossession) assert sk != pk assert bls_verifier.verify_key_proof_of_possession(key_proof, pk)
def test_generate_keys_str_seed_32bit_for_nodes(default_params): seeds = [] nodes_count = 4 for i in range(1, nodes_count + 1): name = "Node" + str(i) seed = ('0' * (32 - len(name)) + name) seeds.append(seed) pks = set() for i in range(nodes_count): sk, pk, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seeds[i]) pks.add(pk) assert len(pks) == nodes_count
def test_generate_keys_str_seed_32bit_for_nodes(default_params): seeds = [] nodes_count = 4 for i in range(1, nodes_count + 1): name = "Node" + str(i) seed = ('0' * (32 - len(name)) + name) seeds.append(seed) pks = set() for i in range(nodes_count): sk, pk, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seeds[i]) pks.add(pk) print(pk) assert len(pks) == nodes_count
def bls_signer2(keys2, default_params): sk, vk, key_proof = keys2 return BlsCryptoSignerIndyCrypto(sk, vk, default_params)
def keys2(default_params): return BlsCryptoSignerIndyCrypto.generate_keys(default_params)
def _create_bls_crypto_signer(self, sk, pk, group_params): return BlsCryptoSignerIndyCrypto(sk=sk, pk=pk, params=group_params)
def test_verify_incorrect_keys(default_params, seed, bls_verifier): seed = seed.encode() sk, pk, key_proof = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed) key_proof = key_proof.upper() assert not bls_verifier.verify_key_proof_of_possession(key_proof, pk)
def test_generate_keys_with_incorrect_seed(default_params): seed_len = 40 incorrect_seed = 'Seed' + '0' * (seed_len - len('Seed')) with pytest.raises(IndyCryptoError) as e: BlsCryptoSignerIndyCrypto.generate_keys(default_params, incorrect_seed) assert e.error_code == ErrorCode.CommonInvalidStructure
def test_generate_keys_with_incorrect_seed(default_params): seed_len = 40 incorrect_seed = 'Seed' + '0' * (seed_len - len('Seed')) with pytest.raises(IndyCryptoError) as e: BlsCryptoSignerIndyCrypto.generate_keys(default_params, incorrect_seed) assert e.error_code == ErrorCode.CommonInvalidStructure
def bls_signer2(keys2, default_params): return BlsCryptoSignerIndyCrypto(*keys2, default_params)
def test_verify_incorrect_keys(default_params, seed, bls_verifier): seed = seed.encode() sk, pk, _ = BlsCryptoSignerIndyCrypto.generate_keys(default_params, seed) _, _, key_proof = BlsCryptoSignerIndyCrypto.generate_keys( default_params, "1" * len(seed)) assert not bls_verifier.verify_key_proof_of_possession(key_proof, pk)
def keys2(default_params): return BlsCryptoSignerIndyCrypto.generate_keys(default_params)