def delete(self, key_id): authorize_or_401('DeleteKey', 'key', key_id) private_key = self._get_or_404(key_id) db.session.delete(private_key) return '{}', 201
def get(self, key_id): parser = reqparse.RequestParser() parser.add_argument('context', type=dict, location='json', required=False) args = parser.parse_args() authorize_or_401('GetKey', 'key', key_id, args.context) private_key = self._get_or_404(key_id) return jsonify(marshal(private_key, private_key_fields))
def post(self): args = private_key_parser.parse_args() authorize_or_401('CreateKey', 'key', args['name']) private_key = PrivateKey( name=args['name'], private_key=crypto.generate_private_key(), ) db.session.add(private_key) db.session.commit() return jsonify(marshal(private_key, private_key_fields))
def put(self, key_id): authorize_or_401('UpdateKey', 'key', key_id) private_key = self._get_or_404(key_id) args = private_key_parser.parse_args() private_key.name = args['name'] db.session.add(private_key) db.session.commit() return jsonify(marshal(private_key, private_key_fields))
def sign_data(key_id): parser = reqparse.RequestParser() parser.add_argument('data', type=str, location='json', required=True) parser.add_argument('context', type=dict, location='json', required=False) args = parser.parse_args() authorize_or_401('SignData', 'key', key_id, ctx=args.context) private_key = PrivateKey.query.filter(PrivateKey.name == key_id).first() if not private_key: abort(404, message=f'private_key {key_id} does not exist') signature = base64.b64encode(private_key.sign(base64.b64decode(args['data']))).decode('utf-8') return jsonify({'signature': signature})
def hello_api(): authorize_or_401('HelloWorld') return '{"message":"Hello World!"}'
def get(self): authorize_or_401('ListKeys', 'key') return build_response_for_request(PrivateKey, request, private_key_fields)