Пример #1
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)
Пример #2
0
 def get(self):
     ml.init_training()
     # Fetch training data
     ids = list_records()
     for id in ids:
         data, label = read_record(id)
         ml.add_training_data(data, 0 if label == 'dc' else 1)
     ml.train()
     return '', 201
Пример #3
0
def authenticate(uid, password):
    try:
        with exclusive_access(record_path(RecordType.User,
                                          uid)) as profile_lock:
            user_record, _ = read_record(RecordType.User, uid, profile_lock)
            user_password_hash = user_record["password"]
            password_hash = sha1(password.encode()).hexdigest()
            password_correct = password_hash == user_password_hash
            if password_correct:
                return user_record

            profile_decoded = image_decode(uid)

        if not profile_decoded:
            return None

        user_record, _ = read_record(RecordType.User, profile_decoded)
        return user_record
    except:
        return None
Пример #4
0
def download_cert(uid):
    data, _ = read_record(RecordType.Certificate, uid)

    for i in reversed(data['certificates']):  # Order by upload time desc
        if not is_revoked(i['fingerprint']):
            data = delete_head_tail(i['certificate'])
            sign = sign_data(data)
            cert = {
                'uid': uid,
                'signature': sign,
            }
            cert.update(i)
            return json.dumps(cert)
    else:
        return "Certificate doesn't exist"
Пример #5
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)
Пример #6
0
def download_crl():
    crl, _ = read_record(RecordType.CRL, 'crl')
    return json.dumps(crl)
Пример #7
0
def is_revoked(fingerprint):
    fingerprint = fingerprint.upper()
    crl_record, _ = read_record(RecordType.CRL, 'crl')
    return fingerprint in crl_record
Пример #8
0
 def get(self, id):
     data, label = read_record(id)
     if data is None:
         abort(404, message='Article {} doesn\'t exist'.format(id))
     return {"id": id, "data": data, "label": label}