Exemple #1
0
def init_crl():
    try:
        crl = []
        edit_record(RecordType.CRL, 'crl', crl)
        commit_record(RecordType.CRL, 'crl', is_new=True)
    except:
        pass
Exemple #2
0
def edit(uid, edit_data):
    if "password" in edit_data:
        hash_password(edit_data)

    user_record, ref_revision = read_record(RecordType.User, uid)
    user_record.update(edit_data)
    edit_record(RecordType.User, uid, user_record)
    commit_record(RecordType.User, uid, ref_revision)
Exemple #3
0
def revoke_key(uid, fingerprint):
    fingerprint = fingerprint.upper()
    cert, _ = read_record(RecordType.Certificate, uid)
    fingerprints = map(lambda x: x['fingerprint'], cert['certificates'])

    if fingerprint not in fingerprints:
        raise DifferentKeyOwnerException()

    if is_revoked(fingerprint):
        raise KeyAlreadyRevokedException()

    fp_list, ref_revision = read_record(RecordType.CRL, 'crl')
    fp_list.append(fingerprint)
    edit_record(RecordType.CRL, 'crl', fp_list)
    commit_record(RecordType.CRL, 'crl', ref_revision)
Exemple #4
0
def upload_key(uid, key_data):
    key = scan_pgp_key(key_data)

    if not key:
        raise InvalidKeyException()

    if not check_name(uid, key[0]['uids'][0]):
        raise DifferentKeyOwnerException()

    fingerprint = key[0]['fingerprint']
    if is_revoked(fingerprint):
        raise KeyAlreadyRevokedException()

    cert, ref_revision = read_record(RecordType.Certificate, uid)
    sub = {
        'fingerprint': fingerprint,
        'certificate': key_data,
    }

    cert['certificates'].append(sub)

    edit_record(RecordType.Certificate, uid, cert)
    commit_record(RecordType.Certificate, uid, ref_revision)
Exemple #5
0
def generate_record(uid):
    new_record = {"uid": uid, "certificates": []}

    edit_record(RecordType.Certificate, uid, new_record)
    commit_record(RecordType.Certificate, uid, is_new=True)
Exemple #6
0
def register(register_data):
    uid = register_data["uid"]
    hash_password(register_data)
    edit_record(RecordType.User, uid, register_data)
    commit_record(RecordType.User, uid, is_new=True)