コード例 #1
0
    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
コード例 #2
0
    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))
コード例 #3
0
    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))
コード例 #4
0
    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))
コード例 #5
0
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})
コード例 #6
0
def hello_api():
    authorize_or_401('HelloWorld')

    return '{"message":"Hello World!"}'
コード例 #7
0
 def get(self):
     authorize_or_401('ListKeys', 'key')
     return build_response_for_request(PrivateKey, request, private_key_fields)