Beispiel #1
0
def test_publish_and_consume_document(config):
    publisher = Client(config['ss_url'], config['parity_client_url'],
                       config['publisher_address'],
                       config['publisher_password'])

    document = 'mySecretDocument-{}'.format(uuid.uuid4())
    document_id = hashlib.sha256(document.encode()).hexdigest()
    encrypted = publisher.publish_document(document_id, document)

    consumer = Client(config['ss_url'], config['parity_client_url'],
                      config['consumer_address'], config['consumer_password'])
    decrypted = consumer.decrypt_document(document_id, encrypted)

    assert document == decrypted
def test_rejects_keys_request_if_no_permissions(config):
    publisher = Client(config['ss_url'], config['parity_client_url'],
                       config['publisher_address'],
                       config['publisher_password'])

    # Noone has permissions to access this particular document
    # according to our test contract.
    document = 'mySecretDocument'
    document_id = hashlib.sha256(document.encode()).hexdigest()

    try:
        # Publish it if it was not already.
        publisher.publish_document(document_id, document)
    except Exception:
        pass

    consumer = Client(config['ss_url'], config['parity_client_url'],
                      config['consumer_address'], config['consumer_password'])

    with pytest.raises(RPCError) as e:
        consumer.decrypt_document(document_id, '')

    assert 'Failed to retrieve decryption keys: Forbidden' == str(e.value)
Beispiel #3
0
def do_secret_store_decrypt(did_id, encrypted_document, provider_acc, config):
    secret_store = SecretStore(config.secret_store_url, config.parity_url,
                               provider_acc.address, provider_acc.password)
    return secret_store.decrypt_document(did_id, encrypted_document)
Beispiel #4
0
def do_secret_store_encrypt(did_id, document, provider_acc, config):
    secret_store = SecretStore(config.secret_store_url, config.parity_url,
                               provider_acc.address, provider_acc.password)
    encrypted_document = secret_store.publish_document(did_id, document)
    return encrypted_document
Beispiel #5
0
import configparser
from secret_store_client.client import Client
from ..input import INPUT
from ..config import CONFIG_FILE

config = configparser.ConfigParser()
config.read(CONFIG_FILE)
secret_store = Client(
    secret_store_url=config['keeper-contracts']['secret_store.url'],
    parity_client_url=config['keeper-contracts']['parity.url'],
    address=config['keeper-contracts']['parity.address'],
    password=config['keeper-contracts']['parity.password'])
decrypted_document = secret_store.decrypt_document(INPUT['docId'],
                                                   INPUT['encryptedDocument'])

print("__result__{}".format(decrypted_document))
Beispiel #6
0
import json
import hashlib
import random
import configparser
from secret_store_client.client import Client
from ..input import INPUT
from ..config import CONFIG_FILE

config = configparser.ConfigParser()
config.read(CONFIG_FILE)
secret_store = Client(secret_store_url=config['keeper-contracts']['secret_store.url'],
                      parity_client_url=config['keeper-contracts']['parity.url'],
                      address=config['keeper-contracts']['parity.address'],
                      password=config['keeper-contracts']['parity.password'])
doc_id = hashlib.sha256(str(random.random()).encode()).hexdigest()
encrypted_document = secret_store.publish_document(doc_id, INPUT)

result = {
    'docId': doc_id,
    'encryptedDocument': encrypted_document
}
print("__result__{}".format(json.dumps(result, indent=2, sort_keys=True)))