예제 #1
0
def _store_secret_and_datum(context, secret_model, kek_datum_model,
                            generated_dto):

    # Create Secret entities in data store.
    if not secret_model.id:
        secret_model.project_id = context.project_model.id
        repositories.get_secret_repository().create_from(secret_model)

    # setup and store encrypted datum
    datum_model = models.EncryptedDatum(secret_model, kek_datum_model)
    datum_model.content_type = context.content_type
    datum_model.cypher_text = base64.b64encode(generated_dto.cypher_text)
    datum_model.kek_meta_extended = generated_dto.kek_meta_extended
    repositories.get_encrypted_datum_repository().create_from(datum_model)
예제 #2
0
def _store_secret_and_datum(
        context, secret_model, kek_datum_model, generated_dto):

    # Create Secret entities in data store.
    if not secret_model.id:
        secret_model.project_id = context.project_model.id
        repositories.get_secret_repository().create_from(secret_model)

    # setup and store encrypted datum
    datum_model = models.EncryptedDatum(secret_model, kek_datum_model)
    datum_model.content_type = context.content_type
    datum_model.cypher_text = base64.b64encode(generated_dto.cypher_text)
    datum_model.kek_meta_extended = generated_dto.kek_meta_extended
    repositories.get_encrypted_datum_repository().create_from(
        datum_model)
예제 #3
0
def create_encrypted_datum(secret=None, kek_datum=None, session=None):
    enc_datum = models.EncryptedDatum()
    enc_datum.secret_id = secret.id
    enc_datum.kek_id = kek_datum.id
    enc_datum_repo = repositories.get_encrypted_datum_repository()
    enc_datum_repo.create_from(enc_datum, session=session)
    return enc_datum
예제 #4
0
def create_encrypted_datum(secret=None, kek_datum=None, session=None):
    enc_datum = models.EncryptedDatum()
    enc_datum.secret_id = secret.id
    enc_datum.kek_id = kek_datum.id
    enc_datum_repo = repositories.get_encrypted_datum_repository()
    enc_datum_repo.create_from(enc_datum, session=session)
    return enc_datum
예제 #5
0
def _store_secret_and_datum(context, secret_model, kek_datum_model,
                            generated_dto):

    # Create Secret entities in data store.
    if not secret_model.id:
        repositories.get_secret_repository().create_from(secret_model)
        new_assoc = models.ProjectSecret()
        new_assoc.project_id = context.project_model.id
        new_assoc.secret_id = secret_model.id
        new_assoc.role = "admin"
        new_assoc.status = models.States.ACTIVE
        repositories.get_project_secret_repository().create_from(new_assoc)

    # setup and store encrypted datum
    datum_model = models.EncryptedDatum(secret_model, kek_datum_model)
    datum_model.content_type = context.content_type
    datum_model.cypher_text = base64.b64encode(generated_dto.cypher_text)
    datum_model.kek_meta_extended = generated_dto.kek_meta_extended
    datum_model.secret_id = secret_model.id
    repositories.get_encrypted_datum_repository().create_from(datum_model)
예제 #6
0
def _store_secret_and_datum(
        context, secret_model, kek_datum_model, generated_dto):

    # Create Secret entities in data store.
    if not secret_model.id:
        repositories.get_secret_repository().create_from(secret_model)
        new_assoc = models.TenantSecret()
        new_assoc.tenant_id = context.tenant_model.id
        new_assoc.secret_id = secret_model.id
        new_assoc.role = "admin"
        new_assoc.status = models.States.ACTIVE
        repositories.get_tenant_secret_repository().create_from(new_assoc)

    # setup and store encrypted datum
    datum_model = models.EncryptedDatum(secret_model, kek_datum_model)
    datum_model.content_type = context.content_type
    datum_model.cypher_text = base64.b64encode(generated_dto.cypher_text)
    datum_model.kek_meta_extended = generated_dto.kek_meta_extended
    datum_model.secret_id = secret_model.id
    repositories.get_encrypted_datum_repository().create_from(
        datum_model)
예제 #7
0
class EncryptedDatum(base.BarbicanObject, base.BarbicanPersistentObject,
                     object_base.VersionedObjectDictCompat):

    fields = {
        'content_type': fields.StringField(nullable=True, default=None),
        'secret_id': fields.StringField(),
        'kek_id': fields.StringField(),
        'cypher_text': fields.StringField(nullable=True, default=None),
        'kek_meta_extended': fields.StringField(nullable=True, default=None),
        'kek_meta_project': fields.ObjectField('KEKDatum',
                                               nullable=True, default=None),
        'status': fields.StringField(nullable=True, default=base.States.ACTIVE)
    }

    db_model = models.EncryptedDatum
    db_repo = repo.get_encrypted_datum_repository()
    synthetic_fields = ['kek_meta_project']